dune-common
2.7.1
|
Construct a matrix with a dynamic size. More...
#include <dune/common/dynmatrix.hh>
Public Types | |
typedef Base::size_type | size_type |
typedef Base::value_type | value_type |
typedef Base::row_type | row_type |
enum | |
We are at the leaf of the block recursion. More... | |
typedef Traits::derived_type | derived_type |
type of derived matrix class More... | |
typedef Traits::value_type | field_type |
export the type representing the field More... | |
typedef Traits::value_type | block_type |
export the type representing the components More... | |
typedef Traits::row_reference | row_reference |
The type used to represent a reference to a row (usually row_type &) More... | |
typedef Traits::const_row_reference | const_row_reference |
The type used to represent a reference to a constant row (usually const row_type &) More... | |
typedef DenseIterator< DenseMatrix, row_type, row_reference > | Iterator |
Iterator class for sequential access. More... | |
typedef Iterator | iterator |
typedef for stl compliant access More... | |
typedef Iterator | RowIterator |
rename the iterators for easier access More... | |
typedef std::remove_reference< row_reference >::type::Iterator | ColIterator |
rename the iterators for easier access More... | |
typedef DenseIterator< const DenseMatrix, const row_type, const_row_reference > | ConstIterator |
Iterator class for sequential access. More... | |
typedef ConstIterator | const_iterator |
typedef for stl compliant access More... | |
typedef ConstIterator | ConstRowIterator |
rename the iterators for easier access More... | |
typedef std::remove_reference< const_row_reference >::type::ConstIterator | ConstColIterator |
rename the iterators for easier access More... | |
Public Member Functions | |
DynamicMatrix () | |
Default constructor. More... | |
DynamicMatrix (size_type r, size_type c, value_type v=value_type()) | |
Constructor initializing the whole matrix with a scalar. More... | |
DynamicMatrix (std::initializer_list< DynamicVector< K >> const &ll) | |
Constructor initializing the matrix from a list of vector. More... | |
template<class T , typename = std::enable_if_t<!Dune::IsNumber<T>::value && HasDenseMatrixAssigner<DynamicMatrix, T>::value>> | |
DynamicMatrix (T const &rhs) | |
void | resize (size_type r, size_type c, value_type v=value_type()) |
resize matrix to r × c More... | |
template<typename T , typename = std::enable_if_t<!Dune::IsNumber<T>::value>> | |
DynamicMatrix & | operator= (T const &rhs) |
template<typename T , typename = std::enable_if_t<Dune::IsNumber<T>::value>> | |
DynamicMatrix & | operator= (T scalar) |
size_type | mat_rows () const |
size_type | mat_cols () const |
row_type & | mat_access (size_type i) |
const row_type & | mat_access (size_type i) const |
row_reference | operator[] (size_type i) |
random access More... | |
const_row_reference | operator[] (size_type i) const |
size_type | size () const |
size method (number of rows) More... | |
Iterator | begin () |
begin iterator More... | |
ConstIterator | begin () const |
begin iterator More... | |
Iterator | end () |
end iterator More... | |
ConstIterator | end () const |
end iterator More... | |
Iterator | beforeEnd () |
ConstIterator | beforeEnd () const |
Iterator | beforeBegin () |
ConstIterator | beforeBegin () const |
derived_type & | operator+= (const DenseMatrix< Other > &x) |
vector space addition More... | |
derived_type | operator- () const |
Matrix negation. More... | |
derived_type & | operator-= (const DenseMatrix< Other > &x) |
vector space subtraction More... | |
derived_type & | operator*= (const field_type &k) |
vector space multiplication with scalar More... | |
derived_type & | operator/= (const field_type &k) |
vector space division by scalar More... | |
derived_type & | axpy (const field_type &a, const DenseMatrix< Other > &x) |
vector space axpy operation (*this += a x) More... | |
bool | operator== (const DenseMatrix< Other > &x) const |
Binary matrix comparison. More... | |
bool | operator!= (const DenseMatrix< Other > &x) const |
Binary matrix incomparison. More... | |
void | mv (const X &x, Y &y) const |
y = A x More... | |
void | mtv (const X &x, Y &y) const |
y = A^T x More... | |
void | umv (const X &x, Y &y) const |
y += A x More... | |
void | umtv (const X &x, Y &y) const |
y += A^T x More... | |
void | umhv (const X &x, Y &y) const |
y += A^H x More... | |
void | mmv (const X &x, Y &y) const |
y -= A x More... | |
void | mmtv (const X &x, Y &y) const |
y -= A^T x More... | |
void | mmhv (const X &x, Y &y) const |
y -= A^H x More... | |
void | usmv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const |
y += alpha A x More... | |
void | usmtv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const |
y += alpha A^T x More... | |
void | usmhv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const |
y += alpha A^H x More... | |
FieldTraits< value_type >::real_type | frobenius_norm () const |
frobenius norm: sqrt(sum over squared values of entries) More... | |
FieldTraits< value_type >::real_type | frobenius_norm2 () const |
square of frobenius norm, need for block recursion More... | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) More... | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) More... | |
FieldTraits< vt >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) More... | |
FieldTraits< vt >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) More... | |
void | solve (V1 &x, const V2 &b, bool doPivoting=true) const |
Solve system A x = b. More... | |
void | invert (bool doPivoting=true) |
Compute inverse. More... | |
field_type | determinant (bool doPivoting=true) const |
calculates the determinant of this matrix More... | |
DynamicMatrix< K > & | leftmultiply (const DenseMatrix< M2 > &M) |
Multiplies M from the left to this matrix. More... | |
DynamicMatrix< K > & | rightmultiply (const DenseMatrix< M2 > &M) |
Multiplies M from the right to this matrix. More... | |
size_type | N () const |
number of rows More... | |
size_type | M () const |
number of columns More... | |
size_type | rows () const |
number of rows More... | |
size_type | cols () const |
number of columns More... | |
bool | exists (size_type i, size_type j) const |
return true when (i,j) is in pattern More... | |
Static Protected Member Functions | |
static void | luDecomposition (DenseMatrix< DynamicMatrix< K > > &A, Func func, Mask &nonsingularLanes, bool throwEarly, bool doPivoting) |
do an LU-Decomposition on matrix A More... | |
Construct a matrix with a dynamic size.
K | is the field type (use float, double, complex, etc) |
|
inherited |
export the type representing the components
|
inherited |
rename the iterators for easier access
|
inherited |
typedef for stl compliant access
|
inherited |
The type used to represent a reference to a constant row (usually const row_type &)
|
inherited |
rename the iterators for easier access
|
inherited |
Iterator class for sequential access.
|
inherited |
rename the iterators for easier access
|
inherited |
type of derived matrix class
|
inherited |
export the type representing the field
|
inherited |
Iterator class for sequential access.
|
inherited |
typedef for stl compliant access
|
inherited |
The type used to represent a reference to a row (usually row_type &)
typedef Base::row_type Dune::DynamicMatrix< K >::row_type |
|
inherited |
rename the iterators for easier access
typedef Base::size_type Dune::DynamicMatrix< K >::size_type |
typedef Base::value_type Dune::DynamicMatrix< K >::value_type |
|
inherited |
We are at the leaf of the block recursion.
|
inline |
Default constructor.
|
inline |
Constructor initializing the whole matrix with a scalar.
|
inline |
Constructor initializing the matrix from a list of vector.
|
inline |
|
inlineinherited |
vector space axpy operation (*this += a x)
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
begin iterator
|
inlineinherited |
begin iterator
|
inlineinherited |
number of columns
|
inherited |
calculates the determinant of this matrix
|
inlineinherited |
end iterator
|
inlineinherited |
end iterator
|
inlineinherited |
return true when (i,j) is in pattern
|
inlineinherited |
frobenius norm: sqrt(sum over squared values of entries)
|
inlineinherited |
square of frobenius norm, need for block recursion
|
inlineinherited |
infinity norm (row sum norm, how to generalize for blocks?)
|
inlineinherited |
infinity norm (row sum norm, how to generalize for blocks?)
|
inlineinherited |
simplified infinity norm (uses Manhattan norm for complex values)
|
inlineinherited |
simplified infinity norm (uses Manhattan norm for complex values)
|
inherited |
Compute inverse.
FMatrixError | if the matrix is singular |
|
inlineinherited |
Multiplies M from the left to this matrix.
|
staticprotectedinherited |
do an LU-Decomposition on matrix A
A | The matrix to decompose, and to store the result in. |
func | Functor used for swapping lanes and to conduct the elimination. Depending on the functor, luDecomposition() can be used for solving, for inverting, or to compute the determinant. |
nonsingularLanes | SimdMask of lanes that are nonsingular. |
throwEarly | Whether to throw an FMatrixError immediately as soon as one lane is discovered to be singular. If false , do not throw, instead continue until finished or all lanes are singular, and exit via return in both cases. |
doPivoting | Enable pivoting. |
There are two modes of operation:
FMatrixError
. On entry, Simd::allTrue(nonsingularLanes)
and throwEarly==true
should hold. After early termination, the contents of A
should be considered bogus, and nonsingularLanes
has the lane(s) that triggered the early termination unset. There may be more singular lanes than the one reported in nonsingularLanes
, which just havent been discovered yet; so the value of nonsingularLanes
is mostly useful for diagnostics. determinant()
). On entry, nonsingularLanes
may have any value and throwEarly==false
should hold. The function will not throw an exception if some lanes are discovered to be singular, instead it will continue running until all lanes are singular or until finished, and terminate only via normal return. On exit, nonsingularLanes
contains the map of lanes that are valid in A
.
|
inlineinherited |
number of columns
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineinherited |
y -= A^H x
|
inlineinherited |
y -= A^T x
|
inlineinherited |
y -= A x
|
inlineinherited |
y = A^T x
|
inlineinherited |
y = A x
|
inlineinherited |
number of rows
|
inlineinherited |
Binary matrix incomparison.
|
inlineinherited |
vector space multiplication with scalar
|
inlineinherited |
vector space addition
|
inlineinherited |
Matrix negation.
|
inlineinherited |
vector space subtraction
|
inlineinherited |
vector space division by scalar
|
inline |
|
inline |
|
inlineinherited |
Binary matrix comparison.
|
inlineinherited |
random access
|
inlineinherited |
|
inline |
resize matrix to r × c
Resize the matrix to r × c
, using v
as the value of all entries.
r | number of rows |
c | number of columns |
v | value of matrix entries |
|
inlineinherited |
Multiplies M from the right to this matrix.
|
inlineinherited |
number of rows
|
inlineinherited |
size method (number of rows)
|
inherited |
Solve system A x = b.
FMatrixError | if the matrix is singular |
|
inlineinherited |
y += A^H x
|
inlineinherited |
y += A^T x
|
inlineinherited |
y += A x
|
inlineinherited |
y += alpha A^H x
|
inlineinherited |
y += alpha A^T x
|
inlineinherited |
y += alpha A x