Pardiso.cpp
1 #include "SeldonFlag.hxx"
2 
3 #include "SeldonSolverHeader.hxx"
4 #include "SeldonSolverInline.hxx"
5 
6 #ifndef SELDON_WITH_COMPILED_LIBRARY
7 #include "computation/interfaces/direct/Pardiso.cxx"
8 #endif
9 
10 namespace Seldon
11 {
12  SELDON_EXTERN template class MatrixPardiso<double>;
13  SELDON_EXTERN template class MatrixPardiso<complex<double> >;
14 
15  SELDON_EXTERN template void MatrixPardiso<double>::FactorizeMatrix(Matrix<double, Symmetric, RowSymSparse>&, bool);
16  SELDON_EXTERN template void MatrixPardiso<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, RowSymSparse>&, bool);
17  SELDON_EXTERN template void MatrixPardiso<double>::FactorizeMatrix(Matrix<double, Symmetric, ArrayRowSymSparse>&, bool);
18  SELDON_EXTERN template void MatrixPardiso<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&, bool);
19  SELDON_EXTERN template void MatrixPardiso<double>::FactorizeMatrix(Matrix<double, General, RowSparse>&, bool);
20  SELDON_EXTERN template void MatrixPardiso<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, RowSparse>&, bool);
21  SELDON_EXTERN template void MatrixPardiso<double>::FactorizeMatrix(Matrix<double, General, ArrayRowSparse>&, bool);
22  SELDON_EXTERN template void MatrixPardiso<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, ArrayRowSparse>&, bool);
23 
24  SELDON_EXTERN template void MatrixPardiso<double>::Solve(Vector<double>&);
25  SELDON_EXTERN template void MatrixPardiso<double>::Solve(const SeldonTranspose&, Vector<double>&);
26  SELDON_EXTERN template void MatrixPardiso<double>::Solve(const SeldonTranspose&, Matrix<double, General, ColMajor>&);
27 
28  SELDON_EXTERN template void MatrixPardiso<complex<double> >::Solve(Vector<complex<double> >&);
29  SELDON_EXTERN template void MatrixPardiso<complex<double> >::Solve(const SeldonTranspose&, Vector<complex<double> >&);
30  SELDON_EXTERN template void MatrixPardiso<complex<double> >::Solve(const SeldonTranspose&, Matrix<complex<double> , General, ColMajor>&);
31 
32  SELDON_EXTERN template void GetLU(Matrix<double, Symmetric, RowSymSparse>&, MatrixPardiso<double>&, bool);
33  SELDON_EXTERN template void GetLU(Matrix<complex<double> , Symmetric, RowSymSparse>&, MatrixPardiso<complex<double> >&, bool);
34  SELDON_EXTERN template void GetLU(Matrix<double, Symmetric, ArrayRowSymSparse>&, MatrixPardiso<double>&, bool);
35  SELDON_EXTERN template void GetLU(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&, MatrixPardiso<complex<double> >&, bool);
36 
37  SELDON_EXTERN template void GetLU(Matrix<double, General, RowSparse>&, MatrixPardiso<double>&, bool);
38  SELDON_EXTERN template void GetLU(Matrix<complex<double> , General, RowSparse>&, MatrixPardiso<complex<double> >&, bool);
39  SELDON_EXTERN template void GetLU(Matrix<double, General, ArrayRowSparse>&, MatrixPardiso<double>&, bool);
40  SELDON_EXTERN template void GetLU(Matrix<complex<double> , General, ArrayRowSparse>&, MatrixPardiso<complex<double> >&, bool);
41 
42  SELDON_EXTERN template void SolveLU(MatrixPardiso<double>&, Vector<double>&);
43  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixPardiso<double>&, Vector<double>&);
44  SELDON_EXTERN template void SolveLU(MatrixPardiso<double>&, Matrix<double, General, ColMajor>&);
45 
46  SELDON_EXTERN template void SolveLU(MatrixPardiso<double>&, Vector<complex<double> >&);
47  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixPardiso<double>&, Vector<complex<double> >&);
48 
49  SELDON_EXTERN template void SolveLU(MatrixPardiso<complex<double> >&, Vector<double>&);
50  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixPardiso<complex<double> >&, Vector<double>&);
51 
52  SELDON_EXTERN template void SolveLU(MatrixPardiso<complex<double> >&, Vector<complex<double> >&);
53  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixPardiso<complex<double> >&, Vector<complex<double> >&);
54  SELDON_EXTERN template void SolveLU(MatrixPardiso<complex<double> >&, Matrix<complex<double> , General, ColMajor>&);
55  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixPardiso<complex<double> >&, Matrix<complex<double> , General, ColMajor>&);
56 
57 }
58 
59 
60 
Seldon::MatrixPardiso::Solve
void Solve(Vector< T, VectFull, Allocator2 > &x)
solves A x = b, x contains the source b on input, the solution x on output
Definition: Pardiso.cxx:308
Seldon::GetLU
void GetLU(Matrix< T0, Prop0, Storage0, Allocator0 > &A)
Returns the LU factorization of a matrix.
Definition: Functions_Matrix.cxx:2073
Seldon::MatrixPardiso::FactorizeMatrix
void FactorizeMatrix(Matrix< T0, Prop, Storage, Allocator > &mat, bool keep_matrix=false)
performs analysis and factorization of matrix mat
Definition: Pardiso.cxx:151
Seldon
Seldon namespace.
Definition: Array.cxx:24