DUNE-ACFEM (2.5.1)

Functions

template<class Field , class Function >
static auto Dune::ACFem::operator* (const Field &s_, const Fem::Function< typename Function::FunctionSpaceType, BinaryGridFunctionExpression< SMultiplyOperation, Field, Function > > &f_) -> decltype((s_ *asImp(f_).scalar()) *asImp(f_).function())
 Fold s * (s * f) into (s*s) * f.
 
template<class Field , class Function1 , class Function2 >
static auto Dune::ACFem::operator* (const Fem::Function< typename Function1::FunctionSpaceType, BinaryGridFunctionExpression< SMultiplyOperation, Field, Function1 > > &f1_, const Fem::Function< typename Function2::FunctionSpaceType, Function2 > &f2_) -> decltype(asImp(f1_).scalar() *(asImp(f1_).function() *asImp(f2_)))
 Fold (s * f1) * f2 into s *(f1 f2)
 
template<class Field , class Function1 , class Function2 >
static auto Dune::ACFem::operator* (const Fem::Function< typename Function1::FunctionSpaceType, Function1 > &f1_, const Fem::Function< typename Function2::FunctionSpaceType, BinaryGridFunctionExpression< SMultiplyOperation, Field, Function2 > > &f2_) -> decltype(asImp(f2_).scalar() *(asImp(f1_) *asImp(f2_).function()))
 Fold f1 * (s * f2) into s *(f1 f2)
 
template<class Field1 , class Field2 , class Function1 , class Function2 >
static auto Dune::ACFem::operator* (const Fem::Function< typename Function1::FunctionSpaceType, BinaryGridFunctionExpression< SMultiplyOperation, Field1, Function1 > > &f1_, const Fem::Function< typename Function2::FunctionSpaceType, BinaryGridFunctionExpression< SMultiplyOperation, Field2, Function2 > > &f2_) -> decltype((asImp(f1_).scalar() *asImp(f2_).scalar()) *(asImp(f1_).function() *asImp(f2_).function()))
 Fold (s1 * f1) * (s2 * f2) into (s1*s2) *(f1 f2)
 
template<class Parameter , class Function >
static auto Dune::ACFem::operator* (const ParameterInterface< Parameter > &p_, const Fem::Function< typename Function::FunctionSpaceType, BinaryGridFunctionExpression< SMultiplyOperation, typename Function::RangeFieldType, Function > > &f_) -> decltype(asImp(f_).scalar() *(asImp(p_) *asImp(f_).function()))
 Move scalars left-most.
 
template<class Field , class Parameter , class Function >
static auto Dune::ACFem::operator* (const BinaryParameterExpression< SMultiplyOperation, Field, Parameter > &p_, const Fem::Function< typename Function::FunctionSpaceType, Function > &f_) -> decltype(p_.left() *(p_.right() *asImp(f_)))
 Move scalars out of BinaryParameterExpression.
 
template<class Parameter , class ZeroExpression >
static ZeroExpression Dune::ACFem::operator* (const BinaryParameterExpression< SMultiplyOperation, typename ZeroExpression::RangeFieldType, Parameter > &p_, const ZeroGridFunctionExpression< typename ZeroExpression::FunctionSpaceType, ZeroExpression > &z_)
 We need to specialize moving scalars out of expressions for ZeroGridFunction, otherwise the optimization results in ambiguous overloads. More...
 

Detailed Description

Function Documentation

◆ operator*()

template<class Parameter , class ZeroExpression >
static ZeroExpression Dune::ACFem::operator* ( const BinaryParameterExpression< SMultiplyOperation, typename ZeroExpression::RangeFieldType, Parameter > &  p_,
const ZeroGridFunctionExpression< typename ZeroExpression::FunctionSpaceType, ZeroExpression > &  z_ 
)
inlinestatic

We need to specialize moving scalars out of expressions for ZeroGridFunction, otherwise the optimization results in ambiguous overloads.

However, the result is zero ;)

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 24, 22:30, 2024)