1 #include "SeldonFlag.hxx"
3 #include "SeldonSolverHeader.hxx"
4 #include "SeldonSolverInline.hxx"
6 #include "matrix_sparse/BandMatrix.hxx"
7 #include "matrix_sparse/BandMatrixInline.cxx"
9 #ifndef SELDON_WITH_COMPILED_LIBRARY
10 #include "matrix_sparse/BandMatrix.cxx"
11 #include "computation/basic_functions/Functions_Base.cxx"
12 #include "computation/basic_functions/Functions_MatVect.cxx"
19 SELDON_EXTERN
template class Matrix_Band<Real_wp, General, BandedCol>;
20 SELDON_EXTERN
template class Matrix_Band<Complex_wp, General, BandedCol>;
22 SELDON_EXTERN
template class Matrix<Real_wp, General, BandedCol>;
23 SELDON_EXTERN
template class Matrix<Complex_wp, General, BandedCol>;
41 SELDON_EXTERN
template void GetLU(Matrix<Real_wp, General, BandedCol>&, Matrix<Real_wp, General, BandedCol>&,
bool);
42 SELDON_EXTERN
template void GetLU(Matrix<Real_wp, General, BandedCol>&);
43 SELDON_EXTERN
template void GetLU(Matrix<Complex_wp, General, BandedCol>&, Matrix<Complex_wp, General, BandedCol>&,
bool);
44 SELDON_EXTERN
template void GetLU(Matrix<Complex_wp, General, BandedCol>&);
46 SELDON_EXTERN
template void GetLU(Matrix<Real_wp, General, BandedCol>&, Vector<int>&, LapackInfo&);
47 SELDON_EXTERN
template void SolveLU(
const Matrix<Real_wp, General, BandedCol>&,
const Vector<int>&, Vector<Real_wp>&, LapackInfo&);
48 SELDON_EXTERN
template void SolveLU(
const Matrix<Real_wp, General, BandedCol>&,
const Vector<int>&, Vector<Complex_wp>&, LapackInfo&);
50 SELDON_EXTERN
template void GetLU(Matrix<Complex_wp, General, BandedCol>&, Vector<int>&, LapackInfo&);
51 SELDON_EXTERN
template void SolveLU(
const Matrix<Complex_wp, General, BandedCol>&,
const Vector<int>&, Vector<Complex_wp>&, LapackInfo&);
53 SELDON_EXTERN
template void Copy(
const Matrix<Real_wp, General, ArrayRowSparse>&, Matrix<Real_wp, General, BandedCol>&);
54 SELDON_EXTERN
template void Copy(
const Matrix<Complex_wp, General, ArrayRowSparse>&, Matrix<Complex_wp, General, BandedCol>&);
56 SELDON_EXTERN
template void AddMatrix(
const Real_wp&,
const Matrix<Real_wp, General, BandedCol>&, Matrix<Real_wp, General, BandedCol>&);
57 SELDON_EXTERN
template void AddMatrix(
const Complex_wp&,
const Matrix<Complex_wp, General, BandedCol>&, Matrix<Complex_wp, General, BandedCol>&);
59 SELDON_EXTERN
template void MltAddVector(
const Real_wp&,
const Matrix<Real_wp, General, BandedCol>&,
const Vector<Real_wp>&,
const Real_wp&, Vector<Real_wp>&);
60 SELDON_EXTERN
template void MltAddVector(
const Complex_wp&,
const Matrix<Complex_wp, General, BandedCol>&,
const Vector<Complex_wp>&,
const Complex_wp&, Vector<Complex_wp>&);
61 SELDON_EXTERN
template void MltAddVector(
const Real_wp&,
const SeldonTranspose&,
const Matrix<Real_wp, General, BandedCol>&,
const Vector<Real_wp>&,
const Real_wp&, Vector<Real_wp>&);
62 SELDON_EXTERN
template void MltAddVector(
const Real_wp&,
const SeldonTranspose&,
const Matrix<Real_wp, General, BandedCol>&,
const Vector<Complex_wp>&,
const Real_wp&, Vector<Complex_wp>&);
63 SELDON_EXTERN
template void MltAddVector(
const Complex_wp&,
const SeldonTranspose&,
const Matrix<Complex_wp, General, BandedCol>&,
const Vector<Complex_wp>&,
const Complex_wp&, Vector<Complex_wp>&);
65 SELDON_EXTERN
template void MltVector(
const Matrix<Real_wp, General, BandedCol>&,
const Vector<Real_wp>&, Vector<Real_wp>&);
66 SELDON_EXTERN
template void MltVector(
const SeldonTranspose&,
const Matrix<Real_wp, General, BandedCol>&,
const Vector<Real_wp>&, Vector<Real_wp>&);
67 SELDON_EXTERN
template void MltVector(
const Matrix<Complex_wp, General, BandedCol>&,
const Vector<Complex_wp>&, Vector<Complex_wp>&);
68 SELDON_EXTERN
template void MltVector(
const SeldonTranspose&,
const Matrix<Complex_wp, General, BandedCol>&,
const Vector<Complex_wp>&, Vector<Complex_wp>&);
70 SELDON_EXTERN
template void MltScalar(
const Real_wp&, Matrix<Real_wp, General, BandedCol>&);
71 SELDON_EXTERN
template void MltScalar(
const Complex_wp&, Matrix<Complex_wp, General, BandedCol>&);
73 SELDON_EXTERN
template void ScaleMatrix(Matrix<Real_wp, General, BandedCol>&,
const Vector<Real_wp>&,
const Vector<Real_wp>&);
74 SELDON_EXTERN
template void ScaleMatrix(Matrix<Complex_wp, General, BandedCol>&,
const Vector<Real_wp>&,
const Vector<Real_wp>&);
76 SELDON_EXTERN
template void SorVector(
const Matrix<Complex_wp, General, BandedCol>&, Vector<Complex_wp>&,
const Vector<Complex_wp>&,
const Real_wp&,
int,
int);
77 SELDON_EXTERN
template void SorVector(
const SeldonTranspose&,
const Matrix<Complex_wp, General, BandedCol>&, Vector<Complex_wp>&,
const Vector<Complex_wp>&,
const Real_wp&,
int,
int);
79 SELDON_EXTERN
template void SorVector(
const Matrix<Real_wp, General, BandedCol>&, Vector<Real_wp>&,
const Vector<Real_wp>&,
const Real_wp&,
int,
int);
80 SELDON_EXTERN
template void SorVector(
const SeldonTranspose&,
const Matrix<Real_wp, General, BandedCol>&, Vector<Real_wp>&,
const Vector<Real_wp>&,
const Real_wp&,
int,
int);
81 SELDON_EXTERN
template void SorVector(
const Matrix<Real_wp, General, BandedCol>&, Vector<Complex_wp>&,
const Vector<Complex_wp>&,
const Real_wp&,
int,
int);
82 SELDON_EXTERN
template void SorVector(
const SeldonTranspose&,
const Matrix<Real_wp, General, BandedCol>&, Vector<Complex_wp>&,
const Vector<Complex_wp>&,
const Real_wp&,
int,
int);
86 SELDON_EXTERN
template class Matrix_Band<Real_wp, General, ArrowCol>;
87 SELDON_EXTERN
template class Matrix_Band<Complex_wp, General, ArrowCol>;
89 SELDON_EXTERN
template class Matrix_Arrow<Real_wp, General, ArrowCol>;
90 SELDON_EXTERN
template class Matrix_Arrow<Complex_wp, General, ArrowCol>;
92 SELDON_EXTERN
template class Matrix<Real_wp, General, ArrowCol>;
93 SELDON_EXTERN
template class Matrix<Complex_wp, General, ArrowCol>;
112 SELDON_EXTERN
template void GetLU(Matrix<Real_wp, General, ArrowCol>&, Matrix<Real_wp, General, ArrowCol>&,
bool);
113 SELDON_EXTERN
template void GetLU(Matrix<Complex_wp, General, ArrowCol>&, Matrix<Complex_wp, General, ArrowCol>&,
bool);
114 SELDON_EXTERN
template void GetLU(Matrix<Real_wp, General, ArrowCol>&);
115 SELDON_EXTERN
template void GetLU(Matrix<Complex_wp, General, ArrowCol>&);
117 SELDON_EXTERN
template void AddMatrix(
const Real_wp&,
const Matrix<Real_wp, General, ArrowCol>&, Matrix<Real_wp, General, ArrowCol>&);
118 SELDON_EXTERN
template void AddMatrix(
const Complex_wp&,
const Matrix<Complex_wp, General, ArrowCol>&, Matrix<Complex_wp, General, ArrowCol>&);
124 SELDON_EXTERN
template void MltAddVector(
const Real_wp&,
const Matrix<Real_wp, General, ArrowCol>&,
const Vector<Real_wp>&,
const Real_wp&, Vector<Real_wp>&);
125 SELDON_EXTERN
template void MltAddVector(
const Complex_wp&,
const Matrix<Complex_wp, General, ArrowCol>&,
const Vector<Complex_wp>&,
const Complex_wp&, Vector<Complex_wp>&);
126 SELDON_EXTERN
template void MltAddVector(
const Real_wp&,
const SeldonTranspose&,
const Matrix<Real_wp, General, ArrowCol>&,
const Vector<Real_wp>&,
const Real_wp&, Vector<Real_wp>&);
127 SELDON_EXTERN
template void MltAddVector(
const Complex_wp&,
const SeldonTranspose&,
const Matrix<Complex_wp, General, ArrowCol>&,
const Vector<Complex_wp>&,
const Complex_wp&, Vector<Complex_wp>&);
129 SELDON_EXTERN
template void MltVector(
const Matrix<Real_wp, General, ArrowCol>&,
const Vector<Real_wp>&, Vector<Real_wp>&);
130 SELDON_EXTERN
template void MltVector(
const SeldonTranspose&,
const Matrix<Real_wp, General, ArrowCol>&,
const Vector<Real_wp>&, Vector<Real_wp>&);
131 SELDON_EXTERN
template void MltVector(
const Matrix<Complex_wp, General, ArrowCol>&,
const Vector<Complex_wp>&, Vector<Complex_wp>&);
132 SELDON_EXTERN
template void MltVector(
const SeldonTranspose&,
const Matrix<Complex_wp, General, ArrowCol>&,
const Vector<Complex_wp>&, Vector<Complex_wp>&);
134 SELDON_EXTERN
template void MltScalar(
const Real_wp&, Matrix<Real_wp, General, ArrowCol>&);
135 SELDON_EXTERN
template void MltScalar(
const Complex_wp&, Matrix<Complex_wp, General, ArrowCol>&);
137 SELDON_EXTERN
template void SorVector(
const Matrix<Complex_wp, General, ArrowCol>&, Vector<Complex_wp>&,
const Vector<Complex_wp>&,
const Real_wp&,
int,
int);
138 SELDON_EXTERN
template void SorVector(
const SeldonTranspose&,
const Matrix<Complex_wp, General, ArrowCol>&, Vector<Complex_wp>&,
const Vector<Complex_wp>&,
const Real_wp&,
int,
int);
140 SELDON_EXTERN
template void SorVector(
const Matrix<Real_wp, General, ArrowCol>&, Vector<Real_wp>&,
const Vector<Real_wp>&,
const Real_wp&,
int,
int);
141 SELDON_EXTERN
template void SorVector(
const SeldonTranspose&,
const Matrix<Real_wp, General, ArrowCol>&, Vector<Real_wp>&,
const Vector<Real_wp>&,
const Real_wp&,
int,
int);