linbox
Public Types | Public Member Functions | Protected Attributes
Submatrix< BlasMatrix< _Field >, VectorCategories::DenseVectorTag > Class Template Reference

Specialization for BlasMatrix. More...

#include <submatrix.h>

+ Inheritance diagram for Submatrix< BlasMatrix< _Field >, VectorCategories::DenseVectorTag >:

Public Types

typedef RawVector< Element >::Dense Rep
 Actually a std::vector<Element> (or alike.)
 
typedef Rep::pointer pointer
 pointer type to elements
 
typedef const pointer const_pointer
 const pointer type
 
typedef'd Row Iterators.

The row iterator gives the rows of the matrix in ascending order.

Dereferencing the iterator yields a row vector in dense format

typedef BlasMatrix< _Field >
::RowIterator 
RowIterator
 
typedef BlasMatrix< _Field >
::ConstRowIterator 
ConstRowIterator
 
typedef BlasMatrix< _Field >::Row Row
 
typedef BlasMatrix< _Field >
::ConstRow 
ConstRow
 
typedef'd Column Iterators.

The columns iterator gives the columns of the matrix in ascending order.

Dereferencing the iterator yields a column vector in dense format

typedef BlasMatrix< _Field >
::ColIterator 
ColIterator
 
typedef BlasMatrix< _Field >
::ConstColIterator 
ConstColIterator
 
typedef BlasMatrix< _Field >::Col Col
 
typedef BlasMatrix< _Field >
::Column 
Column
 
typedef BlasMatrix< _Field >
::ConstCol 
ConstCol
 

Public Member Functions

 Submatrix (const BlasMatrix< Field > *Mat, size_t row, size_t col, size_t Rowdim, size_t Coldim)
 Constructor from an existing BlasMatrix and dimensions.
 
 Submatrix (const BlasMatrix< Field > &Mat, size_t row, size_t col, size_t Rowdim, size_t Coldim)
 Constructor from an existing BlasMatrix and dimensions.
 
 Submatrix (const Submatrix< BlasMatrix< Field > > *SM, size_t row, size_t col, size_t Rowdim, size_t Coldim)
 Constructor from an existing submatrix and dimensions.
 
 Submatrix (const Submatrix< BlasMatrix< Field > > &SM, size_t row, size_t col, size_t Rowdim, size_t Coldim)
 Constructor from an existing submatrix and dimensions.
 
const Field & field () const
 get the field
 
std::istream & read (std::istream &is)
 read
 
std::ostream & write (std::ostream &os) const
 write
 
template<class Vect1 , class Vect2 >
Vect1 & apply (Vect1 &y, const Vect2 &x) const
 Generic matrix-vector apply y = A * x.
 
template<class Vect1 , class Vect2 >
Vect1 & applyTranspose (Vect1 &y, const Vect2 &x) const
 Generic matrix-vector transpose apply y = A^T * x This version of applyTranspose allows use of arbitrary input and output vector types.
 
size_t rowdim () const
 Get the number of rows in the matrix.
 
size_t coldim () const
 Get the number of columns in the matrix.
 
size_t getStride () const
  Get the stride of the matrix.
 
std::ostream & write (std::ostream &os, enum LinBoxTag::Format f=LinBoxTag::FormatMaple) const
 Write the matrix to an output stream.
 
std::ostream & write (std::ostream &os, bool mapleFormat) const
 
pointer getPointer () const
  .
 
pointergetWritePointer ()
  .
 
void setEntry (size_t i, size_t j, const Element &a_ij)
 Set the entry at (i, j).
 
Element & refEntry (size_t i, size_t j)
 Get a writeable reference to an entry in the matrix.
 
const Element & getEntry (size_t i, size_t j) const
 Get a read-only individual entry from the matrix.
 
Element & getEntry (Element &x, size_t i, size_t j) const
 Get an entry and store it in the given value.
 
RowIterator rowBegin ()
 iterator to the begining of a row
 
ConstRowIterator rowBegin () const
 const iterator to the begining of a row
 
RowIterator rowEnd ()
 iterator to the end of a row
 
ConstRowIterator rowEnd () const
 const iterator to the end of a row
 
Row operator[] (size_t i)
 operator[].
 
template<class Vector1 , class Vector2 >
Vector1 & apply (Vector1 &y, const Vector2 &x) const
 

Protected Attributes

BlasMatrix< _Field > * _Mat
 Parent BlasMatrix (ie raw vector)
 
size_t _row
 row dimension of Submatrix
 
size_t _col
 col dimension of Submatrix
 
size_t _r0
 upper left corner row of Submatrix in _Mat
 
size_t _c0
 upper left corner row of Submatrix in _Mat
 
size_t _stride
 number of columns in _Mat (or stride of _Mat)
 

Detailed Description

template<class _Field>
class LinBox::Submatrix< BlasMatrix< _Field >, VectorCategories::DenseVectorTag >

Specialization for BlasMatrix.

Constructor & Destructor Documentation

Submatrix ( const BlasMatrix< Field > *  Mat,
size_t  row,
size_t  col,
size_t  Rowdim,
size_t  Coldim 
)
inline

Constructor from an existing BlasMatrix and dimensions.

Parameters
MatPointer to BlasMatrix of which to construct submatrix
rowStarting row
colStarting column
RowdimRow dimension
ColdimColumn dimension
Submatrix ( const BlasMatrix< Field > &  Mat,
size_t  row,
size_t  col,
size_t  Rowdim,
size_t  Coldim 
)
inline

Constructor from an existing BlasMatrix and dimensions.

Parameters
Matreference to BlasMatrix of which to construct submatrix
rowStarting row
colStarting column
RowdimRow dimension
ColdimColumn dimension
Submatrix ( const Submatrix< BlasMatrix< Field > > *  SM,
size_t  row,
size_t  col,
size_t  Rowdim,
size_t  Coldim 
)
inline

Constructor from an existing submatrix and dimensions.

Parameters
SMpointer to Submatrix from which to construct submatrix
rowStarting row
colStarting column
RowdimRow dimension
ColdimColumn dimension
Submatrix ( const Submatrix< BlasMatrix< Field > > &  SM,
size_t  row,
size_t  col,
size_t  Rowdim,
size_t  Coldim 
)
inline

Constructor from an existing submatrix and dimensions.

Parameters
SMreference to Submatrix from which to construct submatrix
rowStarting row
colStarting column
RowdimRow dimension
ColdimColumn dimension

Member Function Documentation

Vect1& apply ( Vect1 &  y,
const Vect2 &  x 
) const
inline

Generic matrix-vector apply y = A * x.

This version of apply allows use of arbitrary input and output vector * types.

Parameters
yOutput vector
xInput vector
Returns
Reference to output vector
Vect1& applyTranspose ( Vect1 &  y,
const Vect2 &  x 
) const
inline

Generic matrix-vector transpose apply y = A^T * x This version of applyTranspose allows use of arbitrary input and output vector types.

Parameters
yOutput vector
xInput vector
Returns
Reference to output vector
size_t rowdim ( ) const
inherited

Get the number of rows in the matrix.

Returns
Number of rows in matrix
size_t coldim ( ) const
inherited

Get the number of columns in the matrix.

Returns
Number of columns in matrix
size_t getStride ( ) const
inherited

 Get the stride of the matrix.

Returns
stride of submatrix (number of cols of dense base matrix)
std::ostream & write ( std::ostream &  os,
enum LinBoxTag::Format  f = LinBoxTag::FormatMaple 
) const
inherited

Write the matrix to an output stream.

Parameters
osOutput stream to which to write
fwrite in some format (LinBoxTag::Format). Default is Maple's.
Warning
matrix base does not provide this field(), maybe should? _Mat.field ().write (os, *pe); os << *pe; fixed by using extra field
std::ostream& write ( std::ostream &  os,
bool  mapleFormat 
) const
inlineinherited
Deprecated:
Only for compatiblity.
void setEntry ( size_t  i,
size_t  j,
const Element a_ij 
)
inherited

Set the entry at (i, j).

Parameters
iRow number, 0...rowdim () - 1
jColumn number 0...coldim () - 1
a_ijElement to set
_Field::Element & refEntry ( size_t  i,
size_t  j 
)
inherited

Get a writeable reference to an entry in the matrix.

Parameters
iRow index of entry
jColumn index of entry
Returns
Reference to matrix entry
const _Field::Element & getEntry ( size_t  i,
size_t  j 
) const
inherited

Get a read-only individual entry from the matrix.

Parameters
iRow index
jColumn index
Returns
Const reference to matrix entry
_Field::Element & getEntry ( Element x,
size_t  i,
size_t  j 
) const
inherited

Get an entry and store it in the given value.

This form is more in the Linbox style and is provided for interface compatibility with other parts of the library

Parameters
xElement in which to store result
iRow index
jColumn index
Returns
Reference to x
BlasSubmatrix< _Field >::Row operator[] ( size_t  i)
inherited

operator[].

     Retrieve a reference to a row
Parameters
iRow index
Vector1& apply ( Vector1 &  y,
const Vector2 &  x 
) const
inlineinherited
Bug:
this supposes &x[0]++ == &x[1]

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