Reference documentation for deal.II version 9.5.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// Copyright (C) 1999 - 2023 by the deal.II authors
4//
5// This file is part of the deal.II library.
6//
7// The deal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 2.1 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of deal.II.
13//
14// ---------------------------------------------------------------------
15
17
18#include <deal.II/lac/full_matrix.templates.h>
19
21
22#include "full_matrix.inst"
23
24#ifndef DOXYGEN
25
26// We use FullMatrix<std::complex<T>> for complex eigenvalues so ignore the
27// value of DEAL_II_WITH_COMPLEX_VALUES and always instantiate. As a consequence
28// we cannot use REAL_AND_COMPLEX_SCALARS without getting duplicate
29// instantiations so do float and double here too.
30template class FullMatrix<float>;
31template class FullMatrix<double>;
32template class FullMatrix<std::complex<float>>;
34
35// instantiate for long double manually because we use it in a few places
36// inside the library
37template class FullMatrix<long double>;
38template void
40template void
43 const bool) const;
44template void
47 const bool) const;
48template void
51 const bool) const;
52template void
55 const bool) const;
56template void
58 const Vector<long double> &,
59 bool) const;
60template void
62 const Vector<long double> &,
63 bool) const;
64template void
67
68
69// do a few functions that currently don't fit the scheme because they have
70// two template arguments that need to be different (the case of same
71// arguments is covered by the default copy constructor and copy operator that
72// is declared separately)
73
74# define TEMPL_OP_EQ(S1, S2) \
75 template FullMatrix<S1> &FullMatrix<S1>::operator=(const FullMatrix<S2> &)
76
77TEMPL_OP_EQ(double, float);
78TEMPL_OP_EQ(float, double);
79
80TEMPL_OP_EQ(std::complex<double>, std::complex<float>);
81TEMPL_OP_EQ(std::complex<float>, std::complex<double>);
82TEMPL_OP_EQ(std::complex<double>, double);
83TEMPL_OP_EQ(std::complex<float>, float);
84
85# undef TEMPL_OP_EQ
86
87#endif
88
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:472
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:473