monolish  0.14.2
MONOlithic LIner equation Solvers for Highly-parallel architecture
precond.cpp
Go to the documentation of this file.
1 #include "../../include/monolish_blas.hpp"
2 #include "../../include/monolish_equation.hpp"
3 #include "../internal/monolish_internal.hpp"
4 
5 namespace monolish {
7 // solver set precond /////////////////////////////////
9 template <typename MATRIX, typename T>
10 template <class PRECOND>
12  Logger &logger = Logger::get_instance();
13  logger.util_in(monolish_func);
14  precond.create_precond =
15  std::bind(&PRECOND::create_precond, &p, std::placeholders::_1);
16  logger.util_out();
17 }
18 
19 // none
20 template void solver::solver<matrix::Dense<double>, double>::set_create_precond(
22 template void solver::solver<matrix::Dense<float>, float>::set_create_precond(
24 
25 template void solver::solver<matrix::CRS<double>, double>::set_create_precond(
27 template void solver::solver<matrix::CRS<float>, float>::set_create_precond(
29 
30 template void
31 solver::solver<matrix::LinearOperator<double>, double>::set_create_precond(
33 template void
34 solver::solver<matrix::LinearOperator<float>, float>::set_create_precond(
36 
37 // jacobi
38 template void solver::solver<matrix::Dense<double>, double>::set_create_precond(
40 template void solver::solver<matrix::Dense<float>, float>::set_create_precond(
42 
43 template void solver::solver<matrix::CRS<double>, double>::set_create_precond(
45 template void solver::solver<matrix::CRS<float>, float>::set_create_precond(
47 
48 template void
49 solver::solver<matrix::LinearOperator<double>, double>::set_create_precond(
51 template void
52 solver::solver<matrix::LinearOperator<float>, float>::set_create_precond(
54 
56 template <typename MATRIX, typename T>
57 template <class PRECOND>
59  Logger &logger = Logger::get_instance();
60  logger.util_in(monolish_func);
61  precond.apply_precond =
62  std::bind(&PRECOND::apply_precond, &p, std::placeholders::_1,
63  std::placeholders::_2);
64  logger.util_out();
65 }
66 // none
67 template void solver::solver<matrix::Dense<double>, double>::set_apply_precond(
69 template void solver::solver<matrix::Dense<float>, float>::set_apply_precond(
71 
72 template void solver::solver<matrix::CRS<double>, double>::set_apply_precond(
74 template void solver::solver<matrix::CRS<float>, float>::set_apply_precond(
76 
77 template void
78 solver::solver<matrix::LinearOperator<double>, double>::set_apply_precond(
80 template void
81 solver::solver<matrix::LinearOperator<float>, float>::set_apply_precond(
83 
84 // jacobi
85 template void solver::solver<matrix::Dense<double>, double>::set_apply_precond(
87 template void solver::solver<matrix::Dense<float>, float>::set_apply_precond(
89 
90 template void solver::solver<matrix::CRS<double>, double>::set_apply_precond(
92 template void solver::solver<matrix::CRS<float>, float>::set_apply_precond(
94 
95 template void
96 solver::solver<matrix::LinearOperator<double>, double>::set_apply_precond(
98 template void
99 solver::solver<matrix::LinearOperator<float>, float>::set_apply_precond(
101 } // namespace monolish
monolish::matrix::LinearOperator
Linear Operator imitating Matrix.
Definition: monolish_coo.hpp:37
monolish_func
#define monolish_func
Definition: monolish_logger.hpp:9
monolish::solver::solver::set_apply_precond
void set_apply_precond(PRECOND &p)
set precondition apply fucntion
Definition: precond.cpp:58
monolish::Logger
logger class (singleton, for developper class)
Definition: monolish_logger.hpp:19
monolish::matrix::Dense
Dense format Matrix.
Definition: monolish_coo.hpp:35
monolish::Logger::util_out
void util_out()
Definition: logger_utils.cpp:123
monolish::solver::solver
solver base class
Definition: monolish_solver.hpp:27
monolish::Logger::util_in
void util_in(const std::string func_name)
Definition: logger_utils.cpp:113
monolish
Definition: monolish_matrix_blas.hpp:10
monolish::solver::solver::set_create_precond
void set_create_precond(PRECOND &p)
set precondition create fucntion
Definition: precond.cpp:11
monolish::equation::none
none solver class(nothing to do)
Definition: monolish_equation.hpp:31
monolish::equation::Jacobi
Jacobi solver class.
Definition: monolish_equation.hpp:159
monolish::Logger::get_instance
static Logger & get_instance()
Definition: monolish_logger.hpp:42
monolish::matrix::CRS
Compressed Row Storage (CRS) format Matrix.
Definition: monolish_coo.hpp:36