1 #ifndef LAP_DoublePackedSymmetricMatrix_H
2 #define LAP_DoublePackedSymmetricMatrix_H
66 inline static SP::LAP_DoublePackedSymmetricMatrix
New() {
74 SP::LAP_DoublePackedSymmetricMatrix p=
New();
243 n=( ((sqrt(1+8*n)-1)/2) +0.5);
367 throw LAP_Exception(
"math/linalg/core",
"LAP_DoublePackedSymmetricMatrix::product()",
"incompatible size of X vector");
376 throw LAP_Exception(
"math/linalg/core",
"LAP_DoublePackedSymmetricMatrix::product()",
"incompatible size of Y vector");
402 throw LAP_Exception(
"math/linalg/core",
"LAP_DoublePackedSymmetricMatrix::product()",
"incompatible size of X vector");
411 throw LAP_Exception(
"math/linalg/core",
"LAP_DoublePackedSymmetricMatrix::product()",
"incompatible size of Y vector");
457 if (nRows==0)
return;
459 throw LAP_Exception(
"math/linal/core",
"LAP_DoublePackedSymmetricMatrix::product",
"incompatible size of X vector");
462 throw LAP_Exception(
"math/linal/core",
"LAP_DoublePackedSymmetricMatrix::product",
"incompatible size of Y vector");
465 throw LAP_Exception(
"math/linal/core",
"LAP_DoublePackedSymmetricMatrix::product",
"x & y must have different pointer");
497 nRows,&(*this)(0,0));
522 if (nARows*nACols==0)
return;
539 const tBoolean& isTransA,
const double* A) {
546 if (isTransA) std::swap(nRows,nCols);
552 "LAP_DoublePackedSymmetricMatrix::rankSymmetricProduct",
553 "matrices size incompatible");
560 nRows,&(*
this)(0,0));
593 if (nRows*nCols==0)
return;
595 if (isTrans) std::swap(nRows,nCols);
601 "LAP_DoublePackedSymmetricMatrix::rankSymmetricProduct",
602 "matrices size incompatible");
607 "LAP_DoublePackedSymmetricMatrix::rankSymmetricProduct",
608 "matrix & diagonal have incompatible size");
614 nRows,&(*this)(0,0));
701 if (!leftSide) std::swap(M,P);
703 if (N!=M)
throw LAP_Exception(
"math/linalg/core",
"LAP_DoubleFullSymmetricMatrix::product()",
"incompatible size of matrix");
712 if (nBRows!=nBCols)
throw LAP_Exception(
"math/linalg/core",
"LAP_DoubleFullSymmetricMatrix::product()",
"incompatible size of matrix");
722 nBRows,nBCols,incB,ldB,
false,
true,B,
755 if (!leftSide) std::swap(M,P);
757 if (N!=M)
throw LAP_Exception(
"math/linalg/core",
"LAP_DoublePackedSymmetricMatrix::product()",
"incompatible size of matrix");
796 if (!leftSide) std::swap(M,P);
798 if (N!=M)
throw LAP_Exception(
"math/linalg/core",
"LAP_DoublePackedSymmetricMatrix::product()",
"incompatible size of matrix");
882 throw LAP_Exception(
"math/linal/core",
"LAP_DoublePackedSymmetricMatrix::computeEigenValues",
"matrix columns number must be greater than its rows number");
927 const int& il,
const int& iu)
const {
979 if (nRows==0)
return true;
998 SP::LAP_DoubleVector vs;
1000 if (succeeds) U->setValues(vs);
LAP_DoublePackedSymmetricMatrix & operator=(const LAP_DoubleMatrix &s)
init all the matrix to s
Definition: LAP_DoublePackedSymmetricMatrix.h:116
void matrixProduct(const LAP_DoubleFullGeneralMatrix &B, LAP_DoubleFullGeneralMatrix &C) const
return C=(This) . B
Definition: LAP_DoublePackedSymmetricMatrix.h:652
LAP_DoublePackedSymmetricMatrix & operator/=(const lapack_real &s)
divide by s the matrix v
Definition: LAP_DoublePackedSymmetricMatrix.h:139
virtual tBoolean computeEigenValues(LAP_DoubleVector &U) const
compute the eigen values of This: A is copied in ascending order
Definition: LAP_DoublePackedSymmetricMatrix.h:870
this class describes the exceptions raised for LAP package
Definition: LAP_Exception.h:14
LAP_DoubleMatrixStorage & getStorage()
set the storage
Definition: LAP_DoubleMatrix.h:179
this class describes a full symmetric matrix for lapack used
Definition: LAP_DoubleFullSymmetricMatrix.h:31
static SP::LAP_DoubleFullGeneralMatrix New()
Definition: LAP_DoubleFullGeneralMatrix.h:78
double get(const tLVectorIndex &i, const tLVectorIndex &j) const
get the value taking into account the view
Definition: LAP_DoubleMatrix.h:172
virtual void dotProduct(const LAP_DoubleVector &v)
compute the symmetric matrix S= X.tX only the upper symmetric matric is set. (lapack method dsyr call...
Definition: LAP_DoublePackedSymmetricMatrix.h:483
this class describes a general double symmetric matrix
Definition: LAP_DoubleSymmetricMatrix.h:21
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
this class describes a packed storage by column
Definition: LAP_DoublePackedStorage.h:21
Definition: LAP_IntegerVector.h:18
tLVectorIncrement getRowIncrement() const
get the memory distance between (*this)(i,j) & (*this)(i+1,j)
Definition: LAP_DoubleFullGeneralMatrix.h:346
LAP_DoublePackedSymmetricMatrix & operator-=(const LAP_DoublePackedSymmetricMatrix &s)
sub the viewed matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:177
virtual void setValuesPointer(SP::LAP_DoubleVector v)
set the vector values by reference
Definition: LAP_DoubleMatrixStorage.h:132
virtual void matrixProduct(const tBoolean &leftSide, const LAP_DoubleFullGeneralMatrix &B, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleFullGeneralMatrix &C) const
make the product if (leftSide) C = alpha. This . B +beta C if (!leftSide) C = alpha. B . This +beta C
Definition: LAP_DoublePackedSymmetricMatrix.h:663
LAP_DoublePackedSymmetricMatrix & operator/=(const LAP_DoublePackedSymmetricMatrix &s)
divide the viewed matrices term by term
Definition: LAP_DoublePackedSymmetricMatrix.h:170
virtual tBoolean copy(const LAP_DoubleMatrix &x)
copy a matrix
Definition: LAP_DoubleMatrix.cpp:18
virtual void matrixProduct(const tBoolean &leftSide, const tLVectorIndex &nBRows, const tLVectorIndex &nBCols, const tLVectorIncrement &incB, const tLVectorIndex &ldB, const double *B, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleFullGeneralMatrix &C) const
make the product:
Definition: LAP_DoublePackedSymmetricMatrix.h:685
void matrixProduct(const LAP_DoublePackedSymmetricMatrix &B, LAP_DoubleFullGeneralMatrix &C) const
return C=(This) . B
Definition: LAP_DoublePackedSymmetricMatrix.h:644
Definition: LAP_DoubleVector.h:20
#define lapack_int
Definition: lapack_functions.h:7
Definition: LAP_DoubleMatrix.h:18
LAP_DoublePackedSymmetricMatrix()
build a matrix
Definition: LAP_DoublePackedSymmetricMatrix.cpp:11
virtual void rankSymmetricProduct(const LAP_DoubleVector &D, const double &alpha, const double &beta, const tBoolean &isTrans, const LAP_DoubleFullGeneralMatrix &A)
compute the symmetric matrix S:=beta.S+ alpha op(A).D.t(op(A))
Definition: LAP_DoublePackedSymmetricMatrix.h:585
LAP_DoublePackedSymmetricMatrix & operator+=(const LAP_DoublePackedSymmetricMatrix &s)
add the viewed matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:183
virtual SP::LAP_DoubleMatrix NewInstance() const
create a New instance of this
Definition: LAP_DoublePackedSymmetricMatrix.h:80
virtual void setSize(const tLVectorIndex &n, const tLVectorIndex &p)
set the dimension of the matrix n x p
Definition: LAP_Matrix.h:87
virtual void vectorProduct(const LAP_ConstDoubleVector &X, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleVector &Y) const
compute Y:=betaY+alpha.This.X
Definition: LAP_DoublePackedSymmetricMatrix.h:391
LAP_DoublePackedSymmetricMatrix & operator*=(const lapack_real &s)
multiply by s the matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:133
tLVectorIndex getSize() const
get the size of the vector
Definition: LAP_ConstVector.h:170
#define tBoolean
Definition: types.h:48
LAP_DoublePackedSymmetricMatrix & operator=(const double &s)
init all the matrix to s
Definition: LAP_DoublePackedSymmetricMatrix.h:110
virtual void setSize(const tLVectorIndex &n, const tLVectorIndex &p)
set the dimension of the matrix and allocate the values array
Definition: LAP_DoubleFullGeneralMatrix.h:230
virtual void getColumn(const tLVectorIndex &j, SP::LAP_DoubleVector v) const
get the j-th column of this symmetric matrix in a vector
Definition: LAP_DoublePackedSymmetricMatrix.h:285
#define lapack_real
Definition: lapack_functions.h:9
virtual tLVectorIndex getRowsNumber() const
get the lines number of the matrix from view
Definition: LAP_DoubleFullGeneralMatrix.h:366
const LAP_DoublePackedStorage & getPackedStorage() const
get the banded storage
Definition: LAP_DoublePackedSymmetricMatrix.h:275
virtual void getColumn(const tLVectorIndex &j, LAP_DoubleVector &v) const
get the j-th column of this symmetric matrix in a vector
Definition: LAP_DoublePackedSymmetricMatrix.cpp:101
#define null
Definition: types.h:13
const tLVectorIncrement & getIncrement() const
get the increment of the vector
Definition: LAP_Vector.h:529
static tBoolean computeEigenValues(LAP_DoublePackedSymmetricMatrix &A, LAP_DoubleVector &U)
compute the eigen values of A in ascending order and A is destroyed after method lapack method dsyev ...
Definition: LAP_DoublePackedSymmetricMatrix.h:877
virtual SP::LAP_DoubleMatrix matrixProduct(const LAP_DoubleMatrix &B) const
return C=(This) . B
Definition: LAP_DoublePackedSymmetricMatrix.h:627
virtual void setSize(const tLVectorIndex &n)
set the dimension of the matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:226
void init(const double &v)
init the values
Definition: LAP_DoubleMatrixStorage.h:124
static tBoolean computeEigenValueDecomposition(LAP_DoublePackedSymmetricMatrix &A, LAP_DoubleVector &U, LAP_DoubleFullGeneralMatrix &Z, const lapack_int &il, const lapack_int &ul)
compute the eigen elements of A in ascending order . A is supposed to be symmetric, the eigen vectors are set in Z, A must be symmetric. only the eigen values & vectors are computed in index il and iu when the iegen values are ordering in an ascent order.
Definition: LAP_DoublePackedSymmetricMatrix.h:942
static tBoolean inverse(LAP_DoublePackedSymmetricMatrix &A)
inverse a symmetric matrix dsytrf & dsytri lapack methods called
Definition: LAP_DoublePackedSymmetricMatrix.h:976
virtual void setValuesNumber(const tLVectorIndex &n)
set the values number
Definition: LAP_DoubleMatrixStorage.h:155
LAP_DoublePackedStorage & getPackedStorage()
GET.
Definition: LAP_DoublePackedSymmetricMatrix.h:270
Definition: LAP_DoubleFullGeneralMatrix.h:30
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
static tBoolean computeEigenValueDecomposition(LAP_DoublePackedSymmetricMatrix &A, LAP_DoubleVector &U, LAP_DoubleFullGeneralMatrix &W)
compute the eigen elements in ascending order of A the eigen vectors are set in A: A is destroyed IN ...
Definition: LAP_DoublePackedSymmetricMatrix.h:906
tLVectorIndex getSize() const
get the size of the vector
Definition: LAP_Vector.h:519
virtual void getValuesPointer(SP::LAP_DoubleVector &v)
Definition: LAP_DoubleMatrixStorage.h:208
tBoolean DoublePackedSymmetricMatrixBunchKaufmanFactorization(const tLVectorIndex &nRows, double *A, lapack_int *ipiv)
make the Bunch Kaufman factorization A=U.D.tU
Definition: dpackedsymmatrix_functions.cpp:977
static SP::LAP_DoublePackedSymmetricMatrix New(const tLVectorIndex &n)
Definition: LAP_DoublePackedSymmetricMatrix.h:73
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
virtual void getRow(const tLVectorIndex &i, LAP_DoubleVector &v) const
get the i-th row in a vector
Definition: LAP_DoublePackedSymmetricMatrix.cpp:59
static SP::LAP_DoublePackedUpperMatrix New()
Definition: LAP_DoublePackedUpperMatrix.h:63
virtual ~LAP_DoublePackedSymmetricMatrix()
destroy a matrix
Definition: LAP_DoublePackedSymmetricMatrix.cpp:23
tBoolean DoublePackedSymmetricMatrixCholeskyFactorization(const tLVectorIndex &nRowsA, double *A)
make the cholesky factorization A=tU.U
Definition: dpackedsymmatrix_functions.cpp:906
static void matrixProduct(const tBoolean &leftSide, const LAP_DoublePackedSymmetricMatrix &S, const LAP_DoubleFullGeneralMatrix &B, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleFullGeneralMatrix &C)
compute :
Definition: LAP_DoublePackedSymmetricMatrix.h:743
virtual void getRow(const tLVectorIndex &i, SP::LAP_DoubleVector v) const
get the i-th row in a vector
Definition: LAP_DoublePackedSymmetricMatrix.h:299
virtual void setSize(const tLVectorIndex &nRows, const tLVectorIndex &nCols)
set the dimension of the matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:216
LAP_DoublePackedSymmetricMatrix & operator+=(const lapack_real &s)
add s to the upper matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:146
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
LAP_DoublePackedSymmetricMatrix & operator*=(const LAP_DoublePackedSymmetricMatrix &s)
multiply the viewed matrices term by term
Definition: LAP_DoublePackedSymmetricMatrix.h:164
LAP_DoublePackedSymmetricMatrix & operator^=(const lapack_real &s)
power by s the matrix v
Definition: LAP_DoublePackedSymmetricMatrix.h:126
void matrixProduct(const tBoolean &leftSide, const LAP_DoubleFullSymmetricMatrix &S, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleFullGeneralMatrix &C) const
compute :
Definition: LAP_DoublePackedSymmetricMatrix.h:835
virtual tReal norm2() const
return norm2 sqrt(sum_ij(aij^2))=sqrt(tr(AtA));
Definition: LAP_DoublePackedSymmetricMatrix.cpp:198
virtual void vectorProduct(const tLVectorIndex &nx, const tLVectorIncrement &incx, const double *x, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &ny, const tLVectorIncrement &incy, double *y) const
compute Y= betaY + alpha. This. X
Definition: LAP_DoublePackedSymmetricMatrix.h:451
void rankSymmetricProduct(const double &alpha, const tBoolean &isTrans, const LAP_DoubleFullGeneralMatrix &A)
compute the symmetric matrix S:=alpha op(A).t(op(A))
Definition: LAP_DoublePackedSymmetricMatrix.h:507
tBoolean computeEigenValueDecomposition(LAP_DoubleVector &U, LAP_DoubleFullGeneralMatrix &VR, const int &il, const int &iu) const
compute the eigen elements in ascending order of This supposed to be symmetric, the eigen vectors are...
Definition: LAP_DoublePackedSymmetricMatrix.h:925
tBoolean computeEigenValueDecomposition(LAP_DoubleVector &U, LAP_DoubleFullGeneralMatrix &W) const
compute the eigen elements in ascending order of This the eigen vectors are set in This: This is dest...
Definition: LAP_DoublePackedSymmetricMatrix.h:894
#define tLVectorIndex
Definition: lapack_types.h:13
virtual void setValues(const tLVectorIndex &n, const double *values)
set the values
Definition: LAP_DoublePackedSymmetricMatrix.h:254
this class describes a packed symmetric matrix for lapack used where values are stored in vector: {A(...
Definition: LAP_DoublePackedSymmetricMatrix.h:31
const tLVectorIncrement & getIncrement() const
get the increment of the vector
Definition: LAP_ConstVector.h:175
tLVectorIndex getLeadingDimension() const
get the memory distance between (*this)(i,j) & (*this)(i,j+1)
Definition: LAP_DoubleFullGeneralMatrix.h:351
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
virtual void vectorProduct(const LAP_DoubleVector &X, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleVector &Y) const
compute Y:=betaY+alpha.This.X
Definition: LAP_DoublePackedSymmetricMatrix.h:356
virtual tLVectorIndex getColumnsNumber() const
get the columns number of the matrix from view
Definition: LAP_DoubleFullGeneralMatrix.h:371
virtual tReal sum(const tFlag &d, LAP_DoubleVector &s) const
make the sum among the direction if (d==ROW) sum all the columns of each row and size of s is the num...
Definition: LAP_DoublePackedSymmetricMatrix.cpp:233
virtual void rankSymmetricProduct(const double &alpha, const double &beta, const tBoolean &isTrans, const LAP_DoubleFullGeneralMatrix &A)
compute the symmetric matrix S:=beta.S+ alpha op(A).t(op(A)) only the upper symmetric matric is set...
Definition: LAP_DoublePackedSymmetricMatrix.h:515
virtual const double & operator()(const tLVectorIndex &i, const tLVectorIndex &j) const
accessor of element at row i and column j taking into account the view only use the upper diagonal ...
Definition: LAP_DoublePackedSymmetricMatrix.h:99
virtual tLVectorIndex getColumnsNumber() const
get the columns number of the matrix from view
Definition: LAP_Matrix.h:121
virtual void vectorProduct(const tBoolean &isTrans, const tLVectorIndex &nX, const tLVectorIncrement &incX, const double *X, const lapack_real &alpha, const lapack_real &beta, const tLVectorIndex &nY, const tLVectorIncrement &incY, double *Y) const
compute Y= op(This). X with op(A)=A or tA depending on isTrans value
Definition: LAP_DoublePackedSymmetricMatrix.h:432
#define tLVectorIncrement
Definition: lapack_types.h:16
DEFINE_SPTR(LAP_DoublePackedSymmetricMatrix)
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
void rankSymmetricProduct(const LAP_DoubleVector &D, const double &alpha, const tBoolean &isTrans, const LAP_DoubleFullGeneralMatrix &A)
compute the symmetric matrix S:=alpha op(A).t(op(A))
Definition: LAP_DoublePackedSymmetricMatrix.h:570
virtual void setValues(SP::LAP_DoubleVector values)
set the values set the pointer values of the matrix to values
Definition: LAP_DoublePackedSymmetricMatrix.h:238
Definition: LAP_ConstDoubleVector.h:25
virtual void dotProduct(const double &alpha, const LAP_DoubleVector &X)
compute the symmetric matrix S:= alpha X.tX only the upper symmetric matric is set. (lapack method dsyr called)
Definition: LAP_DoublePackedSymmetricMatrix.h:490
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)
compute the symmetric matrix S:=beta.S+ alpha op(A).t(op(A))
Definition: LAP_DoublePackedSymmetricMatrix.h:537
#define tReal
Definition: types.h:18
virtual tLVectorIndex getRowsNumber() const
get the lines number of the matrix from view
Definition: LAP_Matrix.h:116
void rankSymmetricProduct(const LAP_DoubleFullGeneralMatrix &A)
compute the symmetric matrix S:=alpha op(A).t(op(A))
Definition: LAP_DoublePackedSymmetricMatrix.h:502
virtual SP::LAP_DoubleVector vectorProduct(const LAP_DoubleVector &X) const
compute This. X
Definition: LAP_DoubleMatrix.h:328
virtual void vectorProduct(const LAP_DoubleVector &X, LAP_DoubleVector &Y)
compute Y=A.X
Definition: LAP_DoublePackedSymmetricMatrix.h:346
void resetView()
set the view of the vector to all the values
Definition: LAP_Vector.h:352
void setSize(const tLVectorIndex &n)
set the view to [0,n[ by 1 increment if values is too small, re-alocate it
Definition: LAP_Vector.h:360
virtual void setValues(const tLVectorIndex &n, const double *values)
copy the values
Definition: LAP_DoubleMatrixStorage.h:145
void rankSymmetricProduct(const LAP_DoubleVector &D, const LAP_DoubleFullGeneralMatrix &A)
compute the symmetric matrix S:=alpha op(A).t(op(A))
Definition: LAP_DoublePackedSymmetricMatrix.h:565
#define ASSERT_IN(a)
Definition: types.h:96
static void matrixProduct(const tBoolean &leftSide, const LAP_DoublePackedSymmetricMatrix &S1, const LAP_DoublePackedSymmetricMatrix &S2, const lapack_real &alpha, const lapack_real &beta, LAP_DoubleFullGeneralMatrix &C)
compute :
Definition: LAP_DoublePackedSymmetricMatrix.h:787
virtual double & operator()(const tLVectorIndex &i, const tLVectorIndex &j)
accessor of element at row i and column j taking into account the view only use the upper diagonal ...
Definition: LAP_DoublePackedSymmetricMatrix.h:92
virtual SP::LAP_DoubleUpperMatrix choleskyFactorization()
compute the choleskey factorization of the full symmetric matrix A is modified such that the upper ma...
Definition: LAP_DoublePackedSymmetricMatrix.h:1008
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:106
LAP_DoublePackedSymmetricMatrix & operator-=(const lapack_real &s)
sub s to the upper matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:154
#define tFlag
Definition: types.h:14
static SP::LAP_DoublePackedSymmetricMatrix New()
Definition: LAP_DoublePackedSymmetricMatrix.h:66
tBoolean inverse()
inverse the matrix
Definition: LAP_DoublePackedSymmetricMatrix.h:967