C++ main module for mmsd Package  1.0
dfulluppermatrix_functions.h
Go to the documentation of this file.
1 #ifndef DFULLUPPERMATRIX_FUNCTIONS
2 #define DFULLUPPERMATRIX_FUNCTIONS
3 
4 #include "lapack_functions.h"
5 
19 void DoubleFullUpperMatrixVectorProduct( const tBoolean& isTransA,
20  const tLVectorIndex& nRowsA,//number of viewed rows of A
21  const tLVectorIndex& ldA,//memory distance between A[i][j] and A[i][j+1]
22  const double* A,
23  const tLVectorIndex& nX,
24  const tLVectorIncrement& incX,
25  double* x) ;
29  const tBoolean& isTransA,
30  const tLVectorIndex& ldA,//memory distance between A[i][j] and A[i][j+1]
31  const double* A,
32  const double& alpha,
33  const tLVectorIndex& nRowsB,const tLVectorIndex& nColsB,const tLVectorIndex& ldB,
34  double* B);
37 void DoubleFullUpperMatrixVectorSolve( const tBoolean &isTransA,
38  const tLVectorIndex& nARows,
39  const tLVectorIndex& ldA,//memory distance between A[i][j] and A[i][j+1]
40  const double *A,//upper matrix
41  const tLVectorIndex& nB,//number of viewed element of B
42  const tLVectorIncrement& incB,//memory distance between B[i] and B[i+1]
43  double* B);
44 /* SOLVE op(A).X=alpha.B B:=X or
45  * SOLVE X.op(A)=alpha B B:=X
46  */
47 tBoolean DoubleFullUpperMatrixSolve( const tBoolean &isLeft,const tBoolean& isTransA,
48  const tLVectorIndex& ldA,//memory distance between A[i][j] and A[i][j+1]
49  const double *A,//upper matrix
50  const double &alpha,
51  const tLVectorIndex& nBRows,//number of viewed rows of B
52  const tLVectorIndex& nBCols,//number of viewed columns of B
53  const tLVectorIndex& ldB,//memory distance between B[i][j] and B[i][j+1]
54  double* B);
55 
58 bool DoubleFullUpperMatrixInverse( const tLVectorIndex& nRowsA,//number of viewed rows of A
59  const tLVectorIndex& ldA,//memory distance between A[i][j] and A[i][j+1]
60  double* A);
61 
62 
65 bool DoubleFullUpperMatrixEigenVector(const lapack_int & nRowsT,const lapack_int& ldT,const double *T,
66  const lapack_int& ldlev,double *lev,
67  const lapack_int& ldrev,double *rev);
68 
69 #endif
void DoubleFullUpperMatrixMatrixProduct(const tBoolean &isLeft, const tBoolean &isTransA, const tLVectorIndex &ldA, const double *A, const double &alpha, const tLVectorIndex &nRowsB, const tLVectorIndex &nColsB, const tLVectorIndex &ldB, double *B)
coompute B:=alpha op(A).B or B:=alpha B . op(A)
Definition: dfulluppermatrix_functions.cpp:215
#define lapack_int
Definition: lapack_functions.h:7
#define tBoolean
Definition: types.h:48
bool DoubleFullUpperMatrixInverse(const tLVectorIndex &nRowsA, const tLVectorIndex &ldA, double *A)
compute the inverse of the matrix
Definition: dfulluppermatrix_functions.cpp:341
bool DoubleFullUpperMatrixEigenVector(const lapack_int &nRowsT, const lapack_int &ldT, const double *T, const lapack_int &ldlev, double *lev, const lapack_int &ldrev, double *rev)
compute the eigen vector of the matrix
Definition: dfulluppermatrix_functions.cpp:635
void DoubleFullUpperMatrixVectorSolve(const tBoolean &isTransA, const tLVectorIndex &nARows, const tLVectorIndex &ldA, const double *A, const tLVectorIndex &nB, const tLVectorIncrement &incB, double *B)
solve op(A).X=Y and Y:=X
Definition: dfulluppermatrix_functions.cpp:403
tBoolean DoubleFullUpperMatrixSolve(const tBoolean &isLeft, const tBoolean &isTransA, const tLVectorIndex &ldA, const double *A, const double &alpha, const tLVectorIndex &nBRows, const tLVectorIndex &nBCols, const tLVectorIndex &ldB, double *B)
Definition: dfulluppermatrix_functions.cpp:502
void DoubleFullUpperMatrixVectorProduct(const tBoolean &isTransA, const tLVectorIndex &nRowsA, const tLVectorIndex &ldA, const double *A, const tLVectorIndex &nX, const tLVectorIncrement &incX, double *x)
compute X=op(A). X where op(A)=A or op(A)=tA where A is Upper matrix
Definition: dfulluppermatrix_functions.cpp:125
#define tLVectorIndex
Definition: lapack_types.h:13
#define tLVectorIncrement
Definition: lapack_types.h:16