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