monolish
0.17.3-dev.16
MONOlithic LInear equation Solvers for Highly-parallel architecture
|
Linear Operator imitating Matrix. More...
#include <monolish_linearoperator.hpp>
Public Member Functions | |
void | convert (COO< Float > &coo) |
Convert LinearOperator from COO. More... | |
void | convert (CRS< Float > &crs) |
void | convert (Dense< Float > &dense) |
void | convert_to_Dense (Dense< Float > &dense) const |
void | device_free () const |
free data on GPU More... | |
void | diag (vector< Float > &vec) const |
get diag. vector More... | |
void | diag (view1D< matrix::Dense< Float >, Float > &vec) const |
void | diag (view1D< tensor::tensor_Dense< Float >, Float > &vec) const |
void | diag (view1D< vector< Float >, Float > &vec) const |
size_t | get_col () const |
get # of col More... | |
bool | get_device_mem_stat () const |
true: sended, false: not send More... | |
std::function< matrix::Dense< Float >const matrix::Dense< Float > &)> | get_matmul_dense () const |
get multiplication function of matrix and matrix dense More... | |
bool | get_matmul_dense_init_flag () const |
get flag that shows matmul_dense is defined or not More... | |
std::function< vector< Float >const vector< Float > &)> | get_matvec () const |
get multiplication function of matrix and vector More... | |
bool | get_matvec_init_flag () const |
get flag that shows matvec is defined or not More... | |
std::function< matrix::Dense< Float >const matrix::Dense< Float > &)> | get_rmatmul_dense () const |
get multiplication function of (Hermitian) transposed matrix and matrix dense; More... | |
bool | get_rmatmul_dense_init_flag () const |
get flag that shows rmatmul_dense is defined or not More... | |
std::function< vector< Float >const vector< Float > &)> | get_rmatvec () const |
get multiplication function of (Hermitian) transposed matrix and vector C = A; More... | |
bool | get_rmatvec_init_flag () const |
get flag that shows rmatvec is defined or not More... | |
size_t | get_row () const |
get # of row More... | |
LinearOperator () | |
LinearOperator (const LinearOperator< Float > &linearoperator) | |
Create LinearOperator from LinearOperator. More... | |
LinearOperator (const size_t M, const size_t N) | |
declare LinearOperator More... | |
LinearOperator (const size_t M, const size_t N, const std::function< Dense< Float >(const Dense< Float > &)> &MATMUL) | |
declare LinearOperator More... | |
LinearOperator (const size_t M, const size_t N, const std::function< Dense< Float >(const Dense< Float > &)> &MATMUL, const std::function< Dense< Float >(const Dense< Float > &)> &RMATMUL) | |
declare LinearOperator More... | |
LinearOperator (const size_t M, const size_t N, const std::function< vector< Float >(const vector< Float > &)> &MATVEC) | |
declare LinearOperator More... | |
LinearOperator (const size_t M, const size_t N, const std::function< vector< Float >(const vector< Float > &)> &MATVEC, const std::function< vector< Float >(const vector< Float > &)> &RMATVEC) | |
declare LinearOperator More... | |
LinearOperator (COO< Float > &coo) | |
Create LinearOperator from COO. More... | |
LinearOperator (CRS< Float > &crs) | |
LinearOperator (Dense< Float > &dense) | |
void | nonfree_recv () const |
recv. data to GPU (w/o free) More... | |
void | operator= (const LinearOperator< Float > &mat) |
operator copy More... | |
void | recv () const |
recv. data to GPU, and free data on GPU More... | |
void | send () const |
send data to GPU More... | |
void | set_device_mem_stat (bool status) |
void | set_matmul_dense (const std::function< matrix::Dense< Float >(const matrix::Dense< Float > &)> &MATMUL) |
set multiplication function of matrix and matrix dense More... | |
void | set_matvec (const std::function< vector< Float >(const vector< Float > &)> &MATVEC) |
set multiplication function of matrix and vector More... | |
void | set_rmatmul_dense (const std::function< matrix::Dense< Float >(const matrix::Dense< Float > &)> &RMATMUL) |
set multiplication function of (Hermitian) transposed matrix and matrix dense More... | |
void | set_rmatvec (const std::function< vector< Float >(const vector< Float > &)> &RMATVEC) |
set multiplication function of (Hermitian) transposed matrix and vector More... | |
std::string | type () const |
get format name "LinearOperator" More... | |
~LinearOperator () | |
destructor of LinearOperator, free GPU memory More... | |
Private Attributes | |
size_t | colN |
# of col More... | |
bool | gpu_status = false |
true: sended, false: not send More... | |
std::function< Dense< Float >const Dense< Float > &)> | matmul_dense = nullptr |
pseudo multiplication function of matrix and dense matrix More... | |
std::function< vector< Float >const vector< Float > &)> | matvec = nullptr |
pseudo multiplication function of matrix and vector More... | |
std::function< Dense< Float >const Dense< Float > &)> | rmatmul_dense = nullptr |
pseudo multiplication function of (Hermitian) transposed matrix and dense matrix More... | |
std::function< vector< Float >const vector< Float > &)> | rmatvec = nullptr |
pseudo multiplication function of (Hermitian) transposed matrix and vector More... | |
size_t | rowN |
# of row More... | |
Linear Operator imitating Matrix.
Definition at line 35 of file monolish_linearoperator.hpp.
|
inline |
Definition at line 75 of file monolish_linearoperator.hpp.
monolish::matrix::LinearOperator< Float >::LinearOperator | ( | const size_t | M, |
const size_t | N | ||
) |
declare LinearOperator
M | # of row |
N | # of col |
monolish::matrix::LinearOperator< Float >::LinearOperator | ( | const size_t | M, |
const size_t | N, | ||
const std::function< vector< Float >(const vector< Float > &)> & | MATVEC | ||
) |
declare LinearOperator
M | # of row |
N | # of col |
MATVEC | multiplication function of matrix and vector |
monolish::matrix::LinearOperator< Float >::LinearOperator | ( | const size_t | M, |
const size_t | N, | ||
const std::function< vector< Float >(const vector< Float > &)> & | MATVEC, | ||
const std::function< vector< Float >(const vector< Float > &)> & | RMATVEC | ||
) |
declare LinearOperator
M | # of row |
N | # of col |
MATVEC | multiplication function of matrix and vector |
RMATVEC | multiplication function of (Hermitian) transposed matrix and vector |
monolish::matrix::LinearOperator< Float >::LinearOperator | ( | const size_t | M, |
const size_t | N, | ||
const std::function< Dense< Float >(const Dense< Float > &)> & | MATMUL | ||
) |
declare LinearOperator
M | # of row |
N | # of col |
MATMUL | multiplication function of matrix and matrix |
monolish::matrix::LinearOperator< Float >::LinearOperator | ( | const size_t | M, |
const size_t | N, | ||
const std::function< Dense< Float >(const Dense< Float > &)> & | MATMUL, | ||
const std::function< Dense< Float >(const Dense< Float > &)> & | RMATMUL | ||
) |
declare LinearOperator
M | # of row |
N | # of col |
MATMUL | multiplication function of matrix and matrix |
RMATMUL | multiplication function of (Hermitian) transposed matrix and matrix |
|
inline |
Create LinearOperator from COO.
coo | Source COO format matrix |
Definition at line 167 of file monolish_linearoperator.hpp.
|
inline |
Definition at line 171 of file monolish_linearoperator.hpp.
|
inline |
Definition at line 175 of file monolish_linearoperator.hpp.
monolish::matrix::LinearOperator< Float >::LinearOperator | ( | const LinearOperator< Float > & | linearoperator | ) |
Create LinearOperator from LinearOperator.
linearoperator | format LinearOperator |
|
inline |
destructor of LinearOperator, free GPU memory
Definition at line 405 of file monolish_linearoperator.hpp.
void monolish::matrix::LinearOperator< Float >::convert | ( | COO< Float > & | coo | ) |
Convert LinearOperator from COO.
coo | COO format matrix |
void monolish::matrix::LinearOperator< Float >::convert | ( | CRS< Float > & | crs | ) |
void monolish::matrix::LinearOperator< Float >::convert | ( | Dense< Float > & | dense | ) |
void monolish::matrix::LinearOperator< Float >::convert_to_Dense | ( | Dense< Float > & | dense | ) | const |
|
inline |
free data on GPU
Definition at line 386 of file monolish_linearoperator.hpp.
void monolish::matrix::LinearOperator< Float >::diag | ( | vector< Float > & | vec | ) | const |
get diag. vector
vec | diag. vector |
void monolish::matrix::LinearOperator< Float >::diag | ( | view1D< matrix::Dense< Float >, Float > & | vec | ) | const |
void monolish::matrix::LinearOperator< Float >::diag | ( | view1D< tensor::tensor_Dense< Float >, Float > & | vec | ) | const |
void monolish::matrix::LinearOperator< Float >::diag | ( | view1D< vector< Float >, Float > & | vec | ) | const |
|
inline |
get # of col
Definition at line 205 of file monolish_linearoperator.hpp.
|
inline |
true: sended, false: not send
Definition at line 392 of file monolish_linearoperator.hpp.
|
inline |
get multiplication function of matrix and matrix dense
Definition at line 241 of file monolish_linearoperator.hpp.
|
inline |
get flag that shows matmul_dense is defined or not
Definition at line 288 of file monolish_linearoperator.hpp.
|
inline |
get multiplication function of matrix and vector
Definition at line 215 of file monolish_linearoperator.hpp.
|
inline |
get flag that shows matvec is defined or not
Definition at line 266 of file monolish_linearoperator.hpp.
|
inline |
get multiplication function of (Hermitian) transposed matrix and matrix dense;
Definition at line 255 of file monolish_linearoperator.hpp.
|
inline |
get flag that shows rmatmul_dense is defined or not
Definition at line 299 of file monolish_linearoperator.hpp.
|
inline |
get multiplication function of (Hermitian) transposed matrix and vector C = A;
Definition at line 228 of file monolish_linearoperator.hpp.
|
inline |
get flag that shows rmatvec is defined or not
Definition at line 277 of file monolish_linearoperator.hpp.
|
inline |
get # of row
Definition at line 196 of file monolish_linearoperator.hpp.
|
inline |
recv. data to GPU (w/o free)
Definition at line 378 of file monolish_linearoperator.hpp.
void monolish::matrix::LinearOperator< Float >::operator= | ( | const LinearOperator< Float > & | mat | ) |
operator copy
|
inline |
recv. data to GPU, and free data on GPU
Definition at line 370 of file monolish_linearoperator.hpp.
|
inline |
send data to GPU
Definition at line 362 of file monolish_linearoperator.hpp.
|
inline |
Definition at line 394 of file monolish_linearoperator.hpp.
void monolish::matrix::LinearOperator< Float >::set_matmul_dense | ( | const std::function< matrix::Dense< Float >(const matrix::Dense< Float > &)> & | MATMUL | ) |
set multiplication function of matrix and matrix dense
void monolish::matrix::LinearOperator< Float >::set_matvec | ( | const std::function< vector< Float >(const vector< Float > &)> & | MATVEC | ) |
set multiplication function of matrix and vector
void monolish::matrix::LinearOperator< Float >::set_rmatmul_dense | ( | const std::function< matrix::Dense< Float >(const matrix::Dense< Float > &)> & | RMATMUL | ) |
set multiplication function of (Hermitian) transposed matrix and matrix dense
void monolish::matrix::LinearOperator< Float >::set_rmatvec | ( | const std::function< vector< Float >(const vector< Float > &)> & | RMATVEC | ) |
set multiplication function of (Hermitian) transposed matrix and vector
|
inline |
get format name "LinearOperator"
Definition at line 354 of file monolish_linearoperator.hpp.
|
private |
# of col
Definition at line 45 of file monolish_linearoperator.hpp.
|
mutableprivate |
true: sended, false: not send
Definition at line 50 of file monolish_linearoperator.hpp.
|
private |
pseudo multiplication function of matrix and dense matrix
Definition at line 66 of file monolish_linearoperator.hpp.
|
private |
pseudo multiplication function of matrix and vector
Definition at line 55 of file monolish_linearoperator.hpp.
|
private |
pseudo multiplication function of (Hermitian) transposed matrix and dense matrix
Definition at line 72 of file monolish_linearoperator.hpp.
|
private |
pseudo multiplication function of (Hermitian) transposed matrix and vector
Definition at line 61 of file monolish_linearoperator.hpp.
|
private |
# of row
Definition at line 40 of file monolish_linearoperator.hpp.