25#ifndef DT_MATH_OPENMP_MATHS_H
26#define DT_MATH_OPENMP_MATHS_H
29#if defined(_OPENMP) && !defined(_WIN32) && !defined(__GNUC__)
31#pragma omp declare simd
32extern float fmaxf(
const float x,
const float y);
34#pragma omp declare simd
35extern float fminf(
const float x,
const float y);
37#pragma omp declare simd
38extern float fabsf(
const float x);
40#pragma omp declare simd
41extern float powf(
const float x,
const float y);
43#pragma omp declare simd
44extern float sqrtf(
const float x);
46#pragma omp declare simd
47extern float cbrtf(
const float x);
49#pragma omp declare simd
50extern float log2f(
const float x);
52#pragma omp declare simd
53extern float exp2f(
const float x);
55#pragma omp declare simd
56extern float log10f(
const float x);
58#pragma omp declare simd
59extern float expf(
const float x);
61#pragma omp declare simd
62extern float logf(
const float x);
74 return exp2f(3.3219280948873626f *
x);
83 return exp2f(1.4426950408889634f *
x);
91 return fmaxf(
fmaxf(vector[0], vector[1]), vector[2]);
99 return fminf(
fminf(vector[0], vector[1]), vector[2]);
105 return vector[0] + vector[1] + vector[2];
114 (
isnan(b)) ? 0.f : b;
123 (
isnan(b)) ? 0.f : b;
#define __OMP_DECLARE_SIMD__(...)
static float fminabsf(const float a, const float b)
static float fmaxabsf(const float a, const float b)
static float v_maxf(const float vector[3])
static float v_sumf(const float vector[3])
static float fast_exp10f(const float x)
static float clamp_simd(const float x)
static float fast_expf(const float x)
static float v_minf(const float vector[3])