PIPS-NLP
|
#include <StochGenMatrix.h>
Public Member Functions | |
StochGenMatrix () | |
StochGenMatrix (int id, long long global_m, long long global_n, int A_m, int A_n, int A_nnz, int B_m, int B_n, int B_nnz, MPI_Comm mpiComm_, int C_m=0, int C_n=0, int C_nnz=0) | |
virtual | ~StochGenMatrix () |
virtual void | AddChild (StochGenMatrix *child) |
virtual void | getSize (long long &m, long long &n) |
virtual void | getSize (int &m, int &n) |
virtual int | numberOfNonZeros () |
virtual int | isKindOf (int matType) |
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 | ColumnScale (OoqpVector &vec) |
virtual void | RowScale (OoqpVector &vec) |
virtual void | SymmetricScale (OoqpVector &vec) |
virtual void | scalarMult (double num) |
virtual void | fromGetSpRow (int row, int col, double A[], int lenA, int jcolA[], int &nnz, int colExtent, int &info) |
virtual void | atPutSubmatrix (int destRow, int destCol, DoubleMatrix &M, int srcRow, int srcCol, int rowExtent, int colExtent) |
virtual void | atPutSpRow (int col, double A[], int lenA, int jcolA[], int &info) |
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 | mult (double beta, OoqpVector &y, double alpha, OoqpVector &x) |
virtual void | mult (double beta, OoqpVector &y, double alpha, OoqpVector &x, OoqpVector &yvecParent) |
virtual void | transMult (double beta, OoqpVector &y, double alpha, OoqpVector &x) |
virtual double | abmaxnorm () |
virtual void | writeToStream (std::ostream &out) const |
virtual void | symmetrize (int &info) |
virtual void | randomize (double alpha, double beta, double *seed) |
virtual void | atPutDiagonal (int idiag, OoqpVector &v) |
virtual void | fromGetDiagonal (int idiag, OoqpVector &v) |
void | matTransDMultMat (OoqpVector &d, SymMatrix **res) |
void | matTransDinvMultMat (OoqpVector &d, SymMatrix **res) |
virtual void | copyMtxFromDouble (int copyLength, double *values) |
virtual void | setAdditiveDiagonal (OoqpVector &v) |
![]() | |
DoubleMatrix () | |
virtual void | fromAddDense (int row, int col, double *A, int lda, int rowExtent, int colExtent) |
virtual | ~DoubleMatrix () |
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< StochGenMatrix * > | children |
SparseGenMatrix * | Amat |
SparseGenMatrix * | Bmat |
SparseGenMatrix * | Cmat |
int | id |
long long | m |
long long | n |
MPI_Comm | mpiComm |
int | iAmDistrib |
Private Member Functions | |
OoqpVector * | getWorkPrimalVec (const StochVector &origin) |
virtual void | transMult2 (double beta, StochVector &y, double alpha, StochVector &x, OoqpVector &yvecParent) |
virtual void | transMult2 (double beta, StochVector &y, double alpha, StochVector &x, OoqpVector &yvecParent, OoqpVector &xCvecParent) |
Private Attributes | |
OoqpVector * | workPrimalVec |
Additional Inherited Members | |
![]() | |
static void | release (IotrRefCount **obj) |
static void | addRef (IotrRefCount *const *obj) |
![]() | |
static int | instances = 0 |
![]() | |
virtual | ~IotrRefCount () |
|
inline |
StochGenMatrix::StochGenMatrix | ( | int | id, |
long long | global_m, | ||
long long | global_n, | ||
int | A_m, | ||
int | A_n, | ||
int | A_nnz, | ||
int | B_m, | ||
int | B_n, | ||
int | B_nnz, | ||
MPI_Comm | mpiComm_, | ||
int | C_m = 0 , |
||
int | C_n = 0 , |
||
int | C_nnz = 0 |
||
) |
Constructs a matrix having local A and B blocks having the sizes and number of nz specified by A_m, A_n, A_nnz and B_m, B_n, B_nnz. Also sets the global sizes to 'global_m' and 'global_n'. The 'id' parameter is used for output/debug purposes only. The matrix that will be created has no children, just local data.
|
virtual |
|
virtual |
the magnitude of the element in this matrix with largest absolute value.
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Reimplemented in StochGenDummyMatrix.
|
virtual |
Set the value of some of the elements of this matrix.
Implements GenMatrix.
Reimplemented in StochGenDummyMatrix.
|
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 StochGenDummyMatrix.
|
virtual |
Put a sparse row into this matrix.
The meaning of the parmameters is the same as in fromGetSpRow.
Implements GenMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Put a submatrix of M into this matrix.
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 GenMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
inlinevirtual |
Reimplemented from DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
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 StochGenDummyMatrix.
|
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 StochGenDummyMatrix.
|
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 StochGenDummyMatrix.
|
virtual |
Place the diagonal elements of this matrix in the vector vec
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
private |
|
virtual |
True if this matrix identifies itself to be of type matrixType.
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
C = this^T * inv(D) * this where D=diag(d) is a diagonal matrix.
Implements GenMatrix.
|
virtual |
C = this^T * D * this where D=diag(d) is a diagonal matrix.
Implements GenMatrix.
|
virtual |
|
virtual |
Reimplemented in StochGenDummyMatrix.
|
virtual |
The actual number of structural non-zero elements in this sparse matrix. This includes so-called "accidental" zeros, elements that are treated as non-zero even though their value happens to be zero.
Reimplemented in StochGenDummyMatrix.
|
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 StochGenDummyMatrix.
|
virtual |
Fill this matrix with random elements.
alpha | the elements will be no smaller than alpha. |
beta | the elements will be no larger than beta. |
seed | a arbitrary number used to seed the random number generator. |
Implements GenMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Reimplemented from DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
virtual |
Set the matrix to the diagoanl matrix whose diagonal is vec
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
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 StochGenDummyMatrix.
|
virtual |
Make the elements in this matrix symmetric. The elements of interest must be in the lower triangle, and the upper triangle must be empty.
info | zero if the operation succeeded. Otherwise, insufficient space was allocated to symmetrize the matrix. |
Reimplemented in StochGenDummyMatrix.
|
virtual |
y = beta * y + alpha * this^T * x
opt alloc buffer here and send it through the tree to be used by children when MPI_Allreduce
Implements DoubleMatrix.
Reimplemented in StochGenDummyMatrix.
|
privatevirtual |
Reimplemented in StochGenDummyMatrix.
|
privatevirtual |
Reimplemented in StochGenDummyMatrix.
|
virtual |
SparseGenMatrix* StochGenMatrix::Amat |
SparseGenMatrix* StochGenMatrix::Bmat |
std::vector<StochGenMatrix*> StochGenMatrix::children |
SparseGenMatrix* StochGenMatrix::Cmat |
int StochGenMatrix::iAmDistrib |
int StochGenMatrix::id |
long long StochGenMatrix::m |
MPI_Comm StochGenMatrix::mpiComm |
long long StochGenMatrix::n |
|
private |