DUNE-ACFEM (2.5.1)
ExpressionResults
Helper structures for expression templates which aid in forming an (optimized) result types. More...
Classes | |
struct | Dune::ACFem::ZeroExpression< ExpressionImpl > |
A tag structure which can be attached as base class to zero-expressions like the ZeroGridFunction, the ZeroModel, the ZeroFunctional. More... | |
struct | Dune::ACFem::NonZeroExpression< ExpressionImpl > |
Complementary to ZeroExpression for use in std::conditional, for example, otherwise unused. More... | |
struct | Dune::ACFem::OneExpression< ExpressionImpl > |
A tag structure which can be attached as base-class to expressions modelling a 1 (in a field, e.g., or the constant-one function) More... | |
struct | Dune::ACFem::DefaultExpressionTraits< ExpressionImpl > |
Default expressions traits. More... | |
struct | Dune::ACFem::ExpressionTraits< Expression > |
A traits class in order to collect properties of expressions. More... | |
struct | Dune::ACFem::ExpressionResult< UnOp, LeftOperand, RightOperand > |
Automatically deduce the type by applying the respective operation. More... | |
struct | Dune::ACFem::UnaryExpressionTraits< UnOp, Value > |
The default result type is void in order to trigger compilation errors. More... | |
struct | Dune::ACFem::BinaryExpressionTraits< BinOp, LeftValue, RightValue > |
The default result type is void in order to trigger compilation errors. More... | |
Functions | |
template<class Expression > | |
constexpr bool | Dune::ACFem::isZero (Expression &&) |
Specialize to evaluate to true for zero expressions. | |
Detailed Description
Helper structures for expression templates which aid in forming an (optimized) result types.
While forming expression templates there are several challenges:
- perform the usual no-op optimizations (-(-arg) == arg), avoid double wrapping into IdentityOperations). Optimize for no-ops resulting from adding zeros are multiplying with zeros (see ZeroExpression, ExpressionTraits).
- deduce the point-wise return type, keeping sclar product and the like into account (see UnaryExpressionTraits, BinaryExpressionTraits)
- provide means to make use of optimized operator-functions in the definition of expression templates for complicated compound-object expressions (see ModelExpression and ExpressionResult).
- actually form those complicated-optimized expressions by simply calling the operator-functions, but in a consistent manner, see ExpressionResult.
|
Legal Statements / Impressum |
Hosted by TU Dresden |
generated with Hugo v0.111.3
(Nov 12, 23:30, 2024)