PIPS-NLP
Public Member Functions | List of all members
SymMatrix Class Referenceabstract

#include <DoubleMatrix.h>

Inheritance diagram for SymMatrix:
DoubleMatrix IotrRefCount DenseSymMatrix PetscSpSymMatrix SparseSymMatrix StochSymMatrix StochSymDummyMatrix

Public Member Functions

virtual void symAtPutSubmatrix (int destRow, int destCol, DoubleMatrix &M, int srcRow, int srcCol, int rowExtent, int colExtent)=0
 
virtual void randomizePSD (double *seed)=0
 
virtual void symAtPutSpRow (int col, double A[], int lenA, int irowA[], int &info)=0
 
virtual long long size ()=0
 
virtual void symAtSetSubmatrix (int destRow, int destCol, DoubleMatrix &M, int srcRow, int srcCol, int rowExtent, int colExtent, bool firstCall, std::map< int, int > &ValIdxMap)
 
- Public Member Functions inherited from DoubleMatrix
 DoubleMatrix ()
 
virtual int isKindOf (int matrixType)=0
 
virtual void fromGetDense (int row, int col, double *A, int lda, int rowExtent, int colExtent)=0
 
virtual void fromAddDense (int row, int col, double *A, int lda, int rowExtent, int colExtent)
 
virtual void fromGetSpRow (int row, int col, double A[], int lenA, int jcolA[], int &nnz, int colExtent, int &info)=0
 
virtual void putSparseTriple (int irow[], int len, int jcol[], double A[], int &info)=0
 
virtual void mult (double beta, OoqpVector &y, double alpha, OoqpVector &x)=0
 
virtual void transMult (double beta, OoqpVector &y, double alpha, OoqpVector &x)=0
 
virtual double abmaxnorm ()=0
 
virtual void writeToStream (std::ostream &out) const =0
 
virtual void getDiagonal (OoqpVector &vec)=0
 
virtual void setToDiagonal (OoqpVector &vec)=0
 
virtual void atPutDiagonal (int idiag, OoqpVector &x)=0
 
virtual void fromGetDiagonal (int idiag, OoqpVector &x)=0
 
virtual void SymmetricScale (OoqpVector &vec)=0
 
virtual void ColumnScale (OoqpVector &vec)=0
 
virtual void RowScale (OoqpVector &vec)=0
 
virtual void scalarMult (double num)=0
 
virtual void getSize (long long &m, long long &n)=0
 
virtual void getSize (int &m, int &n)=0
 
virtual ~DoubleMatrix ()
 
virtual void copyMtxFromDouble (int copyLength, double *values)
 
virtual void setAdditiveDiagonal (OoqpVector &additiveDiag_)
 
virtual void copyDiagonalVal_From (int idiag, OoqpVector &x, bool firstCall, std::map< int, int > &ValIdxMap)
 
virtual void fromGetSpRow_WithRowStart (int row, int col, double A[], int lenA, int jcolA[], int &nnz, int colExtent, 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 double * getMatVal ()
 
virtual int * krowM ()
 
virtual int * jcolM ()
 
virtual double * M ()
 
- Public Member Functions inherited from IotrRefCount
int refs ()
 
 IotrRefCount ()
 

Additional Inherited Members

- Static Public Member Functions inherited from IotrRefCount
static void release (IotrRefCount **obj)
 
static void addRef (IotrRefCount *const *obj)
 
- Static Public Attributes inherited from IotrRefCount
static int instances = 0
 
- Protected Member Functions inherited from IotrRefCount
virtual ~IotrRefCount ()
 

Detailed Description

Parent of all Symmetric matrices.

Member Function Documentation

virtual void SymMatrix::randomizePSD ( double *  seed)
pure virtual

Randomize the elements of this matrix in a manner that makes the matrix positive semi-definite.

Implemented in StochSymDummyMatrix, StochSymMatrix, SparseSymMatrix, PetscSpSymMatrix, and DenseSymMatrix.

virtual long long SymMatrix::size ( )
pure virtual

the size of this square matrix

Implemented in StochSymDummyMatrix, DenseSymMatrix, StochSymMatrix, SparseSymMatrix, and PetscSpSymMatrix.

virtual void SymMatrix::symAtPutSpRow ( int  col,
double  A[],
int  lenA,
int  irowA[],
int &  info 
)
pure virtual

Put a sparse row into this matrix symmetrically.

Elements of the row that would lie above the diagonal are ignored. The matrix is symmetrized by reflection across the diagonal.

The meaning of the parmameters is the same as in fromGetSpRow.

See also
DoubleMatrix::fromGetSpRow

Implemented in StochSymDummyMatrix, DenseSymMatrix, StochSymMatrix, SparseSymMatrix, and PetscSpSymMatrix.

virtual void SymMatrix::symAtPutSubmatrix ( int  destRow,
int  destCol,
DoubleMatrix M,
int  srcRow,
int  srcCol,
int  rowExtent,
int  colExtent 
)
pure virtual

Put a submatrix of M into this matrix.

The submatrix is placed into this matrix in a manner that preserves the symmetry of this matrix. The element of M whose destination is in the lower triangle of this matrix are placed there without change, and the upper triangle is taken to be the reflection across the diagonal.

Parameters
destRowThe top row of the submatrix of M is placed at destRow.
destColThe leftmost column of the submatrix of M is placed at destCol.
srcRowThe first row of the submatrix of M is srcRow.
srcColThe first column of the submatrix of M is srcCol.
rowExtentrowExtent rows are copied from M.
colExtentcolExtent columns are copied from M.

Implemented in StochSymDummyMatrix, DenseSymMatrix, StochSymMatrix, SparseSymMatrix, and PetscSpSymMatrix.

virtual void SymMatrix::symAtSetSubmatrix ( int  destRow,
int  destCol,
DoubleMatrix M,
int  srcRow,
int  srcCol,
int  rowExtent,
int  colExtent,
bool  firstCall,
std::map< int, int > &  ValIdxMap 
)
inlinevirtual

set sub matrix symmetrically (val only).

Reimplemented in DenseSymMatrix, and SparseSymMatrix.


The documentation for this class was generated from the following file: