https://mooseframework.inl.gov
Functions
CastDualNumber.h File Reference

Go to the source code of this file.

Functions

template<typename T1 , typename T2 >
std::enable_if< std::is_same< T1, T2 >::value, T1 >::type dual_number_cast (const T2 &v)
 no-op cast. More...
 
template<typename T1 , typename T2 >
std::enable_if< std::is_same< typename T2::value_type, T1 >::value, T1 >::type dual_number_cast (const T2 &v)
 Casting to the value type of the passed in dual number just removes derivatives. More...
 

Function Documentation

◆ dual_number_cast() [1/2]

template<typename T1 , typename T2 >
std::enable_if<std::is_same<T1, T2>::value, T1>::type dual_number_cast ( const T2 &  v)
inline

no-op cast.

Useful for templated wrapper types that resolve to the same type.

Definition at line 17 of file CastDualNumber.h.

18 {
19  return v;
20 }

◆ dual_number_cast() [2/2]

template<typename T1 , typename T2 >
std::enable_if<std::is_same<typename T2::value_type, T1>::value, T1>::type dual_number_cast ( const T2 &  v)
inline

Casting to the value type of the passed in dual number just removes derivatives.

This allows casting ChainedReal to Real and ChainedADReal to ADReal.

Definition at line 28 of file CastDualNumber.h.

29 {
30  return v.value();
31 }