PARALUTION  1.0.0
PARALUTION
mic_matrix_csr.hpp
Go to the documentation of this file.
1 #ifndef PARALUTION_MIC_MATRIX_CSR_HPP_
2 #define PARALUTION_MIC_MATRIX_CSR_HPP_
3 
4 #include "../base_matrix.hpp"
5 #include "../base_vector.hpp"
6 #include "../matrix_formats.hpp"
7 
8 namespace paralution {
9 
10 template <typename ValueType>
11 class MICAcceleratorMatrixCSR : public MICAcceleratorMatrix<ValueType> {
12 
13 public:
14 
16  MICAcceleratorMatrixCSR(const Paralution_Backend_Descriptor local_backend);
17  virtual ~MICAcceleratorMatrixCSR();
18 
19  virtual void info(void) const;
20  virtual unsigned int get_mat_format(void) const { return CSR; }
21 
22  virtual void Clear(void);
23  virtual bool Zeros(void);
24 
25  virtual void AllocateCSR(const int nnz, const int nrow, const int ncol);
26 
27  virtual bool ConvertFrom(const BaseMatrix<ValueType> &mat);
28 
29  virtual void CopyFrom(const BaseMatrix<ValueType> &mat);
30  virtual void CopyTo(BaseMatrix<ValueType> *mat) const;
31 
32  virtual void CopyFromHost(const HostMatrix<ValueType> &src);
33  virtual void CopyToHost(HostMatrix<ValueType> *dst) const;
34 
35  virtual void Apply(const BaseVector<ValueType> &in, BaseVector<ValueType> *out) const;
36  virtual void ApplyAdd(const BaseVector<ValueType> &in, const ValueType scalar,
37  BaseVector<ValueType> *out) const;
38 
39 private:
40 
42 
43  friend class MICAcceleratorMatrixDIA<ValueType>;
44  friend class MICAcceleratorMatrixELL<ValueType>;
45  friend class MICAcceleratorMatrixHYB<ValueType>;
46 
47  friend class BaseVector<ValueType>;
48  friend class AcceleratorVector<ValueType>;
49  friend class MICAcceleratorVector<ValueType>;
50 
52 
53 };
54 
55 };
56 
57 #endif // PARALUTION_MIC_MATRIX_CSR_HPP_
Definition: base_matrix.hpp:86
virtual bool ConvertFrom(const BaseMatrix< ValueType > &mat)
Convert the matrix from another matrix (with different structure)
Definition: mic_matrix_csr.cpp:341
virtual void Apply(const BaseVector< ValueType > &in, BaseVector< ValueType > *out) const
Apply the matrix to vector, out = this*in;.
Definition: mic_matrix_csr.cpp:346
Definition: backend_manager.hpp:10
virtual void CopyTo(BaseMatrix< ValueType > *mat) const
Copy to another matrix.
Definition: mic_matrix_csr.cpp:282
nnz
Definition: pcg_example.m:8
virtual void CopyToHost(HostMatrix< ValueType > *dst) const
Copy (accelerator matrix) to host matrix.
Definition: mic_matrix_csr.cpp:176
const IndexType const IndexType const IndexType const ValueType const ValueType scalar
Definition: cuda_kernels_coo.hpp:91
virtual void CopyFromHost(const HostMatrix< ValueType > &src)
Copy (accelerator matrix) from host matrix.
Definition: mic_matrix_csr.cpp:131
Definition: base_matrix.hpp:82
MatrixCSR< ValueType, int > mat_
Definition: mic_matrix_csr.hpp:41
virtual void info(void) const
Shows simple info about the object.
Definition: mic_matrix_csr.cpp:57
virtual void ApplyAdd(const BaseVector< ValueType > &in, const ValueType scalar, BaseVector< ValueType > *out) const
Apply and add the matrix to vector, out = out + scalar*this*in;.
Definition: mic_matrix_csr.cpp:373
Base class for all host/accelerator matrices.
Definition: base_matrix.hpp:92
Definition: base_vector.hpp:22
MICAcceleratorVector< ValueType > * tmp_vec_
Definition: mic_matrix_csr.hpp:51
Definition: backend_manager.cpp:43
virtual void AllocateCSR(const int nnz, const int nrow, const int ncol)
Allocate CSR Matrix.
Definition: mic_matrix_csr.cpp:65
virtual unsigned int get_mat_format(void) const
Return the matrix format id (see matrix_formats.hpp)
Definition: mic_matrix_csr.hpp:20
Definition: backend_manager.hpp:14
Definition: matrix_formats.hpp:21
virtual bool Zeros(void)
Set all the values to zero.
Definition: mic_matrix_csr.cpp:120
virtual ~MICAcceleratorMatrixCSR()
Definition: mic_matrix_csr.cpp:47
Base class for all host/accelerator vectors.
Definition: base_vector.hpp:26
Definition: base_matrix.hpp:84
MICAcceleratorMatrixCSR()
Definition: mic_matrix_csr.cpp:24
virtual void Clear(void)
Clear (free) the matrix.
Definition: mic_matrix_csr.cpp:100
virtual void CopyFrom(const BaseMatrix< ValueType > &mat)
Copy from another matrix.
Definition: mic_matrix_csr.cpp:224