1 #include "SeldonFlag.hxx"
3 #include "SeldonSolverHeader.hxx"
4 #include "SeldonSolverInline.hxx"
6 #ifndef SELDON_WITH_COMPILED_LIBRARY
7 #include "computation/interfaces/direct/Pastix.cxx"
12 SELDON_EXTERN
template class MatrixPastix<double>;
13 SELDON_EXTERN
template class MatrixPastix<complex<double> >;
16 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FindOrdering(Matrix<complex<double> , Symmetric, RowSymSparse>&, IVect&,
bool);
18 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FindOrdering(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&, IVect&,
bool);
20 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FindOrdering(Matrix<complex<double> , General, RowSparse>&, IVect&,
bool);
22 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FindOrdering(Matrix<complex<double> , General, ArrayRowSparse>&, IVect&,
bool);
25 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, RowSymSparse>&,
bool);
27 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&,
bool);
29 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, RowSparse>&,
bool);
31 SELDON_EXTERN
template void MatrixPastix<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, ArrayRowSparse>&,
bool);
37 SELDON_EXTERN
template void MatrixPastix<complex<double> >::Solve(Vector<complex<double> >&);
38 SELDON_EXTERN
template void MatrixPastix<complex<double> >::Solve(
const SeldonTranspose&, Vector<complex<double> >&);
39 SELDON_EXTERN
template void MatrixPastix<complex<double> >::Solve(
const SeldonTranspose&, Matrix<complex<double> , General, ColMajor>&);
41 SELDON_EXTERN
template void GetLU(Matrix<double, Symmetric, RowSymSparse>&, MatrixPastix<double>&,
bool);
42 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , Symmetric, RowSymSparse>&, MatrixPastix<complex<double> >&,
bool);
43 SELDON_EXTERN
template void GetLU(Matrix<double, Symmetric, ArrayRowSymSparse>&, MatrixPastix<double>&,
bool);
44 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&, MatrixPastix<complex<double> >&,
bool);
46 SELDON_EXTERN
template void GetLU(Matrix<double, General, RowSparse>&, MatrixPastix<double>&,
bool);
47 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , General, RowSparse>&, MatrixPastix<complex<double> >&,
bool);
48 SELDON_EXTERN
template void GetLU(Matrix<double, General, ArrayRowSparse>&, MatrixPastix<double>&,
bool);
49 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , General, ArrayRowSparse>&, MatrixPastix<complex<double> >&,
bool);
51 SELDON_EXTERN
template void SolveLU(MatrixPastix<double>&, Vector<double>&);
52 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixPastix<double>&, Vector<double>&);
53 SELDON_EXTERN
template void SolveLU(MatrixPastix<double>&, Matrix<double, General, ColMajor>&);
55 SELDON_EXTERN
template void SolveLU(MatrixPastix<double>&, Vector<complex<double> >&);
56 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixPastix<double>&, Vector<complex<double> >&);
58 SELDON_EXTERN
template void SolveLU(MatrixPastix<complex<double> >&, Vector<double>&);
59 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixPastix<complex<double> >&, Vector<double>&);
61 SELDON_EXTERN
template void SolveLU(MatrixPastix<complex<double> >&, Vector<complex<double> >&);
62 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixPastix<complex<double> >&, Vector<complex<double> >&);
63 SELDON_EXTERN
template void SolveLU(MatrixPastix<complex<double> >&, Matrix<complex<double> , General, ColMajor>&);
64 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixPastix<complex<double> >&, Matrix<complex<double> , General, ColMajor>&);
67 SELDON_EXTERN
template void GetCholesky(Matrix<double, Symmetric, ArrayRowSymSparse>&, MatrixPastix<double>&,
bool);
68 SELDON_EXTERN
template void GetCholesky(Matrix<double, Symmetric, RowSymSparse>&, MatrixPastix<double>&,
bool);
70 SELDON_EXTERN
template void SolveCholesky(
const SeldonTranspose&, MatrixPastix<double>&, Vector<double>&);
71 SELDON_EXTERN
template void MltCholesky(
const SeldonTranspose&, MatrixPastix<double>&, Vector<double>&);
74 #ifdef SELDON_WITH_MPI
80 Matrix<double, General, ColMajor>&,
const Vector<int>&);
82 SELDON_EXTERN
template void MatrixPastix<complex<double> >
83 ::SolveDistributed(MPI_Comm&,
const SeldonTranspose&, Vector<complex<double> >&,
const IVect&);
85 SELDON_EXTERN
template void MatrixPastix<complex<double> >
86 ::SolveDistributed(MPI_Comm&,
const SeldonTranspose&,
87 Matrix<complex<double>, General, ColMajor>&,
const Vector<int>&);
90 ::MltDistributed(MPI_Comm&,
const SeldonTranspose&, Vector<double >&,
const IVect&);
94 Matrix<double, General, ColMajor>&,
const Vector<int>&);
96 SELDON_EXTERN
template void MatrixPastix<complex<double> >
97 ::MltDistributed(MPI_Comm&,
const SeldonTranspose&, Vector<complex<double> >&,
const IVect&);
99 SELDON_EXTERN
template void MatrixPastix<complex<double> >
100 ::MltDistributed(MPI_Comm&,
const SeldonTranspose&,
101 Matrix<complex<double>, General, ColMajor>&,
const Vector<int>&);