DUNE-ACFEM (2.5.1)

parameterexpression.hh File Reference

Some basic algebraic expression for Parameter classes. More...

#include "../expressions/expressionoperations.hh"
#include "../expressions/parameteroperations.hh"
#include "../expressions/parameterinterface.hh"
+ Include dependency graph for parameterexpression.hh:

Go to the source code of this file.

Namespaces

namespace  Dune::ACFem
 A namespace encapsulating everything defined in our dune-acfem project.
 

Functions

template<class Left , class Right >
BinaryParameterExpression< MinusOperation, Left, Right > Dune::ACFem::operator- (const ParameterInterface< Left > &left, const ParameterInterface< Right > &right)
 Difference between parameters.
 
template<class Right >
BinaryParameterExpression< MinusOperation, typename Right::ValueType, Right > Dune::ACFem::operator- (const typename Right::ValueType &left, const ParameterInterface< Right > &right)
 Difference with vectors from the left.
 
template<class Left >
BinaryParameterExpression< MinusOperation, Left, typename Left::ValueType > Dune::ACFem::operator- (const ParameterInterface< Left > &left, const typename Left::ValueType &right)
 Difference with vectors from the right.
 
template<class Left , class Right >
BinaryParameterExpression< MultiplyOperation, Left, Right > Dune::ACFem::operator* (const ParameterInterface< Left > &left, const ParameterInterface< Right > &right)
 Scalar product between parameters.
 
template<class Right >
BinaryParameterExpression< MultiplyOperation, typename Right::ValueType, Right > Dune::ACFem::operator* (const typename Right::ValueType &left, const ParameterInterface< Right > &right)
 Multiplication by vectors from the left.
 
template<class Left >
auto Dune::ACFem::operator* (const ParameterInterface< Left > &left, const typename Left::ValueType &right) -> decltype(right *asImp(left))
 Multiplication by vectors from the right.
 
template<class Right >
BinaryParameterExpression< SMultiplyOperation, typename FieldTraits< typename Right::ValueType >::field_type, Right > Dune::ACFem::operator* (const typename FieldTraits< typename Right::ValueType >::field_type &left, const ParameterInterface< Right > &right)
 Multiplication by scalars from the left.
 
template<class Left >
auto Dune::ACFem::operator* (const ParameterInterface< Left > &left, const typename FieldTraits< typename Left::ValueType >::field_type &right) -> decltype(right *asImp(left))
 Multiplication by scalars from the right.
 
template<class Field , class Parameter >
static auto Dune::ACFem::operator* (const Field &s_, const BinaryParameterExpression< SMultiplyOperation, Field, Parameter > &P_) -> decltype((s_ *P_.left()) *P_.right())
 Fold s * (s * P) into (s*s) * P.
 
template<class Field , class Parameter1 , class Parameter2 >
static auto Dune::ACFem::operator* (const BinaryParameterExpression< SMultiplyOperation, Field, Parameter1 > &P1_, const ParameterInterface< Parameter2 > &P2_) -> decltype(P1_.left() *(P1_.right() *asImp(P2_)))
 Fold (s * P1) * P2 into s * (P1 * P2)
 
template<class Field , class Parameter1 , class Parameter2 >
static auto Dune::ACFem::operator* (const ParameterInterface< Parameter1 > &P1_, const BinaryParameterExpression< SMultiplyOperation, Field, Parameter2 > &P2_) -> decltype(P2_.left() *(asImp(P1_) *P2_.right()))
 Fold P1 * (s * P2) into s * (P1 * P2)
 
template<class Field , class Parameter1 , class Parameter2 >
static auto Dune::ACFem::operator* (const BinaryParameterExpression< SMultiplyOperation, Field, Parameter1 > &P1_, const BinaryParameterExpression< SMultiplyOperation, Field, Parameter2 > &P2_) -> decltype((P2_.left() *P2_.left()) *(P1_.right() *P2_.right()))
 Fold (s1 * P1) * (s2 * P2) into (s1 * s2) * (P1 * P2)
 

Detailed Description

Some basic algebraic expression for Parameter classes.

We only implement multiplication by FieldTraits<ValueType>::field_type and addition, substraction.

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Mar 12, 23:28, 2025)