A traits class which provides basic mathematical functions for arbitrary scalar floating point values. More...
#include <cmath>
#include <algorithm>
#include <type_traits>
Go to the source code of this file.
Classes | |
struct | Opm::MathToolbox< ScalarT > |
struct | Opm::ReturnEval_< Eval1, Eval2 > |
Functions | |
template<class Evaluation , class Scalar > | |
Evaluation | Opm::constant (const Scalar &value) |
template<class Evaluation , class Scalar > | |
Evaluation | Opm::variable (const Scalar &value, unsigned idx) |
template<class ResultEval , class Evaluation > | |
auto | Opm::decay (const Evaluation &value)-> decltype(Opm |
template<class Evaluation > | |
auto | Opm::getValue (const Evaluation &val)-> decltype(Opm |
template<class Evaluation > | |
auto | Opm::scalarValue (const Evaluation &val)-> decltype(Opm |
template<class Evaluation1 , class Evaluation2 > | |
ReturnEval_< Evaluation1, Evaluation2 >::type | Opm::max (const Evaluation1 &arg1, const Evaluation2 &arg2) |
template<class Evaluation1 , class Evaluation2 > | |
ReturnEval_< Evaluation1, Evaluation2 >::type | Opm::min (const Evaluation1 &arg1, const Evaluation2 &arg2) |
template<class Evaluation > | |
Evaluation | Opm::abs (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::tan (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::atan (const Evaluation &value) |
template<class Evaluation1 , class Evaluation2 > | |
ReturnEval_< Evaluation1, Evaluation2 >::type | Opm::atan2 (const Evaluation1 &value1, const Evaluation2 &value2) |
template<class Evaluation > | |
Evaluation | Opm::sin (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::asin (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::cos (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::acos (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::sqrt (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::exp (const Evaluation &value) |
template<class Evaluation > | |
Evaluation | Opm::log (const Evaluation &value) |
template<class Evaluation1 , class Evaluation2 > | |
ReturnEval_< Evaluation1, Evaluation2 >::type | Opm::pow (const Evaluation1 &base, const Evaluation2 &exp) |
template<class Evaluation > | |
bool | Opm::isfinite (const Evaluation &value) |
template<class Evaluation > | |
bool | Opm::isnan (const Evaluation &value) |
A traits class which provides basic mathematical functions for arbitrary scalar floating point values.
The reason why this is done in such a complicated way is to enable other approaches, in particular automatic differentiation based ones.