Skip to content

Commit f2bc2b9

Browse files
authored
float== (#61)
1 parent e98e7ba commit f2bc2b9

File tree

2 files changed

+50
-2
lines changed

2 files changed

+50
-2
lines changed

inc/mkn/kul/assert.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,11 @@ struct Assert {
5252
}
5353
};
5454

55-
void inline abort_if(bool const& b) {
55+
void inline abort_if(bool const b) {
5656
if (b) std::abort();
5757
}
5858

59-
void inline abort_if_not(bool const& b) {
59+
void inline abort_if_not(bool const b) {
6060
if (!b) std::abort();
6161
}
6262

inc/mkn/kul/float.hpp

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
Copyright (c) 2024, Philip Deegan.
3+
All rights reserved.
4+
5+
Redistribution and use in source and binary forms, with or without
6+
modification, are permitted provided that the following conditions are
7+
met:
8+
9+
* Redistributions of source code must retain the above copyright
10+
notice, this list of conditions and the following disclaimer.
11+
* Redistributions in binary form must reproduce the above
12+
copyright notice, this list of conditions and the following disclaimer
13+
in the documentation and/or other materials provided with the
14+
distribution.
15+
* Neither the name of Philip Deegan nor the names of its
16+
contributors may be used to endorse or promote products derived from
17+
this software without specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30+
*/
31+
#ifndef _MKN_KUL_FLOAT_HPP_
32+
#define _MKN_KUL_FLOAT_HPP_
33+
34+
#include <cstdlib>
35+
36+
namespace mkn::kul {
37+
38+
auto inline float_equals(float const a, float const b, float const diff = 1e-6) {
39+
return std::abs(a - b) < diff;
40+
}
41+
42+
auto inline float_equals(double const a, double const b, double const diff = 1e-12) {
43+
return std::abs(a - b) < diff;
44+
}
45+
46+
} // namespace mkn::kul
47+
48+
#endif /* _MKN_KUL_FLOAT_HPP_ */

0 commit comments

Comments
 (0)