DUNE-ACFEM (unstable)

Perform the following substitutions: More...

Classes

struct  Dune::ACFem::Tensor::Optimization::Sums::IsDistributiveOperation< Operation >
 True for expressions which can be moved inside or outside of sums. More...
 

Functions

template<class T0 , class T1 , std::enable_if_t< AreRuntimeEqual< T0, T1 >::value, int > = 0>
constexpr auto Dune::ACFem::Tensor::Optimization::Sums::operate (OptimizeNext< DefaultTag >, PlusFunctor, T0 &&t0, T1 &&t1)
 Optimize a+a to 2a. More...
 
template<class F , class T0 , class T1 , std::enable_if_t< isSumOfMergableScalars< F, T0, T1 >(), int > = 0>
constexpr auto Dune::ACFem::Tensor::Optimization::Sums::operate (OptimizeTerminal1, F &&f, T0 &&t0, T1 &&t1)
 

Detailed Description

Perform the following substitutions:

  • A + A to 2A, see IsSumOfIdentical
  • OP(A + B) to OP(A) + OP(B) if simplifying, see IsUnaryOperationOnSum
  • OP(A, B+C) to OP(A, B) + OP(A, C) if simplifying, see IsBinaryOperationOnRightSum
  • OP(A+B, C) to OP(A, C) + OP(B, C) if simplifying, see IsBinaryOperationOnLeftSum

Function Documentation

◆ operate() [1/2]

template<class T0 , class T1 , std::enable_if_t< AreRuntimeEqual< T0, T1 >::value, int > = 0>
constexpr auto Dune::ACFem::Tensor::Optimization::Sums::operate ( OptimizeNext< DefaultTag ,
PlusFunctor  ,
T0 &&  t0,
T1 &&  t1 
)
constexpr

Optimize a+a to 2a.

Note
This should be obsolete and covered by the general factorization code.

References Dune::ACFem::Tensor::Optimization::Sums::operate().

◆ operate() [2/2]

template<class F , class T0 , class T1 , std::enable_if_t< isSumOfMergableScalars< F, T0, T1 >(), int > = 0>
constexpr auto Dune::ACFem::Tensor::Optimization::Sums::operate ( OptimizeTerminal1  ,
F &&  f,
T0 &&  t0,
T1 &&  t1 
)
constexpr

@@OptimizeFinal Candidate

Referenced by Dune::ACFem::Tensor::Optimization::Sums::operate().

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