diff options
Diffstat (limited to 'glm-master/glm/ext/vector_relational.inl')
-rw-r--r-- | glm-master/glm/ext/vector_relational.inl | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/glm-master/glm/ext/vector_relational.inl b/glm-master/glm/ext/vector_relational.inl deleted file mode 100644 index 7a39ab5..0000000 --- a/glm-master/glm/ext/vector_relational.inl +++ /dev/null @@ -1,75 +0,0 @@ -#include "../vector_relational.hpp" -#include "../common.hpp" -#include "../detail/qualifier.hpp" -#include "../detail/type_float.hpp" - -namespace glm -{ - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T Epsilon) - { - return equal(x, y, vec<L, T, Q>(Epsilon)); - } - - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& Epsilon) - { - return lessThanEqual(abs(x - y), Epsilon); - } - - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T Epsilon) - { - return notEqual(x, y, vec<L, T, Q>(Epsilon)); - } - - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& Epsilon) - { - return greaterThan(abs(x - y), Epsilon); - } - - - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, int MaxULPs) - { - return equal(x, y, vec<L, int, Q>(MaxULPs)); - } - - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, int, Q> const& MaxULPs) - { - vec<L, bool, Q> Result(false); - for(length_t i = 0; i < L; ++i) - { - detail::float_t<T> const a(x[i]); - detail::float_t<T> const b(y[i]); - - // Different signs means they do not match. - if(a.negative() != b.negative()) - { - // Check for equality to make sure +0==-0 - Result[i] = a.mantissa() == b.mantissa() && a.exponent() == b.exponent(); - } - else - { - // Find the difference in ULPs. - typename detail::float_t<T>::int_type const DiffULPs = abs(a.i - b.i); - Result[i] = DiffULPs <= MaxULPs[i]; - } - } - return Result; - } - - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, int MaxULPs) - { - return notEqual(x, y, vec<L, int, Q>(MaxULPs)); - } - - template<length_t L, typename T, qualifier Q> - GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, int, Q> const& MaxULPs) - { - return not_(equal(x, y, MaxULPs)); - } -}//namespace glm |