FFpackMatrix< Field > Class Template Reference
[Vectors and Matrices]

Wrapper around FFPACK matrices with some additional functionality. Matrix data_m is stored row-by row. \*Namenskonsistenz zwischen Dateinamen und Klassennamen wiederherstellen.

#include <FFLASMatrix.h>

Collaboration diagram for FFpackMatrix< Field >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Field::Element ElementType

Public Member Functions

Constructors / Destuctor

 FFpackMatrix (int _rows, int _cols, int characteristic, string name="unnamedFFPACKMatrix")
template<class TMatrix >
 FFpackMatrix (const TMatrix &mat, int characteristic, bool transpose=false)
 conversion is not very fast...
 ~FFpackMatrix ()
Safety

void checkBounds (int row, int col) const
void checkDimensions () const
Data access

Field::Element getVal (int row, int col) const
void setVal (int row, int col, typename Field::Element elem)
Properties

string getName () const
int getColNum () const
int getRowNum () const
const Field * getField () const
bool isZero () const
operators

bool operator== (const FFpackMatrix &mat) const
FFpackMatrixgetRightKernel (int &Rkdim)
unsigned int getRank ()
 returns matrix rank. Attention: matrix data_m is destroyed!
FFpackMatrixgetLeftInverse ()
Field::Element * solveLGS (const typename Field::Element *rightHandSide, int &rankRef)
io

void printValue (std::ostream &os) const

Protected Member Functions

Constructors

 FFpackMatrix (typename Field::Element *data_m, int _rows, int _cols, int characteristic, string name)

Private Attributes

int characteristic_m
const Field * F
 Matrix entries are elements of Field F.
int rows_m
 number of matrix rows_m
int cols_m
 number of matrix columns
int blocksPerRow
Field::Element * data_m
 matrix data_m, row-by row.
string name

Detailed Description

template<class Field>
class FFpackMatrix< Field >

Definition at line 30 of file FFLASMatrix.h.


Member Typedef Documentation

template<class Field>
typedef Field::Element FFpackMatrix< Field >::ElementType

Definition at line 35 of file FFLASMatrix.h.


Constructor & Destructor Documentation

template<class Field >
FFpackMatrix< Field >::FFpackMatrix ( typename Field::Element *  data_m,
int  _rows,
int  _cols,
int  characteristic,
string  name 
) [inline, protected]

Definition at line 155 of file FFLASMatrix.cpp.

References FFpackMatrix< Field >::checkDimensions().

Here is the call graph for this function:

template<class Field >
FFpackMatrix< Field >::FFpackMatrix ( int  _rows,
int  _cols,
int  characteristic,
string  _name = "unnamedFFPACKMatrix" 
) [inline]
Todo:
ist hier memset ueberhaupt erlaubt?

Definition at line 120 of file FFLASMatrix.cpp.

References FFpackMatrix< Field >::blocksPerRow, FFpackMatrix< Field >::checkDimensions(), FFpackMatrix< Field >::cols_m, FFpackMatrix< Field >::data_m, and FFpackMatrix< Field >::rows_m.

Here is the call graph for this function:

template<class Field >
template<class TMatrix >
FFpackMatrix< Field >::FFpackMatrix ( const TMatrix mat,
int  characteristic,
bool  transpose = false 
) [inline]
Precondition:
TMatrix has an Interface getRowNum(), getColNum(), getVal
Todo:

.getValue aus dieser FKT rauswerfen.

implement a RowByRow Matrix iterator

conversion is not very fast...

Todo:
do not create new Field F everytime

Definition at line 54 of file FFLASMatrix.cpp.

References FFpackMatrix< Field >::blocksPerRow, FFpackMatrix< Field >::checkDimensions(), FFpackMatrix< Field >::cols_m, FFpackMatrix< Field >::data_m, TMatrix< TRing >::getColNum(), TMatrix< TRing >::getRowNum(), TMatrix< TRing >::getVal(), and FFpackMatrix< Field >::rows_m.

Here is the call graph for this function:

template<class Field >
FFpackMatrix< Field >::~FFpackMatrix (  )  [inline]

Definition at line 409 of file FFLASMatrix.cpp.

References FFpackMatrix< Field >::data_m, and FFpackMatrix< Field >::F.


Member Function Documentation

template<class Field >
void FFpackMatrix< Field >::checkBounds ( int  row,
int  col 
) const [inline]
template<class Field >
void FFpackMatrix< Field >::checkDimensions (  )  const [inline]
template<class Field>
int FFpackMatrix< Field >::getColNum (  )  const [inline]

Definition at line 102 of file FFLASMatrix.h.

References FFpackMatrix< Field >::cols_m.

Referenced by FFpackMatrix< Field >::operator==().

template<class Field>
const Field* FFpackMatrix< Field >::getField (  )  const [inline]

Definition at line 105 of file FFLASMatrix.h.

References FFpackMatrix< Field >::F.

template<class Field >
FFpackMatrix< Field > * FFpackMatrix< Field >::getLeftInverse (  )  [inline]
template<class Field>
string FFpackMatrix< Field >::getName (  )  const [inline]

Definition at line 100 of file FFLASMatrix.h.

References FFpackMatrix< Field >::name.

template<class Field >
unsigned int FFpackMatrix< Field >::getRank (  )  [inline]
template<class Field >
FFpackMatrix< Field > * FFpackMatrix< Field >::getRightKernel ( int &  Rkdim  )  [inline]
template<class Field>
int FFpackMatrix< Field >::getRowNum (  )  const [inline]

Definition at line 103 of file FFLASMatrix.h.

References FFpackMatrix< Field >::rows_m.

Referenced by FFpackMatrix< Field >::operator==().

template<class Field >
Field::Element FFpackMatrix< Field >::getVal ( int  row,
int  col 
) const [inline]
template<class Field >
bool FFpackMatrix< Field >::isZero (  )  const [inline]
template<class Field >
bool FFpackMatrix< Field >::operator== ( const FFpackMatrix< Field > &  mat  )  const [inline]
template<class Field >
void FFpackMatrix< Field >::printValue ( std::ostream &  os  )  const [inline]
Note:
copy-paste Loesung... Code ist doppelt in TMatrix

Definition at line 421 of file FFLASMatrix.cpp.

References FFpackMatrix< Field >::cols_m, FFpackMatrix< Field >::getVal(), and FFpackMatrix< Field >::rows_m.

Referenced by FFpackMatrix< Field >::getLeftInverse().

Here is the call graph for this function:

template<class Field >
void FFpackMatrix< Field >::setVal ( int  row,
int  col,
typename Field::Element  elem 
) [inline]

Definition at line 356 of file FFLASMatrix.cpp.

References FFpackMatrix< Field >::checkBounds(), FFpackMatrix< Field >::cols_m, and FFpackMatrix< Field >::data_m.

Here is the call graph for this function:

template<class Field >
Field::Element * FFpackMatrix< Field >::solveLGS ( const typename Field::Element *  rightHandSide,
int &  rankRef 
) [inline]
Parameters:
[in] rightHandSide 
[out] rankRef 
Returns:
one solution, if exists, otherwise NULL

Definition at line 268 of file FFLASMatrix.cpp.

References FFpackMatrix< Field >::cols_m, FFpackMatrix< Field >::data_m, FFpackMatrix< Field >::F, and FFpackMatrix< Field >::rows_m.


Member Data Documentation

template<class Field>
int FFpackMatrix< Field >::blocksPerRow [private]

Definition at line 45 of file FFLASMatrix.h.

Referenced by FFpackMatrix< Field >::FFpackMatrix().

template<class Field>
int FFpackMatrix< Field >::characteristic_m [private]
template<class Field>
int FFpackMatrix< Field >::cols_m [private]
template<class Field>
Field::Element* FFpackMatrix< Field >::data_m [private]
template<class Field>
const Field* FFpackMatrix< Field >::F [private]
template<class Field>
string FFpackMatrix< Field >::name [private]
template<class Field>
int FFpackMatrix< Field >::rows_m [private]

The documentation for this class was generated from the following files:
Generated on Tue Nov 23 13:10:53 2010 for centerfocus by  doxygen 1.6.3