UmfPack.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/UmfPack.cxx"
8 #endif
9 
10 namespace Seldon
11 {
12  SELDON_EXTERN template class MatrixUmfPack<double>;
13  SELDON_EXTERN template class MatrixUmfPack<complex<double> >;
14 
15  SELDON_EXTERN template class MatrixUmfPack_Base<double>;
16  SELDON_EXTERN template class MatrixUmfPack_Base<complex<double> >;
17 
18  SELDON_EXTERN template void MatrixUmfPack<double>::FactorizeMatrix(Matrix<double, Symmetric, RowSymSparse>&, bool);
19  SELDON_EXTERN template void MatrixUmfPack<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, RowSymSparse>&, bool);
20  SELDON_EXTERN template void MatrixUmfPack<double>::FactorizeMatrix(Matrix<double, Symmetric, ArrayRowSymSparse>&, bool);
21  SELDON_EXTERN template void MatrixUmfPack<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&, bool);
22  SELDON_EXTERN template void MatrixUmfPack<double>::FactorizeMatrix(Matrix<double, General, RowSparse>&, bool);
23  SELDON_EXTERN template void MatrixUmfPack<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, RowSparse>&, bool);
24  SELDON_EXTERN template void MatrixUmfPack<double>::FactorizeMatrix(Matrix<double, General, ArrayRowSparse>&, bool);
25  SELDON_EXTERN template void MatrixUmfPack<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, ArrayRowSparse>&, bool);
26 
27  SELDON_EXTERN template void MatrixUmfPack<double>::Solve(Vector<double>&);
28  SELDON_EXTERN template void MatrixUmfPack<double>::Solve(const SeldonTranspose&, Vector<double>&);
29 
30  SELDON_EXTERN template void MatrixUmfPack<complex<double> >::Solve(Vector<complex<double> >&);
31  SELDON_EXTERN template void MatrixUmfPack<complex<double> >::Solve(const SeldonTranspose&, Vector<complex<double> >&);
32 
33  SELDON_EXTERN template void GetLU(Matrix<double, Symmetric, RowSymSparse>&, MatrixUmfPack<double>&, bool);
34  SELDON_EXTERN template void GetLU(Matrix<complex<double> , Symmetric, RowSymSparse>&, MatrixUmfPack<complex<double> >&, bool);
35  SELDON_EXTERN template void GetLU(Matrix<double, Symmetric, ArrayRowSymSparse>&, MatrixUmfPack<double>&, bool);
36  SELDON_EXTERN template void GetLU(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&, MatrixUmfPack<complex<double> >&, bool);
37 
38  SELDON_EXTERN template void GetLU(Matrix<double, General, RowSparse>&, MatrixUmfPack<double>&, bool);
39  SELDON_EXTERN template void GetLU(Matrix<complex<double> , General, RowSparse>&, MatrixUmfPack<complex<double> >&, bool);
40  SELDON_EXTERN template void GetLU(Matrix<double, General, ArrayRowSparse>&, MatrixUmfPack<double>&, bool);
41  SELDON_EXTERN template void GetLU(Matrix<complex<double> , General, ArrayRowSparse>&, MatrixUmfPack<complex<double> >&, bool);
42 
43  SELDON_EXTERN template void SolveLU(MatrixUmfPack<double>&, Vector<double>&);
44  SELDON_EXTERN template void SolveLU(MatrixUmfPack<double>&, Matrix<double, General, ColMajor>&);
45  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixUmfPack<double>&, Vector<double>&);
46 
47  SELDON_EXTERN template void SolveLU(MatrixUmfPack<double>&, Vector<complex<double> >&);
48  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixUmfPack<double>&, Vector<complex<double> >&);
49 
50  SELDON_EXTERN template void SolveLU(MatrixUmfPack<complex<double> >&, Vector<double>&);
51  SELDON_EXTERN template void SolveLU(MatrixUmfPack<complex<double> >&, Matrix<complex<double>, General, ColMajor>&);
52  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixUmfPack<complex<double> >&, Vector<double>&);
53 
54  SELDON_EXTERN template void SolveLU(MatrixUmfPack<complex<double> >&, Vector<complex<double> >&);
55  SELDON_EXTERN template void SolveLU(const SeldonTranspose&, MatrixUmfPack<complex<double> >&, Vector<complex<double> >&);
56 
57 }
58 
59 
60 
Seldon::MatrixUmfPack< double >::Solve
void Solve(Vector< double, VectFull, Allocator2 > &x)
resolution of A y = x (result is overwritten in x)
Definition: UmfPack.cxx:404
Seldon::MatrixUmfPack< double >::FactorizeMatrix
void FactorizeMatrix(Matrix< T0, Prop, Storage, Allocator > &mat, bool keep_matrix=false)
factorization of a real matrix in double precision
Definition: UmfPack.cxx:251
Seldon::GetLU
void GetLU(Matrix< T0, Prop0, Storage0, Allocator0 > &A)
Returns the LU factorization of a matrix.
Definition: Functions_Matrix.cxx:2073
Seldon
Seldon namespace.
Definition: Array.cxx:24