1#include "../detail/_vectorize.hpp"
5 template<length_t L,
typename T, qualifier Q>
6 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
vec<L, T, Q> min(
vec<L, T, Q> const& x,
vec<L, T, Q> const& y,
vec<L, T, Q> const& z)
8 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'min' only accept floating-point or integer inputs");
12 template<length_t L,
typename T, qualifier Q>
13 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
vec<L, T, Q> min(
vec<L, T, Q> const& x,
vec<L, T, Q> const& y,
vec<L, T, Q> const& z,
vec<L, T, Q> const& w)
15 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'min' only accept floating-point or integer inputs");
19 template<length_t L,
typename T, qualifier Q>
20 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
vec<L, T, Q> max(
vec<L, T, Q> const& x,
vec<L, T, Q> const& y,
vec<L, T, Q> const& z)
22 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'max' only accept floating-point or integer inputs");
26 template<length_t L,
typename T, qualifier Q>
27 GLM_FUNC_QUALIFIER GLM_CONSTEXPR
vec<L, T, Q> max(
vec<L, T, Q> const& x,
vec<L, T, Q> const& y,
vec<L, T, Q> const& z,
vec<L, T, Q> const& w)
29 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'max' only accept floating-point or integer inputs");
33 template<length_t L,
typename T, qualifier Q>
36 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmin' only accept floating-point inputs");
40 template<length_t L,
typename T, qualifier Q>
43 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmin' only accept floating-point inputs");
47 template<length_t L,
typename T, qualifier Q>
48 GLM_FUNC_QUALIFIER
vec<L, T, Q> fmin(
vec<L, T, Q> const& a,
vec<L, T, Q> const& b,
vec<L, T, Q> const& c)
50 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmin' only accept floating-point inputs");
54 template<length_t L,
typename T, qualifier Q>
55 GLM_FUNC_QUALIFIER
vec<L, T, Q> fmin(
vec<L, T, Q> const& a,
vec<L, T, Q> const& b,
vec<L, T, Q> const& c,
vec<L, T, Q> const& d)
57 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmin' only accept floating-point inputs");
61 template<length_t L,
typename T, qualifier Q>
64 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmax' only accept floating-point inputs");
68 template<length_t L,
typename T, qualifier Q>
71 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmax' only accept floating-point inputs");
75 template<length_t L,
typename T, qualifier Q>
76 GLM_FUNC_QUALIFIER
vec<L, T, Q> fmax(
vec<L, T, Q> const& a,
vec<L, T, Q> const& b,
vec<L, T, Q> const& c)
78 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmax' only accept floating-point inputs");
82 template<length_t L,
typename T, qualifier Q>
83 GLM_FUNC_QUALIFIER
vec<L, T, Q> fmax(
vec<L, T, Q> const& a,
vec<L, T, Q> const& b,
vec<L, T, Q> const& c,
vec<L, T, Q> const& d)
85 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmax' only accept floating-point inputs");
89 template<length_t L,
typename T, qualifier Q>
95 template<length_t L,
typename T, qualifier Q>
96 GLM_FUNC_QUALIFIER
vec<L, T, Q> fclamp(
vec<L, T, Q> const& x,
vec<L, T, Q> const& minVal,
vec<L, T, Q> const& maxVal)
98 return fmin(
fmax(x, minVal), maxVal);
101 template<length_t L,
typename T, qualifier Q>
107 template<length_t L,
typename T, qualifier Q>
113 template<length_t L,
typename T, qualifier Q>
119 template<length_t L,
typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x)
GLM_FUNC_DECL GLM_CONSTEXPR genType min(genType x, genType y)
Definition func_common.inl:17
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal)
Definition func_common.inl:505
GLM_FUNC_DECL genType fract(genType x)
Definition func_common.inl:388
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
Definition func_common.inl:526
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Definition func_common.inl:307
GLM_FUNC_DECL GLM_CONSTEXPR genType max(genType x, genType y)
Definition func_common.inl:25
GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec< L, bool, Q > greaterThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Definition func_vector_relational.inl:31
GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)
Definition scalar_common.inl:143
GLM_FUNC_DECL genType fclamp(genType x, genType minVal, genType maxVal)
Definition scalar_common.inl:118
GLM_FUNC_DECL T fmax(T a, T b)
Definition scalar_common.inl:76
GLM_FUNC_DECL T fmin(T a, T b)
Definition scalar_common.inl:31
GLM_FUNC_DECL genType repeat(genType const &Texcoord)
Definition scalar_common.inl:131
GLM_FUNC_DECL genType mirrorClamp(genType const &Texcoord)
Definition scalar_common.inl:137
Core features
Definition common.hpp:21
Definition _vectorize.hpp:46
Definition qualifier.hpp:35