|
monolish
0.16.1
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< 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< 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.