linbox
BlasMatrix< _Field, _Storage >::rebind< _Tp1, _Rep2 > Struct Template Reference

Rebind operator. More...

Public Types

typedef Field::Element Element
 Element type.
 
typedef Field::Element_ptr Element_ptr
 Pointer to Element type.
 
typedef Field::ConstElement_ptr ConstElement_ptr
 Pointer to const Element type.
 
typedef _Storage RawStorage
 Actually a std::vector<Element> (or alike: cstor(n), cstor(n, val), operator[], resize(n).)
 
typedef BlasVector< Field, RawStorageStorage
 Actually a BlasVector of a std::vector<Element> (or alike: cstor(n), cstor(n, val), operator[], resize(n).)
 
typedef BlasMatrix< Field, RawStorageSelf_t
 Self type.
 
typedef Self_t matrixType
 matrix type
 

Public Member Functions

void init (const size_t &r=0, const size_t &c=0)
 (Re)allocates a new \( m \times n\) zero matrix (shaped and ready).
 
void resize (const size_t &m, const size_t &n, const Element &val=Element())
 Resize the matrix to the given dimensions.
 
 BlasMatrix (const Self_t &A)
 Copy Constructor of a matrix (copying data).
 
 BlasMatrix (const _Field &F)
 Allocates a new \( 0 \times 0\) matrix (shaped and ready).
 
 BlasMatrix (const _Field &F, const size_t &m, const size_t &n)
 Allocates a new \( m \times n\) zero matrix (shaped and ready).
 
 BlasMatrix (MatrixStream< _Field > &ms)
 Constructor from a matrix stream.
 
 BlasMatrix (const Matrix &A)
 Generic copy constructor from either a blackbox or a matrix container.
 
 BlasMatrix (const Matrix &A, const size_t &i0, const size_t &j0, const size_t &m, const size_t &n)
 Generic copy constructor from either a blackbox or a matrix container (allow submatrix).
 
 BlasMatrix (const Field &F, VectorStream< StreamVector > &stream)
 Constructor using a finite vector stream (stream of the rows).
 
 BlasMatrix (const _Field &F, const size_t &m, const size_t &n, const constIterator &it)
 Create a BlasMatrix from an iterator of elements.
 
 BlasMatrix (const _Matrix &A, const _Field &F)
 Create a BlasMatrix from another matrix defined over a different field (use homomorphism if it exists)
 
 ~BlasMatrix ()
 Destructor.
 
Self_toperator= (const Self_t &A)
 operator = (copying data)
 
Self_toperator= (const _Matrix &A)
 operator = (copying data from different matrix type)
 
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.
 
ConstElement_ptr getPointer () const
  
 
void setEntry (size_t i, size_t j, const Element &a_ij)
 Set the entry at the (i, j) position to a_ij.
 
ElementrefEntry (size_t i, size_t j)
 Get a writeable reference to the entry in the (i, j) position.
 
const ElementgetEntry (size_t i, size_t j) const
 Get a read-only reference to the entry in the (i, j) position.
 
ElementgetEntry (Element &x, size_t i, size_t j) const
 Copy the (i, j) entry into x, and return a reference to x.
 
const _Field & field () const
 get a read only reference to the field of the matrix
 
std::istream & read (std::istream &file)
 Read the matrix from an input stream.
 
std::ostream & write (std::ostream &os, Tag::FileFormat f=Tag::FileFormat::MatrixMarket) const
 Write the matrix to an output stream.
 

Raw Indexed iterator

Like the raw iterator, the indexed iterator is a method for accessing all entries in the matrix in some unspecified order.

At each position of the the indexed iterator, it also provides the row and column indices of the currently referenced entry. This is provided through it's rowIndex() and colIndex() functions.

subVectorType operator[] (size_t i)
 Retrieve a reference to a row.
 
VectorcolumnDensity (Vector &v) const
 Compute column density.
 
size_t size () const
 Compute the number of non zero elt.
 
void finalize ()
 Finalize some optimization in the matrix storage.
 

Detailed Description

template<class _Field, class _Storage>
template<typename _Tp1, typename _Rep2>
struct LinBox::BlasMatrix< _Field, _Storage >::rebind< _Tp1, _Rep2 >

Rebind operator.

Bug
other rep

Member Typedef Documentation

◆ IndexedIterator

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ ConstIndexedIterator

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

Member Function Documentation

◆ resize()

void resize ( const size_t & m,
const size_t & n,
const Element & val = Element() )

Resize the matrix to the given dimensions.

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

Parameters
mNumber of rows
nNumber of columns
val

◆ BlasMatrix() [1/8]

BlasMatrix ( const Self_t & A)

Copy Constructor of a matrix (copying data).

Parameters
Amatrix to be copied.

◆ BlasMatrix() [2/8]

BlasMatrix ( const _Field & F,
const size_t & m,
const size_t & n )

Allocates a new \( m \times n\) zero matrix (shaped and ready).

Parameters
F
mrows
ncols

◆ BlasMatrix() [3/8]

BlasMatrix ( MatrixStream< _Field > & ms)

Constructor from a matrix stream.

Parameters
msmatrix stream.

◆ BlasMatrix() [4/8]

BlasMatrix ( const Matrix & A)

Generic copy constructor from either a blackbox or a matrix container.

Parameters
Amatrix to be copied

◆ BlasMatrix() [5/8]

BlasMatrix ( const Matrix & A,
const size_t & i0,
const size_t & j0,
const size_t & m,
const size_t & n )

Generic copy constructor from either a blackbox or a matrix container (allow submatrix).

Parameters
Amatrix to be copied
i0
j0
mrows
ncolumns

◆ BlasMatrix() [6/8]

BlasMatrix ( const Field & F,
VectorStream< StreamVector > & stream )

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

Parameters
FThe field of entries; passed so that arithmetic may be done on elements
streamA vector stream to use as a source of vectors for this matrix

◆ BlasMatrix() [7/8]

BlasMatrix ( const _Field & F,
const size_t & m,
const size_t & n,
const constIterator & it )

Create a BlasMatrix from an iterator of elements.

Parameters
F
m
n
it

◆ BlasMatrix() [8/8]

BlasMatrix ( const _Matrix & A,
const _Field & F )

Create a BlasMatrix from another matrix defined over a different field (use homomorphism if it exists)

Parameters
FField of the created nmatrix
Amatrix to be copied

◆ rowdim()

size_t rowdim ( ) const
inline

Get the number of rows in the matrix.

Returns
Number of rows in matrix

◆ coldim()

size_t coldim ( ) const
inline

Get the number of columns in the matrix.

Returns
Number of columns in matrix

◆ setEntry()

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

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 )
inline

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
inline

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
inline

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

◆ read()

std::istream & read ( std::istream & file)

Read the matrix from an input stream.

The stream is in SMS, DENSE, or MatrixMarket format and is autodetected.

Parameters
fileInput stream from which to read

◆ write()

std::ostream & write ( std::ostream & os,
Tag::FileFormat f = Tag::FileFormat::MatrixMarket ) const

Write the matrix to an output stream.

Parameters
osOutput stream to which to write
fwrite in some format (Tag::FileFormat::Format). Default is Maple's.

◆ IndexedBegin() [1/2]

IndexedIterator IndexedBegin ( )
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ IndexedBegin() [2/2]

ConstIndexedIterator IndexedBegin ( ) const
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ IndexedEnd() [1/2]

IndexedIterator IndexedEnd ( )
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ IndexedEnd() [2/2]

ConstIndexedIterator IndexedEnd ( ) const
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ operator[]() [1/2]

subVectorType operator[] ( size_t i)
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ operator[]() [2/2]

constSubVectorType operator[] ( size_t i) const
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ apply()

Vector1 & apply ( Vector1 & y,
const Vector2 & x ) const
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ applyTranspose()

Vector1 & applyTranspose ( Vector1 & y,
const Vector2 & x ) const
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ applyRight()

subMatrixType & applyRight ( subMatrixType & Y,
const subMatrixType & X )
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ applyLeft()

subMatrixType & applyLeft ( subMatrixType & Y,
const subMatrixType & X )
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ zero()

void zero ( )
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ random() [1/2]

void random ( )
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

◆ random() [2/2]

void random ( RandIter & I)
inline

Retrieve a reference to a row.

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

Parameters
iRow index
Bug
Rows and Cols should be BlasVectors

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