1 #include "../../include/common/monolish_logger.hpp"
2 #include "../../include/common/monolish_matrix.hpp"
3 #include "../../include/common/monolish_vector.hpp"
4 #include "../../include/monolish_blas.hpp"
5 #include "../internal/monolish_internal.hpp"
30 const size_t M,
const size_t N,
42 const size_t M,
const size_t N,
45 const size_t M,
const size_t N,
50 const size_t M,
const size_t N,
64 const size_t M,
const size_t N,
65 const std::function<vector<double>(
const vector<double> &)> &MATVEC,
66 const std::function<vector<double>(
const vector<double> &)> &RMATVEC);
68 const size_t M,
const size_t N,
69 const std::function<vector<float>(
const vector<float> &)> &MATVEC,
70 const std::function<vector<float>(
const vector<float> &)> &RMATVEC);
74 const size_t M,
const size_t N,
75 const std::function<Dense<T>(
const Dense<T> &)> &MATMUL) {
81 matmul_dense = MATMUL;
86 const size_t M,
const size_t N,
87 const std::function<Dense<double>(
const Dense<double> &)> &MATMUL);
89 const size_t M,
const size_t N,
90 const std::function<Dense<float>(
const Dense<float> &)> &MATMUL);
94 const size_t M,
const size_t N,
95 const std::function<Dense<T>(
const Dense<T> &)> &MATMUL,
96 const std::function<Dense<T>(
const Dense<T> &)> &RMATMUL) {
102 matmul_dense = MATMUL;
103 rmatmul_dense = RMATMUL;
108 const size_t M,
const size_t N,
109 const std::function<Dense<double>(
const Dense<double> &)> &MATMUL,
110 const std::function<Dense<double>(
const Dense<double> &)> &RMATMUL);
112 const size_t M,
const size_t N,
113 const std::function<Dense<float>(
const Dense<float> &)> &MATMUL,
114 const std::function<Dense<float>(
const Dense<float> &)> &RMATMUL);
117 template <
typename T>
122 rowN = linearoperator.get_row();
123 colN = linearoperator.get_col();
125 gpu_status = linearoperator.get_device_mem_stat();
127 matvec = linearoperator.get_matvec();
128 rmatvec = linearoperator.get_rmatvec();
132 const LinearOperator<double> &linearoperator);
134 const LinearOperator<float> &linearoperator);
136 template <
typename T>
147 template <
typename T>
158 template <
typename T>
161 matmul_dense = MATMUL;
169 template <
typename T>
172 rmatmul_dense = RMATMUL;