Clutter Engine 0.0.1
Loading...
Searching...
No Matches
epsilon.inl
1
2
3// Dependency:
5#include "../common.hpp"
6
7namespace glm
8{
9 template<>
10 GLM_FUNC_QUALIFIER bool epsilonEqual
11 (
12 float const& x,
13 float const& y,
14 float const& epsilon
15 )
16 {
17 return abs(x - y) < epsilon;
18 }
19
20 template<>
21 GLM_FUNC_QUALIFIER bool epsilonEqual
22 (
23 double const& x,
24 double const& y,
25 double const& epsilon
26 )
27 {
28 return abs(x - y) < epsilon;
29 }
30
31 template<length_t L, typename T, qualifier Q>
32 GLM_FUNC_QUALIFIER vec<L, bool, Q> epsilonEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T const& epsilon)
33 {
34 return lessThan(abs(x - y), vec<L, T, Q>(epsilon));
35 }
36
37 template<length_t L, typename T, qualifier Q>
38 GLM_FUNC_QUALIFIER vec<L, bool, Q> epsilonEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& epsilon)
39 {
40 return lessThan(abs(x - y), vec<L, T, Q>(epsilon));
41 }
42
43 template<>
44 GLM_FUNC_QUALIFIER bool epsilonNotEqual(float const& x, float const& y, float const& epsilon)
45 {
46 return abs(x - y) >= epsilon;
47 }
48
49 template<>
50 GLM_FUNC_QUALIFIER bool epsilonNotEqual(double const& x, double const& y, double const& epsilon)
51 {
52 return abs(x - y) >= epsilon;
53 }
54
55 template<length_t L, typename T, qualifier Q>
56 GLM_FUNC_QUALIFIER vec<L, bool, Q> epsilonNotEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T const& epsilon)
57 {
59 }
60
61 template<length_t L, typename T, qualifier Q>
62 GLM_FUNC_QUALIFIER vec<L, bool, Q> epsilonNotEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& epsilon)
63 {
64 return greaterThanEqual(abs(x - y), vec<L, T, Q>(epsilon));
65 }
66
67 template<typename T, qualifier Q>
68 GLM_FUNC_QUALIFIER vec<4, bool, Q> epsilonEqual(qua<T, Q> const& x, qua<T, Q> const& y, T const& epsilon)
69 {
70 vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
71 return lessThan(abs(v), vec<4, T, Q>(epsilon));
72 }
73
74 template<typename T, qualifier Q>
75 GLM_FUNC_QUALIFIER vec<4, bool, Q> epsilonNotEqual(qua<T, Q> const& x, qua<T, Q> const& y, T const& epsilon)
76 {
77 vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
78 return greaterThanEqual(abs(v), vec<4, T, Q>(epsilon));
79 }
80}//namespace glm
GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x)
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_QUALIFIER GLM_CONSTEXPR vec< L, bool, Q > lessThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Definition func_vector_relational.inl:4
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
Definition scalar_constants.inl:6
GLM_FUNC_DECL vec< L, bool, Q > epsilonNotEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
Definition epsilon.inl:56
GLM_FUNC_DECL vec< L, bool, Q > epsilonEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
Definition epsilon.inl:32
Core features
Definition common.hpp:21
Definition qualifier.hpp:35