16#ifndef simd_tools_included
17#define simd_tools_included
19#include <Simd_Array_template.h>
20#include <Simd_VectorArray_template.h>
21#include <Simd_MatrixArray_template.h>
23template<
typename _TYPE_>
29template<
typename _TYPE_>
35inline Simd_float select_float(Simd_float x1, Simd_float x2, Simd_float value_if_x1_lower_than_x2, Simd_float value_otherwise)
37 return SimdSelect(x1, x2, value_if_x1_lower_than_x2, value_otherwise);
39inline float select_float(
float x1,
float x2,
float value_if_x1_lower_than_x2,
float value_otherwise)
41 return (x1 < x2) ? value_if_x1_lower_than_x2 : value_otherwise;
44inline Simd_double select_double(Simd_double x1, Simd_double x2, Simd_double value_if_x1_lower_than_x2, Simd_double value_otherwise)
46 return SimdSelect(x1, x2, value_if_x1_lower_than_x2, value_otherwise);
48inline double select_double(
double x1,
double x2,
double value_if_x1_lower_than_x2,
double value_otherwise)
50 return (x1 < x2) ? value_if_x1_lower_than_x2 : value_otherwise;
This class provides a generic access to simd operations on x86, x86 AMD and ARM architectures.