C++ main module for mmsd Package  1.0
LAP_DoubleSymmetricMatrix.h
Go to the documentation of this file.
1 #ifndef LAP_DoubleSymmetricMatrix_H
2 #define LAP_DoubleSymmetricMatrix_H
3 
4 
5 #include "LAP_DoubleMatrix.h"
6 
7 //friend classes
10 
11 
12 
20 
22 
23  SP_OBJECT(LAP_DoubleSymmetricMatrix);
24 
25 private:
26  // ATTRIBUTES
27 
28 
29 
30  // ASSOCIATIONS
31 
32  // METHOD
33 
34 
35 public:
36  // CONSTRUCTORS
39  }
40 
41 
42 
43  // DESTRUCTORS
47  }
48 
49 
50 
51 
52 
53 
54 
55 public:
56 
57 
60  virtual tBoolean isSymmetric() const {
61  return true;
62  }
65  virtual tBoolean isUpper() const {
66  return false;
67  }
68 
69  // LINEAR Method
70  //===============
71 
72  // ----------------
73  // vector product
74  // ----------------
75 
76 
77 
78  // ----------------
79  // matrix product
80  // ----------------
81 
92  virtual void rankSymmetricProduct(const double& alpha,const double& beta,
93  const tLVectorIndex& nARows,const tLVectorIndex& nACols,const tLVectorIncrement& incA,const tLVectorIndex& ldA,
94  const tBoolean& isTransA,const double* A)=0;
95 
96 
106  virtual void matrixProduct(const tBoolean& leftSide,
108  const lapack_real& alpha,
109  const lapack_real& beta,
110  LAP_DoubleFullGeneralMatrix& C) const=0;
111 
121  virtual void matrixProduct(const tBoolean& leftSide,
122  const tLVectorIndex& nRows,
123  const tLVectorIndex& nCols,
124  const tLVectorIncrement& incB,
125  const tLVectorIndex& ldb,
126  const double* B,
127  const lapack_real& alpha,
128  const lapack_real& beta,
129  LAP_DoubleFullGeneralMatrix& C) const=0;
130  // ----------------------
131  // eigen values & vectors
132  // ------------------------
133 
134 
135  // -----------------------
136  // linear system solvers
137  // -----------------------
138 
139  // -----------------------
140  // transformation method
141  // -----------------------
142 
146  virtual SP::LAP_DoubleUpperMatrix choleskyFactorization()=0;
147 
148 
149  // -----------------------
150  // STRING Representation
151  // ----------------------
152 
153 
154 };
155 #endif
virtual void rankSymmetricProduct(const double &alpha, const double &beta, const tLVectorIndex &nARows, const tLVectorIndex &nACols, const tLVectorIncrement &incA, const tLVectorIndex &ldA, const tBoolean &isTransA, const double *A)=0
compute the symmetric matrix This:=beta.This+alpha op(A).t(op(A))
this class describes a general double symmetric matrix
Definition: LAP_DoubleSymmetricMatrix.h:21
Definition: LAP_DoubleMatrix.h:18
#define tBoolean
Definition: types.h:48
virtual tBoolean isUpper() const
return true if the matrix is upper
Definition: LAP_DoubleSymmetricMatrix.h:65
#define lapack_real
Definition: lapack_functions.h:9
virtual ~LAP_DoubleSymmetricMatrix()
destroy a matrix
Definition: LAP_DoubleSymmetricMatrix.h:46
virtual tBoolean isSymmetric() const
return true if the matrix is symmetric
Definition: LAP_DoubleSymmetricMatrix.h:60
Definition: LAP_DoubleFullGeneralMatrix.h:30
LAP_DoubleSymmetricMatrix()
build a matrix
Definition: LAP_DoubleSymmetricMatrix.h:38
this class describes a general double symmetric matrix
Definition: LAP_DoubleUpperMatrix.h:17
DEFINE_SPTR(LAP_DoubleUpperMatrix)
virtual void matrixProduct(const tBoolean &leftSide, const LAP_DoubleFullGeneralMatrix &B, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleFullGeneralMatrix &C) const =0
make the product:
#define tLVectorIndex
Definition: lapack_types.h:13
#define tLVectorIncrement
Definition: lapack_types.h:16
virtual SP::LAP_DoubleUpperMatrix choleskyFactorization()=0
compute the choleskey factorization of the symmetric matrix A is modified such that the upper matrix ...