CholeskySolver.cpp
1 #include "SeldonFlag.hxx"
2 
3 #include "SeldonSolverHeader.hxx"
4 #include "SeldonSolverInline.hxx"
5 
6 #ifndef SELDON_WITH_COMPILED_LIBRARY
7 #include "computation/solver/SparseCholeskyFactorisation.cxx"
8 #ifdef SELDON_WITH_MPI
9 #include "computation/solver/DistributedCholeskySolver.cxx"
10 #endif
11 #endif
12 
13 namespace Seldon
14 {
15  SELDON_EXTERN template void
16  GetCholesky(Matrix<Real_wp, Symmetric, ArrayRowSymSparse>&, int);
17 
18  SELDON_EXTERN template void
19  SolveCholesky(const SeldonTranspose&,
20  const Matrix<Real_wp, Symmetric, ArrayRowSymSparse>&, Vector<Real_wp>&);
21 
22  SELDON_EXTERN template void
23  SolveCholesky(const SeldonTranspose&,
24  const Matrix<Real_wp, Symmetric, RowSymSparse>&, Vector<Real_wp>&);
25 
26  SELDON_EXTERN template void
27  SolveCholesky(const SeldonTranspose&,
28  const Matrix<Real_wp, Symmetric, RowSymSparse>&, Vector<Complex_wp>&);
29 
30  SELDON_EXTERN template void
31  MltCholesky(const SeldonTranspose&,
32  const Matrix<Real_wp, Symmetric, ArrayRowSymSparse>&, Vector<Real_wp>&);
33 
34  SELDON_EXTERN template void
35  MltCholesky(const SeldonTranspose&,
36  const Matrix<Real_wp, Symmetric, RowSymSparse>&, Vector<Real_wp>&);
37 
38  SELDON_EXTERN template void MltCholesky(const SeldonTranspose&, const Matrix<Real_wp, Symmetric, RowSymSparse>&, Vector<Complex_wp>&);
39 
40  SELDON_EXTERN template class SparseCholeskySolver<Real_wp>;
41 
42  SELDON_EXTERN template void SparseCholeskySolver<Real_wp>::
43  Factorize(Matrix<Real_wp, Symmetric, ArrayRowSymSparse>&, bool);
44 
45  SELDON_EXTERN template void SparseCholeskySolver<Real_wp>::
46  Solve(const SeldonTranspose&, Vector<Real_wp>&, bool);
47 
48  SELDON_EXTERN template void SparseCholeskySolver<Real_wp>::
49  Mlt(const SeldonTranspose&, Vector<Real_wp>&, bool);
50 
51 #ifdef SELDON_WITH_MPI
52  SELDON_EXTERN template class DistributedCholeskySolver<Real_wp>;
53 
54  SELDON_EXTERN template void DistributedCholeskySolver<Real_wp>::
55  Factorize(Matrix<Real_wp, Symmetric, ArrayRowSymSparse>&, bool);
56 
57  SELDON_EXTERN template void DistributedCholeskySolver<Real_wp>::
58  Factorize(DistributedMatrix<Real_wp, Symmetric, ArrayRowSymSparse>&, bool);
59 
60  SELDON_EXTERN template void DistributedCholeskySolver<Real_wp>::
61  Solve(const SeldonTranspose&, Vector<Real_wp>&, bool);
62 
63  SELDON_EXTERN template void DistributedCholeskySolver<Real_wp>::
64  Mlt(const SeldonTranspose&, Vector<Real_wp>&, bool);
65 
66 #endif
67 
68 }
69 
70 
71 
Seldon::SparseCholeskySolver::Solve
void Solve(const SeldonTranspose &TransA, Vector< T1 > &x, bool assemble=true)
Solves L x = b or L^T x = b.
Definition: SparseCholeskyFactorisation.cxx:667
Seldon::SparseCholeskySolver::Mlt
void Mlt(const SeldonTranspose &TransA, Vector< T1 > &x, bool assemble=true)
Computes L x or L^T.
Definition: SparseCholeskyFactorisation.cxx:718
Seldon
Seldon namespace.
Definition: Array.cxx:24
Seldon::SparseCholeskySolver::Factorize
void Factorize(Matrix< T, Prop, Storage, Allocator > &A, bool keep_matrix=false)
Performs Cholesky factorization.
Definition: SparseCholeskyFactorisation.cxx:616