PIPS-NLP
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
SeqSparseGenMatrix Class Reference

#include <SeqSparseGenMatrix.h>

Inheritance diagram for SeqSparseGenMatrix:
SparseGenMatrix GenMatrix DoubleMatrix IotrRefCount

Public Member Functions

 SeqSparseGenMatrix (int id_in, int rows, int cols, int nnz, MPI_Comm mpiComm_, multiStageInputTree *in_)
 
 SeqSparseGenMatrix (int id_in, int rows, int cols, int nnz, sTreeMultiStage *tree_in, MPI_Comm mpiComm_, multiStageInputTree *in_)
 
 ~SeqSparseGenMatrix ()
 
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, double y[], int incy, double alpha, double x[], int incx)
 
virtual void transMult (double beta, OoqpVector &y, double alpha, OoqpVector &x)
 
virtual void transMult (double beta, OoqpVector &y_in, int incy, double alpha, OoqpVector &x_in, int incx)
 
virtual void transMult (double beta, double y_in[], int incy, double alpha, double x_in[], int incx)
 
virtual void matTransDMultMat (OoqpVector &d, SymMatrix **res)
 
virtual void matTransDinvMultMat (OoqpVector &d, SymMatrix **res)
 
virtual void matMultTrans (SymMatrix **res)
 
virtual double abmaxnorm ()
 
virtual void writeToStream (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)
 
SparseStoragegetStorage ()
 
SparseStoragegetStorageRef ()
 
int * krowM ()
 
int * jcolM ()
 
double * M ()
 
virtual void copyMtxFromDouble (int copyLength, double *values)
 
virtual void setAdditiveDiagonal (OoqpVector &diag)
 
virtual void fromGetSpRow_WithRowStart (int row, int col, double A[], int lenA, int jcolA[], int &nnz, int colExtent, int &info, int &rowStart)
 
virtual double * getMatVal ()
 
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 printMatrixInMatlab (char *name)
 
virtual void mult (double beta, StochVector &y, double alpha, StochVector &x)
 
virtual void transMult (double beta, StochVector &y, double alpha, StochVector &x)
 
virtual void transMult (const int setA, double beta, StochVector &y, double alpha, StochVector &x, StochVector *End_Par_Pos)
 
virtual void addtransMultAtTarget (const int setA, double alpha, StochVector &x_, SimpleVector *goal_Par)
 
void AddParent (SeqSparseGenMatrix *parent_)
 
- Public Member Functions inherited from SparseGenMatrix
 SparseGenMatrix ()
 
 SparseGenMatrix (int rows, int cols, int nnz)
 
 SparseGenMatrix (int rows, int cols, int nnz, int krowM[], int jcolM[], double M[], int deleteElts=0)
 
virtual void getSize (long long &m, long long &n)
 
virtual void getSize (int &m, int &n)
 
virtual void fromAddDense (int row, int col, double *A, int lda, int rowExtent, int colExtent)
 
virtual void writeToStream (std::ostream &out) const
 
virtual int * symmetrize_set (int &info)
 
virtual void symmetrize_valonly (double *val_lower, int *goffIDX)
 
SparseStoragegetStorage ()
 
SparseStoragegetStorageRef ()
 
virtual ~SparseGenMatrix ()
 
virtual void transCopyof (SparseGenMatrix &from)
 
- Public Member Functions inherited from DoubleMatrix
 DoubleMatrix ()
 
virtual ~DoubleMatrix ()
 
virtual void copyDiagonalVal_From (int idiag, OoqpVector &x, bool firstCall, std::map< int, int > &ValIdxMap)
 
- Public Member Functions inherited from IotrRefCount
int refs ()
 
 IotrRefCount ()
 

Public Attributes

int id
 
MPI_Comm mpiComm
 
SeqSparseGenMatrixparent
 
SeqSparseGenMatrixchild
 
std::vector< SeqSparseGenMatrix * > parents
 
bool parentIsEmpty
 

Protected Member Functions

virtual bool checkIfParentEmpty ()
 
- Protected Member Functions inherited from IotrRefCount
virtual ~IotrRefCount ()
 

Protected Attributes

int size
 
sTreeMultiStage * currTree
 
int iAmDistrib
 
bool isEmpty
 
SparseGenMatrixm_Mt
 
multiStageInputTree * in
 
- Protected Attributes inherited from SparseGenMatrix
SparseStorageHandle mStorage
 
int size
 
SparseGenMatrixm_Mt
 

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
 

Detailed Description

Represents sparse non-symmetric, possibly non-square matrices stored in row-major Harwell-Boeing format.

Constructor & Destructor Documentation

SeqSparseGenMatrix::SeqSparseGenMatrix ( int  id_in,
int  rows,
int  cols,
int  nnz,
MPI_Comm  mpiComm_,
multiStageInputTree *  in_ 
)
SeqSparseGenMatrix::SeqSparseGenMatrix ( int  id_in,
int  rows,
int  cols,
int  nnz,
sTreeMultiStage *  tree_in,
MPI_Comm  mpiComm_,
multiStageInputTree *  in_ 
)
SeqSparseGenMatrix::~SeqSparseGenMatrix ( )

Member Function Documentation

double SeqSparseGenMatrix::abmaxnorm ( )
virtual

the magnitude of the element in this matrix with largest absolute value.

Reimplemented from SparseGenMatrix.

void SeqSparseGenMatrix::AddParent ( SeqSparseGenMatrix parent_)
void SeqSparseGenMatrix::addtransMultAtTarget ( const int  setA,
double  alpha,
StochVector x_,
SimpleVector goal_Par 
)
virtual
virtual void SeqSparseGenMatrix::atPutDense ( int  row,
int  col,
double *  A,
int  lda,
int  rowExtent,
int  colExtent 
)
inlinevirtual

Set the value of some of the elements of this matrix.

See also
DoubleMatrix::fromGetDense

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::atPutDiagonal ( int  idiag,
OoqpVector x 
)
inlinevirtual

Set some of the diagonal elements of this matrix.

Parameters
idiagthe index of the first diagonal element to be modified.
xthe 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.

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::atPutSpRow ( int  col,
double  A[],
int  lenA,
int  jcolA[],
int &  info 
)
inlinevirtual

Put a sparse row into this matrix.

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

See also
DoubleMatrix::fromGetSpRow

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::atPutSubmatrix ( int  destRow,
int  destCol,
DoubleMatrix M,
int  srcRow,
int  srcCol,
int  rowExtent,
int  colExtent 
)
inlinevirtual

Put a submatrix of M into this matrix.

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.

Reimplemented from SparseGenMatrix.

bool SeqSparseGenMatrix::checkIfParentEmpty ( )
protectedvirtual
virtual void SeqSparseGenMatrix::ColumnScale ( OoqpVector vec)
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::copyMtxFromDouble ( int  copyLength,
double *  values 
)
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::fromGetDense ( int  row,
int  col,
double *  A,
int  lda,
int  rowExtent,
int  colExtent 
)
inlinevirtual

Get the value of some of the elements of this matrix.

Parameters
rowstart reading the elements of this matrix from row number "row".
colstart reading the elements of this matrix from column number "col".
AAny array to hold the values from this matrix.
ldAthe leading dimension of A.
rowExtentget rowExtent rows from this matrix.
colExtentget colExtent columns from this matrix.

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::fromGetDense_withMap ( int  row,
int  col,
double *  A,
int  lda,
int  rowExtent,
int  colExtent,
int const  FirstCall,
std::map< int, int > &  ValIdxMap 
)
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::fromGetDiagonal ( int  idiag,
OoqpVector x 
)
inlinevirtual

Get some of the diagonal elements of this matrix.

Parameters
idiagthe index of the first diagonal element to be read.
xa 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.

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::fromGetSpRow ( int  row,
int  col,
double  A[],
int  lenA,
int  jcolA[],
int &  nnz,
int  colExtent,
int &  info 
)
inlinevirtual

Get one sparse row from this matrix.

Parameters
rowget row number "row"
colignore all elements of the row before column "col"
Astore the values of the sparse row in A
lenAthe length of A
jcolAan array of length lenA containing the column index of each element in the sparse row
colExtentignore all elements of the row that have column indices greater than or equal to col + colExtent
infoinfo is 0 if and only if the sparse row can fit into A.

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::fromGetSpRow_WithRowStart ( int  row,
int  col,
double  A[],
int  lenA,
int  jcolA[],
int &  nnz,
int  colExtent,
int &  info,
int &  rowStart 
)
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::getDiagonal ( OoqpVector vec)
inlinevirtual

Place the diagonal elements of this matrix in the vector vec

Reimplemented from SparseGenMatrix.

virtual double* SeqSparseGenMatrix::getMatVal ( )
inlinevirtual

Reimplemented from SparseGenMatrix.

SparseStorage* SeqSparseGenMatrix::getStorage ( )
inline
SparseStorage& SeqSparseGenMatrix::getStorageRef ( )
inline
int SeqSparseGenMatrix::isKindOf ( int  matrixType)
virtual

True if this matrix identifies itself to be of type matrixType.

Reimplemented from SparseGenMatrix.

int* SeqSparseGenMatrix::jcolM ( )
inlinevirtual

Reimplemented from SparseGenMatrix.

int* SeqSparseGenMatrix::krowM ( )
inlinevirtual

Reimplemented from SparseGenMatrix.

double* SeqSparseGenMatrix::M ( )
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::matMultTrans ( SymMatrix **  res)
inlinevirtual

C = this * this^T

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::matTransDinvMultMat ( OoqpVector d,
SymMatrix **  res 
)
inlinevirtual

C = this^T * inv(D) * this where D=diag(d) is a diagonal matrix.

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::matTransDMultMat ( OoqpVector d,
SymMatrix **  res 
)
inlinevirtual

C = this^T * D * this where D=diag(d) is a diagonal matrix.

Reimplemented from SparseGenMatrix.

void SeqSparseGenMatrix::mult ( double  beta,
OoqpVector y,
double  alpha,
OoqpVector x 
)
virtual

y = beta * y + alpha * this * x

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::mult ( double  beta,
double  y[],
int  incy,
double  alpha,
double  x[],
int  incx 
)
inlinevirtual

Reimplemented from SparseGenMatrix.

void SeqSparseGenMatrix::mult ( double  beta,
StochVector y,
double  alpha,
StochVector x 
)
virtual
int SeqSparseGenMatrix::numberOfNonZeros ( )
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 from SparseGenMatrix.

virtual void SeqSparseGenMatrix::printMatrixInMatlab ( char *  name)
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::putSparseTriple ( int  irow[],
int  len,
int  jcol[],
double  A[],
int &  info 
)
inlinevirtual

Copy elements from sparse triple format into this matrix

Parameters
lenthe number of elements
irowan array containing the row number of the elements
jcolan array containing the column number of the elements
Aan array containing the values for the elements.
infoon return, info will be zero if and only if the insertion was successful.

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::randomize ( double  alpha,
double  beta,
double *  seed 
)
inlinevirtual

Fill this matrix with random elements.

Parameters
alphathe elements will be no smaller than alpha.
betathe elements will be no larger than beta.
seeda arbitrary number used to seed the random number generator.

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::RowScale ( OoqpVector vec)
inlinevirtual

Reimplemented from SparseGenMatrix.

void SeqSparseGenMatrix::scalarMult ( double  num)
virtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::setAdditiveDiagonal ( OoqpVector diag)
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::setToDiagonal ( OoqpVector vec)
inlinevirtual

Set the matrix to the diagoanl matrix whose diagonal is vec

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::SymmetricScale ( OoqpVector vec)
inlinevirtual

Get the number of rows and columns in the matrix

Parameters
mthe number of rows
nthe number of columns

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::symmetrize ( int &  info)
inlinevirtual

Make the elements in this matrix symmetric. The elements of interest must be in the lower triangle, and the upper triangle must be empty.

Parameters
infozero if the operation succeeded. Otherwise, insufficient space was allocated to symmetrize the matrix.

Reimplemented from SparseGenMatrix.

void SeqSparseGenMatrix::transMult ( double  beta,
OoqpVector y,
double  alpha,
OoqpVector x 
)
virtual

y = beta * y + alpha * this^T * x

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::transMult ( double  beta,
OoqpVector y_in,
int  incy,
double  alpha,
OoqpVector x_in,
int  incx 
)
inlinevirtual

Reimplemented from SparseGenMatrix.

virtual void SeqSparseGenMatrix::transMult ( double  beta,
double  y_in[],
int  incy,
double  alpha,
double  x_in[],
int  incx 
)
inlinevirtual

Reimplemented from SparseGenMatrix.

void SeqSparseGenMatrix::transMult ( double  beta,
StochVector y,
double  alpha,
StochVector x 
)
virtual
void SeqSparseGenMatrix::transMult ( const int  setA,
double  beta,
StochVector y,
double  alpha,
StochVector x,
StochVector End_Par_Pos 
)
virtual
virtual void SeqSparseGenMatrix::writeToStream ( ostream &  out) const
inlinevirtual

Member Data Documentation

SeqSparseGenMatrix* SeqSparseGenMatrix::child
sTreeMultiStage* SeqSparseGenMatrix::currTree
protected
int SeqSparseGenMatrix::iAmDistrib
protected
int SeqSparseGenMatrix::id
multiStageInputTree* SeqSparseGenMatrix::in
protected
bool SeqSparseGenMatrix::isEmpty
protected
SparseGenMatrix* SeqSparseGenMatrix::m_Mt
protected
MPI_Comm SeqSparseGenMatrix::mpiComm
SeqSparseGenMatrix* SeqSparseGenMatrix::parent
bool SeqSparseGenMatrix::parentIsEmpty
std::vector<SeqSparseGenMatrix*> SeqSparseGenMatrix::parents
int SeqSparseGenMatrix::size
protected

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