Reference documentation for deal.II version 9.6.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
full_matrix.cc
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2007 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
16
17#include <deal.II/lac/full_matrix.templates.h>
18
20
21#include "full_matrix.inst"
22
23#ifndef DOXYGEN
24
25// We use FullMatrix<std::complex<T>> for complex eigenvalues so ignore the
26// value of DEAL_II_WITH_COMPLEX_VALUES and always instantiate. As a consequence
27// we cannot use REAL_AND_COMPLEX_SCALARS without getting duplicate
28// instantiations so do float and double here too.
29template class FullMatrix<float>;
30template class FullMatrix<double>;
31template class FullMatrix<std::complex<float>>;
33
34// instantiate for long double manually because we use it in a few places
35// inside the library
36template class FullMatrix<long double>;
37template void
39template void
42 const bool) const;
43template void
46 const bool) const;
47template void
50 const bool) const;
51template void
54 const bool) const;
55template void
57 const Vector<long double> &,
58 bool) const;
59template void
61 const Vector<long double> &,
62 bool) const;
63template void
66
67
68// do a few functions that currently don't fit the scheme because they have
69// two template arguments that need to be different (the case of same
70// arguments is covered by the default copy constructor and copy operator that
71// is declared separately)
72
73# define TEMPL_OP_EQ(S1, S2) \
74 template FullMatrix<S1> &FullMatrix<S1>::operator=(const FullMatrix<S2> &)
75
76TEMPL_OP_EQ(double, float);
77TEMPL_OP_EQ(float, double);
78
79TEMPL_OP_EQ(std::complex<double>, std::complex<float>);
80TEMPL_OP_EQ(std::complex<float>, std::complex<double>);
81TEMPL_OP_EQ(std::complex<double>, double);
82TEMPL_OP_EQ(std::complex<float>, float);
83
84# undef TEMPL_OP_EQ
85
86#endif
87
void TmTmult(FullMatrix< number2 > &C, const FullMatrix< number2 > &B, const bool adding=false) const
void mmult(FullMatrix< number2 > &C, const FullMatrix< number2 > &B, const bool adding=false) const
void vmult(Vector< number2 > &w, const Vector< number2 > &v, const bool adding=false) const
void Tvmult(Vector< number2 > &w, const Vector< number2 > &v, const bool adding=false) const
void Tmmult(FullMatrix< number2 > &C, const FullMatrix< number2 > &B, const bool adding=false) const
void invert(const FullMatrix< number2 > &M)
void add(const number a, const FullMatrix< number2 > &A)
void mTmult(FullMatrix< number2 > &C, const FullMatrix< number2 > &B, const bool adding=false) const
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:503
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:504