26#if defined(_OPENMP) && !defined(_WIN32) && !defined(__GNUC__)
28#pragma omp declare simd
29extern float fmaxf(
const float x,
const float y);
31#pragma omp declare simd
32extern float fminf(
const float x,
const float y);
34#pragma omp declare simd
35extern float fabsf(
const float x);
37#pragma omp declare simd
38extern float powf(
const float x,
const float y);
40#pragma omp declare simd
41extern float sqrtf(
const float x);
43#pragma omp declare simd
44extern float cbrtf(
const float x);
46#pragma omp declare simd
47extern float log2f(
const float x);
49#pragma omp declare simd
50extern float exp2f(
const float x);
52#pragma omp declare simd
53extern float log10f(
const float x);
55#pragma omp declare simd
56extern float expf(
const float x);
58#pragma omp declare simd
59extern float logf(
const float x);
67#pragma omp declare simd
73 return exp2f(3.3219280948873626f * x);
78#pragma omp declare simd
84 return exp2f(1.4426950408889634f * x);
89#pragma omp declare simd aligned(vector:16)
91static inline float v_maxf(
const float vector[3])
94 return fmaxf(fmaxf(vector[0], vector[1]), vector[2]);
99#pragma omp declare simd aligned(vector:16)
101static inline float v_minf(
const float vector[3])
104 return fminf(fminf(vector[0], vector[1]), vector[2]);
108#pragma omp declare simd aligned(vector:16)
110static inline float v_sumf(
const float vector[3])
112 return vector[0] + vector[1] + vector[2];
117#pragma omp declare simd
119static inline float fmaxabsf(
const float a,
const float b)
122 return (fabsf(a) > fabsf(b) && !isnan(a)) ? a :
123 (isnan(b)) ? 0.f : b;
128#pragma omp declare simd
130static inline float fminabsf(
const float a,
const float b)
133 return (fabsf(a) < fabsf(b) && !isnan(a)) ? a :
134 (isnan(b)) ? 0.f : b;
139#pragma omp declare simd
143 return fminf(fmaxf(x, 0.0f), 1.0f);
static float fminabsf(const float a, const float b)
Definition openmp_maths.h:130
static float fmaxabsf(const float a, const float b)
Definition openmp_maths.h:119
static float v_maxf(const float vector[3])
Definition openmp_maths.h:91
static float v_sumf(const float vector[3])
Definition openmp_maths.h:110
static float fast_exp10f(const float x)
Definition openmp_maths.h:69
static float clamp_simd(const float x)
Definition openmp_maths.h:141
static float fast_expf(const float x)
Definition openmp_maths.h:80
static float v_minf(const float vector[3])
Definition openmp_maths.h:101