1 #include "SeldonFlag.hxx"
3 #include "SeldonSolverHeader.hxx"
4 #include "SeldonSolverInline.hxx"
6 #ifndef SELDON_WITH_COMPILED_LIBRARY
7 #include "computation/interfaces/direct/SuperLU.cxx"
12 SELDON_EXTERN
template class MatrixSuperLU<double>;
13 SELDON_EXTERN
template class MatrixSuperLU<complex<double> >;
15 SELDON_EXTERN
template class MatrixSuperLU_Base<double>;
16 SELDON_EXTERN
template class MatrixSuperLU_Base<complex<double> >;
19 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, RowSymSparse>&,
bool);
21 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >::FactorizeMatrix(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&,
bool);
23 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, RowSparse>&,
bool);
25 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >::FactorizeMatrix(Matrix<complex<double> , General, ArrayRowSparse>&,
bool);
31 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >::Solve(Vector<complex<double> >&);
32 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >::Solve(
const SeldonTranspose&, Vector<complex<double> >&);
33 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >::Solve(
const SeldonTranspose&, Matrix<complex<double> , General, ColMajor>&);
35 SELDON_EXTERN
template void GetLU(Matrix<double, Symmetric, RowSymSparse>&, MatrixSuperLU<double>&,
bool);
36 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , Symmetric, RowSymSparse>&, MatrixSuperLU<complex<double> >&,
bool);
37 SELDON_EXTERN
template void GetLU(Matrix<double, Symmetric, ArrayRowSymSparse>&, MatrixSuperLU<double>&,
bool);
38 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , Symmetric, ArrayRowSymSparse>&, MatrixSuperLU<complex<double> >&,
bool);
40 SELDON_EXTERN
template void GetLU(Matrix<double, General, RowSparse>&, MatrixSuperLU<double>&,
bool);
41 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , General, RowSparse>&, MatrixSuperLU<complex<double> >&,
bool);
42 SELDON_EXTERN
template void GetLU(Matrix<double, General, ArrayRowSparse>&, MatrixSuperLU<double>&,
bool);
43 SELDON_EXTERN
template void GetLU(Matrix<complex<double> , General, ArrayRowSparse>&, MatrixSuperLU<complex<double> >&,
bool);
45 SELDON_EXTERN
template void SolveLU(MatrixSuperLU<double>&, Vector<double>&);
46 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixSuperLU<double>&, Vector<double>&);
47 SELDON_EXTERN
template void SolveLU(MatrixSuperLU<double>&, Matrix<double, General, ColMajor>&);
49 SELDON_EXTERN
template void SolveLU(MatrixSuperLU<double>&, Vector<complex<double> >&);
50 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixSuperLU<double>&, Vector<complex<double> >&);
52 SELDON_EXTERN
template void SolveLU(MatrixSuperLU<complex<double> >&, Vector<double>&);
53 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixSuperLU<complex<double> >&, Vector<double>&);
55 SELDON_EXTERN
template void SolveLU(MatrixSuperLU<complex<double> >&, Vector<complex<double> >&);
56 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixSuperLU<complex<double> >&, Vector<complex<double> >&);
57 SELDON_EXTERN
template void SolveLU(MatrixSuperLU<complex<double> >&, Matrix<complex<double> , General, ColMajor>&);
58 SELDON_EXTERN
template void SolveLU(
const SeldonTranspose&, MatrixSuperLU<complex<double> >&, Matrix<complex<double> , General, ColMajor>&);
61 #ifdef SELDON_WITH_SUPERLU_DIST
62 SELDON_EXTERN
template void MatrixSuperLU<double >
63 ::SolveDistributed(MPI_Comm&,
const SeldonTranspose&, Vector<double >&,
const IVect&);
65 SELDON_EXTERN
template void MatrixSuperLU<double >
66 ::SolveDistributed(MPI_Comm&,
const SeldonTranspose&, Matrix<double, General, ColMajor>&,
const IVect&);
68 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >
69 ::SolveDistributed(MPI_Comm&,
const SeldonTranspose&, Vector<complex<double> >&,
const IVect&);
71 SELDON_EXTERN
template void MatrixSuperLU<complex<double> >
72 ::SolveDistributed(MPI_Comm&,
const SeldonTranspose&, Matrix<complex<double>, General, ColMajor>&,
const IVect&);