|
PIPS-NLP
|
#include <SparseStorage.h>
Public Member Functions | |
| SparseStorage (int m_, int n_, int len_) | |
| SparseStorage (int m_, int n_, int len_, int *krowM_, int *jcolM_, double *M_, int deleteElts=0, double *additiveDiag_=NULL) | |
| void | shiftRows (int row, int shift, int &info) |
| virtual void | getSize (int &m, int &n) |
| int | rows () |
| int | cols () |
| int | length () |
| int | numberOfNonZeros () |
| virtual void | fromGetDense (int row, int col, double *A, int lda, int rowExtent, int colExtent) |
| virtual void | fromAddDense (int row, int col, double *A, int lda, int rowExtent, int colExtent) |
| virtual void | atPutDense (int row, int col, double *A, int lda, int rowExtent, int colExtent) |
| virtual void | putSparseTriple (int irow[], int len, int jcol[], double A[], int &info) |
| virtual void | getDiagonal (OoqpVector &vec) |
| virtual void | setToDiagonal (OoqpVector &vec) |
| virtual void | ColumnScale (OoqpVector &vec) |
| virtual void | RowScale (OoqpVector &vec) |
| virtual void | SymmetricScale (OoqpVector &vec) |
| virtual void | scalarMult (double num) |
| virtual void | atPutSpRow (int col, double A[], int lenA, int irowA[], int &info) |
| virtual void | fromGetSpRow (int row, int col, double A[], int lenA, int irowA[], int &nnz, int rowExtent, int &info) |
| virtual void | randomize (double alpha, double beta, double *seed) |
| virtual void | getTransposePat (int row, int col, int rowExtent, int colExtent, int kpat[], int krowM[], int jcolM[]) |
| virtual void | getFromPat (double data[], int n, int kpat[]) |
| virtual void | mult (double beta, double y[], int incy, double alpha, double x[], int incx) |
| virtual void | transMult (double beta, double y[], int incy, double alpha, double x[], int incx) |
| virtual void | atPutDiagonal (int idiag, OoqpVector &v) |
| virtual void | fromGetDiagonal (int idiag, OoqpVector &v) |
| virtual void | atPutDiagonal (int idiag, double x[], int incx, int extent) |
| virtual void | writeToStream (std::ostream &out) const |
| virtual void | symmetrize (int &info) |
| virtual int * | symmetrize_set (int &info) |
| virtual void | symmetrize_valonly (double *val_lower, int *goffIDX) |
| virtual double | abmaxnorm () |
| void | matTransDSymbMultMat (double *d, int *krowMt, int *jcolMt, double *dMt, int **krowMtM, int **jcolMtM, double **dMtM) |
| void | matTransDMultMat (double *d, int *krowMt, int *jcolMt, double *dMt, int *krowMtM, int *jcolMtM, double *dMtM) |
| void | matTransDinvMultMat (double *d, int *krowMt, int *jcolMt, double *dMt, int *krowMtM, int *jcolMtM, double *dMtM) |
| void | transpose (int *krowMt, int *jcolMt, double *dMt) |
| void | transpose_withOriIDX (int *krowMt, int *jcolMt, double *Mt, int *OriIDX) |
| void | transpose_withNewIDX (int *krowMt, int *jcolMt, double *Mt, int *NewIDX) |
| void | reduceToLower () |
| void | transMultLower (double beta, double y[], double alpha, double x[], int firstrow) |
| void | transMultMat (double beta, double *Y, int ny, int ldy, double alpha, double *X, int ldx) |
| void | transMultMatLower (double *Y, int ny, int firstrow, double alpha, double *X, int ldx) |
| void | transMultMatLower (double beta, double *Y, int ny, int ldy, double alpha, double *X, int ldx, int colStart) |
| void | fromGetColBlock (int col, double *A, int lda, int colExtent, bool &allzero) |
| void | fromGetColBlock (int col, double *A, int lda, int colExtent, int *colSparsity, bool &allzero) |
| void | dump (const std::string &_filename) |
| virtual void | copyMtxFromDouble (int copyLength, double *values) |
| virtual | ~SparseStorage () |
| virtual void | setAdditiveDiagonal (OoqpVector &v) |
| virtual void | copyDiagonalVal_From (int idiag, OoqpVector &vvec, bool firstCall, std::map< int, int > &ValIdxMap) |
| virtual void | copyDiagonalVal_From (int idiag, double x[], int incx, int diagLength, bool firstCall, std::map< int, int > &ValIdxMap) |
| virtual void | atPutSpRow_CorrectMap (int row, double A[], int lenA, int jcolA[], int &info, std::map< int, int > &ValIdxMap, int const IDXconstant) |
| virtual void | fromGetSpRow_WithRowStart (int row, int col, double A[], int lenA, int irowA[], int &nnz, int rowExtent, int &info, int &rowStart) |
| virtual void | fromGetDense_withMap (int row, int col, double *A, int lda, int rowExtent, int colExtent, int const FirstCall, std::map< int, int > &ValIdxMap) |
| virtual void | shiftRows_CorrectMap (int row, int shift, int &info, std::map< int, int > &ValIdxMap) |
Public Member Functions inherited from DoubleStorage | |
| DoubleStorage () | |
| virtual | ~DoubleStorage () |
Public Member Functions inherited from IotrRefCount | |
| int | refs () |
| IotrRefCount () | |
Public Attributes | |
| int | m |
| int | n |
| int | len |
| int * | jcolM |
| int * | krowM |
| double * | M |
| double * | additiveDiag |
Static Public Attributes | |
| static int | instances = 0 |
Static Public Attributes inherited from IotrRefCount | |
| static int | instances = 0 |
Protected Attributes | |
| int | neverDeleteElts |
Additional Inherited Members | |
Static Public Member Functions inherited from IotrRefCount | |
| static void | release (IotrRefCount **obj) |
| static void | addRef (IotrRefCount *const *obj) |
Protected Member Functions inherited from IotrRefCount | |
| virtual | ~IotrRefCount () |
A class for managing the matrix elements used by sparse matrices.
| SparseStorage::SparseStorage | ( | int | m_, |
| int | n_, | ||
| int | len_ | ||
| ) |
| SparseStorage::SparseStorage | ( | int | m_, |
| int | n_, | ||
| int | len_, | ||
| int * | krowM_, | ||
| int * | jcolM_, | ||
| double * | M_, | ||
| int | deleteElts = 0, |
||
| double * | additiveDiag_ = NULL |
||
| ) |
|
virtual |
|
virtual |
|
virtual |
Implements DoubleStorage.
|
virtual |
Implements DoubleStorage.
|
virtual |
|
virtual |
Implements DoubleStorage.
|
virtual |
|
inline |
|
virtual |
Implements DoubleStorage.
|
virtual |
Reimplemented from DoubleStorage.
|
virtual |
|
virtual |
| void SparseStorage::dump | ( | const std::string & | _filename | ) |
|
virtual |
| void SparseStorage::fromGetColBlock | ( | int | col, |
| double * | A, | ||
| int | lda, | ||
| int | colExtent, | ||
| bool & | allzero | ||
| ) |
| void SparseStorage::fromGetColBlock | ( | int | col, |
| double * | A, | ||
| int | lda, | ||
| int | colExtent, | ||
| int * | colSparsity, | ||
| bool & | allzero | ||
| ) |
|
virtual |
for( jcurrent++; jcurrent < n; jcurrent++ ) {
Implements DoubleStorage.
|
virtual |
for( jcurrent++; jcurrent < n; jcurrent++ ) {
|
virtual |
Implements DoubleStorage.
|
virtual |
Implements DoubleStorage.
|
virtual |
|
virtual |
Implements DoubleStorage.
|
virtual |
|
virtual |
Implements DoubleStorage.
|
virtual |
|
inline |
| void SparseStorage::matTransDinvMultMat | ( | double * | d, |
| int * | krowMt, | ||
| int * | jcolMt, | ||
| double * | dMt, | ||
| int * | krowMtM, | ||
| int * | jcolMtM, | ||
| double * | dMtM | ||
| ) |
| void SparseStorage::matTransDMultMat | ( | double * | d, |
| int * | krowMt, | ||
| int * | jcolMt, | ||
| double * | dMt, | ||
| int * | krowMtM, | ||
| int * | jcolMtM, | ||
| double * | dMtM | ||
| ) |
Numerical multiplication MtM = M^T * D * M where D=diag(d) is a diagonal matrix and M=this. M^T and MtM buffers should be allocated before calling this method by calling method matTransDSymbMultMat.
| void SparseStorage::matTransDSymbMultMat | ( | double * | d, |
| int * | krowMt, | ||
| int * | jcolMt, | ||
| double * | dMt, | ||
| int ** | krowMtM, | ||
| int ** | jcolMtM, | ||
| double ** | dMtM | ||
| ) |
Computes the sparsity pattern of MtM = M^T * D * M where D=diag(d) is a diagonal matrix and M=this.
Find the nonzero pattern of the product matrix, allocate it and returns it.
Also allocates, builds and returns this^T since it is needed later for numerical multiplication.
|
virtual |
|
inline |
|
virtual |
|
virtual |
| void SparseStorage::reduceToLower | ( | ) |
|
inline |
|
virtual |
Implements DoubleStorage.
|
virtual |
Implements DoubleStorage.
|
virtual |
|
virtual |
Implements DoubleStorage.
| void SparseStorage::shiftRows | ( | int | row, |
| int | shift, | ||
| int & | info | ||
| ) |
|
virtual |
|
virtual |
Implements DoubleStorage.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
| void SparseStorage::transMultLower | ( | double | beta, |
| double | y[], | ||
| double | alpha, | ||
| double | x[], | ||
| int | firstrow | ||
| ) |
| void SparseStorage::transMultMat | ( | double | beta, |
| double * | Y, | ||
| int | ny, | ||
| int | ldy, | ||
| double | alpha, | ||
| double * | X, | ||
| int | ldx | ||
| ) |
| void SparseStorage::transMultMatLower | ( | double * | Y, |
| int | ny, | ||
| int | firstrow, | ||
| double | alpha, | ||
| double * | X, | ||
| int | ldx | ||
| ) |
| void SparseStorage::transMultMatLower | ( | double | beta, |
| double * | Y, | ||
| int | ny, | ||
| int | ldy, | ||
| double | alpha, | ||
| double * | X, | ||
| int | ldx, | ||
| int | colStart | ||
| ) |
Y <- alpha* M^T X + beta*Y, where M is this Special update function, computes only the elements in Y that are lower triangular elements in a larger matrix that contains Y (see impl file for more details)
| void SparseStorage::transpose | ( | int * | krowMt, |
| int * | jcolMt, | ||
| double * | dMt | ||
| ) |
Builds the transpose: Mt = this^T
| void SparseStorage::transpose_withNewIDX | ( | int * | krowMt, |
| int * | jcolMt, | ||
| double * | Mt, | ||
| int * | NewIDX | ||
| ) |
Builds the transpose: Mt = this^T, with index of new matrix : ie goff from 13 to 7, NewIDX[13]=7
| void SparseStorage::transpose_withOriIDX | ( | int * | krowMt, |
| int * | jcolMt, | ||
| double * | Mt, | ||
| int * | OriIDX | ||
| ) |
Builds the transpose: Mt = this^T, with index of original matrix: ie goff from 13 to 7, OriIDX[7]=13
|
virtual |
| double* SparseStorage::additiveDiag |
|
static |
| int* SparseStorage::jcolM |
| int* SparseStorage::krowM |
| int SparseStorage::len |
| int SparseStorage::m |
| double* SparseStorage::M |
| int SparseStorage::n |
|
protected |
1.8.11