A sparse block matrix with compressed row storage. More...
#include <dune/istl/bcrsmatrix.hh>
Classes | |
class | CreateIterator |
Iterator class for sequential creation of blocks More... | |
struct | Deallocator |
class | RealRowIterator |
Iterator access to matrix rows More... | |
Public Types | |
enum | { blocklevel = B::blocklevel+1 } |
increment block level counter More... | |
enum | BuildMode { row_wise, random, unknown } |
we support two modes More... | |
typedef B::field_type | field_type |
export the type representing the field | |
typedef B | block_type |
export the type representing the components | |
typedef A | allocator_type |
export the allocator type | |
typedef CompressedBlockVectorWindow< B, A > | row_type |
implement row_type with compressed vector | |
typedef A::size_type | size_type |
The type for the index access and the size. | |
typedef RealRowIterator< row_type > | iterator |
The iterator over the (mutable matrix rows. | |
typedef RealRowIterator< row_type > | Iterator |
typedef Iterator | RowIterator |
rename the iterators for easier access | |
typedef row_type::Iterator | ColIterator |
Iterator for the entries of each row. | |
typedef RealRowIterator< const row_type > | const_iterator |
The const iterator over the matrix rows. | |
typedef RealRowIterator< const row_type > | ConstIterator |
typedef ConstIterator | ConstRowIterator |
rename the const row iterator for easier access | |
typedef row_type::ConstIterator | ConstColIterator |
Const iterator to the entries of a row. | |
Public Member Functions | |
row_type & | operator[] (size_type i) |
random access to the rows | |
const row_type & | operator[] (size_type i) const |
same for read only access | |
Iterator | begin () |
Get iterator to first row. | |
Iterator | end () |
Get iterator to one beyond last row. | |
Iterator | rbegin () |
Get iterator to last row. | |
Iterator | rend () |
Get iterator to one before first row. | |
ConstIterator | begin () const |
Get const iterator to first row. | |
ConstIterator | end () const |
Get const iterator to one beyond last row. | |
ConstIterator | rbegin () const |
Get const iterator to last row. | |
ConstIterator | rend () const |
Get const iterator to one before first row. | |
BCRSMatrix () | |
an empty matrix | |
BCRSMatrix (size_type _n, size_type _m, size_type _nnz, BuildMode bm) | |
matrix with known number of nonzeroes | |
BCRSMatrix (size_type _n, size_type _m, BuildMode bm) | |
matrix with unknown number of nonzeroes | |
BCRSMatrix (const BCRSMatrix &Mat) | |
copy constructor | |
~BCRSMatrix () | |
destructor | |
void | setBuildMode (BuildMode bm) |
Sets the build mode of the matrix. | |
void | setSize (size_type rows, size_type columns, size_type nnz=0) |
Set the size of the matrix. | |
BCRSMatrix & | operator= (const BCRSMatrix &Mat) |
assignment | |
BCRSMatrix & | operator= (const field_type &k) |
Assignment from a scalar. | |
CreateIterator | createbegin () |
get initial create iterator | |
CreateIterator | createend () |
get create iterator pointing to one after the last block | |
void | setrowsize (size_type i, size_type s) |
set number of indices in row i to s | |
size_type | getrowsize (size_type i) const |
get current number of indices in row i | |
void | incrementrowsize (size_type i, size_type s=1) |
increment size of row i by s (1 by default) | |
void | endrowsizes () |
indicate that size of all rows is defined | |
void | addindex (size_type row, size_type col) |
add index (row,col) to the matrix | |
void | endindices () |
indicate that all indices are defined, check consistency | |
BCRSMatrix & | operator*= (const field_type &k) |
vector space multiplication with scalar | |
BCRSMatrix & | operator/= (const field_type &k) |
vector space division by scalar | |
BCRSMatrix & | operator+= (const BCRSMatrix &b) |
Add the entries of another matrix to this one. | |
BCRSMatrix & | operator-= (const BCRSMatrix &b) |
Substract the entries of another matrix to this one. | |
template<class X , class Y > | |
void | mv (const X &x, Y &y) const |
y = A x | |
template<class X , class Y > | |
void | umv (const X &x, Y &y) const |
y += A x | |
template<class X , class Y > | |
void | mmv (const X &x, Y &y) const |
y -= A x | |
template<class X , class Y > | |
void | usmv (const field_type &alpha, const X &x, Y &y) const |
y += alpha A x | |
template<class X , class Y > | |
void | mtv (const X &x, Y &y) const |
y = A^T x | |
template<class X , class Y > | |
void | umtv (const X &x, Y &y) const |
y += A^T x | |
template<class X , class Y > | |
void | mmtv (const X &x, Y &y) const |
y -= A^T x | |
template<class X , class Y > | |
void | usmtv (const field_type &alpha, const X &x, Y &y) const |
y += alpha A^T x | |
template<class X , class Y > | |
void | umhv (const X &x, Y &y) const |
y += A^H x | |
template<class X , class Y > | |
void | mmhv (const X &x, Y &y) const |
y -= A^H x | |
template<class X , class Y > | |
void | usmhv (const field_type &alpha, const X &x, Y &y) const |
y += alpha A^H x | |
double | frobenius_norm2 () const |
square of frobenius norm, need for block recursion | |
double | frobenius_norm () const |
frobenius norm: sqrt(sum over squared values of entries) | |
double | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) | |
double | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
size_type | N () const |
number of rows (counted in blocks) | |
size_type | M () const |
number of columns (counted in blocks) | |
size_type | nonzeroes () const |
number of blocks that are stored (the number of blocks that possibly are nonzero) | |
bool | exists (size_type i, size_type j) const |
return true if (i,j) is in pattern | |
Friends | |
class | MatrixDimension< BCRSMatrix > |
class | CreateIterator |
allow CreateIterator to access internal data |
A sparse block matrix with compressed row storage.
Implements a block compressed row storage scheme. The block type B can be any type implementing the matrix interface.
Different ways to build up a compressed row storage matrix are supported:
1. Row-wise scheme 2. Random scheme
Error checking: no error checking is provided normally. Setting the compile time switch DUNE_ISTL_WITH_CHECKING enables error checking.
Details:
1. Row-wise scheme
Rows are built up in sequential order. Size of the row and the column indices are defined. A row can be used as soon as it is initialized. With respect to memory there are two variants of this scheme: (a) number of non-zeroes known in advance (application finite difference schemes), (b) number of non-zeroes not known in advance (application: Sparse LU, ILU(n)).
#include<dune/common/fmatrix.hh> #include<dune/istl/bcrsmatrix.hh> ... typedef FieldMatrix<double,2,2> M; // third parameter is an optional upper bound for the number // of nonzeros. If given the matrix will use one array for all values // as opossed to one for each row. BCRSMatrix<M> B(4,4,12,BCRSMatrix<M>::row_wise); typedef BCRSMatrix<M>::CreateIterator Iter; for(Iter row=B.createbegin(); row!=B.createend(); ++row){ // Add nonzeros for left neighbour, diagonal and right neighbour if(row.index()>0) row.insert(row.index()-1); row.insert(row.index()); if(row.index()<B.N()-1) row.insert(row.index()+1); } // Now the sparsity pattern is fully set up and we can add values B[0][0]=2; ...
2. Random scheme
For general finite element implementations the number of rows n is known, the number of non-zeroes might also be known (e.g. #edges + #nodes for P1) but the size of a row and the indices of a row can not be defined in sequential order.
#include<dune/common/fmatrix.hh> #include<dune/istl/bcrsmatrix.hh> ... typedef FieldMatrix<double,2,2> M; BCRSMatrix<M> B(4,4,BCRSMatrix<M>::random); // initially set row size for each row B.setrowsize(0,1); B.setrowsize(3,4); B.setrowsize(2,1); B.setrowsize(1,1); // increase row size for row 2 B.incrementrowsize(2) // finalize row setup phase B.endrowsizes(); // add column entries to rows B.addindex(0,0); B.addindex(3,1); B.addindex(2,2); B.addindex(1,1); B.addindex(2,0); B.addindex(3,2); B.addindex(3,0); B.addindex(3,3); // finalize column setup phase B.endindices(); // set entries using the random access operator B[0][0] = 1; B[1][1] = 2; B[2][0] = 3; B[2][2] = 4; B[3][1] = 5; B[3][2] = 6; B[3][0] = 7; B[3][3] = 8;
typedef A Dune::BCRSMatrix< B, A >::allocator_type |
export the allocator type
Reimplemented in Dune::BDMatrix< B, A >, and Dune::BTDMatrix< B, A >.
typedef B Dune::BCRSMatrix< B, A >::block_type |
export the type representing the components
Reimplemented in Dune::BDMatrix< B, A >, and Dune::BTDMatrix< B, A >.
typedef row_type::Iterator Dune::BCRSMatrix< B, A >::ColIterator |
Iterator for the entries of each row.
typedef RealRowIterator<const row_type> Dune::BCRSMatrix< B, A >::const_iterator |
The const iterator over the matrix rows.
typedef row_type::ConstIterator Dune::BCRSMatrix< B, A >::ConstColIterator |
Const iterator to the entries of a row.
typedef RealRowIterator<const row_type> Dune::BCRSMatrix< B, A >::ConstIterator |
typedef ConstIterator Dune::BCRSMatrix< B, A >::ConstRowIterator |
rename the const row iterator for easier access
typedef B::field_type Dune::BCRSMatrix< B, A >::field_type |
export the type representing the field
Reimplemented in Dune::BDMatrix< B, A >, and Dune::BTDMatrix< B, A >.
typedef RealRowIterator<row_type> Dune::BCRSMatrix< B, A >::Iterator |
typedef RealRowIterator<row_type> Dune::BCRSMatrix< B, A >::iterator |
The iterator over the (mutable matrix rows.
typedef CompressedBlockVectorWindow<B,A> Dune::BCRSMatrix< B, A >::row_type |
implement row_type with compressed vector
typedef Iterator Dune::BCRSMatrix< B, A >::RowIterator |
rename the iterators for easier access
typedef A::size_type Dune::BCRSMatrix< B, A >::size_type |
The type for the index access and the size.
Reimplemented in Dune::BDMatrix< B, A >, and Dune::BTDMatrix< B, A >.
anonymous enum |
enum Dune::BCRSMatrix::BuildMode |
we support two modes
Dune::BCRSMatrix< B, A >::BCRSMatrix | ( | ) | [inline] |
an empty matrix
Dune::BCRSMatrix< B, A >::BCRSMatrix | ( | size_type | _n, | |
size_type | _m, | |||
size_type | _nnz, | |||
BuildMode | bm | |||
) | [inline] |
matrix with known number of nonzeroes
Dune::BCRSMatrix< B, A >::BCRSMatrix | ( | size_type | _n, | |
size_type | _m, | |||
BuildMode | bm | |||
) | [inline] |
matrix with unknown number of nonzeroes
Dune::BCRSMatrix< B, A >::BCRSMatrix | ( | const BCRSMatrix< B, A > & | Mat | ) | [inline] |
copy constructor
Does a deep copy as expected.
References Dune::CompressedBlockVectorWindow< B, A >::getsize().
Dune::BCRSMatrix< B, A >::~BCRSMatrix | ( | ) | [inline] |
destructor
void Dune::BCRSMatrix< B, A >::addindex | ( | size_type | row, | |
size_type | col | |||
) | [inline] |
add index (row,col) to the matrix
This method can only be used when building the BCRSMatrix in random mode.
addindex adds a new column entry to the row. If this column entry already exists, nothing is done.
Don't call addindex after the setup phase is finished (after endindices is called).
References Dune::BCRSMatrix< B, A >::end(), Dune::CompressedBlockVectorWindow< B, A >::getindexptr(), Dune::CompressedBlockVectorWindow< B, A >::getsize(), and Dune::BCRSMatrix< B, A >::random.
Referenced by test_IO().
ConstIterator Dune::BCRSMatrix< B, A >::begin | ( | ) | const [inline] |
Get const iterator to first row.
Iterator Dune::BCRSMatrix< B, A >::begin | ( | ) | [inline] |
Get iterator to first row.
Referenced by Dune::MatrixDimension< BCRSMatrix< B, TA > >::coldim(), Dune::BCRSMatrix< B, A >::endindices(), Dune::BCRSMatrix< B, A >::endrowsizes(), Dune::BCRSMatrix< B, A >::frobenius_norm2(), Dune::BCRSMatrix< B, A >::infinity_norm(), Dune::BCRSMatrix< B, A >::infinity_norm_real(), Dune::BCRSMatrix< B, A >::mmhv(), Dune::BCRSMatrix< B, A >::mmtv(), Dune::BCRSMatrix< B, A >::mmv(), Dune::BCRSMatrix< B, A >::mv(), Dune::BCRSMatrix< B, A >::operator*=(), Dune::BCRSMatrix< B, A >::operator+=(), Dune::BCRSMatrix< B, A >::operator-=(), Dune::BCRSMatrix< B, A >::operator/=(), test_IO(), test_Iter(), Dune::BCRSMatrix< B, A >::umhv(), Dune::BCRSMatrix< B, A >::umtv(), Dune::BCRSMatrix< B, A >::umv(), Dune::BCRSMatrix< B, A >::usmhv(), Dune::BCRSMatrix< B, A >::usmtv(), and Dune::BCRSMatrix< B, A >::usmv().
CreateIterator Dune::BCRSMatrix< B, A >::createbegin | ( | ) | [inline] |
get initial create iterator
References Dune::BCRSMatrix< B, A >::CreateIterator.
Referenced by test_IO(), and test_Iter().
CreateIterator Dune::BCRSMatrix< B, A >::createend | ( | ) | [inline] |
get create iterator pointing to one after the last block
References Dune::BCRSMatrix< B, A >::CreateIterator.
Referenced by test_IO(), and test_Iter().
ConstIterator Dune::BCRSMatrix< B, A >::end | ( | ) | const [inline] |
Get const iterator to one beyond last row.
Iterator Dune::BCRSMatrix< B, A >::end | ( | ) | [inline] |
Get iterator to one beyond last row.
Referenced by Dune::BCRSMatrix< B, A >::addindex(), Dune::MatrixDimension< BCRSMatrix< B, TA > >::coldim(), Dune::BCRSMatrix< B, A >::endindices(), Dune::BCRSMatrix< B, A >::exists(), Dune::BCRSMatrix< B, A >::frobenius_norm2(), Dune::BCRSMatrix< B, A >::infinity_norm(), Dune::BCRSMatrix< B, A >::infinity_norm_real(), Dune::BCRSMatrix< B, A >::mmhv(), Dune::BCRSMatrix< B, A >::mmtv(), Dune::BCRSMatrix< B, A >::mmv(), Dune::BCRSMatrix< B, A >::mv(), Dune::BCRSMatrix< B, A >::operator*=(), Dune::BCRSMatrix< B, A >::operator+=(), Dune::BCRSMatrix< B, A >::operator-=(), Dune::BCRSMatrix< B, A >::operator/=(), test_IO(), test_Iter(), Dune::BCRSMatrix< B, A >::umhv(), Dune::BCRSMatrix< B, A >::umtv(), Dune::BCRSMatrix< B, A >::umv(), Dune::BCRSMatrix< B, A >::usmhv(), Dune::BCRSMatrix< B, A >::usmtv(), and Dune::BCRSMatrix< B, A >::usmv().
void Dune::BCRSMatrix< B, A >::endindices | ( | ) | [inline] |
indicate that all indices are defined, check consistency
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::random, and Dune::CompressedBlockVectorWindow< B, A >::setsize().
Referenced by test_IO().
void Dune::BCRSMatrix< B, A >::endrowsizes | ( | ) | [inline] |
indicate that size of all rows is defined
References Dune::BCRSMatrix< B, A >::begin(), Dune::CompressedBlockVectorWindow< B, A >::getsize(), and Dune::BCRSMatrix< B, A >::random.
Referenced by test_IO().
bool Dune::BCRSMatrix< B, A >::exists | ( | size_type | i, | |
size_type | j | |||
) | const [inline] |
return true if (i,j) is in pattern
References Dune::BCRSMatrix< B, A >::end().
double Dune::BCRSMatrix< B, A >::frobenius_norm | ( | ) | const [inline] |
frobenius norm: sqrt(sum over squared values of entries)
References Dune::BCRSMatrix< B, A >::frobenius_norm2().
double Dune::BCRSMatrix< B, A >::frobenius_norm2 | ( | ) | const [inline] |
square of frobenius norm, need for block recursion
References Dune::BCRSMatrix< B, A >::begin(), and Dune::BCRSMatrix< B, A >::end().
Referenced by Dune::BCRSMatrix< B, A >::frobenius_norm().
size_type Dune::BCRSMatrix< B, A >::getrowsize | ( | size_type | i | ) | const [inline] |
get current number of indices in row i
References Dune::CompressedBlockVectorWindow< B, A >::getsize().
void Dune::BCRSMatrix< B, A >::incrementrowsize | ( | size_type | i, | |
size_type | s = 1 | |||
) | [inline] |
increment size of row i by s (1 by default)
References Dune::BCRSMatrix< B, A >::random, and Dune::CompressedBlockVectorWindow< B, A >::setsize().
double Dune::BCRSMatrix< B, A >::infinity_norm | ( | ) | const [inline] |
infinity norm (row sum norm, how to generalize for blocks?)
References Dune::BCRSMatrix< B, A >::begin(), and Dune::BCRSMatrix< B, A >::end().
double Dune::BCRSMatrix< B, A >::infinity_norm_real | ( | ) | const [inline] |
simplified infinity norm (uses Manhattan norm for complex values)
References Dune::BCRSMatrix< B, A >::begin(), and Dune::BCRSMatrix< B, A >::end().
size_type Dune::BCRSMatrix< B, A >::M | ( | ) | const [inline] |
number of columns (counted in blocks)
Referenced by Dune::MatrixDimension< BCRSMatrix< FieldMatrix< B, n, m >, TA > >::coldim(), Dune::MatrixDimension< BCRSMatrix< B, TA > >::coldim(), Dune::BCRSMatrix< B, A >::mmhv(), Dune::BCRSMatrix< B, A >::mmtv(), Dune::BCRSMatrix< B, A >::mmv(), Dune::BCRSMatrix< B, A >::mtv(), Dune::BCRSMatrix< B, A >::mv(), Dune::BCRSMatrix< B, A >::operator+=(), Dune::BCRSMatrix< B, A >::operator-=(), Dune::BCRSMatrix< B, A >::umhv(), Dune::BCRSMatrix< B, A >::umtv(), Dune::BCRSMatrix< B, A >::umv(), Dune::BCRSMatrix< B, A >::usmhv(), Dune::BCRSMatrix< B, A >::usmtv(), and Dune::BCRSMatrix< B, A >::usmv().
void Dune::BCRSMatrix< B, A >::mmhv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
y -= A^H x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
void Dune::BCRSMatrix< B, A >::mmtv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
y -= A^T x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
void Dune::BCRSMatrix< B, A >::mmv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
y -= A x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
Referenced by test_Iter().
void Dune::BCRSMatrix< B, A >::mtv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
y = A^T x
References Dune::BCRSMatrix< B, A >::M(), Dune::BCRSMatrix< B, A >::N(), and Dune::BCRSMatrix< B, A >::umtv().
void Dune::BCRSMatrix< B, A >::mv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
size_type Dune::BCRSMatrix< B, A >::N | ( | ) | const [inline] |
number of rows (counted in blocks)
Referenced by Dune::MatrixDimension< BCRSMatrix< B, TA > >::coldim(), Dune::BDMatrix< B, A >::invert(), Dune::BCRSMatrix< B, A >::mmhv(), Dune::BCRSMatrix< B, A >::mmtv(), Dune::BCRSMatrix< B, A >::mmv(), Dune::BCRSMatrix< B, A >::mtv(), Dune::BCRSMatrix< B, A >::mv(), Dune::BCRSMatrix< B, A >::operator+=(), Dune::BCRSMatrix< B, A >::operator-=(), Dune::MatrixDimension< BCRSMatrix< FieldMatrix< B, n, m >, TA > >::rowdim(), Dune::MatrixDimension< BCRSMatrix< B, TA > >::rowdim(), Dune::BTDMatrix< B, A >::solve(), Dune::BCRSMatrix< B, A >::umhv(), Dune::BCRSMatrix< B, A >::umtv(), Dune::BCRSMatrix< B, A >::umv(), Dune::BCRSMatrix< B, A >::usmhv(), Dune::BCRSMatrix< B, A >::usmtv(), and Dune::BCRSMatrix< B, A >::usmv().
size_type Dune::BCRSMatrix< B, A >::nonzeroes | ( | ) | const [inline] |
number of blocks that are stored (the number of blocks that possibly are nonzero)
BCRSMatrix& Dune::BCRSMatrix< B, A >::operator*= | ( | const field_type & | k | ) | [inline] |
vector space multiplication with scalar
References Dune::BCRSMatrix< B, A >::begin(), and Dune::BCRSMatrix< B, A >::end().
BCRSMatrix& Dune::BCRSMatrix< B, A >::operator+= | ( | const BCRSMatrix< B, A > & | b | ) | [inline] |
Add the entries of another matrix to this one.
b | The matrix to add to this one. Its sparsity pattern has to be subset of the sparsity pattern of this matrix. |
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
BCRSMatrix& Dune::BCRSMatrix< B, A >::operator-= | ( | const BCRSMatrix< B, A > & | b | ) | [inline] |
Substract the entries of another matrix to this one.
b | The matrix to add to this one. Its sparsity pattern has to be subset of the sparsity pattern of this matrix. |
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
BCRSMatrix& Dune::BCRSMatrix< B, A >::operator/= | ( | const field_type & | k | ) | [inline] |
vector space division by scalar
References Dune::BCRSMatrix< B, A >::begin(), and Dune::BCRSMatrix< B, A >::end().
BCRSMatrix& Dune::BCRSMatrix< B, A >::operator= | ( | const field_type & | k | ) | [inline] |
Assignment from a scalar.
Reimplemented in Dune::BDMatrix< B, A >, and Dune::BTDMatrix< B, A >.
BCRSMatrix& Dune::BCRSMatrix< B, A >::operator= | ( | const BCRSMatrix< B, A > & | Mat | ) | [inline] |
assignment
Frees and reallocates space. Both sparsity pattern and values are set from Mat.
References Dune::CompressedBlockVectorWindow< B, A >::getsize().
const row_type& Dune::BCRSMatrix< B, A >::operator[] | ( | size_type | i | ) | const [inline] |
same for read only access
row_type& Dune::BCRSMatrix< B, A >::operator[] | ( | size_type | i | ) | [inline] |
random access to the rows
ConstIterator Dune::BCRSMatrix< B, A >::rbegin | ( | ) | const [inline] |
Get const iterator to last row.
Iterator Dune::BCRSMatrix< B, A >::rbegin | ( | ) | [inline] |
Get iterator to last row.
ConstIterator Dune::BCRSMatrix< B, A >::rend | ( | ) | const [inline] |
Get const iterator to one before first row.
Iterator Dune::BCRSMatrix< B, A >::rend | ( | ) | [inline] |
Get iterator to one before first row.
void Dune::BCRSMatrix< B, A >::setBuildMode | ( | BuildMode | bm | ) | [inline] |
Sets the build mode of the matrix.
bm | The build mode to use. |
void Dune::BCRSMatrix< B, A >::setrowsize | ( | size_type | i, | |
size_type | s | |||
) | [inline] |
set number of indices in row i to s
References Dune::BCRSMatrix< B, A >::random, and Dune::CompressedBlockVectorWindow< B, A >::setsize().
Referenced by test_IO().
void Dune::BCRSMatrix< B, A >::setSize | ( | size_type | rows, | |
size_type | columns, | |||
size_type | nnz = 0 | |||
) | [inline] |
Set the size of the matrix.
Sets the number of rows and columns of the matrix and allocates the memory needed for the storage of the matrix entries.
rows | The number of rows the matrix should contain. | |
columns | the number of columns the matrix should contain. | |
nnz | The number of nonzero entries the matrix should hold (if omitted defaults to 0). |
void Dune::BCRSMatrix< B, A >::umhv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
y += A^H x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
void Dune::BCRSMatrix< B, A >::umtv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
y += A^T x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
Referenced by Dune::BCRSMatrix< B, A >::mtv().
void Dune::BCRSMatrix< B, A >::umv | ( | const X & | x, | |
Y & | y | |||
) | const [inline] |
y += A x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
Referenced by test_Iter().
void Dune::BCRSMatrix< B, A >::usmhv | ( | const field_type & | alpha, | |
const X & | x, | |||
Y & | y | |||
) | const [inline] |
y += alpha A^H x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
void Dune::BCRSMatrix< B, A >::usmtv | ( | const field_type & | alpha, | |
const X & | x, | |||
Y & | y | |||
) | const [inline] |
y += alpha A^T x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
void Dune::BCRSMatrix< B, A >::usmv | ( | const field_type & | alpha, | |
const X & | x, | |||
Y & | y | |||
) | const [inline] |
y += alpha A x
References Dune::BCRSMatrix< B, A >::begin(), Dune::BCRSMatrix< B, A >::end(), Dune::BCRSMatrix< B, A >::M(), and Dune::BCRSMatrix< B, A >::N().
friend class CreateIterator [friend] |
allow CreateIterator to access internal data
Referenced by Dune::BCRSMatrix< B, A >::createbegin(), and Dune::BCRSMatrix< B, A >::createend().
friend class MatrixDimension< BCRSMatrix > [friend] |