Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator > Class Template Reference

Sparse Array-matrix class. More...

#include <Matrix_ArrayComplexSparse.hxx>

List of all members.

Public Types

typedef Allocator::value_type value_type
typedef Allocator::pointer pointer
typedef Allocator::const_pointer const_pointer
typedef Allocator::reference reference
typedef Allocator::const_reference const_reference
typedef complex< T > entry_type
typedef complex< T > access_type
typedef complex< T > const_access_type

Public Member Functions

 Matrix_ArrayComplexSparse ()
 Default constructor.
 Matrix_ArrayComplexSparse (int i, int j)
 Constructor.
 ~Matrix_ArrayComplexSparse ()
 Destructor.
void Clear ()
 Clears the matrix.
void Reallocate (int i, int j)
 Reallocates memory to resize the matrix.
void Resize (int i, int j)
 Reallocates additional memory to resize the matrix.
int GetM () const
 Returns the number of rows.
int GetN () const
 Returns the number of columns.
int GetM (const SeldonTranspose &status) const
 Returns the number of rows of the matrix possibly transposed.
int GetN (const SeldonTranspose &status) const
 Returns the number of columns of the matrix possibly transposed.
int GetRealNonZeros () const
 Returns the number of non-zero elements (real part).
int GetImagNonZeros () const
 Returns the number of non-zero elements (imaginary part).
int GetRealDataSize () const
 Returns the number of elements stored in memory (real part).
int GetImagDataSize () const
 Returns the number of elements stored in memory (imaginary part).
int GetDataSize () const
 Returns the number of elements stored in memory (real+imaginary part).
int * GetRealInd (int i) const
 Returns column indices of non-zero entries in row (real part).
int * GetImagInd (int i) const
 Returns column indices of non-zero entries in row (imaginary part).
T * GetRealData (int i) const
 Returns values of non-zero entries of a row (real part).
T * GetImagData (int i) const
 Returns values of non-zero entries of a row (imaginary part).
Vector< T, VectSparse,
Allocator > * 
GetRealData () const
Vector< T, VectSparse,
Allocator > * 
GetImagData () const
complex< T > operator() (int i, int j) const
 Access operator.
complex< T > & Val (int i, int j)
 Unavailable access method.
const complex< T > & Val (int i, int j) const
 Unavailable access method.
const T & ValueReal (int num_row, int i) const
 Returns j-th non-zero value of row i (real part).
T & ValueReal (int num_row, int i)
 Returns j-th non-zero value of row i (real part).
int IndexReal (int num_row, int i) const
 Returns column number of j-th non-zero value of row i (real part).
int & IndexReal (int num_row, int i)
 Returns column number of j-th non-zero value of row i (real part).
const T & ValueImag (int num_row, int i) const
 Returns j-th non-zero value of row i (imaginary part).
T & ValueImag (int num_row, int i)
 Returns j-th non-zero value of row i (imaginary part).
int IndexImag (int num_row, int i) const
 Returns column number of j-th non-zero value of row i (imaginary part).
int & IndexImag (int num_row, int i)
 Returns column number of j-th non-zero value of row i (imaginary part).
void SetRealData (int, int, Vector< T, VectSparse, Allocator > *)
 Redefines the real part of the matrix.
void SetImagData (int, int, Vector< T, VectSparse, Allocator > *)
 Redefines the imaginary part of the matrix.
void SetRealData (int, int, T *, int *)
 Redefines a row/column of the matrix.
void SetImagData (int, int, T *, int *)
 Redefines a row/column of the matrix.
void NullifyReal (int i)
 Clears a row without releasing memory.
void NullifyImag (int i)
 Clears a row without releasing memory.
void NullifyReal ()
 Clears the matrix without releasing memory.
void NullifyImag ()
 Clears the matrix without releasing memory.
void Print () const
 Displays the matrix on the standard output.
void WriteText (string FileName) const
 Writes the matrix in a file.
void WriteText (ostream &FileStream) const
 Writes the matrix to an output stream.
void Assemble ()
 Assembles the matrix.
template<class T0 >
void RemoveSmallEntry (const T0 &epsilon)
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.
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.

Protected Attributes

int m_
 Number of rows.
int n_
 Number of columns.
Vector< Vector< T, VectSparse,
Allocator >, VectFull,
NewAlloc< Vector< T,
VectSparse, Allocator > > > 
val_real_
 real part rows or columns
Vector< Vector< T, VectSparse,
Allocator >, VectFull,
NewAlloc< Vector< T,
VectSparse, Allocator > > > 
val_imag_
 imaginary part rows or columns

Detailed Description

template<class T, class Prop, class Storage, class Allocator = SELDON_DEFAULT_ALLOCATOR<T>>
class Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >

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 37 of file Matrix_ArrayComplexSparse.hxx.


Constructor & Destructor Documentation

template<class T , class Prop , class Storage , class Allocator >
Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Matrix_ArrayComplexSparse (  )  [inline]

Default constructor.

Builds an empty matrix.

Definition at line 38 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Matrix_ArrayComplexSparse ( int  i,
int  j 
) [inline]

Constructor.

Builds a i by j sparse matrix.

Parameters:
i number of rows.
j number of columns.

Definition at line 54 of file Matrix_ArrayComplexSparse.cxx.


Member Function Documentation

template<class T , class Prop , class Storage , class Allocator >
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.

Warning:
If you are using the methods AddInteraction/AddInteractions, you don't need to call that method.

Definition at line 848 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Clear (  )  [inline]

Clears the matrix.

This methods is equivalent to the destructor. On exit, the matrix is empty (0 by 0).

Definition at line 82 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetDataSize (  )  const [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.

Returns:
The number of elements stored in memory.

Definition at line 287 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
T * Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetImagData ( int  i  )  const [inline]

Returns values of non-zero entries of a row (imaginary part).

Parameters:
[in] i row number.
Returns:
The array of values of non-zero entries of row i.

Definition at line 340 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetImagDataSize (  )  const [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.

Returns:
The number of elements stored in memory.

Definition at line 273 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int * Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetImagInd ( int  i  )  const [inline]

Returns column indices of non-zero entries in row (imaginary part).

Parameters:
[in] i row number.
Returns:
the array of column indices of non-zero entries of row i.

Definition at line 328 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetImagNonZeros (  )  const [inline]

Returns the number of non-zero elements (imaginary part).

Returns:
The number of non-zero elements for imaginary part of matrix.

Definition at line 241 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetM (  )  const [inline]

Returns the number of rows.

Returns:
the number of rows.

Definition at line 169 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetM ( const SeldonTranspose status  )  const [inline]

Returns the number of rows of the matrix possibly transposed.

Parameters:
status assumed status about the transposition of the matrix.
Returns:
The number of rows of the possibly-transposed matrix.

Definition at line 194 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetN (  )  const [inline]

Returns the number of columns.

Returns:
the number of columns.

Definition at line 181 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetN ( const SeldonTranspose status  )  const [inline]

Returns the number of columns of the matrix possibly transposed.

Parameters:
status assumed status about the transposition of the matrix.
Returns:
The number of columns of the possibly-transposed matrix.

Definition at line 210 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
T * Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetRealData ( int  i  )  const [inline]

Returns values of non-zero entries of a row (real part).

Parameters:
[in] i row number.
Returns:
The array of values of non-zero entries of row i.

Definition at line 313 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetRealDataSize (  )  const [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.

Returns:
The number of elements stored in memory.

Definition at line 259 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int * Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetRealInd ( int  i  )  const [inline]

Returns column indices of non-zero entries in row (real part).

Parameters:
[in] i row number.
Returns:
The array of column indices of non-zero entries of row i.

Definition at line 301 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::GetRealNonZeros (  )  const [inline]

Returns the number of non-zero elements (real part).

Returns:
The number of non-zero elements for real part of matrix.

Definition at line 225 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::IndexImag ( int  i,
int  j 
) const [inline]

Returns column number of j-th non-zero value of row i (imaginary part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
Column number of j-th non-zero entry of row i.

Definition at line 585 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::IndexImag ( int  i,
int  j 
) [inline]

Returns column number of j-th non-zero value of row i (imaginary part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
column number of j-th non-zero entry of row i.

Definition at line 612 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::IndexReal ( int  i,
int  j 
) const [inline]

Returns column number of j-th non-zero value of row i (real part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
Column number of j-th non-zero entry of row i.

Definition at line 477 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::IndexReal ( int  i,
int  j 
) [inline]

Returns column number of j-th non-zero value of row i (real part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
column number of j-th non-zero entry of row i.

Definition at line 504 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::NullifyImag ( int  i  )  [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 679 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::NullifyImag (  )  [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 737 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::NullifyReal ( int  i  )  [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 667 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::NullifyReal (  )  [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 723 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
complex< T > Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::operator() ( int  i,
int  j 
) const [inline]

Access operator.

Returns the value of element (i, j).

Parameters:
i row index.
j column index.
Returns:
Element (i, j) of the matrix.

Reimplemented in Seldon::Matrix< T, Prop, ArrayColSymComplexSparse, Allocator >, and Seldon::Matrix< T, Prop, ArrayRowSymComplexSparse, Allocator >.

Definition at line 362 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Print (  )  const

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 757 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Reallocate ( int  i,
int  j 
) [inline]

Reallocates memory to resize the matrix.

On exit, the matrix is a i x j matrix.

Parameters:
i number of rows.
j number of columns.
Warning:
Data is lost.

Definition at line 102 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Resize ( int  i,
int  j 
) [inline]

Reallocates additional memory to resize the matrix.

On exit, the matrix is a i x j matrix.

Parameters:
i number of rows.
j number of columns.
Note:
Data is kept.

Definition at line 125 of file Matrix_ArrayComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator>
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::SetImagData ( int  i,
int  n,
T *  val,
int *  ind 
) [inline]

Redefines a row/column of the matrix.

Parameters:
[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 655 of file Matrix_ArrayComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator>
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::SetImagData ( int  m,
int  n,
Vector< T, VectSparse, Allocator > *  val 
) [inline]

Redefines the imaginary part of the matrix.

Parameters:
[in] m new number of rows.
[in] n new number of columns.
[in] val array of sparse rows/columns.

Definition at line 709 of file Matrix_ArrayComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator>
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::SetRealData ( int  i,
int  n,
T *  val,
int *  ind 
) [inline]

Redefines a row/column of the matrix.

Parameters:
[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 640 of file Matrix_ArrayComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator>
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::SetRealData ( int  m,
int  n,
Vector< T, VectSparse, Allocator > *  val 
) [inline]

Redefines the real part of the matrix.

Parameters:
[in] m new number of rows.
[in] n new number of columns.
[in] val array of sparse rows/columns.

Definition at line 693 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
complex< T > & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Val ( int  i,
int  j 
) [inline]

Unavailable access method.

This method is declared for consistency with other classes, but it is not defined because no reference can possiblity be returned.

Parameters:
[in] i row index.
[in] j column index.
Returns:
Raises an exception.

Definition at line 394 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
const complex< T > & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::Val ( int  i,
int  j 
) const [inline]

Unavailable access method.

This method is declared for consistency with other classes, but it is not defined because no reference can possiblity be returned.

Parameters:
[in] i row index.
[in] j column index.
Returns:
Raises an exception.

Definition at line 409 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
T & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::ValueImag ( int  i,
int  j 
) [inline]

Returns j-th non-zero value of row i (imaginary part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
j-th non-zero entry of row i.

Definition at line 558 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
const T & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::ValueImag ( int  i,
int  j 
) const [inline]

Returns j-th non-zero value of row i (imaginary part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
j-th non-zero entry of row i.

Definition at line 531 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
const T & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::ValueReal ( int  i,
int  j 
) const [inline]

Returns j-th non-zero value of row i (real part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
j-th non-zero entry of row i.

Definition at line 423 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
T & Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::ValueReal ( int  i,
int  j 
) [inline]

Returns j-th non-zero value of row i (real part).

Parameters:
[in] i row number.
[in] j local number.
Returns:
j-th non-zero entry of row i.

Definition at line 451 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::WriteText ( string  FileName  )  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.

Parameters:
FileName output file name.

Definition at line 791 of file Matrix_ArrayComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_ArrayComplexSparse< T, Prop, Storage, Allocator >::WriteText ( ostream &  FileStream  )  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.

Parameters:
FileStream output file name.

Definition at line 816 of file Matrix_ArrayComplexSparse.cxx.


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