OpenLB 1.8.1
Loading...
Searching...
No Matches
omath.h File Reference
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <type_traits>
+ Include dependency graph for omath.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  olb
 Top level namespace for all of OpenLB.
 
namespace  olb::util
 

Functions

template<typename T , typename S >
any_platform auto olb::util::pow (T x, S y) -> std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< S >, decltype(std::pow(x, y))>
 
template<typename T , typename S >
any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_integral_v< S >, double > olb::util::pow (T x, S y)
 
any_platform float olb::util::powf (float base, float exp)
 
any_platform float olb::util::powf (int base, int exp)
 
long double olb::util::powl (long double base, long double exp)
 
template<typename T , typename S >
any_platform auto olb::util::fmod (T x, S y) -> std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< S >, decltype(std::fmod(x, y))>
 
template<typename T , typename S >
any_platform std::enable_if_t< std::is_integral_v< S > &&std::is_floating_point_v< T >, T > olb::util::fmod (T x, S y)
 
template<typename T , typename S >
any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_floating_point_v< S >, S > olb::util::fmod (T x, S y)
 
any_platform float olb::util::fmodf (float x, float y)
 
any_platform float olb::util::fmodf (int x, int y)
 
long double olb::util::fmodl (long double x, long double y)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::exp (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::exp (T arg)
 
any_platform float olb::util::expf (float arg)
 
any_platform float olb::util::expf (int arg)
 
long double olb::util::expl (long double arg)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::log (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::log (T arg)
 
any_platform float olb::util::logf (float arg)
 
any_platform float olb::util::logf (int arg)
 
long double olb::util::logl (long double arg)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::log10 (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::log10 (T arg)
 
any_platform float olb::util::log10f (float arg)
 
any_platform float olb::util::log10f (int arg)
 
long double olb::util::log10l (long double arg)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::log2 (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::log2 (T arg)
 
any_platform float olb::util::log2f (float arg)
 
any_platform float olb::util::log2f (int arg)
 
long double olb::util::log2l (long double arg)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::log1p (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::log1p (T arg)
 
any_platform float olb::util::log1pf (float arg)
 
any_platform float olb::util::log1pf (int arg)
 
long double olb::util::log1pl (long double arg)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::sqrt (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::sqrt (T arg)
 
any_platform float olb::util::sqrtf (float arg)
 
any_platform float olb::util::sqrtf (int arg)
 
long double olb::util::sqrtl (long double arg)
 
any_platform float olb::util::sinf (float x)
 
any_platform float olb::util::sinf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::sin (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::sin (T x)
 
long double olb::util::sinl (long double arg)
 
any_platform float olb::util::sinhf (float x)
 
any_platform float olb::util::sinhf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::sinh (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::sinh (T x)
 
long double olb::util::sinhl (long double arg)
 
any_platform float olb::util::cosf (float x)
 
any_platform float olb::util::cosf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::cos (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::cos (T x)
 
long double olb::util::cosl (long double arg)
 
any_platform float olb::util::coshf (float x)
 
any_platform float olb::util::coshf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::cosh (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::cosh (T x)
 
long double olb::util::coshl (long double arg)
 
any_platform float olb::util::tanf (float x)
 
any_platform float olb::util::tanf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::tan (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::tan (T x)
 
long double olb::util::tanl (long double arg)
 
any_platform float olb::util::tanhf (float x)
 
any_platform float olb::util::tanhf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::tanh (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::tanh (T x)
 
long double olb::util::tanhl (long double arg)
 
any_platform float olb::util::asinf (float x)
 
any_platform float olb::util::asinf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::asin (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::asin (T x)
 
long double olb::util::asinl (long double arg)
 
any_platform float olb::util::asinhf (float x)
 
any_platform float olb::util::asinhf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::asinh (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::asinh (T x)
 
long double olb::util::asinhl (long double arg)
 
any_platform float olb::util::acosf (float x)
 
any_platform float olb::util::acosf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::acos (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::acos (T x)
 
long double olb::util::acosl (long double arg)
 
any_platform float olb::util::acoshf (float x)
 
any_platform float olb::util::acoshf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::acosh (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::acosh (T x)
 
long double olb::util::acoshl (long double arg)
 
any_platform float olb::util::atanf (float x)
 
any_platform float olb::util::atanf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::atan (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::atan (T x)
 
long double olb::util::atanl (long double arg)
 
template<typename T , typename S >
any_platform auto olb::util::atan2 (T x, S y) -> std::enable_if_t< std::is_floating_point_v< T > &&std::is_floating_point_v< S >, decltype(std::atan2(x, y))>
 
template<typename T , typename S >
any_platform std::enable_if_t< std::is_integral_v< S > &&std::is_floating_point_v< T >, T > olb::util::atan2 (T x, S y)
 
template<typename T , typename S >
any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_floating_point_v< S >, S > olb::util::atan2 (T x, S y)
 
template<typename T , typename S >
any_platform std::enable_if_t< std::is_integral_v< T > &&std::is_integral_v< S >, double > olb::util::atan2 (T x, S y)
 
any_platform float olb::util::atan2f (float base, float exp)
 
any_platform float olb::util::atan2f (int base, int exp)
 
any_platform float olb::util::atanhf (float x)
 
any_platform float olb::util::atanhf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::atanh (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::atanh (T x)
 
long double olb::util::atanhl (long double arg)
 
any_platform float olb::util::floorf (float x)
 
any_platform float olb::util::floorf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::floor (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::floor (T x)
 
long double olb::util::floorl (long double arg)
 
any_platform float olb::util::ceilf (float x)
 
any_platform float olb::util::ceilf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::ceil (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::ceil (T x)
 
long double olb::util::ceill (long double arg)
 
any_platform float olb::util::truncf (float x)
 
any_platform float olb::util::truncf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::trunc (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::trunc (T x)
 
long double olb::util::truncl (long double arg)
 
any_platform float olb::util::roundf (float x)
 
any_platform float olb::util::roundf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::round (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::round (T x)
 
long double olb::util::roundl (long double arg)
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, long > olb::util::lround (T arg)
 
long olb::util::lroundf (float arg)
 
long olb::util::lroundl (long double arg)
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, long long > olb::util::llround (T arg)
 
long long olb::util::llroundf (float arg)
 
long long olb::util::llroundl (long double arg)
 
any_platform float olb::util::fabsf (float x)
 
any_platform float olb::util::fabsf (int x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::fabs (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, double > olb::util::fabs (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_floating_point_v< T >, T > olb::util::abs (T x)
 
template<typename T >
any_platform std::enable_if_t< std::is_integral_v< T >, T > olb::util::abs (T x)
 
long double olb::util::fabs (long double arg)
 
template<std::integral T>
any_platform bool olb::util::closeToZero (T x)
 
template<typename T >
any_platform bool olb::util::isnan (T arg)