C++ main module for mmsd Package  1.0
LAP_DoubleUpperMatrix.h
Go to the documentation of this file.
1 #ifndef LAP_DoubleUpperMatrix_H
2 #define LAP_DoubleUpperMatrix_H
3 
4 
5 #include "LAP_DoubleMatrix.h"
6 
8 
16 
17 class LAP_DoubleUpperMatrix: public virtual LAP_DoubleMatrix {
18 
19  SP_OBJECT(LAP_DoubleUpperMatrix);
20 
21 private:
22  // ATTRIBUTES
23 
24 
25 
26  // ASSOCIATIONS
27 
28  // METHOD
29 
30 
31 public:
32  // CONSTRUCTORS
35 
36  }
37 
38 
41 
42  }
43 
44  // DESTRUCTORS
48  }
49 
50 
51 
52 
53  //ACCESSOR Method
54 
55 
56 public:
57 
63 
64 
67  virtual tBoolean isSymmetric() const {
68  return false;
69  }
72  virtual tBoolean isUpper() const {
73  return true;
74  }
75 
76 
77  // LINEAR Method
78  //===============
79 
80  // ----------------
81  // vector product
82  // ----------------
87  virtual void vectorProduct(const tBoolean& isTrans,LAP_DoubleVector& X) const=0;
88 
96  virtual void vectorProduct(const tBoolean& isTrans,const tLVectorIndex& nY,const tLVectorIncrement& incY,double *Y) const=0;
97 
98  // rank product
103  virtual void rankProduct(const tBoolean& isTransU,LAP_DoubleVector& X) const=0;
104 
110  virtual void rankProduct(const tBoolean& isTransU,
111  const LAP_DoubleVector& Diag,
112  LAP_DoubleVector& X) const=0;
113 
114  // ----------------
115  // matrix product
116  // ----------------
117 
127  virtual void matrixProduct( const tBoolean& isLeft,
128  const tBoolean& isTrans,
129  const double& alpha,
130  LAP_DoubleFullGeneralMatrix& A) const=0;
131 
132  // ----------------------
133  // eigen values & vectors
134  // ------------------------
138  virtual tBoolean computeEigenValues(LAP_DoubleVector& U) const=0;
139 
140  // -----------------------
141  // linear system solvers
142  // -----------------------
153  virtual void solve(const tBoolean& isTrans,
154  const tLVectorIndex& nY,const tLVectorIncrement& incY,double* Y) const=0;
155 
164  virtual tBoolean solve(const tBoolean& isTrans,
165  LAP_DoubleFullGeneralMatrix& X) const=0;
166 
167 
168  // -----------------------
169  // STRING Representation
170  // ----------------------
171 
172 
173 };
174 #endif
DEFINE_SPTR(LAP_DoubleUpperMatrix)
virtual tBoolean copyLower(const LAP_DoubleFullGeneralMatrix &f)=0
copy the transposed of the full matrix
LAP_DoubleUpperMatrix(const tLVectorIndex &n, const tLVectorIndex &p)
build a matrix
Definition: LAP_DoubleUpperMatrix.h:40
Definition: LAP_DoubleVector.h:20
Definition: LAP_DoubleMatrix.h:18
#define tBoolean
Definition: types.h:48
virtual void rankProduct(const tBoolean &isTransU, LAP_DoubleVector &X) const =0
compute product
virtual void vectorProduct(const tBoolean &isTrans, LAP_DoubleVector &X) const =0
compute X:=op(This).X
virtual void matrixProduct(const tBoolean &isLeft, const tBoolean &isTrans, const double &alpha, LAP_DoubleFullGeneralMatrix &A) const =0
compute :
Definition: LAP_DoubleFullGeneralMatrix.h:30
virtual void solve(const tBoolean &isTrans, const tLVectorIndex &nY, const tLVectorIncrement &incY, double *Y) const =0
solve:
this class describes a general double symmetric matrix
Definition: LAP_DoubleUpperMatrix.h:17
virtual tBoolean computeEigenValues(LAP_DoubleVector &U) const =0
compute the eigen values of the matrix
#define tLVectorIndex
Definition: lapack_types.h:13
LAP_DoubleUpperMatrix()
build a matrix
Definition: LAP_DoubleUpperMatrix.h:34
virtual ~LAP_DoubleUpperMatrix()
destroy a matrix
Definition: LAP_DoubleUpperMatrix.h:47
virtual tBoolean isSymmetric() const
return true if the matrix is symmetric
Definition: LAP_DoubleUpperMatrix.h:67
#define tLVectorIncrement
Definition: lapack_types.h:16
virtual tBoolean isUpper() const
return true if the matrix is upper
Definition: LAP_DoubleUpperMatrix.h:72