C++ mpi module for stochmagnet_main Package
SMOMPI_PackedBlockSymmetricMatrix.h
1 #ifndef SMOMPI_PackedBlockSymmetricMatrix_H
2 #define SMOMPI_PackedBlockSymmetricMatrix_H
3 
4 //base classes
5 #include "SM_PackedBlockSymmetricMatrix.h"
6 
7 #include "functions_type.h"
8 
18 template<typename T,tUCInt P>
20 
21 public:
22 
23 private :
24 
25  //type class
28 
29 
30 public:
31  // CONSTRUCTORS
35  }
36 
37  // DESTRUCTORS
41  }
42 
43 
44 public :
45 
46  //Instance building
47  //=================
48 
49 
50 public:
54  inline static CORE_UniquePointer<SelfClass> New() {
55  return CORE_UniquePointer<SelfClass>(new SelfClass(),
57  }
58 
59  //SET & GET
60  //=========
61 
62 
63 
64 public:
65 
70  virtual void vectorProduct(const T* vX,T* vY) const override {
71  (P==3)?vectorProduct3D(vX,vY):vectorProductBbB(vX,vY);
72  }
73 
74 
75 private:
82  void vectorProductBbB(const T* vX,T* vY) const;
88  void vectorProduct3D(const T* vX,T* vY) const;
89 
90 
91 
92 
93 
94 public:
95 };
96 
97 #include "SMOMPI_PackedBlockSymmetricMatrix.hpp"
98 
99 #endif
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:113
This class describes an OpenMP/MPI implemntation of symmetric matrix by block of size in a packed st...
Definition: SMOMPI_PackedBlockSymmetricMatrix.h:19
virtual void vectorProduct(const T *vX, T *vY) const override
vector product
Definition: SMOMPI_PackedBlockSymmetricMatrix.h:70
static CORE_UniquePointer< SelfClass > New()
build a new instance of the operator
Definition: SMOMPI_PackedBlockSymmetricMatrix.h:54
SMOMPI_PackedBlockSymmetricMatrix(void)
create a matrix of size 0
Definition: SMOMPI_PackedBlockSymmetricMatrix.h:34
virtual ~SMOMPI_PackedBlockSymmetricMatrix(void)
destroy
Definition: SMOMPI_PackedBlockSymmetricMatrix.h:40
This class described a symmetric matrix by block of size PxP in a packed storage.
Definition: SM_PackedBlockSymmetricMatrix.h:18