Row-major sparse-matrix class. More...
#include <Matrix_Sparse.hxx>
Public Types | |
typedef Allocator::value_type | value_type |
typedef Prop | property |
typedef RowSparse | storage |
typedef Allocator | allocator |
typedef Allocator::pointer | pointer |
typedef Allocator::const_pointer | const_pointer |
typedef Allocator::reference | reference |
typedef Allocator::const_reference | const_reference |
typedef SeldonDefaultAllocator< VectFull, int >::allocator | AllocatorInt |
typedef SeldonDefaultAllocator< VectFull, long >::allocator | AllocatorLong |
typedef value_type | entry_type |
typedef value_type | access_type |
typedef value_type | const_access_type |
Public Member Functions | |
Matrix () | |
Default constructor. More... | |
Matrix (int i, int j) | |
Constructor. More... | |
Matrix (int i, int j, long nz) | |
Constructor. More... | |
template<class Storage0 , class Allocator0 , class Storage1 , class Allocator1 , class Storage2 , class Allocator2 > | |
Matrix (int i, int j, Vector< T, Storage0, Allocator0 > &values, Vector< long, Storage1, Allocator1 > &ptr, Vector< int, Storage2, Allocator2 > &ind) | |
Constructor. More... | |
void | Clear () |
Clears the matrix. More... | |
void | SetData (int i, int j, Vector< T, Storage0, Allocator0 > &values, Vector< long, Storage1, Allocator1 > &ptr, Vector< int, Storage2, Allocator2 > &ind) |
Redefines the matrix. More... | |
void | SetData (int i, int j, long nz, pointer values, long *ptr, int *ind) |
void | SetData (int i, int j, long nz, typename Matrix_Sparse< T, Prop, RowSparse, Allocator > ::pointer values, long *ptr, int *ind) |
Redefines the matrix. More... | |
void | Nullify () |
Clears the matrix without releasing memory. More... | |
void | Reallocate (int i, int j) |
Initialization of an empty sparse matrix with i rows and j columns. More... | |
void | Reallocate (int i, int j, long nz) |
Initialization of a sparse matrix with i rows and j columns. More... | |
void | Resize (int i, int j) |
Reallocates memory to resize the matrix and keeps previous entries. More... | |
void | Resize (int i, int j, long nz) |
Reallocates memory to resize the matrix and keeps previous entries. More... | |
void | Copy (const Matrix_Sparse< T, Prop, RowSparse, Allocator > &A) |
Copies a matrix. | |
long | GetNonZeros () const |
Returns the number of non-zero elements. More... | |
long | GetDataSize () const |
Returns the number of elements stored in memory. More... | |
size_t | GetMemorySize () const |
returns size of A in bytes used to store the matrix | |
long * | GetPtr () const |
Returns (row or column) start indices. More... | |
int * | GetInd () const |
Returns (row or column) indices of non-zero entries. More... | |
int | GetPtrSize () const |
Returns the length of the array of start indices. More... | |
long | GetIndSize () const |
Returns the length of the array of (column or row) indices. More... | |
void | FillPtrInt (Vector< int > &) const |
Fills vector ptr with integers instead of longs. | |
const value_type | operator() (int i, int j) const |
Access operator. More... | |
value_type & | Val (int i, int j) |
Access method. More... | |
const value_type & | Val (int i, int j) const |
Access method. More... | |
value_type & | Get (int i, int j) |
Access method. More... | |
const value_type & | Get (int i, int j) const |
Access method. More... | |
void | AddInteraction (int i, int j, const T &val) |
Add a value to a non-zero entry. More... | |
void | AddInteractionRow (int i, int nb, const Vector< int > &col, const Vector< T > &val, bool sorted=false) |
Adds values to several non-zero entries on a given row. | |
void | Set (int i, int j, const T &x) |
Sets an element (i, j) to a value. More... | |
void | SetEntry (int i, int j, const T &x) |
Sets an element (i, j) to a value. More... | |
void | Zero () |
Resets all non-zero entries to 0-value. More... | |
void | SetIdentity () |
Sets the matrix to identity. More... | |
void | Fill () |
Fills the non-zero entries with 0, 1, 2, ... More... | |
void | Fill (const T0 &x) |
Fills the non-zero entries with a given value. More... | |
void | FillRand () |
Fills the non-zero entries randomly. More... | |
void | FillRand (long Nelement) |
Fills the matrix with random elements. More... | |
void | FillRand (long Nelement, const T &x) |
Fills the matrix with one value inserted at random positions. More... | |
void | Print () const |
Displays the matrix on the standard output. More... | |
void | Write (string FileName) const |
Writes the matrix in a file. More... | |
void | Write (ostream &FileStream) const |
Writes the matrix to an output stream. More... | |
void | WriteText (string FileName, bool cplx=false) const |
Writes the matrix in a file. More... | |
void | WriteText (ostream &FileStream, bool cplx=false) const |
Writes the matrix to an output stream. More... | |
void | Read (string FileName) |
Reads the matrix from a file. More... | |
void | Read (istream &FileStream) |
Reads the matrix from an input stream. More... | |
void | ReadText (string FileName, bool cplx=false) |
Reads the matrix from a file. More... | |
void | ReadText (istream &FileStream, bool cplx=false) |
Reads the matrix from an input stream. More... | |
pointer | GetData () const |
Returns a pointer to the data array. More... | |
const_pointer | GetDataConst () const |
Returns a const pointer to the data array. More... | |
void * | GetDataVoid () const |
Returns a pointer of type "void*" to the data array. More... | |
const void * | GetDataConstVoid () const |
Returns a pointer of type "const void*" to the data array. More... | |
int | GetM () const |
Returns the number of rows. More... | |
int | GetM (const Seldon::SeldonTranspose &status) const |
Returns the number of rows of the matrix possibly transposed. More... | |
int | GetM (const CBLAS_TRANSPOSE &status) const |
Returns the number of rows of the matrix possibly transposed. More... | |
int | GetN () const |
Returns the number of columns. More... | |
int | GetN (const Seldon::SeldonTranspose &status) const |
Returns the number of columns of the matrix possibly transposed. More... | |
int | GetN (const CBLAS_TRANSPOSE &status) const |
Returns the number of columns of the matrix possibly transposed. More... | |
long | GetSize () const |
Returns the number of elements in the matrix. More... | |
Protected Attributes | |
long | nz_ |
long * | ptr_ |
int * | ind_ |
pointer | data_ |
int | m_ |
int | n_ |
Row-major sparse-matrix class.
Definition at line 223 of file Matrix_Sparse.hxx.
|
inline |
Default constructor.
Builds an empty 0x0 matrix.
Definition at line 475 of file Matrix_SparseInline.cxx.
|
inlineexplicit |
Constructor.
Builds a i by j matrix.
i | number of rows. |
j | number of columns. |
Definition at line 487 of file Matrix_SparseInline.cxx.
|
inlineexplicit |
Constructor.
Builds a i by j matrix with nz non-zero elements.
i | number of rows. |
j | number of columns. |
nz | number of non-zero elements. |
Definition at line 501 of file Matrix_SparseInline.cxx.
|
inline |
Constructor.
Builds a i by j sparse matrix with non-zero values and indices provided by 'values' (values), 'ptr' (pointers) and 'ind' (indices). Input vectors are released and are empty on exit.
i | number of rows. |
j | number of columns. |
values | values of non-zero entries. |
ptr | column start indices. |
ind | row indices. |
Definition at line 524 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Add a value to a non-zero entry.
This function adds val to the element (i, j), provided that this element is already a non-zero entry. Otherwise a non-zero entry is inserted equal to val.
[in] | i | row index. |
[in] | j | column index. |
[in] | val | value to be added to the element (i, j). |
Definition at line 222 of file Matrix_SparseInline.cxx.
|
inherited |
Clears the matrix.
This methods is equivalent to the destructor. On exit, the matrix is empty (0x0).
Definition at line 159 of file Matrix_Sparse.cxx.
|
inherited |
Fills the non-zero entries with 0, 1, 2, ...
On exit, the non-zero entries are 0, 1, 2, 3, ... The order of the numbers depends on the storage.
Definition at line 1196 of file Matrix_Sparse.cxx.
|
inherited |
Fills the non-zero entries with a given value.
x | the value to set the non-zero entries to. |
Definition at line 1209 of file Matrix_Sparse.cxx.
|
inherited |
Fills the non-zero entries randomly.
Definition at line 1223 of file Matrix_Sparse.cxx.
|
inherited |
Fills the matrix with random elements.
The matrix is cleared and then filled with n random elements. Both the position of the elements and their values are randomly generated. On exit, the matrix may not have n non-zero elements: it is possible that the randomly-generated positions of two elements are the same.
[in] | Nelement | the number of random elements to be inserted in the matrix. |
Definition at line 1244 of file Matrix_Sparse.cxx.
|
inherited |
Fills the matrix with one value inserted at random positions.
The matrix is cleared and then filled with n random elements. Only the position of the elements is randomly generated. Their value will always be x. On exit, the matrix may not have n non-zero elements: it is possible that the randomly-generated positions of two elements are the same.
[in] | Nelement | the number of random elements to be inserted in the matrix. |
[in] | x | the value to be inserted. |
Definition at line 1293 of file Matrix_Sparse.cxx.
|
inherited |
Access method.
Returns reference to element (i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 1088 of file Matrix_Sparse.cxx.
|
inlineinherited |
Access method.
Returns reference to element (i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 206 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Returns a pointer to the data array.
Returns a pointer to data, i.e. the data array 'data_'.
Definition at line 241 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns a const pointer to the data array.
Returns a const pointer to data, i.e. the data array 'data_'.
Definition at line 254 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns a pointer of type "const void*" to the data array.
Returns a pointer of type "const void*" to data, i.e. the data array 'data_'.
Definition at line 280 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns the number of elements stored in memory.
Returns the number of elements stored in memory, i.e. the number of non-zero entries.
Definition at line 138 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Returns a pointer of type "void*" to the data array.
Returns a pointer of type "void*" to data, i.e. the data array 'data_'.
Definition at line 267 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns (row or column) indices of non-zero entries.
Returns the array ('ind_') of (row or column) indices of non-zero entries. This array defines non-zero entries indices if coupled with (column or row) start indices.
Definition at line 165 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Returns the length of the array of (column or row) indices.
Returns the length of the array ('ind_') of (row or column) indices of non-zero entries. This array defines non-zero entries indices if coupled with (column or row) start indices.
Definition at line 192 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Returns the number of rows.
Definition at line 69 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns the number of rows of the matrix possibly transposed.
status | assumed status about the transposition of the matrix. |
Definition at line 122 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns the number of rows of the matrix possibly transposed.
status | assumed status about the transposition of the matrix. |
Definition at line 92 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns the number of columns.
Definition at line 80 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns the number of columns of the matrix possibly transposed.
status | assumed status about the transposition of the matrix. |
Definition at line 137 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns the number of columns of the matrix possibly transposed.
status | assumed status about the transposition of the matrix. |
Definition at line 107 of file Matrix_BaseInline.cxx.
|
inlineinherited |
Returns the number of non-zero elements.
Definition at line 125 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Returns (row or column) start indices.
Returns the array ('ptr_') of start indices.
Definition at line 150 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Returns the length of the array of start indices.
Definition at line 176 of file Matrix_SparseInline.cxx.
|
inlineinherited |
Returns the number of elements in the matrix.
Returns the number of elements in the matrix, i.e. the number of rows multiplied by the number of columns.
Definition at line 153 of file Matrix_BaseInline.cxx.
|
inherited |
Clears the matrix without releasing memory.
On exit, the matrix is empty and the memory has not been released. It is useful for low level manipulations on a Matrix instance.
Definition at line 356 of file Matrix_Sparse.cxx.
|
inherited |
Access operator.
Returns the value of element (i, j).
i | row index. |
j | column index. |
Definition at line 940 of file Matrix_Sparse.cxx.
|
inherited |
Displays the matrix on the standard output.
Displays elements on the standard output, in text format. Each row is displayed on a single line and elements of a row are delimited by tabulations.
Definition at line 1326 of file Matrix_Sparse.cxx.
|
inherited |
Reads the matrix from an input stream.
Reads a matrix in binary format from an input stream.
FileStream | input stream |
Definition at line 1490 of file Matrix_Sparse.cxx.
|
inherited |
Reads the matrix from a file.
Reads a matrix stored in binary format in a file.
FileName | input file name. |
Definition at line 1465 of file Matrix_Sparse.cxx.
|
inherited |
Reads the matrix from an input stream.
Reads a matrix from a stream in text format.
FileStream | input stream. |
Definition at line 1559 of file Matrix_Sparse.cxx.
|
inherited |
Reads the matrix from a file.
Reads the matrix from a file in text format.
FileName | input file name. |
cplx | if true the real part and imaginary part are given in two separate columns, otherwise the complex values are written (a,b) |
Definition at line 1534 of file Matrix_Sparse.cxx.
|
inherited |
Initialization of an empty sparse matrix with i rows and j columns.
i | number of rows |
j | number of columns |
Definition at line 373 of file Matrix_Sparse.cxx.
|
inherited |
Initialization of a sparse matrix with i rows and j columns.
i | number of rows |
j | number of columns |
nz | number of non-zero entries |
Definition at line 432 of file Matrix_Sparse.cxx.
|
inherited |
Reallocates memory to resize the matrix and keeps previous entries.
On exit, the matrix is a i x j matrix.
i | new number of rows. |
j | new number of columns. |
Definition at line 596 of file Matrix_Sparse.cxx.
|
inherited |
Reallocates memory to resize the matrix and keeps previous entries.
On exit, the matrix is a i x j matrix.
i | new number of rows. |
j | new number of columns. |
nz | number of non-zero elements. |
Definition at line 614 of file Matrix_Sparse.cxx.
|
inlineinherited |
Sets an element (i, j) to a value.
This function sets val to the element (i, j)
[in] | i | row index. |
[in] | j | column index. |
[in] | val | A(i, j) = val |
Definition at line 246 of file Matrix_SparseInline.cxx.
|
inherited |
Redefines the matrix.
It clears the matrix and sets it to a new matrix defined by arrays 'values' (values), 'ptr' (pointers) and 'ind' (indices).
i | number of rows. |
j | number of columns. |
nz | number of non-zero entries. |
values | values of non-zero entries. |
ptr | row or column start indices. |
ind | row or column indices. |
Definition at line 333 of file Matrix_Sparse.cxx.
|
inherited |
Redefines the matrix.
It clears the matrix and sets it to a new matrix defined by 'values' (values), 'ptr' (pointers) and 'ind' (indices). Input vectors are released and are empty on exit.
i | number of rows. |
j | number of columns. |
values | values of non-zero entries. |
ptr | row or column start indices. |
ind | row or column indices. |
Definition at line 241 of file Matrix_Sparse.cxx.
|
inlineinherited |
Sets an element (i, j) to a value.
This function sets val to the element (i, j)
[in] | i | row index. |
[in] | j | column index. |
[in] | val | A(i, j) = val |
Definition at line 260 of file Matrix_SparseInline.cxx.
|
inherited |
Sets the matrix to identity.
This method fills the diagonal of the matrix with ones. It can be applied to non square matrix.
Definition at line 1162 of file Matrix_Sparse.cxx.
|
inherited |
Access method.
Returns the value of element (i, j) if it can be returned as a reference.
[in] | i | row index. |
[in] | j | column index. |
WrongArgument | No reference can be returned because the element is a zero entry (not stored in the matrix). |
Definition at line 987 of file Matrix_Sparse.cxx.
|
inherited |
Access method.
Returns the value of element (i, j) if it can be returned as a reference.
[in] | i | row index. |
[in] | j | column index. |
WrongArgument | No reference can be returned because the element is a zero entry (not stored in the matrix). |
Definition at line 1038 of file Matrix_Sparse.cxx.
|
inherited |
Writes the matrix to an output stream.
Stores the matrix in an output stream in binary format.
FileStream | output stream. |
Definition at line 1369 of file Matrix_Sparse.cxx.
|
inherited |
Writes the matrix in a file.
Stores the matrix in a file in binary format.
FileName | output file name. |
Definition at line 1344 of file Matrix_Sparse.cxx.
|
inherited |
Writes the matrix to an output stream.
Stores the matrix in a file in ascii format. The entries are written in coordinate format (row column value) 1-index convention is used
FileStream | output stream. |
cplx | if true the real part and imaginary part are given in two separate columns, otherwise the complex values are written (a,b) |
Definition at line 1439 of file Matrix_Sparse.cxx.
|
inherited |
Writes the matrix in a file.
Stores the matrix in a file in ascii format. The entries are written in coordinate format (row column value) 1-index convention is used
FileName | output file name. |
cplx | if true the real part and imaginary part are written in two separate columns, otherwise the complex values are written (a,b) |
Definition at line 1406 of file Matrix_Sparse.cxx.
|
inherited |
Resets all non-zero entries to 0-value.
The sparsity pattern remains unchanged.
Definition at line 1150 of file Matrix_Sparse.cxx.