Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

SparseGenMatrix Class Reference
[SparseLinearAlgebra]

#include <SparseGenMatrix.h>

Inheritance diagram for SparseGenMatrix:

GenMatrix DoubleMatrix IotrRefCount List of all members.

Public Member Functions

 SparseGenMatrix (int rows, int cols, int nnz)
 SparseGenMatrix (int rows, int cols, int nnz, int krowM[], int jcolM[], double M[])
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 transMult (double beta, OoqpVector &y, double alpha, OoqpVector &x)
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 ()
int * krowM ()
int * jcolM ()
double * M ()

Protected Attributes

SparseStorageHandle mStorage
int size

Detailed Description

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


Member Function Documentation

virtual double SparseGenMatrix::abmaxnorm  )  [virtual]
 

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

Implements DoubleMatrix.

virtual void SparseGenMatrix::atPutDense int  row,
int  col,
double *  A,
int  lda,
int  rowExtent,
int  colExtent
[virtual]
 

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

See also:
DoubleMatrix::fromGetDense

Implements GenMatrix.

virtual void SparseGenMatrix::atPutDiagonal int  idiag,
OoqpVector v
[virtual]
 

Set some of the diagonal elements of this matrix.

Parameters:
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.

virtual void SparseGenMatrix::atPutSpRow int  col,
double  A[],
int  lenA,
int  jcolA[],
int &  info
[virtual]
 

Put a sparse row into this matrix.

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

See also:
DoubleMatrix::fromGetSpRow

Implements GenMatrix.

virtual void SparseGenMatrix::atPutSubmatrix int  destRow,
int  destCol,
DoubleMatrix M,
int  srcRow,
int  srcCol,
int  rowExtent,
int  colExtent
[virtual]
 

Put a submatrix of M into this matrix.

Parameters:
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.

virtual void SparseGenMatrix::fromGetDense int  row,
int  col,
double *  A,
int  lda,
int  rowExtent,
int  colExtent
[virtual]
 

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

Parameters:
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.

virtual void SparseGenMatrix::fromGetDiagonal int  idiag,
OoqpVector v
[virtual]
 

Get some of the diagonal elements of this matrix.

Parameters:
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.

virtual void SparseGenMatrix::fromGetSpRow int  row,
int  col,
double  A[],
int  lenA,
int  jcolA[],
int &  nnz,
int  colExtent,
int &  info
[virtual]
 

Get one sparse row from this matrix.

Parameters:
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.

virtual void SparseGenMatrix::getDiagonal OoqpVector vec  )  [virtual]
 

Place the diagonal elements of this matrix in the vector vec

Implements DoubleMatrix.

virtual int SparseGenMatrix::isKindOf int  matType  )  [virtual]
 

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

Implements DoubleMatrix.

virtual void SparseGenMatrix::mult double  beta,
OoqpVector y,
double  alpha,
OoqpVector x
[virtual]
 

y = beta * y + alpha * this * x

Implements DoubleMatrix.

virtual int SparseGenMatrix::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.

virtual void SparseGenMatrix::putSparseTriple int  irow[],
int  len,
int  jcol[],
double  A[],
int &  info
[virtual]
 

Copy elements from sparse triple format into this matrix

Parameters:
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.

virtual void SparseGenMatrix::randomize double  alpha,
double  beta,
double *  seed
[virtual]
 

Fill this matrix with random elements.

Parameters:
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.

virtual void SparseGenMatrix::setToDiagonal OoqpVector vec  )  [virtual]
 

Set the matrix to the diagoanl matrix whose diagonal is vec

Implements DoubleMatrix.

virtual void SparseGenMatrix::SymmetricScale OoqpVector vec  )  [virtual]
 

Get the number of rows and columns in the matrix

Parameters:
m the number of rows
n the number of columns

Implements DoubleMatrix.

virtual void SparseGenMatrix::symmetrize int &  info  )  [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.

Parameters:
info zero if the operation succeeded. Otherwise, insufficient space was allocated to symmetrize the matrix.

virtual void SparseGenMatrix::transMult double  beta,
OoqpVector y,
double  alpha,
OoqpVector x
[virtual]
 

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

Implements DoubleMatrix.

virtual void SparseGenMatrix::writeToStream ostream &  out  )  const [virtual]
 

Write this element to a C++ stream

Implements DoubleMatrix.


The documentation for this class was generated from the following file:
Generated on Wed Mar 22 13:58:35 2006 for OOQP by doxygen 1.3.5