monolish  0.14.2
MONOlithic LIner equation Solvers for Highly-parallel architecture
Public Member Functions | Public Attributes | Private Attributes | List of all members
monolish::matrix::Dense< Float > Class Template Reference

Dense format Matrix. More...

#include <monolish_coo.hpp>

Collaboration diagram for monolish::matrix::Dense< Float >:
Collaboration graph

Public Member Functions

Float at (const size_t i, const size_t j)
 get element A[i][j] (only CPU) More...
 
Float at (const size_t i, const size_t j) const
 get element A[i][j] More...
 
void col (const size_t c, vector< Float > &vec) const
 get column vector More...
 
void col (const size_t c, view1D< matrix::Dense< Float >, Float > &vec) const
 
void col (const size_t c, view1D< vector< Float >, Float > &vec) const
 
void convert (const COO< Float > &coo)
 Create Dense matrix from COO matrix. More...
 
void convert (const Dense< Float > &dense)
 Create Dense matrix from Dense matrix. More...
 
 Dense ()
 
 Dense (const COO< Float > &coo)
 Create dense matrix from COO matrix. More...
 
 Dense (const Dense< Float > &dense)
 Create Dense matrix from Dense matrix. More...
 
 Dense (const size_t M, const size_t N)
 Allocate dense matrix. More...
 
 Dense (const size_t M, const size_t N, const Float *value)
 Create dense matrix from array. More...
 
 Dense (const size_t M, const size_t N, const Float min, const Float max)
 Create random dense matrix from dense matrix. More...
 
 Dense (const size_t M, const size_t N, const Float value)
 Create construct dense matrix. More...
 
 Dense (const size_t M, const size_t N, const std::initializer_list< Float > &list)
 Create dense matrix from std::initializer_list. More...
 
 Dense (const size_t M, const size_t N, const std::vector< Float > &value)
 Create dense matrix from std::vector. More...
 
 Dense (const size_t M, const size_t N, const vector< Float > &value)
 Create dense matrix from monolish::vector. More...
 
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
 
void diag_add (const Float alpha)
 Scalar and diag. vector of dense matrix add. More...
 
void diag_add (const vector< Float > &vec)
 Vector and diag. vector of dense matrix add. More...
 
void diag_add (const view1D< matrix::Dense< Float >, Float > &vec)
 
void diag_add (const view1D< vector< Float >, Float > &vec)
 
void diag_div (const Float alpha)
 Scalar and diag. vector of dense matrix div. More...
 
void diag_div (const vector< Float > &vec)
 Vector and diag. vector of dense matrix div. More...
 
void diag_div (const view1D< matrix::Dense< Float >, Float > &vec)
 
void diag_div (const view1D< vector< Float >, Float > &vec)
 
void diag_mul (const Float alpha)
 Scalar and diag. vector of dense matrix mul. More...
 
void diag_mul (const vector< Float > &vec)
 Vector and diag. vector of dense matrix mul. More...
 
void diag_mul (const view1D< matrix::Dense< Float >, Float > &vec)
 
void diag_mul (const view1D< vector< Float >, Float > &vec)
 
void diag_sub (const Float alpha)
 Scalar and diag. vector of dense matrix sub. More...
 
void diag_sub (const vector< Float > &vec)
 Vector and diag. vector of dense matrix sub. More...
 
void diag_sub (const view1D< matrix::Dense< Float >, Float > &vec)
 
void diag_sub (const view1D< vector< Float >, Float > &vec)
 
bool equal (const Dense< Float > &mat, bool compare_cpu_and_device=false) const
 Comparing matricies (A == mat) More...
 
void fill (Float value)
 fill matrix elements with a scalar value More...
 
size_t get_col () const
 get # of col More...
 
double get_data_size () const
 Memory data space required by the matrix. More...
 
bool get_device_mem_stat () const
 true: sended, false: not send More...
 
size_t get_nnz () const
 get # of non-zeros More...
 
size_t get_row () const
 get # of row More...
 
void insert (const size_t i, const size_t j, const Float Val)
 get element A[i][j] More...
 
void nonfree_recv ()
 recv. data to GPU (w/o free) More...
 
bool operator!= (const Dense< Float > &mat) const
 Comparing matricies (A != mat) More...
 
void operator= (const Dense< Float > &mat)
 matrix copy More...
 
bool operator== (const Dense< Float > &mat) const
 Comparing matricies (A == mat) More...
 
Float * operator[] (size_t m)
 reference to the pointer of the begining of the m-th row More...
 
void print_all (bool force_cpu=false) const
 print all elements to standard I/O More...
 
void recv ()
 recv. data to GPU, and free data on GPU More...
 
void row (const size_t r, vector< Float > &vec) const
 get row vector More...
 
void row (const size_t r, view1D< matrix::Dense< Float >, Float > &vec) const
 
void row (const size_t r, view1D< vector< Float >, Float > &vec) const
 
void send () const
 send data to GPU More...
 
void set_col (const size_t M)
 Set column number. More...
 
void set_nnz (const size_t NZ)
 Set # of non-zero elements. More...
 
void set_ptr (const size_t M, const size_t N, const std::vector< Float > &value)
 Set Dense array from std::vector. More...
 
void set_row (const size_t N)
 Set row number. More...
 
Densetranspose ()
 get transposed matrix (A^T) More...
 
void transpose (const Dense &B)
 create transposed matrix from COO matrix (A = B^T) More...
 
std::string type () const
 get format name "Dense" More...
 
 ~Dense ()
 destructor of CRS matrix, free GPU memory More...
 

Public Attributes

std::vector< Float > val
 Dense format value(size M x N) More...
 

Private Attributes

size_t colN
 # of col More...
 
bool gpu_status = false
 true: sended, false: not send More...
 
size_t nnz
 # of non-zero element (M * N) More...
 
size_t rowN
 # of row More...
 

Detailed Description

template<typename Float>
class monolish::matrix::Dense< Float >

Dense format Matrix.

Note
  • Multi-threading: true
  • GPU acceleration: true

Definition at line 35 of file monolish_coo.hpp.

Constructor & Destructor Documentation

◆ Dense() [1/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( )
inline

Definition at line 49 of file monolish_dense.hpp.

◆ Dense() [2/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const COO< Float > &  coo)
inline

Create dense matrix from COO matrix.

Parameters
cooinput COO matrix (size M x N)
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: false

Definition at line 79 of file monolish_dense.hpp.

Here is the call graph for this function:

◆ Dense() [3/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const Dense< Float > &  dense)

Create Dense matrix from Dense matrix.

Parameters
denseDense format matrix
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: true
    • # of data transfer: M+N (onlu allocation)
      • if dense.gpu_status == true; coping data on CPU and GPU respectively
      • else; coping data only on CPU

◆ Dense() [4/10]

template<typename T >
template monolish::matrix::Dense< Float >::Dense ( const size_t  M,
const size_t  N 
)

Allocate dense matrix.

Parameters
M# of row
N# of col
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 12 of file dense_constructor.cpp.

Here is the call graph for this function:

◆ Dense() [5/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const size_t  M,
const size_t  N,
const Float *  value 
)

Create dense matrix from array.

Parameters
M# of row
N# of col
valuevalue array
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: false

◆ Dense() [6/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const size_t  M,
const size_t  N,
const std::vector< Float > &  value 
)

Create dense matrix from std::vector.

Parameters
M# of row
N# of col
valuevalue std::vector (size M x N)
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: false

◆ Dense() [7/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const size_t  M,
const size_t  N,
const vector< Float > &  value 
)

Create dense matrix from monolish::vector.

Parameters
M# of row
N# of col
valuevalue std::vector (size M x N)
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: true

◆ Dense() [8/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const size_t  M,
const size_t  N,
const std::initializer_list< Float > &  list 
)

Create dense matrix from std::initializer_list.

Parameters
M# of row
N# of col
listvalue std::initializer_list (size M x N)
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: false

◆ Dense() [9/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const size_t  M,
const size_t  N,
const Float  min,
const Float  max 
)

Create random dense matrix from dense matrix.

Parameters
M# of row
N# of col
minrand min
maxrand max
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: false

◆ Dense() [10/10]

template<typename Float >
monolish::matrix::Dense< Float >::Dense ( const size_t  M,
const size_t  N,
const Float  value 
)

Create construct dense matrix.

Parameters
M# of row
N# of col
valuevalue
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: false

◆ ~Dense()

template<typename Float >
monolish::matrix::Dense< Float >::~Dense ( )
inline

destructor of CRS matrix, free GPU memory

Note
  • Multi-threading: false
  • GPU acceleration: true
    • # of data transfer: 0

Definition at line 388 of file monolish_dense.hpp.

Here is the call graph for this function:

Member Function Documentation

◆ at() [1/2]

template<typename Float >
Float monolish::matrix::Dense< Float >::at ( const size_t  i,
const size_t  j 
)
inline

get element A[i][j] (only CPU)

Parameters
irow
jcol
Returns
A[i][j]
Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 310 of file monolish_dense.hpp.

Here is the call graph for this function:

◆ at() [2/2]

template<typename T >
template float monolish::matrix::Dense< Float >::at ( const size_t  i,
const size_t  j 
) const

get element A[i][j]

Parameters
irow
jcol
Returns
A[i][j]
Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 9 of file at_insert_sort_dense.cpp.

Here is the caller graph for this function:

◆ col() [1/3]

template<typename Float >
void monolish::matrix::Dense< Float >::col ( const size_t  c,
vector< Float > &  vec 
) const

get column vector

Parameters
ccolumn number
veccolumn vector
Note
  • # of computation: about nnz
  • Multi-threading: true
  • GPU acceleration: true

◆ col() [2/3]

template<typename Float >
void monolish::matrix::Dense< Float >::col ( const size_t  c,
view1D< matrix::Dense< Float >, Float > &  vec 
) const

◆ col() [3/3]

template<typename Float >
void monolish::matrix::Dense< Float >::col ( const size_t  c,
view1D< vector< Float >, Float > &  vec 
) const

◆ convert() [1/2]

template<typename Float >
void monolish::matrix::Dense< Float >::convert ( const COO< Float > &  coo)

Create Dense matrix from COO matrix.

Parameters
cooinput COO matrix (size M x N)
Note
  • # of computation: M*N + nnz
  • Multi-threading: true
  • GPU acceleration: false
Here is the caller graph for this function:

◆ convert() [2/2]

template<typename Float >
void monolish::matrix::Dense< Float >::convert ( const Dense< Float > &  dense)

Create Dense matrix from Dense matrix.

Parameters
denseinput Dense matrix (size M x N)
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: false

◆ device_free()

template<typename T >
template void monolish::matrix::Dense< Float >::device_free ( ) const

free data on GPU

Note
  • Multi-threading: false
  • GPU acceleration: true
    • # of data transfer: 0

Definition at line 238 of file gpu_comm.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ diag() [1/3]

template<typename Float >
void monolish::matrix::Dense< Float >::diag ( vector< Float > &  vec) const

get diag. vector

Parameters
vecdiag. vector
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag() [2/3]

template<typename Float >
void monolish::matrix::Dense< Float >::diag ( view1D< matrix::Dense< Float >, Float > &  vec) const

◆ diag() [3/3]

template<typename Float >
void monolish::matrix::Dense< Float >::diag ( view1D< vector< Float >, Float > &  vec) const

◆ diag_add() [1/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_add ( const Float  alpha)

Scalar and diag. vector of dense matrix add.

Parameters
alphascalar
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_add() [2/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_add ( const vector< Float > &  vec)

Vector and diag. vector of dense matrix add.

Parameters
vecvector
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_add() [3/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_add ( const view1D< matrix::Dense< Float >, Float > &  vec)

◆ diag_add() [4/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_add ( const view1D< vector< Float >, Float > &  vec)

◆ diag_div() [1/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_div ( const Float  alpha)

Scalar and diag. vector of dense matrix div.

Parameters
alphascalar
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_div() [2/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_div ( const vector< Float > &  vec)

Vector and diag. vector of dense matrix div.

Parameters
vecvector
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_div() [3/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_div ( const view1D< matrix::Dense< Float >, Float > &  vec)

◆ diag_div() [4/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_div ( const view1D< vector< Float >, Float > &  vec)

◆ diag_mul() [1/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_mul ( const Float  alpha)

Scalar and diag. vector of dense matrix mul.

Parameters
alphascalar
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_mul() [2/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_mul ( const vector< Float > &  vec)

Vector and diag. vector of dense matrix mul.

Parameters
vecvector
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_mul() [3/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_mul ( const view1D< matrix::Dense< Float >, Float > &  vec)

◆ diag_mul() [4/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_mul ( const view1D< vector< Float >, Float > &  vec)

◆ diag_sub() [1/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_sub ( const Float  alpha)

Scalar and diag. vector of dense matrix sub.

Parameters
alphascalar
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_sub() [2/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_sub ( const vector< Float > &  vec)

Vector and diag. vector of dense matrix sub.

Parameters
vecvector
Note
  • # of computation: M
  • Multi-threading: true
  • GPU acceleration: true

◆ diag_sub() [3/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_sub ( const view1D< matrix::Dense< Float >, Float > &  vec)

◆ diag_sub() [4/4]

template<typename Float >
void monolish::matrix::Dense< Float >::diag_sub ( const view1D< vector< Float >, Float > &  vec)

◆ equal()

template<typename Float >
template bool monolish::matrix::Dense< Float >::equal ( const Dense< Float > &  mat,
bool  compare_cpu_and_device = false 
) const

Comparing matricies (A == mat)

Parameters
matDense matrix
compare_cpu_and_devicecompare data on both CPU and GPU
Returns
true or false
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: true

Definition at line 10 of file compare_dense.cpp.

Here is the call graph for this function:

◆ fill()

template<typename Float >
template void monolish::matrix::Dense< Float >::fill ( Float  value)

fill matrix elements with a scalar value

Parameters
valuescalar value
Note
  • # of computation: N
  • Multi-threading: true
  • GPU acceleration: true

Definition at line 9 of file fill_dense.cpp.

Here is the call graph for this function:

◆ get_col()

template<typename Float >
size_t monolish::matrix::Dense< Float >::get_col ( ) const
inline

get # of col

Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 208 of file monolish_dense.hpp.

Here is the caller graph for this function:

◆ get_data_size()

template<typename Float >
double monolish::matrix::Dense< Float >::get_data_size ( ) const
inline

Memory data space required by the matrix.

Note
  • # of computation: 3
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 284 of file monolish_dense.hpp.

Here is the call graph for this function:

◆ get_device_mem_stat()

template<typename Float >
bool monolish::matrix::Dense< Float >::get_device_mem_stat ( ) const
inline

true: sended, false: not send

Returns
gpu status

Definition at line 379 of file monolish_dense.hpp.

Here is the caller graph for this function:

◆ get_nnz()

template<typename Float >
size_t monolish::matrix::Dense< Float >::get_nnz ( ) const
inline

get # of non-zeros

Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 217 of file monolish_dense.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_row()

template<typename Float >
size_t monolish::matrix::Dense< Float >::get_row ( ) const
inline

get # of row

Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 199 of file monolish_dense.hpp.

Here is the caller graph for this function:

◆ insert()

template<typename Float >
template void monolish::matrix::Dense< Float >::insert ( const size_t  i,
const size_t  j,
const Float  Val 
)

get element A[i][j]

Parameters
irow
jcol
Valscalar value
Returns
A[i][j]
Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 25 of file at_insert_sort_dense.cpp.

◆ nonfree_recv()

template<typename T >
template void monolish::matrix::Dense< Float >::nonfree_recv ( )

recv. data to GPU (w/o free)

Note
  • Multi-threading: false
  • GPU acceleration: true
    • # of data transfer: M*N

Definition at line 222 of file gpu_comm.cpp.

Here is the call graph for this function:

◆ operator!=()

template<typename Float >
template bool monolish::matrix::Dense< Float >::operator!= ( const Dense< Float > &  mat) const

Comparing matricies (A != mat)

Parameters
matDense matrix
Returns
true or false
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: true
    • if gpu_status == true; compare data on GPU
    • else; compare data on CPU

Definition at line 55 of file compare_dense.cpp.

Here is the call graph for this function:

◆ operator=()

template<typename Float >
template void monolish::matrix::Dense< Float >::operator= ( const Dense< Float > &  mat)

matrix copy

Returns
copied dense matrix
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: true
    • # of data transfer: 0
      • if gpu_statius == true; coping data on CPU
      • else; coping data on CPU

Definition at line 10 of file copy_dense.cpp.

Here is the call graph for this function:

◆ operator==()

template<typename Float >
template bool monolish::matrix::Dense< Float >::operator== ( const Dense< Float > &  mat) const

Comparing matricies (A == mat)

Parameters
matDense matrix
Returns
true or false
Note
  • # of computation: M*N
  • Multi-threading: true
  • GPU acceleration: true
    • if gpu_status == true; compare data on GPU
    • else; compare data on CPU

Definition at line 43 of file compare_dense.cpp.

Here is the call graph for this function:

◆ operator[]()

template<typename Float >
Float* monolish::matrix::Dense< Float >::operator[] ( size_t  m)
inline

reference to the pointer of the begining of the m-th row

Parameters
mPosition of an pointer in the matrix
Returns
pointer at the begining of m-th row
Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false
Warning
This function is only available for Dense.

Definition at line 469 of file monolish_dense.hpp.

Here is the call graph for this function:

◆ print_all()

template<typename T >
template void monolish::matrix::Dense< Float >::print_all ( bool  force_cpu = false) const

print all elements to standard I/O

Parameters
force_cpuIgnore device status and output CPU data
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 17 of file IO_dense.cpp.

Here is the call graph for this function:

◆ recv()

template<typename T >
template void monolish::matrix::Dense< Float >::recv ( )

recv. data to GPU, and free data on GPU

Note
  • Multi-threading: false
  • GPU acceleration: true
    • # of data transfer: M*N

Definition at line 205 of file gpu_comm.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ row() [1/3]

template<typename Float >
void monolish::matrix::Dense< Float >::row ( const size_t  r,
vector< Float > &  vec 
) const

get row vector

Parameters
rrow number
vecrow vector
Note
  • # of computation: about nnz / M
  • Multi-threading: true
  • GPU acceleration: true

◆ row() [2/3]

template<typename Float >
void monolish::matrix::Dense< Float >::row ( const size_t  r,
view1D< matrix::Dense< Float >, Float > &  vec 
) const

◆ row() [3/3]

template<typename Float >
void monolish::matrix::Dense< Float >::row ( const size_t  r,
view1D< vector< Float >, Float > &  vec 
) const

◆ send()

template<typename T >
template void monolish::matrix::Dense< Float >::send ( ) const

send data to GPU

Note
  • Multi-threading: false
  • GPU acceleration: true
    • # of data transfer: M*N

Definition at line 186 of file gpu_comm.cpp.

Here is the call graph for this function:

◆ set_col()

template<typename Float >
void monolish::matrix::Dense< Float >::set_col ( const size_t  M)
inline

Set column number.

Parameters
N# of col
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 235 of file monolish_dense.hpp.

◆ set_nnz()

template<typename Float >
void monolish::matrix::Dense< Float >::set_nnz ( const size_t  NZ)
inline

Set # of non-zero elements.

Parameters
NNZ# of non-zero elements
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 244 of file monolish_dense.hpp.

◆ set_ptr()

template<typename Float >
template void monolish::matrix::Dense< Float >::set_ptr ( const size_t  M,
const size_t  N,
const std::vector< Float > &  value 
)

Set Dense array from std::vector.

Parameters
M# of row
N# of col
valuevalue (size nnz)
Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 32 of file copy_dense.cpp.

Here is the call graph for this function:

◆ set_row()

template<typename Float >
void monolish::matrix::Dense< Float >::set_row ( const size_t  N)
inline

Set row number.

Parameters
M# of row
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 226 of file monolish_dense.hpp.

◆ transpose() [1/2]

template<typename T >
template Dense< float > & monolish::matrix::Dense< Float >::transpose ( )

get transposed matrix (A^T)

Returns
tranposed matrix A^T
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: false
Warning
This function need to allocate tmp. matrix (size M x N)

Definition at line 9 of file transpose_dense.cpp.

Here is the call graph for this function:

◆ transpose() [2/2]

template<typename Float >
void monolish::matrix::Dense< Float >::transpose ( const Dense< Float > &  B)

create transposed matrix from COO matrix (A = B^T)

Parameters
BCOO matrix
Note
  • # of computation: M*N
  • Multi-threading: false
  • GPU acceleration: false

◆ type()

template<typename Float >
std::string monolish::matrix::Dense< Float >::type ( ) const
inline

get format name "Dense"

Note
  • # of computation: 1
  • Multi-threading: false
  • GPU acceleration: false

Definition at line 253 of file monolish_dense.hpp.

Member Data Documentation

◆ colN

template<typename Float >
size_t monolish::matrix::Dense< Float >::colN
private

# of col

Definition at line 31 of file monolish_dense.hpp.

◆ gpu_status

template<typename Float >
bool monolish::matrix::Dense< Float >::gpu_status = false
mutableprivate

true: sended, false: not send

Definition at line 41 of file monolish_dense.hpp.

◆ nnz

template<typename Float >
size_t monolish::matrix::Dense< Float >::nnz
private

# of non-zero element (M * N)

Definition at line 36 of file monolish_dense.hpp.

◆ rowN

template<typename Float >
size_t monolish::matrix::Dense< Float >::rowN
private

# of row

Definition at line 26 of file monolish_dense.hpp.

◆ val

template<typename Float >
std::vector<Float> monolish::matrix::Dense< Float >::val

Dense format value(size M x N)

Definition at line 47 of file monolish_dense.hpp.


The documentation for this class was generated from the following files: