COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
CarmaSparseObj< T_data > Class Template Reference

this class provides wrappers to the generic carma sparse object More...

#include <carma_sparse_obj.h>

Inheritance diagram for CarmaSparseObj< T_data >:
Collaboration diagram for CarmaSparseObj< T_data >:

Public Member Functions

 CarmaSparseObj (CarmaContext *current_context)
 
 CarmaSparseObj (CarmaObj< T_data > *M)
 
 CarmaSparseObj (CarmaSparseObj< T_data > *M)
 
 CarmaSparseObj (CarmaContext *current_context, CarmaSparseHostObj< T_data > *M)
 
 CarmaSparseObj (CarmaContext *current_context, const long *dims, T_data *M, bool load_from_host)
 
 CarmaSparseObj (CarmaContext *current_context, const long *dims, T_data *values, int *colind, int *rowind, int nz, bool load_from_host)
 
virtual ~CarmaSparseObj ()
 
void operator= (CarmaSparseObj< T_data > &M)
 
void operator= (CarmaSparseHostObj< T_data > &M)
 
void resize (int nnz_, int dim1_, int dim2_)
 
bool is_column_major ()
 
char get_major_dim () const
 
void set_majorDim (char c)
 
 operator T_data * ()
 
T_data * operator[] (int index)
 
T_data * get_data ()
 
T_data * get_data (int index)
 
const long * get_dims ()
 
long get_dims (int i)
 
int get_nonzero_elem ()
 
CarmaContextget_context ()
 
int get_device ()
 
void sparse_to_host (int *h_rowInd, int *h_colInd, T_data *h_data)
 
void allocate (int nnz, int dim1, int dim2)
 

Public Attributes

long dims_data [3]
 dimensions of the array More...
 
int nz_elem
 number of elements in the array More...
 
int device
 device where the CarmaObj is allocate More...
 
CarmaContextcurrent_context
 
T_data * d_data
 
int * d_rowind
 
int * d_colind
 
cusparseMatDescr_t descr
 
char major_dim
 
std::string format
 
int block_dim
 
union {
   magma_d_sparse_matrix   d_sparse_mat
 
   magma_s_sparse_matrix   s_sparse_mat
 
}; 
 

Detailed Description

template<class T_data>
class CarmaSparseObj< T_data >

this class provides wrappers to the generic carma sparse object

Author
COMPASS Team https://github.com/ANR-COMPASS
Version
5.4.4
Date
2022/01/24

Definition at line 34 of file carma_sparse_obj.h.

Constructor & Destructor Documentation

◆ CarmaSparseObj() [1/6]

template<class T_data >
CarmaSparseObj< T_data >::CarmaSparseObj ( CarmaContext current_context)

◆ CarmaSparseObj() [2/6]

template<class T_data >
CarmaSparseObj< T_data >::CarmaSparseObj ( CarmaObj< T_data > *  M)

◆ CarmaSparseObj() [3/6]

template<class T_data >
CarmaSparseObj< T_data >::CarmaSparseObj ( CarmaSparseObj< T_data > *  M)

◆ CarmaSparseObj() [4/6]

template<class T_data >
CarmaSparseObj< T_data >::CarmaSparseObj ( CarmaContext current_context,
CarmaSparseHostObj< T_data > *  M 
)

◆ CarmaSparseObj() [5/6]

template<class T_data >
CarmaSparseObj< T_data >::CarmaSparseObj ( CarmaContext current_context,
const long *  dims,
T_data *  M,
bool  load_from_host 
)

◆ CarmaSparseObj() [6/6]

template<class T_data >
CarmaSparseObj< T_data >::CarmaSparseObj ( CarmaContext current_context,
const long *  dims,
T_data *  values,
int *  colind,
int *  rowind,
int  nz,
bool  load_from_host 
)

◆ ~CarmaSparseObj()

template<class T_data >
virtual CarmaSparseObj< T_data >::~CarmaSparseObj ( )
virtual

Member Function Documentation

◆ allocate()

template<class T_data >
void CarmaSparseObj< T_data >::allocate ( int  nnz,
int  dim1,
int  dim2 
)

◆ get_context()

template<class T_data >
CarmaContext* CarmaSparseObj< T_data >::get_context ( )

Definition at line 91 of file carma_sparse_obj.h.

◆ get_data() [1/2]

template<class T_data >
T_data* CarmaSparseObj< T_data >::get_data ( )

Definition at line 86 of file carma_sparse_obj.h.

◆ get_data() [2/2]

template<class T_data >
T_data* CarmaSparseObj< T_data >::get_data ( int  index)

Definition at line 87 of file carma_sparse_obj.h.

◆ get_device()

template<class T_data >
int CarmaSparseObj< T_data >::get_device ( )

Definition at line 93 of file carma_sparse_obj.h.

◆ get_dims() [1/2]

template<class T_data >
const long* CarmaSparseObj< T_data >::get_dims ( )

Definition at line 88 of file carma_sparse_obj.h.

◆ get_dims() [2/2]

template<class T_data >
long CarmaSparseObj< T_data >::get_dims ( int  i)

Definition at line 89 of file carma_sparse_obj.h.

◆ get_major_dim()

template<class T_data >
char CarmaSparseObj< T_data >::get_major_dim ( ) const

Definition at line 80 of file carma_sparse_obj.h.

◆ get_nonzero_elem()

template<class T_data >
int CarmaSparseObj< T_data >::get_nonzero_elem ( )

Definition at line 90 of file carma_sparse_obj.h.

◆ is_column_major()

template<class T_data >
bool CarmaSparseObj< T_data >::is_column_major ( )

◆ operator T_data *()

template<class T_data >
CarmaSparseObj< T_data >::operator T_data * ( )

Definition at line 84 of file carma_sparse_obj.h.

◆ operator=() [1/2]

template<class T_data >
void CarmaSparseObj< T_data >::operator= ( CarmaSparseHostObj< T_data > &  M)

◆ operator=() [2/2]

template<class T_data >
void CarmaSparseObj< T_data >::operator= ( CarmaSparseObj< T_data > &  M)

◆ operator[]()

template<class T_data >
T_data* CarmaSparseObj< T_data >::operator[] ( int  index)

Definition at line 85 of file carma_sparse_obj.h.

◆ resize()

template<class T_data >
void CarmaSparseObj< T_data >::resize ( int  nnz_,
int  dim1_,
int  dim2_ 
)

◆ set_majorDim()

template<class T_data >
void CarmaSparseObj< T_data >::set_majorDim ( char  c)

General Utilities

Definition at line 81 of file carma_sparse_obj.h.

◆ sparse_to_host()

template<class T_data >
void CarmaSparseObj< T_data >::sparse_to_host ( int *  h_rowInd,
int *  h_colInd,
T_data *  h_data 
)

Member Data Documentation

◆ 

union { ... }

◆ block_dim

template<class T_data >
int CarmaSparseObj< T_data >::block_dim

Definition at line 53 of file carma_sparse_obj.h.

◆ current_context

template<class T_data >
CarmaContext* CarmaSparseObj< T_data >::current_context

Definition at line 39 of file carma_sparse_obj.h.

◆ d_colind

template<class T_data >
int* CarmaSparseObj< T_data >::d_colind

Definition at line 44 of file carma_sparse_obj.h.

◆ d_data

template<class T_data >
T_data* CarmaSparseObj< T_data >::d_data

Definition at line 42 of file carma_sparse_obj.h.

◆ d_rowind

template<class T_data >
int* CarmaSparseObj< T_data >::d_rowind

Definition at line 43 of file carma_sparse_obj.h.

◆ d_sparse_mat

template<class T_data >
magma_d_sparse_matrix CarmaSparseObj< T_data >::d_sparse_mat

Definition at line 57 of file carma_sparse_obj.h.

◆ descr

template<class T_data >
cusparseMatDescr_t CarmaSparseObj< T_data >::descr

Definition at line 45 of file carma_sparse_obj.h.

◆ device

template<class T_data >
int CarmaSparseObj< T_data >::device

device where the CarmaObj is allocate

Definition at line 38 of file carma_sparse_obj.h.

◆ dims_data

template<class T_data >
long CarmaSparseObj< T_data >::dims_data[3]

dimensions of the array

Definition at line 36 of file carma_sparse_obj.h.

◆ format

template<class T_data >
std::string CarmaSparseObj< T_data >::format

Definition at line 52 of file carma_sparse_obj.h.

◆ major_dim

template<class T_data >
char CarmaSparseObj< T_data >::major_dim

Definition at line 51 of file carma_sparse_obj.h.

◆ nz_elem

template<class T_data >
int CarmaSparseObj< T_data >::nz_elem

number of elements in the array

Definition at line 37 of file carma_sparse_obj.h.

◆ s_sparse_mat

template<class T_data >
magma_s_sparse_matrix CarmaSparseObj< T_data >::s_sparse_mat

Definition at line 58 of file carma_sparse_obj.h.


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