linbox
Public Member Functions
MatrixArchetype< _Element > Class Template Reference

Directly-represented matrix archetype. More...

#include <archetype.h>

Public Member Functions

 MatrixArchetype ()
 Empty Constructor.
 
 MatrixArchetype (size_t m, size_t n)
 Constructor with size. More...
 
 MatrixArchetype (const MatrixArchetype &M)
 Copy constructor.
 
MatrixArchetypeoperator= (const MatrixArchetype &M)
 Operator =.
 
size_t rowdim () const
 Get the number of rows in the matrix. More...
 
size_t coldim () const
 Get the number of columns in the matrix. More...
 
void resize (size_t m, size_t n)
 Resize the matrix to the given dimensions. More...
 
Row operator[] (size_t i)
 Retrieve a reference to a row. More...
 
ConstRow operator[] (size_t i) const
 const version
 
Input and output
template<class Field >
std::istream & read (std::istream &file, const Field &F)
 Read the matrix from an input stream. More...
 
template<class Field >
std::ostream & write (std::ostream &os, const Field &F) const
 Write the matrix to an output stream. More...
 
Access to matrix elements
const Element & setEntry (size_t i, size_t j, const Element &a_ij)
 Set the entry at the (i, j) position to a_ij. More...
 
Element & refEntry (size_t i, size_t j)
 Get a writeable reference to the entry in the (i, j) position. More...
 
const Element & getEntry (size_t i, size_t j) const
 Get a read-only reference to the entry in the (i, j) position. More...
 
Element & getEntry (Element &x, size_t i, size_t j) const
 Copy the (i, j) entry into x, and return a reference to x. More...
 
RowIterator rowBegin ()
 rowBegin
 
RowIterator rowEnd ()
 rowEnd
 
ConstRowIterator rowBegin () const
 const rowBegin
 
ConstRowIterator rowEnd () const
 const rowEnd
 
Computing matrix information
template<class Vector >
VectorcolumnDensity (Vector &v) const
 Compute the column density, i.e. More...
 
MatrixArchetypetranspose (MatrixArchetype &M) const
 Compute the transpose.
 
typedef Col Column
 colBegin
 
typedef ConstCol ConstColumn
 colBegin
 
ColIterator colBegin ()
 colBegin
 
ColIterator colEnd ()
 colEnd
 
ConstColIterator colBegin () const
 const colBegin
 
ConstColIterator colEnd () const
 const colEnd
 

Detailed Description

template<class _Element>
class LinBox::MatrixArchetype< _Element >

Directly-represented matrix archetype.

This archetype gives the common interface for matrices that have direct representations. The matrices are required to provide iterators to access and manipulate their entries, but not any matrix-matrix or matrix-vector arithmetic. That is, they are pure containers. As such, they are only parameterized on the element type, not on the field type.

Constructor & Destructor Documentation

◆ MatrixArchetype()

MatrixArchetype ( size_t  m,
size_t  n 
)

Constructor with size.

Parameters
mrow dimension
ncolumn dimension

Member Function Documentation

◆ rowdim()

size_t rowdim ( ) const

Get the number of rows in the matrix.

Returns
Number of rows in matrix

◆ coldim()

size_t coldim ( ) const

Get the number of columns in the matrix.

Returns
Number of columns in matrix

◆ resize()

void resize ( size_t  m,
size_t  n 
)

Resize the matrix to the given dimensions.

The state of the matrix's entries after a call to this method is undefined.

This interface is optional; a matrix can omit it if it makes no sense in the context.

Parameters
mNumber of rows
nNumber of columns

◆ read()

std::istream& read ( std::istream &  file,
const Field &  F 
)

Read the matrix from an input stream.

Parameters
fileInput stream from which to read
FField over which to read

◆ write()

std::ostream& write ( std::ostream &  os,
const Field &  F 
) const

Write the matrix to an output stream.

Parameters
osOutput stream to which to write
FField over which to write

◆ setEntry()

const Element& setEntry ( size_t  i,
size_t  j,
const Element &  a_ij 
)

Set the entry at the (i, j) position to a_ij.

Parameters
iRow number, 0...rowdim () - 1
jColumn number 0...coldim () - 1
a_ijElement to set

◆ refEntry()

Element& refEntry ( size_t  i,
size_t  j 
)

Get a writeable reference to the entry in the (i, j) position.

Parameters
iRow index of entry
jColumn index of entry
Returns
Reference to matrix entry

◆ getEntry() [1/2]

const Element& getEntry ( size_t  i,
size_t  j 
) const

Get a read-only reference to the entry in the (i, j) position.

Parameters
iRow index
jColumn index
Returns
Const reference to matrix entry

◆ getEntry() [2/2]

Element& getEntry ( Element &  x,
size_t  i,
size_t  j 
) const

Copy the (i, j) entry into x, and return a reference to x.

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

◆ operator[]()

Row operator[] ( size_t  i)

Retrieve a reference to a row.

Since rows may also be indexed, this allows A[i][j] notation to be used.

This may be omitted by an implementation if no Row type is available

Parameters
iRow index

◆ columnDensity()

Vector& columnDensity ( Vector v) const

Compute the column density, i.e.

the number of entries per column


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