C++ main module for mmsd Package  1.0
dpackedsymmatrix_functions.h
Go to the documentation of this file.
1 #ifndef DPACKEDSYMMATRIX_FUNCTIONS
2 #define DPACKEDSYMMATRIX_FUNCTIONS
3 
4 #include "lapack_functions.h"
5 
9  const tLVectorIncrement& incX,
10  const double* x,
11  const tLVectorIndex& nRows,//number of viewed rows of A
12  const double* A,
13  const lapack_real& alpha,
14  const lapack_real& beta,
15  const tLVectorIndex& nY,
16  const tLVectorIncrement& incY,
17  double* y);
18 
19 
20 /* \brief comute S+=alpha tX.tX
21  * @param incX:increment of vector X
22  * @param X: values of X
23  * @param alpha: multiplicator factor
24  * @param nSRows: number of rows of S
25  * @param S: values of packed symmetric matrix
26  */
28  const double *X,
29  const double& alpha,
30  const tLVectorIndex& nSRows,
31  double *S);
32 
44  const tLVectorIndex& nRowsS,
45  const double* S,
46  const tLVectorIndex& nRowsB,
47  const tLVectorIndex& nColsB,
48  const tLVectorIncrement& incB,
49  const tLVectorIndex& ldB,
50  const tBoolean& isBSymmetric,
51  const tBoolean& isBFull,
52  const double* B,
53  const lapack_real& alpha,
54  const lapack_real& beta,
55  const tLVectorIndex& nRowsC,
56  const tLVectorIndex& nColsC,
57  const tLVectorIncrement& incC,
58  const tLVectorIndex& ldC,
59  double *C) ;
60 
61 
69  const tLVectorIndex& nColsA,
70  const tLVectorIncrement& incA,
71  const tLVectorIndex& ldA,
72  const tBoolean& isTransA,
73  const double *A,
74  const double& alpha,
75  const double& beta,
76  const tLVectorIndex& nD,
77  const tLVectorIncrement& incD,
78  const double* D,
79  const tLVectorIndex& nS,
80  double *S);
81 
87  double* A,
88  const tLVectorIndex& nU,
89  double* U,
90  const tLVectorIndex& ldW,
91  double* W);
92 
102  double* A,
103  const tLVectorIndex& nU,//of size M=N or M=iu-il+1
104  double* U,
105  const tLVectorIndex& minIndex,
106  const tLVectorIndex& maxIndex,
107  const double& minBound,
108  const double& maxBound,
109  const tLVectorIndex& ldW,//Z of size nRows x M
110  double *W);
111 
116  double* A);
117 
122  double *A,
123  lapack_int *ipiv);
124 
128  const lapack_int* ipiv,
129  double *A);
130 #endif
void DoublePackedSymmetricMatrixRankSymmetricProduct(const tLVectorIncrement &incX, const double *X, const double &alpha, const tLVectorIndex &nSRows, double *S)
compute the symmetric matrix S+=alpha X tX
Definition: dpackedsymmatrix_functions.cpp:287
#define lapack_int
Definition: lapack_functions.h:7
#define tBoolean
Definition: types.h:48
#define lapack_real
Definition: lapack_functions.h:9
void DoublePackedSymmetricMatrixVectorProduct(const tLVectorIndex &nX, const tLVectorIncrement &incX, const double *x, const tLVectorIndex &nRows, const double *A, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &nY, const tLVectorIncrement &incY, double *y)
compute Y!=Beta.Y+alpha A.X
Definition: dpackedsymmatrix_functions.cpp:181
tBoolean DoublePackedSymmetricMatrixBunchKaufmanFactorization(const tLVectorIndex &nRows, double *A, lapack_int *ipiv)
make the Bunch Kaufman factorization A=U.D.tU
Definition: dpackedsymmatrix_functions.cpp:977
tBoolean DoublePackedSymmetricMatrixEigenValues(const tLVectorIndex &nRowsA, double *A, const tLVectorIndex &nU, double *U, const tLVectorIndex &ldW, double *W)
compute all the eigen values or vectors (if W is not null or ldW<=1)
Definition: dpackedsymmatrix_functions.cpp:607
tBoolean DoublePackedSymmetricMatrixCholeskyFactorization(const tLVectorIndex &nRowsA, double *A)
make the cholesky factorization A=tU.U
Definition: dpackedsymmatrix_functions.cpp:906
void DoublePackedSymmetricMatrixKRankSymmetricProduct(const tLVectorIndex &nRowsA, const tLVectorIndex &nColsA, const tLVectorIncrement &incA, const tLVectorIndex &ldA, const tBoolean &isTransA, const double *A, const double &alpha, const double &beta, const tLVectorIndex &nD, const tLVectorIncrement &incD, const double *D, const tLVectorIndex &nS, double *S)
compute : S:=beta S+ alpha op(A) . D . top(A) If D is null D is supposed to be identity (fortran vers...
Definition: dpackedsymmatrix_functions.cpp:487
#define tLVectorIndex
Definition: lapack_types.h:13
tBoolean DoublePackedSymmetricMatrixBoundedEigenValues(const tLVectorIndex &nRowsA, double *A, const tLVectorIndex &nU, double *U, const tLVectorIndex &minIndex, const tLVectorIndex &maxIndex, const double &minBound, const double &maxBound, const tLVectorIndex &ldW, double *W)
compute the selected eigen values or vectors (if W is not null or ldW<=1) with
Definition: dpackedsymmatrix_functions.cpp:710
tBoolean DoublePackedSymmetricMatrixInverse(const tLVectorIndex &nRows, const lapack_int *ipiv, double *A)
inverse the pack symmetric matrix where is has ben Bunch Kaufman factorized
Definition: dpackedsymmatrix_functions.cpp:1073
#define tLVectorIncrement
Definition: lapack_types.h:16
void DoublePackedSymmetricMatrixMatrixProduct(const tBoolean &isLeftSide, const tLVectorIndex &nRowsS, const double *S, const tLVectorIndex &nRowsB, const tLVectorIndex &nColsB, const tLVectorIncrement &incB, const tLVectorIndex &ldB, const tBoolean &isBSymmetric, const tBoolean &isBFull, const double *B, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &nRowsC, const tLVectorIndex &nColsC, const tLVectorIncrement &incC, const tLVectorIndex &ldC, double *C)
compute :
Definition: dpackedsymmatrix_functions.cpp:363