KASKADE 7 development version
Classes | Namespaces | Functions
dynamicMatrix.hh File Reference
#include "dune/common/config.h"
#include "fem/fixdune.hh"
#include "utilities/scalar.hh"
#include "dune/common/dynvector.hh"
#include "dune/common/densematrix.hh"
#include "dune/common/fmatrix.hh"
#include <tuple>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

struct  Kaskade::DynamicMatrixDetail::ProductTraits< Scalar, Scalar, std::enable_if_t< std::is_arithmetic_v< Scalar > > >
 
struct  Kaskade::DynamicMatrixDetail::ProductTraits< Dune::FieldMatrix< EntryA, n, m >, Dune::FieldMatrix< EntryB, m, k >, void >
 
class  Kaskade::DynamicMatrixDetail::StridedVector< K >
 
struct  Kaskade::DynamicMatrixDetail::GetAddress< K >
 
struct  Kaskade::DynamicMatrixDetail::GetAddress< Dune::FieldMatrix< K, n, m > >
 
struct  Kaskade::DynamicMatrixDetail::GetAddress< Dune::FieldVector< K, n > >
 
struct  Kaskade::DynamicMatrixDetail::GetAddress< Dune::BlockVector< K, A > >
 
struct  Kaskade::DynamicMatrixDetail::Copy< A, B >
 
struct  Kaskade::DynamicMatrixDetail::Copy< Dune::FieldMatrix< A, n, m >, Dune::FieldMatrix< B, n, m > >
 
class  Dune::Impl::DenseMatrixAssigner< DenseMatrix, typename DenseMatrix::value_type, std::enable_if_t<!Dune::IsNumber< typename DenseMatrix::value_type >::value > >
 
struct  Dune::DenseMatVecTraits< Kaskade::DynamicMatrix< K > >
 
struct  Dune::DenseMatVecTraits< Kaskade::DynamicMatrixDetail::StridedVector< K > >
 
struct  Dune::FieldTraits< Kaskade::DynamicMatrix< K > >
 
class  Kaskade::DynamicMatrix< K >
 A LAPACK-compatible dense matrix class with shape specified at runtime. More...
 

Namespaces

namespace  Dune
 
namespace  Kaskade
 
 
namespace  Kaskade::DynamicMatrixDetail
 
namespace  Dune::Impl
 

Functions

template<class K >
auto Kaskade::DynamicMatrixDetail::getAddress (K &a)
 
void Kaskade::DynamicMatrixDetail::gemv (bool transpose, int n, int m, double alpha, double const *A, int lda, double const *x, double beta, double *y)
 
void Kaskade::DynamicMatrixDetail::gemv (bool transpose, int n, int m, float alpha, float const *A, int lda, float const *x, float beta, float *y)
 
void Kaskade::DynamicMatrixDetail::gemm (bool transposeA, bool transposeB, int m, int n, int k, double alpha, double const *A, int lda, double const *B, int ldb, double beta, double *C, int ldc)
 computes \( C \leftarrow \alpha A B + \beta C \) More...
 
void Kaskade::DynamicMatrixDetail::gemm (bool transposeA, bool transposeB, int m, int n, int k, float alpha, float const *A, int lda, float const *B, int ldb, float beta, float *C, int ldc)
 
double Kaskade::DynamicMatrixDetail::transpose (double x)
 
float Kaskade::DynamicMatrixDetail::transpose (float x)
 
template<class Scalar >
Scalar & Kaskade::DynamicMatrixDetail::scalarEntry (Scalar &x, int row, int col)
 
template<class Entry , int n, int m>
EntryTraits< Entry >::field_type Kaskade::DynamicMatrixDetail::scalarEntry (Dune::FieldMatrix< Entry, n, m > const &A, int row, int col)
 
template<class Entry , int n, int m>
EntryTraits< Entry >::field_type & Kaskade::DynamicMatrixDetail::scalarEntry (Dune::FieldMatrix< Entry, n, m > &A, int row, int col)
 
template<class Entry >
EntryTraits< Entry >::field_type Kaskade::DynamicMatrixDetail::scalarEntry (DynamicMatrix< Entry > const &A, int row, int col)
 
template<class Entry >
EntryTraits< Entry >::field_type & Kaskade::DynamicMatrixDetail::scalarEntry (DynamicMatrix< Entry > &A, int row, int col)
 
template<class Scalar , class enable = typename std::enable_if_t<std::is_floating_point_v<Scalar>,int>>
DynamicMatrix< Scalar > Kaskade::DynamicMatrixDetail::flatMatrix (DynamicMatrix< Scalar > const &A)
 
template<class Entry , int n, int m>
DynamicMatrix< typename EntryTraits< Entry >::field_type > Kaskade::DynamicMatrixDetail::flatMatrix (DynamicMatrix< Dune::FieldMatrix< Entry, n, m > > const &A)
 
template<class Entry >
void Kaskade::DynamicMatrixDetail::unflatten (DynamicMatrix< Entry > &A, DynamicMatrix< typename EntryTraits< Entry >::field_type > const &B)
 
template<class T , typename = std::enable_if_t<std::is_arithmetic<T>::value>>
Kaskade::transpose (T x)
 
template<class Scalar , int d>
Dune::FieldVector< Scalar, d > Kaskade::eigenvalues (Dune::FieldMatrix< Scalar, d, d > A)
 Computes the eigenvalues of a symmetric matrix \( A \). More...
 
template<class Scalar , int d>
Dune::FieldVector< Scalar, d > Kaskade::eig (Dune::FieldMatrix< Scalar, d, d > &A, bool computeEigenvectors=true)
 Computes the eigenvalues and eigenvectors of a symmetric matrix \( A \). More...
 
template<int dimIn, int dimOut>
Dune::BlockVector< Dune::FieldVector< double, dimOut > > Kaskade::reshapeBlocks (Dune::BlockVector< Dune::FieldVector< double, dimIn > > const &b)
 reshapes a Dune::BlockVector block structure More...