37template <
typename T,
typename S>
38any_platform inline auto pow(T base, S
exp) -> std::enable_if_t<std::is_arithmetic_v<T>,
decltype(std::pow(base,
exp))>
41 return ::pow(base,
exp);
43 return std::pow(base,
exp);
50 return ::powf(base,
exp);
56inline long double powl(
long double base,
long double exp)
62inline float fmod(
float x,
float y)
64 return std::fmod(x, y);
67inline float fmodf(
float x,
float y)
72inline double fmod(
double x,
double y)
74 return std::fmod(x, y);
77inline long double fmod(
long double x,
long double y)
79 return std::fmod(x, y);
82inline long double fmodl(
long double x,
long double y)
87inline float fmod(
float x,
int y)
89 return std::fmod(x, y);
92inline double fmod(
double x,
int y)
94 return std::fmod(x, y);
97inline long double fmod(
long double x,
int y)
99 return std::fmod(x, y);
102template <
typename T,
typename S>
105 return std::fmod(x, y);
113 return std::exp(arg);
119 return std::exp(arg);
127inline long double expl(
long double arg)
133inline float log(
float arg)
135 return std::log(arg);
143inline double log(
double arg)
145 return std::log(arg);
148inline long double log(
long double arg)
150 return std::log(arg);
153inline long double logl(
long double arg)
159inline std::enable_if_t<std::is_integral_v<T>,
double>
log(T arg)
161 return std::log(arg);
167 return std::log10(arg);
177 return std::log10(arg);
180inline long double log10(
long double arg)
182 return std::log10(arg);
185inline long double log10l(
long double arg)
191inline std::enable_if_t<std::is_integral_v<T>,
double>
log10(T arg)
193 return std::log10(arg);
199 return std::log2(arg);
209 return std::log2(arg);
212inline long double log2(
long double arg)
214 return std::log2(arg);
217inline long double log2l(
long double arg)
223inline std::enable_if_t<std::is_integral_v<T>,
double>
log2(T arg)
225 return std::log2(arg);
231 return std::log1p(arg);
241 return std::log1p(arg);
244inline long double log1p(
long double arg)
246 return std::log1p(arg);
249inline long double log1pl(
long double arg)
255inline std::enable_if_t<std::is_integral_v<T>,
double>
log1p(T arg)
257 return std::log1p(arg);
270inline long double sqrtl(
long double arg)
281 return std::sqrt(arg);
291 return std::sqrt(arg);
296inline float sin(
float arg)
298 return std::sin(arg);
306inline double sin(
double arg)
308 return std::sin(arg);
311inline long double sin(
long double arg)
313 return std::sin(arg);
316inline long double sinl(
long double arg)
322inline std::enable_if_t<std::is_integral_v<T>,
double>
sin(T arg)
324 return std::sin(arg);
330 return std::sinh(arg);
340 return std::sinh(arg);
343inline long double sinh(
long double arg)
345 return std::sinh(arg);
348inline long double sinhl(
long double arg)
354inline std::enable_if_t<std::is_integral_v<T>,
double>
sinh(T arg)
356 return std::sinh(arg);
360inline float cos(
float arg)
362 return std::cos(arg);
370inline double cos(
double arg)
372 return std::cos(arg);
375inline long double cos(
long double arg)
377 return std::cos(arg);
380inline long double cosl(
long double arg)
386inline std::enable_if_t<std::is_integral_v<T>,
double>
cos(T arg)
388 return std::cos(arg);
394 return std::cosh(arg);
404 return std::cosh(arg);
407inline long double cosh(
long double arg)
409 return std::cosh(arg);
412inline long double coshl(
long double arg)
418inline std::enable_if_t<std::is_integral_v<T>,
double>
cosh(T arg)
420 return std::cosh(arg);
424inline float tan(
float arg)
426 return std::tan(arg);
434inline double tan(
double arg)
436 return std::tan(arg);
439inline long double tan(
long double arg)
441 return std::tan(arg);
444inline long double tanl(
long double arg)
450inline std::enable_if_t<std::is_integral_v<T>,
double>
tan(T arg)
452 return std::tan(arg);
458 return std::tanh(arg);
468 return std::tanh(arg);
471inline long double tanh(
long double arg)
473 return std::tanh(arg);
476inline long double tanhl(
long double arg)
482inline std::enable_if_t<std::is_integral_v<T>,
double>
tanh(T arg)
484 return std::tanh(arg);
490 return std::asin(arg);
500 return std::asin(arg);
503inline long double asin(
long double arg)
505 return std::asin(arg);
508inline long double asinl(
long double arg)
514inline std::enable_if_t<std::is_integral_v<T>,
double>
asin(T arg)
516 return std::asin(arg);
522 return std::asinh(arg);
532 return std::asinh(arg);
535inline long double asinh(
long double arg)
537 return std::asinh(arg);
540inline long double asinhl(
long double arg)
546inline std::enable_if_t<std::is_integral_v<T>,
double>
asinh(T arg)
548 return std::asinh(arg);
554 return std::acos(arg);
564 return std::acos(arg);
567inline long double acos(
long double arg)
569 return std::acos(arg);
572inline long double acosl(
long double arg)
578inline std::enable_if_t<std::is_integral_v<T>,
double>
acos(T arg)
580 return std::acos(arg);
586 return std::acosh(arg);
596 return std::acosh(arg);
599inline long double acosh(
long double arg)
601 return std::acosh(arg);
604inline long double acoshl(
long double arg)
610inline std::enable_if_t<std::is_integral_v<T>,
double>
acosh(T arg)
612 return std::acosh(arg);
618 return std::atan(arg);
628 return std::atan(arg);
631inline long double atan(
long double arg)
633 return std::atan(arg);
636inline long double atanl(
long double arg)
642inline std::enable_if_t<std::is_integral_v<T>,
double>
atan(T arg)
644 return std::atan(arg);
650 return std::atan2(y, x);
658inline double atan2(
double y,
double x)
660 return std::atan2(y, x);
663inline long double atan2(
long double y,
long double x)
665 return std::atan2(y, x);
668inline long double atan2l(
long double y,
long double x)
674inline std::enable_if_t<std::is_integral_v<T>,
double>
atan2(T y, T x)
676 return std::atan2(y, x);
682 return std::atanh(arg);
692 return std::atanh(arg);
695inline long double atanh(
long double arg)
697 return std::atanh(arg);
700inline long double atanhl(
long double arg)
706inline std::enable_if_t<std::is_integral_v<T>,
double>
atanh(T arg)
708 return std::atanh(arg);
716 return std::floor(arg);
721 return std::floor(arg);
724inline long double floor(
long double arg)
726 return std::floor(arg);
734inline long double floorl(
long double arg)
740inline std::enable_if_t<std::is_integral_v<T>,
double>
floor(T arg)
742 return std::floor(arg);
748 return std::ceil(arg);
753 return std::ceil(arg);
756inline long double ceil(
long double arg)
758 return std::ceil(arg);
766inline long double ceill(
long double arg)
772inline std::enable_if_t<std::is_integral_v<T>,
double>
ceil(T arg)
774 return std::ceil(arg);
780 return std::trunc(arg);
790 return std::trunc(arg);
793inline long double trunc(
long double arg)
795 return std::trunc(arg);
798inline long double truncl(
long double arg)
804inline std::enable_if_t<std::is_integral_v<T>,
double>
trunc(T arg)
806 return std::trunc(arg);
811inline std::enable_if_t<std::is_integral_v<T>,
double>
round(T arg)
813 return std::round(arg);
818 return std::round(arg);
823 return std::round(arg);
826inline long double round(
long double arg)
828 return std::round(arg);
841inline long double roundl(
long double arg)
847inline std::enable_if_t<std::is_arithmetic_v<T>,
long>
lround(T arg)
849 return std::lround(arg);
863inline std::enable_if_t<std::is_arithmetic_v<T>,
long long>
llround(T arg)
865 return std::llround(arg);
886 return std::abs(arg);
896 return std::fabs(arg);
906 return std::fabs(arg);
915inline long long llabs(
long long arg)
925inline long double fabs(
long double arg)
927 return std::fabs(arg);
930inline long double fabsl(
long double arg)
ADf< T, DIM > labs(const ADf< T, DIM > &a)
cpu::simd::Pack< T > sqrt(cpu::simd::Pack< T > value)
ADf< long double, DIM > fabsl(const ADf< long double, DIM > &a)
long double atanl(long double arg)
ADf< T, DIM > abs(const ADf< T, DIM > &a)
ADf< T, DIM > ceil(const ADf< T, DIM > &a)
ADf< T, DIM > floor(const ADf< T, DIM > &a)
long double fmodl(long double x, long double y)
ADf< T, DIM > tan(const ADf< T, DIM > &a)
ADf< T, DIM > fmod(const ADf< T, DIM > &a, const ADf< T, DIM > &b)
long double asinl(long double arg)
long double sinl(long double arg)
ADf< T, DIM > atan2(const T &y, const ADf< T, DIM > &x)
long double tanhl(long double arg)
ADf< float, DIM > llroundf(const ADf< float, DIM > &a)
float atan2f(float y, float x)
ADf< T, DIM > asinh(const ADf< T, DIM > &a)
ADf< long double, DIM > log1pl(const ADf< long double, DIM > &a)
ADf< T, DIM > lround(const ADf< T, DIM > &a)
long double truncl(long double arg)
any_platform float sqrtf(float arg)
ADf< float, DIM > log10f(const ADf< float, DIM > &a)
ADf< T, DIM > log(const ADf< T, DIM > &a)
ADf< long double, DIM > expl(const ADf< long double, DIM > &a)
ADf< float, DIM > logf(const ADf< float, DIM > &a)
ADf< long double, DIM > log2l(const ADf< long double, DIM > &a)
long double asinhl(long double arg)
long double atan2l(long double y, long double x)
long double tanl(long double arg)
long double sqrtl(long double arg)
ADf< float, DIM > roundf(const ADf< float, DIM > &a)
ADf< T, DIM > round(const ADf< T, DIM > &a)
float fmodf(float x, float y)
ADf< float, DIM > log2f(const ADf< float, DIM > &a)
ADf< long double, DIM > log10l(const ADf< long double, DIM > &a)
ADf< T, DIM > llround(const ADf< T, DIM > &a)
ADf< float, DIM > floorf(const ADf< float, DIM > &a)
ADf< T, DIM > sin(const ADf< T, DIM > &a)
ADf< float, DIM > expf(const ADf< float, DIM > &a)
ADf< T, DIM > acosh(const ADf< T, DIM > &a)
long double acosl(long double arg)
ADf< long double, DIM > floorl(const ADf< long double, DIM > &a)
ADf< float, DIM > fabsf(const ADf< float, DIM > &a)
long double powl(long double base, long double exp)
long double acoshl(long double arg)
ADf< T, DIM > asin(const ADf< T, DIM > &a)
ADf< T, DIM > log1p(const ADf< T, DIM > &a)
cpu::simd::Pack< T > pow(cpu::simd::Pack< T > base, cpu::simd::Pack< T > exp)
long double sinhl(long double arg)
ADf< float, DIM > lroundf(const ADf< float, DIM > &a)
ADf< T, DIM > cosh(const ADf< T, DIM > &a)
ADf< T, DIM > llabs(const ADf< T, DIM > &a)
ADf< T, DIM > sinh(const ADf< T, DIM > &a)
cpu::simd::Pack< T > fabs(cpu::simd::Pack< T > value)
long double atanhl(long double arg)
ADf< long double, DIM > lroundl(const ADf< long double, DIM > &a)
ADf< long double, DIM > roundl(const ADf< long double, DIM > &a)
ADf< T, DIM > acos(const ADf< T, DIM > &a)
ADf< long double, DIM > llroundl(const ADf< long double, DIM > &a)
any_platform float powf(float base, float exp)
long double cosl(long double arg)
ADf< long double, DIM > ceill(const ADf< long double, DIM > &a)
ADf< T, DIM > tanh(const ADf< T, DIM > &a)
long double coshl(long double arg)
ADf< float, DIM > log1pf(const ADf< float, DIM > &a)
ADf< T, DIM > log10(const ADf< T, DIM > &a)
ADf< T, DIM > atan(const ADf< T, DIM > &a)
ADf< long double, DIM > logl(const ADf< long double, DIM > &a)
ADf< T, DIM > exp(const ADf< T, DIM > &a)
ADf< float, DIM > ceilf(const ADf< float, DIM > &a)
ADf< T, DIM > atanh(const ADf< T, DIM > &a)
ADf< T, DIM > log2(const ADf< T, DIM > &a)
ADf< T, DIM > cos(const ADf< T, DIM > &a)
Top level namespace for all of OpenLB.