Sparse Array-matrix class. More...
#include <Matrix_ArrayComplexSparse.hxx>
Public Member Functions | |
Matrix_ArrayComplexSparse () | |
Default constructor. More... | |
Matrix_ArrayComplexSparse (int i, int j) | |
Constructor. More... | |
~Matrix_ArrayComplexSparse () | |
Destructor. | |
void | Clear () |
Clears the matrix. More... | |
void | Reallocate (int i, int j) |
Reallocates memory to resize the matrix. More... | |
void | Resize (int i, int j) |
Reallocates additional memory to resize the matrix. More... | |
long | GetRealNonZeros () const |
Returns the number of non-zero elements (real part). More... | |
long | GetImagNonZeros () const |
Returns the number of non-zero elements (imaginary part). More... | |
long | GetNonZeros () const |
Returns the number of elements stored in memory (real+imaginary part). More... | |
long | GetRealDataSize () const |
Returns the number of elements stored in memory (real part). More... | |
long | GetImagDataSize () const |
Returns the number of elements stored in memory (imaginary part). More... | |
long | GetDataSize () const |
Returns the number of elements stored in memory (real+imaginary part). More... | |
size_t | GetMemorySize () const |
returns size of matrix in bytes | |
int * | GetRealInd (int i) const |
Returns column indices of non-zero entries in row (real part). More... | |
int * | GetImagInd (int i) const |
Returns column indices of non-zero entries in row (imaginary part). More... | |
value_type * | GetRealData (int i) const |
Returns values of non-zero entries of a row (real part). More... | |
value_type * | GetImagData (int i) const |
Returns values of non-zero entries of a row (imaginary part). More... | |
Vector< value_type, VectSparse, Allocator > * | GetRealData () const |
Vector< value_type, VectSparse, Allocator > * | GetImagData () const |
const entry_type | operator() (int i, int j) const |
Access operator. More... | |
entry_type & | Val (int i, int j) |
Unavailable access method. More... | |
const entry_type & | Val (int i, int j) const |
Unavailable access method. More... | |
entry_type & | Get (int i, int j) |
Unavailable access method. More... | |
const entry_type & | Get (int i, int j) const |
Unavailable access method. More... | |
value_type & | ValReal (int i, int j) |
Returns acces to real part of A(i, j) More... | |
const value_type & | ValReal (int i, int j) const |
Returns acces to real part of A(i, j) More... | |
value_type & | ValImag (int i, int j) |
Returns acces to imaginary part of A(i, j) More... | |
const value_type & | ValImag (int i, int j) const |
Returns acces to imaginary part of A(i, j) More... | |
value_type & | GetReal (int i, int j) |
Returns acces to real part of A(i, j) More... | |
const value_type & | GetReal (int i, int j) const |
Returns acces to real part of A(i, j) More... | |
value_type & | GetImag (int i, int j) |
Returns acces to imaginary part of A(i, j) More... | |
const value_type & | GetImag (int i, int j) const |
Returns acces to imaginary part of A(i, j) More... | |
void | Set (int i, int j, const entry_type &x) |
Sets element (i, j) of matrix. More... | |
const value_type & | ValueReal (int num_row, int i) const |
Returns j-th non-zero value of row i (real part). More... | |
value_type & | ValueReal (int num_row, int i) |
Returns j-th non-zero value of row i (real part). More... | |
int | IndexReal (int num_row, int i) const |
Returns column number of j-th non-zero value of row i (real part). More... | |
int & | IndexReal (int num_row, int i) |
Returns column number of j-th non-zero value of row i (real part). More... | |
const value_type & | ValueImag (int num_row, int i) const |
Returns j-th non-zero value of row i (imaginary part). More... | |
value_type & | ValueImag (int num_row, int i) |
Returns j-th non-zero value of row i (imaginary part). More... | |
int | IndexImag (int num_row, int i) const |
Returns column number of j-th non-zero value of row i (imaginary part). More... | |
int & | IndexImag (int num_row, int i) |
Returns column number of j-th non-zero value of row i (imaginary part). More... | |
void | SetRealData (int, int, Vector< value_type, VectSparse, Allocator > *) |
Redefines the real part of the matrix. More... | |
void | SetImagData (int, int, Vector< value_type, VectSparse, Allocator > *) |
Redefines the imaginary part of the matrix. More... | |
void | SetRealData (int, int, value_type *, int *) |
Redefines a row/column of the matrix. More... | |
void | SetImagData (int, int, value_type *, int *) |
Redefines a row/column of the matrix. More... | |
void | NullifyReal (int i) |
Clears a row without releasing memory. More... | |
void | NullifyImag (int i) |
Clears a row without releasing memory. More... | |
void | NullifyReal () |
Clears the matrix without releasing memory. More... | |
void | NullifyImag () |
Clears the matrix without releasing memory. 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... | |
void | Assemble () |
Assembles the matrix. More... | |
template<class T0 > | |
void | RemoveSmallEntry (const T0 &epsilon) |
removes small entries | |
void | SetIdentity () |
Matrix is initialized to the identity matrix. | |
void | Zero () |
Non-zero entries are set to 0 (but not removed). | |
void | Fill () |
Non-zero entries are filled with values 0, 1, 2, 3 ... | |
template<class T0 > | |
void | Fill (const complex< T0 > &x) |
Non-zero entries are set to a given value x. More... | |
template<class T0 > | |
Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator > & | operator= (const complex< T0 > &x) |
Non-zero entries are set to a given value x. | |
void | FillRand () |
Non-zero entries take a random value. | |
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 | |
Vector< Vector< value_type, VectSparse, Allocator >, VectFull, NewAlloc< Vector< value_type, VectSparse, Allocator > > > | val_real_ |
real part rows or columns | |
Vector< Vector< value_type, VectSparse, Allocator >, VectFull, NewAlloc< Vector< value_type, VectSparse, Allocator > > > | val_imag_ |
imaginary part rows or columns | |
int | m_ |
int | n_ |
Sparse Array-matrix class.
Sparse matrices are defined by: (1) the number of rows and columns; (2) the number of non-zero entries; (3) an array of vectors ind ind(i) is a vector, which contains indices of columns of the row i; (4) an array of vectors val : val(i) is a vector, which contains values of the row i
Definition at line 176 of file Matrix_ArrayComplexSparse.hxx.
|
inline |
Default constructor.
Builds an empty matrix.
Definition at line 40 of file Matrix_ArrayComplexSparseInline.cxx.
|
inlineexplicit |
Constructor.
Builds a i by j sparse matrix.
i | number of rows. |
j | number of columns. |
Definition at line 54 of file Matrix_ArrayComplexSparseInline.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Assemble |
Assembles the matrix.
All the row numbers are sorted. If same row numbers exist, values are added.
Definition at line 457 of file Matrix_ArrayComplexSparse.cxx.
|
inline |
Clears the matrix.
This methods is equivalent to the destructor. On exit, the matrix is empty (0 by 0).
Definition at line 79 of file Matrix_ArrayComplexSparseInline.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allo >::Fill | ( | const complex< T0 > & | x | ) |
Non-zero entries are set to a given value x.
real non-zero entries are set to real(x) whereas imaginary non-zero entries are set to imag(x)
Definition at line 531 of file Matrix_ArrayComplexSparse.cxx.
|
inline |
Unavailable access method.
This method is declared for consistency with other classes, but it is not defined because no reference can possibly be returned.
[in] | i | row index. |
[in] | j | column index. |
Definition at line 280 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Unavailable access method.
This method is declared for consistency with other classes, but it is not defined because no reference can possibly be returned.
[in] | i | row index. |
[in] | j | column index. |
Definition at line 297 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns the number of elements stored in memory (real+imaginary part).
Returns the number of elements stored in memory, i.e. the number of non-zero entries.
Definition at line 143 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to imaginary part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 402 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to imaginary part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 417 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns values of non-zero entries of a row (imaginary part).
[in] | i | row number. |
Definition at line 198 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns the number of elements stored in memory (imaginary part).
Returns the number of elements stored in memory, i.e. the number of non-zero entries.
Definition at line 129 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns column indices of non-zero entries in row (imaginary part).
[in] | i | row number. |
Definition at line 185 of file Matrix_ArrayComplexSparseInline.cxx.
long Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetImagNonZeros |
Returns the number of non-zero elements (imaginary part).
Definition at line 51 of file Matrix_ArrayComplexSparse.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.
|
inline |
Returns the number of elements stored in memory (real+imaginary part).
Returns the number of elements stored in memory, i.e. the number of non-zero entries.
Definition at line 101 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to real part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 372 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to real part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 387 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns values of non-zero entries of a row (real part).
[in] | i | row number. |
Definition at line 170 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns the number of elements stored in memory (real part).
Returns the number of elements stored in memory, i.e. the number of non-zero entries.
Definition at line 115 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns column indices of non-zero entries in row (real part).
[in] | i | row number. |
Definition at line 157 of file Matrix_ArrayComplexSparseInline.cxx.
long Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetRealNonZeros |
Returns the number of non-zero elements (real part).
Definition at line 35 of file Matrix_ArrayComplexSparse.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.
|
inline |
Returns column number of j-th non-zero value of row i (imaginary part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 575 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns column number of j-th non-zero value of row i (imaginary part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 555 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns column number of j-th non-zero value of row i (real part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 493 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns column number of j-th non-zero value of row i (real part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 473 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
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 693 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Clears a row without releasing memory.
On exit, the row is empty and the memory has not been released. It is useful for low level manipulations on a Matrix instance.
Definition at line 635 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
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 679 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Clears a row without releasing memory.
On exit, the row is empty and the memory has not been released. It is useful for low level manipulations on a Matrix instance.
Definition at line 623 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Access operator.
Returns the value of element (i, j).
i | row index. |
j | column index. |
Definition at line 221 of file Matrix_ArrayComplexSparseInline.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Print |
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 195 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Read | ( | istream & | FileStream | ) |
Reads the matrix from an input stream.
Reads a matrix in binary format from an input stream.
FileStream | input stream |
Definition at line 371 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Read | ( | string | FileName | ) |
Reads the matrix from a file.
Reads a matrix stored in binary format in a file.
FileName | input file name. |
Definition at line 346 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::ReadText | ( | istream & | FileStream, |
bool | cplx = false |
||
) |
Reads the matrix from an input stream.
Reads a matrix from a stream in text format.
FileStream | input stream. |
Definition at line 439 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::ReadText | ( | string | FileName, |
bool | cplx = false |
||
) |
Reads the matrix from a file.
Reads the matrix from a file in text format.
FileName | input file name. |
Definition at line 414 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Reallocate | ( | int | i, |
int | j | ||
) |
Reallocates memory to resize the matrix.
On exit, the matrix is a i x j matrix.
i | number of rows. |
j | number of columns. |
Definition at line 92 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Resize | ( | int | i, |
int | j | ||
) |
Reallocates additional memory to resize the matrix.
On exit, the matrix is a i x j matrix.
i | number of rows. |
j | number of columns. |
Definition at line 115 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Set | ( | int | i, |
int | j, | ||
const entry_type & | x | ||
) |
Sets element (i, j) of matrix.
[in] | i | row index. |
[in] | j | column index. |
[in] | x | A(i, j) = x |
Definition at line 162 of file Matrix_ArrayComplexSparse.cxx.
|
inline |
Redefines a row/column of the matrix.
[in] | i | row/col number |
[in] | n | number of non-zero entries in the row |
[in] | val | values |
[in] | ind | column numbers |
Definition at line 611 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Redefines the imaginary part of the matrix.
[in] | m | new number of rows. |
[in] | n | new number of columns. |
[in] | val | array of sparse rows/columns. |
Definition at line 665 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Redefines a row/column of the matrix.
[in] | i | row/col number |
[in] | n | number of non-zero entries in the row |
[in] | val | values |
[in] | ind | column numbers |
Definition at line 596 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Redefines the real part of the matrix.
[in] | m | new number of rows. |
[in] | n | new number of columns. |
[in] | val | array of sparse rows/columns. |
Definition at line 649 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Unavailable access method.
This method is declared for consistency with other classes, but it is not defined because no reference can possibly be returned.
[in] | i | row index. |
[in] | j | column index. |
Definition at line 246 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Unavailable access method.
This method is declared for consistency with other classes, but it is not defined because no reference can possibly be returned.
[in] | i | row index. |
[in] | j | column index. |
Definition at line 263 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to imaginary part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 342 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to imaginary part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 357 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to real part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 312 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns acces to real part of A(i, j)
[in] | i | row index. |
[in] | j | column index. |
Definition at line 327 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns j-th non-zero value of row i (imaginary part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 535 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns j-th non-zero value of row i (imaginary part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 514 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns j-th non-zero value of row i (real part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 453 of file Matrix_ArrayComplexSparseInline.cxx.
|
inline |
Returns j-th non-zero value of row i (real part).
[in] | i | row number. |
[in] | j | local number. |
Definition at line 432 of file Matrix_ArrayComplexSparseInline.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Write | ( | ostream & | FileStream | ) | const |
Writes the matrix to an output stream.
Stores the matrix in a file in binary format. The number of rows (integer) and the number of columns (integer) are written and matrix elements are then written in the same order as in memory (e.g. row-major storage).
FileStream | output file name. |
Definition at line 260 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Write | ( | string | FileName | ) | const |
Writes the matrix in a file.
Stores the matrix in a file in binary format. The number of rows (integer) and the number of columns (integer) are written and matrix elements are then written in the same order as in memory (e.g. row-major storage).
FileName | output file name. |
Definition at line 232 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::WriteText | ( | ostream & | FileStream, |
bool | cplx = false |
||
) | const |
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 file name. |
Definition at line 319 of file Matrix_ArrayComplexSparse.cxx.
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::WriteText | ( | string | FileName, |
bool | cplx = false |
||
) | const |
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. |
Definition at line 291 of file Matrix_ArrayComplexSparse.cxx.