Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

DenseMatrix Class Template Reference
[linbox/blackbox]

#include <dense.h>

Inheritance diagram for DenseMatrix:

BlackboxInterface DenseMatrixBase< _Field::Element > DenseIntegerMatrix List of all members.

Detailed Description

template<class _Field>
class LinBox::DenseMatrix< _Field >

Blackbox interface to dense matrix representation.

This is a class of dense matrices templatized by the field in which the elements reside. The matrix is stored as a one dimensional STL vector of the elements, in row major order. The interface provides for iteration over rows and over columns.

The class conforms to the archetype for blackboxes and for the dense matrix container.

Currently, only dense vectors are supported when doing matrix-vector applies.

Parameters:
_Field  a LinBox field class


Public Types

typedef _Field Field
typedef Field::Element Element
typedef DenseMatrix< _Field > Self_t

Public Methods

 DenseMatrix (const Field &F)
 DenseMatrix (const Field &F, size_t m, size_t n)
template<class RandIter>  DenseMatrix (const Field &F, size_t m, size_t n, const RandIter &iter)
template<class StreamVector>  DenseMatrix (const Field &F, VectorStream< StreamVector > &stream)
 DenseMatrix (const Field &F, DenseMatrixBase< Element > &M)
 DenseMatrix (const DenseMatrix &M)
 Copies {\it all} matrix data.

DenseMatrix< Field > & operator= (const DenseMatrix< Field > &M)
size_t rowdim () const
size_t coldim () const
const Fieldfield () const
std::istream & read (std::istream &is)
std::ostream & write (std::ostream &os=std::cout) const
template<class Vect1, class Vect2> Vect1 & apply (Vect1 &y, const Vect2 &x) const
template<class Vect1> Vect1 & applyIn (Vect1 &y) const
template<class Vect1, class Vect2> Vect1 & applyTranspose (Vect1 &y, const Vect2 &x) const
template<class Vect> Vect & applyTransposeIn (Vect &y) const
 ~DenseMatrix ()

Protected Attributes

const Field _F
MatrixDomain< Field_MD
TransposeMatrix< DenseMatrix<
Field > > 
_AT


Member Typedef Documentation

typedef Field::Element Element
 

Reimplemented from DenseMatrixBase< _Field::Element >.

typedef _Field Field
 

typedef DenseMatrix<_Field> Self_t
 

Reimplemented from DenseMatrixBase< _Field::Element >.


Constructor & Destructor Documentation

DenseMatrix const Field   F [inline]
 

DenseMatrix const Field   F,
size_t    m,
size_t    n
[inline]
 

Constructor of a m by n matrix with initial entries which are the default constructor value of the field's element type.

Parameters:
F  the field of entries; passed so that arithmetic may be done on elements.
m  row dimension
n  column dimension

DenseMatrix const Field   F,
size_t    m,
size_t    n,
const RandIter &    iter
[inline]
 

Constructor of a m by n matrix with entries created by a random iterator.

Parameters:
F  the field of entries; passed so that arithmetic may be done on elements.
m  row dimension
n  column dimension
a iter, random iterator

DenseMatrix const Field   F,
VectorStream< StreamVector > &    stream
[inline]
 

Constructor using a finite vector stream (stream of the rows).

Parameters:
F  The field of entries; passed so that arithmetic may be done on elements.
stream  A vector stream to use as a source of vectors for this matrix

DenseMatrix const Field   F,
DenseMatrixBase< Element > &    M
[inline]
 

Constructor from a DenseMatrixBase. Copies all matrix data.

Parameters:
F  Field over which this matrix' arithmetic will be.
M  This will contain a complete copy of \Ref{DenseMatrixBase} M.

DenseMatrix const DenseMatrix< _Field > &    M [inline]
 

Copies {\it all} matrix data.

~DenseMatrix   [inline]
 


Member Function Documentation

Vect1& apply Vect1 &    y,
const Vect2 &    x
const
 

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

Parameters:
y  Output vector
x  Input vector
Returns:
Reference to output vector

Vect1& applyIn Vect1 &    y const [inline]
 

Generic in-place apply y = A * y. This version of in-place apply allows use of an arbitrary vector type. Because it performs allocation and copying, it is not recommended for general use.

Parameters:
y  Input vector
Returns:
Reference to output vector

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

Parameters:
y  Output vector
x  Input vector
Returns:
Reference to output vector

Vect& applyTransposeIn Vect &    y const [inline]
 

Generic in-place transpose apply y = A^T * y This version of in-place transpose apply allows use of an arbitrary vector type. Because it performs allocation and copying, it is not recommended for general use.

Parameters:
y  Input vector
Returns:
Reference to output vector

size_t coldim   const [inline]
 

Get the number of columns in the matrix

Returns:
Number of columns in matrix

Reimplemented from DenseMatrixBase< _Field::Element >.

const Field& field   const [inline]
 

Retrieve the field over which this matrix is defined

Returns:
Reference to the underlying field

DenseMatrix<Field>& operator= const DenseMatrix< Field > &    M [inline]
 

Assignment operator makes a complete copy.

std::istream& read std::istream &    is [inline]
 

Read the matrix from an input stream

Parameters:
file  Input stream from which to read

size_t rowdim   const [inline]
 

Get the number of rows in the matrix

Returns:
Number of rows in matrix

Reimplemented from DenseMatrixBase< _Field::Element >.

std::ostream& write std::ostream &    os = std::cout const [inline]
 

Write the matrix to an output stream

Parameters:
os  Output stream to which to write


Member Data Documentation

TransposeMatrix<DenseMatrix<Field> > _AT [protected]
 

const Field _F [protected]
 

MatrixDomain<Field> _MD [protected]
 


Generated on Mon Jun 20 09:16:53 2005 for linbox by doxygen1.2.18