dune-common  2.4.1-rc2
Classes | Namespaces | Functions
dotproduct.hh File Reference

Provides the functions dot(a,b) := $a^H \cdot b $ and dotT(a,b) := $a^T \cdot b $. More...

#include "ftraits.hh"
#include "typetraits.hh"
#include "promotiontraits.hh"

Go to the source code of this file.

Classes

struct  Dune::AlwaysVoid< T >
 
struct  Dune::IsVector< T, class >
 
struct  Dune::IsVector< T, typename AlwaysVoid< typename T::field_type >::type >
 

Namespaces

 Dune
 Dune namespace.
 

Functions

template<class A , class B >
enable_if<!IsVector< A >
::value &&!is_same< typename
FieldTraits< A >::field_type,
typename FieldTraits< A >
::real_type >::value, typename
PromotionTraits< A, B >
::PromotedType >::type 
Dune::dot (const A &a, const B &b)
 computes the dot product for fundamental data types according to Petsc's VectDot function: dot(a,b) := std::conj(a)*b More...
 
template<class A , class B >
enable_if<!IsVector< A >
::value &&is_same< typename
FieldTraits< A >::field_type,
typename FieldTraits< A >
::real_type >::value, typename
PromotionTraits< A, B >
::PromotedType >::type 
Dune::dot (const A &a, const B &b)
 computes the dot product for fundamental data types according to Petsc's VectDot function: dot(a,b) := std::conj(a)*b More...
 
template<typename A , typename B >
enable_if< IsVector< A >
::value, typename
PromotionTraits< typename
A::field_type, typename
B::field_type >::PromotedType >
::type 
Dune::dot (const A &a, const B &b)
 computes the dot product for various dune vector types according to Petsc's VectDot function: dot(a,b) := std::conj(a)*b More...
 
template<class A , class B >
enable_if<!IsVector< A >
::value &&!is_same< typename
FieldTraits< A >::field_type,
typename FieldTraits< A >
::real_type >::value, typename
PromotionTraits< A, B >
::PromotedType >::type 
Dune::dotT (const A &a, const B &b)
 Computes an indefinite vector dot product for fundamental data types according to Petsc's VectTDot function: dotT(a,b) := a*b. More...
 
template<class A , class B >
enable_if< IsVector< A >
::value, typename
PromotionTraits< typename
A::field_type, typename
B::field_type >::PromotedType >
::type 
Dune::dotT (const A &a, const B &b)
 Computes an indefinite vector dot product for various dune vector types according to Petsc's VectTDot function: dotT(a,b) := a*b. More...
 

Detailed Description

Provides the functions dot(a,b) := $a^H \cdot b $ and dotT(a,b) := $a^T \cdot b $.

The provided dot products dot,dotT are used to compute (indefinite) dot products for fundamental types as well as DUNE vector types, such as DenseVector, FieldVector, ISTLVector. Note that the definition of dot(a,b) conjugates the first argument. This agrees with the behvaior of Matlab and Petsc, but noch with BLAS.

Author
Jö Fahlke, Matthias Wohlmuth