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

Symmetric complex sparse-matrix class. More...

#include <Matrix_SymComplexSparse.hxx>

Inheritance diagram for Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >:
Seldon::Matrix_Base< T, Allocator >

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< value_type > entry_type
typedef complex< value_type > access_type
typedef complex< value_type > const_access_type

Public Member Functions

 Matrix_SymComplexSparse ()
 Default constructor.
 Matrix_SymComplexSparse (int i, int j)
 Constructor.
 Matrix_SymComplexSparse (int i, int j, int real_nz, int imag_nz)
 Constructor.
template<class Storage0 , class Allocator0 , class Storage1 , class Allocator1 , class Storage2 , class Allocator2 >
 Matrix_SymComplexSparse (int i, int j, Vector< T, Storage0, Allocator0 > &real_values, Vector< int, Storage1, Allocator1 > &real_ptr, Vector< int, Storage2, Allocator2 > &real_ind, Vector< T, Storage0, Allocator0 > &imag_values, Vector< int, Storage1, Allocator1 > &imag_ptr, Vector< int, Storage2, Allocator2 > &imag_ind)
 Constructor.
 Matrix_SymComplexSparse (const Matrix_SymComplexSparse< T, Prop, Storage, Allocator > &A)
 Copy constructor.
 ~Matrix_SymComplexSparse ()
 Destructor.
void Clear ()
 Clears the matrix.
template<class Storage0 , class Allocator0 , class Storage1 , class Allocator1 , class Storage2 , class Allocator2 >
void SetData (int i, int j, Vector< T, Storage0, Allocator0 > &real_values, Vector< int, Storage1, Allocator1 > &real_ptr, Vector< int, Storage2, Allocator2 > &real_ind, Vector< T, Storage0, Allocator0 > &imag_values, Vector< int, Storage1, Allocator1 > &imag_ptr, Vector< int, Storage2, Allocator2 > &imag_ind)
 Redefines the matrix.
void SetData (int i, int j, int real_nz, pointer real_values, int *real_ptr, int *real_ind, int imag_nz, pointer imag_values, int *imag_ptr, int *imag_ind)
void Nullify ()
 Clears the matrix without releasing memory.
void Reallocate (int i, int j)
 Initialization of an empty matrix i x j.
void Reallocate (int i, int j, int real_nz, int imag_nz)
 Initialization of a matrix i x j with n non-zero entries.
void Resize (int i, int j)
 Reallocates memory to resize the matrix and keeps previous entries.
void Resize (int i, int j, int real_nz, int imag_nz)
 Reallocates memory to resize the matrix and keeps previous entries.
void Copy (const Matrix_SymComplexSparse< T, Prop, Storage, Allocator > &A)
 Copies a matrix.
int GetDataSize () const
 Returns the number of elements stored in memory.
int * GetRealPtr () const
 Returns (row or column) start indices for the real part.
int * GetImagPtr () const
 Returns (row or column) start indices for the imaginary part.
int * GetRealInd () const
 Returns (row or column) indices of non-zero entries for the real part.
int * GetImagInd () const
 Returns (row or column) indices of non-zero entries for / the imaginary part.
int GetRealPtrSize () const
 Returns the length of the array of start indices for the real part.
int GetImagPtrSize () const
 Returns the length of the array of start indices for the imaginary part.
int GetRealIndSize () const
 Returns the length of the array of (column or row) indices for //! the real part.
int GetImagIndSize () const
 Returns the length of the array of (column or row) indices //! for the imaginary part.
int GetRealDataSize () const
 Returns the length of the array of (column or row) indices for //! the real part.
int GetImagDataSize () const
 Returns the length of the array of (column or row) indices //! for the imaginary part.
T * GetRealData () const
 Returns the array of values of the real part.
T * GetImagData () const
 Returns the array of values of the imaginary part.
complex< value_type > operator() (int i, int j) const
 Access operator.
value_type & ValReal (int i, int j)
 Access method.
const value_type & ValReal (int i, int j) const
 Access method.
value_type & ValImag (int i, int j)
 Access method.
const value_type & ValImag (int i, int j) const
 Access method.
value_type & GetReal (int i, int j)
 Access method.
const value_type & GetReal (int i, int j) const
 Access method.
value_type & GetImag (int i, int j)
 Access method.
const value_type & GetImag (int i, int j) const
 Access method.
void Set (int i, int j, const complex< T > &x)
 Sets an element (i, j) to a value.
void AddInteraction (int i, int j, const complex< T > &x)
 Add a value to a non-zero entry.
Matrix_SymComplexSparse< T,
Prop, Storage, Allocator > & 
operator= (const Matrix_SymComplexSparse< T, Prop, Storage, Allocator > &A)
 Duplicates a matrix (assignment operator).
void Zero ()
 Resets all non-zero entries to 0-value.
void SetIdentity ()
 Sets the matrix to identity.
void Fill ()
 Fills the non-zero entries with 0, 1, 2, ...
void Fill (const complex< T > &x)
 Fills the non-zero entries with a given value.
void FillRand ()
 Fills the non-zero entries randomly.
void Print () const
 Displays the matrix on the standard output.
void Write (string FileName) const
 Writes the matrix in a file.
void Write (ostream &FileStream) const
 Writes the matrix to an output stream.
void WriteText (string FileName) const
 Writes the matrix in a file.
void WriteText (ostream &FileStream) const
 Writes the matrix to an output stream.
void Read (string FileName)
 Reads the matrix from a file.
void Read (istream &FileStream)
 Reads the matrix from an input stream.
void ReadText (string FileName)
 Reads the matrix from a file.
void ReadText (istream &FileStream)
 Reads the matrix from an input stream.
template<class T , class Prop , class Storage , class Allocator >
void SetData (int i, int j, int real_nz, typename Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::pointer real_values, int *real_ptr, int *real_ind, int imag_nz, typename Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::pointer imag_values, int *imag_ptr, int *imag_ind)
 Redefines the matrix.
int GetM () const
 Returns the number of rows.
int GetM (const Seldon::SeldonTranspose &status) const
 Returns the number of rows of the matrix possibly transposed.
int GetN () const
 Returns the number of columns.
int GetN (const Seldon::SeldonTranspose &status) const
 Returns the number of columns of the matrix possibly transposed.
int GetSize () const
 Returns the number of elements in the matrix.
pointer GetData () const
 Returns a pointer to the data array.
const_pointer GetDataConst () const
 Returns a const pointer to the data array.
void * GetDataVoid () const
 Returns a pointer of type "void*" to the data array.
const void * GetDataConstVoid () const
 Returns a pointer of type "const void*" to the data array.
Allocator & GetAllocator ()
 Returns the allocator of the matrix.

Protected Attributes

int real_nz_
int imag_nz_
int * real_ptr_
int * imag_ptr_
int * real_ind_
int * imag_ind_
T * real_data_
T * imag_data_
int m_
int n_
pointer data_

Static Protected Attributes

static Allocator allocator_

Detailed Description

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

Symmetric complex sparse-matrix class.

Symmetric sparse matrices are defined by: (1) the number of rows and columns; (2) the number of non-zero entries; (3) an array 'ptr_' of start indices (i.e. indices of the first element of each row or column, depending on the storage); (4) an array 'ind_' of column or row indices of each non-zero entry; (5) values of non-zero entries.

Complex sparse matrices are defined in the same way except that real and imaginary parts are splitted. It is as if two matrices were stored. There are therefore 6 arrays: 'real_ptr_', 'real_ind_', 'real_data_', 'imag_ptr_', 'imag_ind_' and 'imag_data_'.
Finally, since the matrix is symmetric, only its upper part is stored.

Definition at line 49 of file Matrix_SymComplexSparse.hxx.


Constructor & Destructor Documentation

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

Default constructor.

Builds an empty 0x0 matrix.

Definition at line 38 of file Matrix_SymComplexSparse.cxx.

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

Constructor.

Builds a i by j sparse matrix.

Parameters:
i number of rows.
j number of columns.
Warning:
'j' is assumed to be equal to 'i' so that 'j' is discarded.

Definition at line 60 of file Matrix_SymComplexSparse.cxx.

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

Constructor.

Builds a sparse matrix of size i by j , with real_nz non-zero (stored) elements in the real part of the matrix and imag_nz non-zero elements in the imaginary part of the matrix.

Parameters:
i number of rows.
j number of columns.
real_nz number of non-zero elements that are stored for the real part.
imag_nz number of non-zero elements that are stored for the imaginary part.
Note:
Matrix values are not initialized. Indices of non-zero entries are not initialized either.

Definition at line 90 of file Matrix_SymComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator >
template<class Storage0 , class Allocator0 , class Storage1 , class Allocator1 , class Storage2 , class Allocator2 >
Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Matrix_SymComplexSparse ( int  i,
int  j,
Vector< T, Storage0, Allocator0 > &  real_values,
Vector< int, Storage1, Allocator1 > &  real_ptr,
Vector< int, Storage2, Allocator2 > &  real_ind,
Vector< T, Storage0, Allocator0 > &  imag_values,
Vector< int, Storage1, Allocator1 > &  imag_ptr,
Vector< int, Storage2, Allocator2 > &  imag_ind 
) [inline]

Constructor.

Builds a i by j sparse matrix with non-zero values and indices provided by 'real_values' (values of the real part), 'real_ptr' (pointers for the real part), 'real_ind' (indices for the real part), 'imag_values' (values of the imaginary part), 'imag_ptr' (pointers for the imaginary part) and 'imag_ind' (indices for the imaginary part). Input vectors are released and are empty on exit.

Parameters:
i number of rows.
j number of columns.
real_values values of non-zero entries for the real part.
real_ptr row or column start indices for the real part.
real_ind row or column indices for the real part.
imag_values values of non-zero entries for the imaginary part.
imag_ptr row or column start indices for the imaginary part.
imag_ind row or column indices for the imaginary part.
Warning:
Input vectors 'real_values', 'real_ptr' and 'real_ind', 'imag_values', 'imag_ptr' and 'imag_ind' are empty on exit. Moreover 'j' is assumed to be equal to 'i' so that 'j' is discarded.

Definition at line 131 of file Matrix_SymComplexSparse.cxx.


Member Function Documentation

template<class T, class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::AddInteraction ( int  i,
int  j,
const complex< T > &  val 
) [inline]

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.

Parameters:
[in] i row index.
[in] j column index.
[in] val value to be added to the element (i, j).

Definition at line 2482 of file Matrix_SymComplexSparse.cxx.

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

Clears the matrix.

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

Definition at line 444 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Fill (  ) 

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 2581 of file Matrix_SymComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Fill ( const complex< T > &  x  ) 

Fills the non-zero entries with a given value.

Parameters:
x the value to set the non-zero entries to.

Definition at line 2597 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::FillRand (  ) 

Fills the non-zero entries randomly.

Note:
The random generator is very basic.

Definition at line 2612 of file Matrix_SymComplexSparse.cxx.

template<class T , class Allocator >
Allocator & Seldon::Matrix_Base< T, Allocator >::GetAllocator (  )  [inherited]

Returns the allocator of the matrix.

Returns:
The allocator.

Definition at line 258 of file Matrix_Base.cxx.

template<class T , class Allocator >
Matrix_Base< T, Allocator >::pointer Seldon::Matrix_Base< T, Allocator >::GetData (  )  const [inherited]

Returns a pointer to the data array.

Returns a pointer to data, i.e. the data array 'data_'.

Returns:
A pointer to the data array.

Definition at line 208 of file Matrix_Base.cxx.

template<class T , class Allocator >
Matrix_Base< T, Allocator >::const_pointer Seldon::Matrix_Base< T, Allocator >::GetDataConst (  )  const [inherited]

Returns a const pointer to the data array.

Returns a const pointer to data, i.e. the data array 'data_'.

Returns:
A const pointer to the data array.

Definition at line 221 of file Matrix_Base.cxx.

template<class T , class Allocator >
const void * Seldon::Matrix_Base< T, Allocator >::GetDataConstVoid (  )  const [inherited]

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_'.

Returns:
A const pointer of type "void*" to the data array.

Definition at line 247 of file Matrix_Base.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetDataSize (  )  const

Returns the number of elements stored in memory.

Returns the number of elements stored in memory, i.e. the cumulated number of non-zero entries of both the real and the imaginary part.

Returns:
The number of elements stored in memory.

Definition at line 1762 of file Matrix_SymComplexSparse.cxx.

template<class T , class Allocator >
void * Seldon::Matrix_Base< T, Allocator >::GetDataVoid (  )  const [inherited]

Returns a pointer of type "void*" to the data array.

Returns a pointer of type "void*" to data, i.e. the data array 'data_'.

Returns:
A pointer of type "void*" to the data array.

Definition at line 234 of file Matrix_Base.cxx.

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

Access method.

Returns the imaginary part of element (i, j) if it can be returned as a reference. If the non-zero entry does not exit, it is created

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

Definition at line 2393 of file Matrix_SymComplexSparse.cxx.

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

Access method.

Returns the imaginary part of element (i, j) if it can be returned as a reference. If the non-zero entry does not exit, it is created

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

Definition at line 2466 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
T * Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetImagData (  )  const

Returns the array of values of the imaginary part.

Returns:
The array 'imag_data_' of values of the imaginary part..

Definition at line 1947 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetImagDataSize (  )  const

Returns the length of the array of (column or row) indices //! for the imaginary part.

Returns the length of the array ('ind_') of (row or column) indices of non-zero entries (that are stored) for the imaginary part. This array defines non-zero entries indices if coupled with (column or row) start indices.

Returns:
The length of the array of (column or row) indices for the imaginary part.
Note:
The length of the array of (column or row) indices is the number of non-zero entries that are stored.

Definition at line 1925 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int * Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetImagInd (  )  const

Returns (row or column) indices of non-zero entries for / the imaginary part.

Returns the array ('ind_') of (row or column) indices of non-zero entries for the imaginary part. This array defines non-zero entries indices if coupled with (column or row) start indices.

Returns:
The array of (row or column) indices of non-zero entries for the imaginary part.

Definition at line 1821 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetImagIndSize (  )  const

Returns the length of the array of (column or row) indices //! for the imaginary part.

Returns the length of the array ('ind_') of (row or column) indices of non-zero entries (that are stored) for the imaginary part. This array defines non-zero entries indices if coupled with (column or row) start indices.

Returns:
The length of the array of (column or row) indices for the imaginary part.
Note:
The length of the array of (column or row) indices is the number of non-zero entries that are stored.

Definition at line 1885 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int * Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetImagPtr (  )  const

Returns (row or column) start indices for the imaginary part.

Returns the array ('ptr_') of start indices for the imaginary part.

Returns:
The array of start indices for the imaginary part.

Definition at line 1788 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetImagPtrSize (  )  const

Returns the length of the array of start indices for the imaginary part.

Returns:
The length of the array of start indices for the imaginary part.

Definition at line 1845 of file Matrix_SymComplexSparse.cxx.

template<class T , class Allocator >
int Seldon::Matrix_Base< T, Allocator >::GetM ( const Seldon::SeldonTranspose status  )  const [inherited]

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.

Reimplemented in Seldon::SubMatrix_Base< T, Prop, M, Allocator >.

Definition at line 130 of file Matrix_Base.cxx.

template<class T , class Allocator >
int Seldon::Matrix_Base< T, Allocator >::GetN ( const Seldon::SeldonTranspose status  )  const [inherited]

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.

Reimplemented in Seldon::SubMatrix_Base< T, Prop, M, Allocator >.

Definition at line 145 of file Matrix_Base.cxx.

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

Access method.

Returns the real part of element (i, j) if it can be returned as a reference. If the non-zero entry does not exit, it is created

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

Definition at line 2303 of file Matrix_SymComplexSparse.cxx.

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

Access method.

Returns the real part of element (i, j) if it can be returned as a reference. If the non-zero entry does not exit, it is created

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

Definition at line 2376 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
T * Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetRealData (  )  const

Returns the array of values of the real part.

Returns:
The array 'real_data_' of values of the real part..

Definition at line 1936 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetRealDataSize (  )  const

Returns the length of the array of (column or row) indices for //! the real part.

Returns the length of the array ('ind_') of (row or column) indices of non-zero entries (that are stored) for the real part. This array defines non-zero entries indices if coupled with (column or row) start indices.

Returns:
The length of the array of (column or row) indices for the real part.
Note:
The length of the array of (column or row) indices is the number of non-zero entries that are stored.

Definition at line 1905 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int * Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetRealInd (  )  const

Returns (row or column) indices of non-zero entries for the real part.

Returns the array ('ind_') of (row or column) indices of non-zero entries for the real part. This array defines non-zero entries indices if coupled with (column or row) start indices.

Returns:
The array of (row or column) indices of non-zero entries for the real part.

Definition at line 1804 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetRealIndSize (  )  const

Returns the length of the array of (column or row) indices for //! the real part.

Returns the length of the array ('ind_') of (row or column) indices of non-zero entries (that are stored) for the real part. This array defines non-zero entries indices if coupled with (column or row) start indices.

Returns:
The length of the array of (column or row) indices for the real part.
Note:
The length of the array of (column or row) indices is the number of non-zero entries that are stored.

Definition at line 1865 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int * Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetRealPtr (  )  const

Returns (row or column) start indices for the real part.

Returns the array ('ptr_') of start indices for the real part.

Returns:
The array of start indices for the real part.

Definition at line 1775 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
int Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::GetRealPtrSize (  )  const

Returns the length of the array of start indices for the real part.

Returns:
The length of the array of start indices for the real part.

Definition at line 1833 of file Matrix_SymComplexSparse.cxx.

template<class T , class Allocator >
int Seldon::Matrix_Base< T, Allocator >::GetSize (  )  const [inherited]
template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Nullify (  )  [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 684 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
complex< typename Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::value_type > Seldon::Matrix_SymComplexSparse< 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.

Definition at line 1969 of file Matrix_SymComplexSparse.cxx.

template<class T, class Prop, class Storage, class Allocator>
Matrix_SymComplexSparse< T, Prop, Storage, Allocator > & Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::operator= ( const Matrix_SymComplexSparse< T, Prop, Storage, Allocator > &  A  )  [inline]

Duplicates a matrix (assignment operator).

Parameters:
A matrix to be copied.
Note:
Memory is duplicated: 'A' is therefore independent from the current instance after the copy.

Definition at line 2519 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< 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 2630 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Read ( string  FileName  ) 

Reads the matrix from a file.

Reads a matrix stored in binary format in a file.

Parameters:
FileName input file name.

Definition at line 2774 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Read ( istream &  FileStream  ) 

Reads the matrix from an input stream.

Reads a matrix in binary format from an input stream.

Parameters:
FileStream input stream

Definition at line 2799 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::ReadText ( istream &  FileStream  ) 

Reads the matrix from an input stream.

Reads a matrix from a stream in text format.

Parameters:
FileStream input stream.

Definition at line 2871 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::ReadText ( string  FileName  ) 

Reads the matrix from a file.

Reads the matrix from a file in text format.

Parameters:
FileName input file name.

Definition at line 2846 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Resize ( int  i,
int  j 
)

Reallocates memory to resize the matrix and keeps previous entries.

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

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

Definition at line 1099 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Resize ( int  i,
int  j,
int  real_nz,
int  imag_nz 
)

Reallocates memory to resize the matrix and keeps previous entries.

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

Parameters:
i new number of rows.
j new number of columns.
real_nz number of non-zero elements in the real part.
imag_nz number of non-zero elements in the imaginary part.

Definition at line 1118 of file Matrix_SymComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Set ( int  i,
int  j,
const complex< T > &  val 
) [inline]

Sets an element (i, j) to a value.

This function sets val to the element (i, j)

Parameters:
[in] i row index.
[in] j column index.
[in] val A(i, j) = val

Definition at line 2503 of file Matrix_SymComplexSparse.cxx.

template<class T, class Prop, class Storage, class Allocator = SELDON_DEFAULT_ALLOCATOR<T>>
template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::SetData ( int  i,
int  j,
int  real_nz,
typename Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::pointer  real_values,
int *  real_ptr,
int *  real_ind,
int  imag_nz,
typename Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::pointer  imag_values,
int *  imag_ptr,
int *  imag_ind 
) [inline]

Redefines the matrix.

It clears the matrix and sets it to a new matrix defined by arrays 'real_values' (values of the real part), 'real_ptr' (pointers for the real part), 'real_ind' (indices for the real part), 'imag_values' (values of the imaginary part), 'imag_ptr' (pointers for the imaginary part) and 'imag_ind' (indices for the imaginary part).

Parameters:
i number of rows.
j number of columns.
real_nz number of non-zero entries (real part).
real_values values of non-zero entries for the real part.
real_ptr row or column start indices for the real part.
real_ind row or column indices for the real part.
imag_nz number of non-zero entries (imaginary part).
imag_values values of non-zero entries for the imaginary part.
imag_ptr row or column start indices for the imaginary part.
imag_ind row or column indices for the imaginary part.
Warning:
On exit, arrays 'real_values', 'real_ptr', 'real_ind', 'imag_values', 'imag_ptr' and 'imag_ind' are managed by the matrix. For example, it means that the destructor will release those arrays; therefore, the user mustn't release those arrays. Moreover 'j' is assumed to be equal to 'i' so that 'j' is discarded.

Definition at line 653 of file Matrix_SymComplexSparse.cxx.

template<class T, class Prop , class Storage , class Allocator >
template<class Storage0 , class Allocator0 , class Storage1 , class Allocator1 , class Storage2 , class Allocator2 >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::SetData ( int  i,
int  j,
Vector< T, Storage0, Allocator0 > &  real_values,
Vector< int, Storage1, Allocator1 > &  real_ptr,
Vector< int, Storage2, Allocator2 > &  real_ind,
Vector< T, Storage0, Allocator0 > &  imag_values,
Vector< int, Storage1, Allocator1 > &  imag_ptr,
Vector< int, Storage2, Allocator2 > &  imag_ind 
)

Redefines the matrix.

It clears the matrix and sets it to a new matrix defined by 'real_values' (values of the real part), 'real_ptr' (pointers for the real part), 'real_ind' (indices for the real part), 'imag_values' (values of the imaginary part), 'imag_ptr' (pointers for the imaginary part) and 'imag_ind' (indices for the imaginary part). Input vectors are released and are empty on exit.

Parameters:
i number of rows.
j number of columns.
real_values values of non-zero entries for the real part.
real_ptr row or column start indices for the real part.
real_ind row or column indices for the real part.
imag_values values of non-zero entries for the imaginary part.
imag_ptr row or column start indices for the imaginary part.
imag_ind row or column indices for the imaginary part.
Warning:
Input vectors 'real_values', 'real_ptr' and 'real_ind', 'imag_values', 'imag_ptr' and 'imag_ind' are empty on exit. Moreover 'j' is assumed to be equal to 'i' so that 'j' is discarded.

Definition at line 479 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::SetIdentity (  ) 

Sets the matrix to identity.

This method fills the diagonal of the matrix with ones.

Definition at line 2549 of file Matrix_SymComplexSparse.cxx.

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

Access method.

Returns the imaginary part of element (i, j) if it can be returned as a reference.

Parameters:
[in] i row index.
[in] j column index.
Returns:
Element (i, j) of the matrix.
Exceptions:
WrongArgument No reference can be returned because the element is a zero entry (not stored in the matrix).

Definition at line 2184 of file Matrix_SymComplexSparse.cxx.

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

Access method.

Returns the imaginary part of element (i, j) if it can be returned as a reference.

Parameters:
[in] i row index.
[in] j column index.
Returns:
Element (i, j) of the matrix.
Exceptions:
WrongArgument No reference can be returned because the element is a zero entry (not stored in the matrix).

Definition at line 2244 of file Matrix_SymComplexSparse.cxx.

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

Access method.

Returns the real value of element (i, j) if it can be returned as a reference.

Parameters:
[in] i row index.
[in] j column index.
Returns:
Element (i, j) of the matrix.
Exceptions:
WrongArgument No reference can be returned because the element is a zero entry (not stored in the matrix).

Definition at line 2124 of file Matrix_SymComplexSparse.cxx.

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

Access method.

Returns the real value of element (i, j) if it can be returned as a reference.

Parameters:
[in] i row index.
[in] j column index.
Returns:
Element (i, j) of the matrix.
Exceptions:
WrongArgument No reference can be returned because the element is a zero entry (not stored in the matrix).

Definition at line 2064 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Write ( string  FileName  )  const

Writes the matrix in a file.

Stores the matrix in a file in binary format.

Parameters:
FileName output file name.

Definition at line 2648 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Write ( ostream &  FileStream  )  const

Writes the matrix to an output stream.

Stores the matrix in an output stream in binary format.

Parameters:
FileStream output stream.

Definition at line 2673 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< 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 stream.

Definition at line 2743 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< 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 2716 of file Matrix_SymComplexSparse.cxx.

template<class T , class Prop , class Storage , class Allocator >
void Seldon::Matrix_SymComplexSparse< T, Prop, Storage, Allocator >::Zero (  ) 

Resets all non-zero entries to 0-value.

The sparsity pattern remains unchanged.

Definition at line 2535 of file Matrix_SymComplexSparse.cxx.


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