MathLib
Loading...
Searching...
No Matches
ApproximatelyEqualTo.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cmath>
4
10namespace Math
11{
12
25inline bool approximately_equal_to(float input, float near_to, float tolerance = 0.0002f)
26{
27 return std::abs(near_to - input) <= tolerance;
28}
29
30inline bool approximately_equal_to(double input, double near_to, double tolerance = 0.0002)
31{
32 return std::abs(near_to - input) <= tolerance;
33}
34
35inline bool approximately_equal_to(long double input, long double near_to, long double tolerance = 0.0002l)
36{
37 return std::abs(near_to - input) <= tolerance;
38}
40
55inline int three_way_compare(float left, float right, float tolerance = 0.0002f)
56{
57 if ( approximately_equal_to(left, right, tolerance) )
58 return 0;
59
60 return (left < right) ? -1 : 1;
61}
62
63inline int three_way_compare(double left, double right, double tolerance = 0.0002)
64{
65 if ( approximately_equal_to(left, right, tolerance) )
66 return 0;
67
68 return (left < right) ? -1 : 1;
69}
70
71inline int three_way_compare(long double left, long double right, long double tolerance = 0.0002l)
72{
73 if ( approximately_equal_to(left, right, tolerance) )
74 return 0;
75
76 return (left < right) ? -1 : 1;
77}
79
80}
int three_way_compare(float left, float right, float tolerance=0.0002f)
bool approximately_equal_to(float input, float near_to, float tolerance=0.0002f)
Definition Angle.hpp:16