PIPS-NLP
|
#include <StochSymMatrix.h>
Public Member Functions | |
StochSymMatrix (int id, long long global_n, int local_n, int local_nnz, MPI_Comm mpiComm) | |
StochSymMatrix (int id, long long global_n, int diag_n, int diag_nnz, int border_n, int border_nnz, MPI_Comm mpiComm_) | |
virtual | ~StochSymMatrix () |
virtual void | AddChild (StochSymMatrix *child) |
virtual int | isKindOf (int type) |
virtual void | atPutDense (int row, int col, double *A, int lda, int rowExtent, int colExtent) |
virtual void | fromGetDense (int row, int col, double *A, int lda, int rowExtent, int colExtent) |
virtual void | symAtPutSpRow (int row, double A[], int lenA, int jcolA[], int &info) |
virtual void | fsymAtPutSpRow (int row, double A[], int lenA, int jcolA[], int &info) |
virtual void | getSize (long long &m, long long &n) |
virtual void | getSize (int &m, int &n) |
virtual long long | size () |
virtual void | symAtPutSubmatrix (int destRow, int destCol, DoubleMatrix &M, int srcRow, int srcCol, int rowExtent, int colExtent) |
virtual void | fromGetSpRow (int row, int col, double A[], int lenA, int irowA[], int &nnz, int rowExtent, int &info) |
virtual void | atPutZeros (int row, int col, int rowExtent, int colExtent) |
virtual void | mult (double beta, OoqpVector &y, double alpha, OoqpVector &x) |
virtual void | transMult (double beta, OoqpVector &y, double alpha, OoqpVector &x) |
virtual double | abmaxnorm () |
virtual void | writeToStream (std::ostream &out) const |
virtual void | randomizePSD (double *seed) |
virtual void | getDiagonal (OoqpVector &vec) |
virtual void | setToDiagonal (OoqpVector &vec) |
virtual void | atPutDiagonal (int idiag, OoqpVector &v) |
virtual void | fromGetDiagonal (int idiag, OoqpVector &x) |
virtual void | putSparseTriple (int irow[], int len, int jcol[], double A[], int &info) |
virtual void | SymmetricScale (OoqpVector &vec) |
virtual void | ColumnScale (OoqpVector &vec) |
virtual void | RowScale (OoqpVector &vec) |
virtual void | scalarMult (double num) |
virtual void | copyMtxFromDouble (int copyLength, double *values) |
virtual void | copyDiagonalVal_FromcopyDiagonalVal_From (int idiag, OoqpVector &v, bool firstCall, std::map< int, int > &ValIdxMap) |
![]() | |
virtual void | symAtSetSubmatrix (int destRow, int destCol, DoubleMatrix &M, int srcRow, int srcCol, int rowExtent, int colExtent, bool firstCall, std::map< int, int > &ValIdxMap) |
![]() | |
DoubleMatrix () | |
virtual void | fromAddDense (int row, int col, double *A, int lda, int rowExtent, int colExtent) |
virtual | ~DoubleMatrix () |
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 () |
![]() | |
int | refs () |
IotrRefCount () | |
Public Attributes | |
std::vector< StochSymMatrix * > | children |
SparseSymMatrix * | diag |
SparseGenMatrix * | border |
int | id |
long long | n |
MPI_Comm | mpiComm |
int | iAmDistrib |
Protected Attributes | |
StochSymMatrix * | parent |
Additional Inherited Members | |
![]() | |
static void | release (IotrRefCount **obj) |
static void | addRef (IotrRefCount *const *obj) |
![]() | |
static int | instances = 0 |
![]() | |
virtual | ~IotrRefCount () |
StochSymMatrix::StochSymMatrix | ( | int | id, |
long long | global_n, | ||
int | local_n, | ||
int | local_nnz, | ||
MPI_Comm | mpiComm_ | ||
) |
Constructs a matrix with local size 'local_n' having 'local_nnz' local nonzeros and set the global size and the id to to 'global_n' and 'id', respectively. The parameter 'id' is used for output/debug purposes only. The created matrix will have no children.
This the constructor is usually called for the root node. In this case parent is set to NULL; the cross Hessian does not exist, so border is set up to be an empty matrix.
If it is called to create a child, the calling code should call this->AddChild(c) 'AddChild' method correctly sets the parent and (re)creates an EMPTY border with correct sizes.
StochSymMatrix::StochSymMatrix | ( | int | id, |
long long | global_n, | ||
int | diag_n, | ||
int | diag_nnz, | ||
int | border_n, | ||
int | border_nnz, | ||
MPI_Comm | mpiComm_ | ||
) |
|
virtual |
|
virtual |
the magnitude of the element in this matrix with largest absolute value.
parallel stuff needed
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Reimplemented in StochSymDummyMatrix.
|
virtual |
Reimplemented in StochSymDummyMatrix.
|
virtual |
Set some of the diagonal elements of this matrix.
idiag | the index of the first diagonal element to be modified. |
x | the new values for the diagonal elements. |
The length of x is the number of diagonal elements to be modified. Typically x will have length less than the length of the diagonal.
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Reimplemented in StochSymDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
|
virtual |
Reimplemented from DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Get the value of some of the elements of this matrix.
row | start reading the elements of this matrix from row number "row". |
col | start reading the elements of this matrix from column number "col". |
A | Any array to hold the values from this matrix. |
ldA | the leading dimension of A. |
rowExtent | get rowExtent rows from this matrix. |
colExtent | get colExtent columns from this matrix. |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Get some of the diagonal elements of this matrix.
idiag | the index of the first diagonal element to be read. |
x | a vector to hold the diagonal elements |
The length of x is the number of diagonal elements to be gotten. Typically x will have length less than the length of the diagonal.
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Get one sparse row from this matrix.
row | get row number "row" |
col | ignore all elements of the row before column "col" |
A | store the values of the sparse row in A |
lenA | the length of A |
jcolA | an array of length lenA containing the column index of each element in the sparse row |
colExtent | ignore all elements of the row that have column indices greater than or equal to col + colExtent |
info | info is 0 if and only if the sparse row can fit into A. |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Reimplemented in StochSymDummyMatrix.
|
virtual |
Place the diagonal elements of this matrix in the vector vec
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
True if this matrix identifies itself to be of type matrixType.
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
y = beta * y + alpha * this * x
[ Q0*x0+ sum(Ri^T*xi) ] [ . ]
this * x =[ . ] [ . ] [ Ri*x0 + Qi*xi ]
Here Qi are diagonal blocks, Ri are left bordering blocks
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Copy elements from sparse triple format into this matrix
len | the number of elements |
irow | an array containing the row number of the elements |
jcol | an array containing the column number of the elements |
A | an array containing the values for the elements. |
info | on return, info will be zero if and only if the insertion was successful. |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Randomize the elements of this matrix in a manner that makes the matrix positive semi-definite.
Implements SymMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Set the matrix to the diagoanl matrix whose diagonal is vec
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
|
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.
Implements SymMatrix.
Reimplemented in StochSymDummyMatrix.
|
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.
destRow | The top row of the submatrix of M is placed at destRow. |
destCol | The leftmost column of the submatrix of M is placed at destCol. |
srcRow | The first row of the submatrix of M is srcRow. |
srcCol | The first column of the submatrix of M is srcCol. |
rowExtent | rowExtent rows are copied from M. |
colExtent | colExtent columns are copied from M. |
Implements SymMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
Get the number of rows and columns in the matrix
m | the number of rows |
n | the number of columns |
Implements DoubleMatrix.
Reimplemented in StochSymDummyMatrix.
|
virtual |
|
virtual |
SparseGenMatrix* StochSymMatrix::border |
std::vector<StochSymMatrix*> StochSymMatrix::children |
SparseSymMatrix* StochSymMatrix::diag |
int StochSymMatrix::iAmDistrib |
int StochSymMatrix::id |
MPI_Comm StochSymMatrix::mpiComm |
long long StochSymMatrix::n |
|
protected |