diff --git a/README.md b/README.md index 59a6165..0a62881 100644 --- a/README.md +++ b/README.md @@ -1261,10 +1261,10 @@ template < arithmetic T > constexpr bool all(T x) noexcept; template < arithmetic T > -constexpr bool approximately(T x, T y) noexcept; +constexpr bool approx(T x, T y) noexcept; template < arithmetic T > -constexpr bool approximately(T x, T y, T epsilon) noexcept; +constexpr bool approx(T x, T y, T epsilon) noexcept; ``` #### Vector @@ -1277,22 +1277,22 @@ template < typename T, size_t Size > constexpr bool all(const vec& xs); template < typename T, size_t Size > -constexpr vec approximately(const vec& xs, T y); +constexpr vec approx(const vec& xs, T y); template < typename T, size_t Size > -constexpr vec approximately(T x, const vec& ys); +constexpr vec approx(T x, const vec& ys); template < typename T, size_t Size > -constexpr vec approximately(const vec& xs, const vec& ys); +constexpr vec approx(const vec& xs, const vec& ys); template < typename T, size_t Size > -constexpr vec approximately(const vec& xs, T y, T epsilon); +constexpr vec approx(const vec& xs, T y, T epsilon); template < typename T, size_t Size > -constexpr vec approximately(T x, const vec& ys, T epsilon); +constexpr vec approx(T x, const vec& ys, T epsilon); template < typename T, size_t Size > -constexpr vec approximately(const vec& xs, const vec& ys, T epsilon); +constexpr vec approx(const vec& xs, const vec& ys, T epsilon); ``` #### Matrix @@ -1305,22 +1305,22 @@ template < typename T, size_t Size > constexpr bool all(const mat& xs); template < typename T, size_t Size > -constexpr mat approximately(const mat& xs, T y); +constexpr mat approx(const mat& xs, T y); template < typename T, size_t Size > -constexpr mat approximately(T x, const mat& ys); +constexpr mat approx(T x, const mat& ys); template < typename T, size_t Size > -constexpr mat approximately(const mat& xs, const mat& ys); +constexpr mat approx(const mat& xs, const mat& ys); template < typename T, size_t Size > -constexpr mat approximately(const mat& xs, T y, T epsilon); +constexpr mat approx(const mat& xs, T y, T epsilon); template < typename T, size_t Size > -constexpr mat approximately(T x, const mat& ys, T epsilon); +constexpr mat approx(T x, const mat& ys, T epsilon); template < typename T, size_t Size > -constexpr mat approximately(const mat& xs, const mat& ys, T epsilon); +constexpr mat approx(const mat& xs, const mat& ys, T epsilon); ``` ### Matrix Functions diff --git a/headers/vmath.hpp/vmath_fun.hpp b/headers/vmath.hpp/vmath_fun.hpp index 38c445a..935571e 100644 --- a/headers/vmath.hpp/vmath_fun.hpp +++ b/headers/vmath.hpp/vmath_fun.hpp @@ -418,7 +418,7 @@ namespace vmath_hpp template < typename T > [[nodiscard]] std::enable_if_t, bool> - constexpr approximately(T x, T y) noexcept { + constexpr approx(T x, T y) noexcept { if constexpr ( std::is_floating_point_v ) { // http://www.realtimecollisiondetection.net/pubs/Tolerances const T epsilon = std::numeric_limits::epsilon(); @@ -430,7 +430,7 @@ namespace vmath_hpp template < typename T > [[nodiscard]] std::enable_if_t, bool> - constexpr approximately(T x, T y, T epsilon) noexcept { + constexpr approx(T x, T y, T epsilon) noexcept { if constexpr ( std::is_floating_point_v ) { // http://www.realtimecollisiondetection.net/pubs/Tolerances return abs(x - y) <= epsilon * max(T(1), abs(x), abs(y)); diff --git a/headers/vmath.hpp/vmath_mat_fun.hpp b/headers/vmath.hpp/vmath_mat_fun.hpp index e1fc6f6..d6a67d6 100644 --- a/headers/vmath.hpp/vmath_mat_fun.hpp +++ b/headers/vmath.hpp/vmath_mat_fun.hpp @@ -561,33 +561,33 @@ namespace vmath_hpp } template < typename T, std::size_t Size > - [[nodiscard]] constexpr mat approximately(const mat& xs, T y) { - return map_join([y](const vec& x){ return approximately(x, y); }, xs); + [[nodiscard]] constexpr mat approx(const mat& xs, T y) { + return map_join([y](const vec& x){ return approx(x, y); }, xs); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr mat approximately(T x, const mat& ys) { - return map_join([x](const vec& y){ return approximately(x, y); }, ys); + [[nodiscard]] constexpr mat approx(T x, const mat& ys) { + return map_join([x](const vec& y){ return approx(x, y); }, ys); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr mat approximately(const mat& xs, const mat& ys) { - return map_join([](const vec& x, const vec& y){ return approximately(x, y); }, xs, ys); + [[nodiscard]] constexpr mat approx(const mat& xs, const mat& ys) { + return map_join([](const vec& x, const vec& y){ return approx(x, y); }, xs, ys); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr mat approximately(const mat& xs, T y, T epsilon) { - return map_join([y, epsilon](const vec& x){ return approximately(x, y, epsilon); }, xs); + [[nodiscard]] constexpr mat approx(const mat& xs, T y, T epsilon) { + return map_join([y, epsilon](const vec& x){ return approx(x, y, epsilon); }, xs); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr mat approximately(T x, const mat& ys, T epsilon) { - return map_join([x, epsilon](const vec& y){ return approximately(x, y, epsilon); }, ys); + [[nodiscard]] constexpr mat approx(T x, const mat& ys, T epsilon) { + return map_join([x, epsilon](const vec& y){ return approx(x, y, epsilon); }, ys); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr mat approximately(const mat& xs, const mat& ys, T epsilon) { - return map_join([epsilon](const vec& x, const vec& y){ return approximately(x, y, epsilon); }, xs, ys); + [[nodiscard]] constexpr mat approx(const mat& xs, const mat& ys, T epsilon) { + return map_join([epsilon](const vec& x, const vec& y){ return approx(x, y, epsilon); }, xs, ys); } } diff --git a/headers/vmath.hpp/vmath_vec_fun.hpp b/headers/vmath.hpp/vmath_vec_fun.hpp index 142c792..a08761e 100644 --- a/headers/vmath.hpp/vmath_vec_fun.hpp +++ b/headers/vmath.hpp/vmath_vec_fun.hpp @@ -914,32 +914,32 @@ namespace vmath_hpp } template < typename T, std::size_t Size > - [[nodiscard]] constexpr vec approximately(const vec& xs, T y) { - return map_join([y](T x){ return approximately(x, y); }, xs); + [[nodiscard]] constexpr vec approx(const vec& xs, T y) { + return map_join([y](T x){ return approx(x, y); }, xs); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr vec approximately(T x, const vec& ys) { - return map_join([x](T y){ return approximately(x, y); }, ys); + [[nodiscard]] constexpr vec approx(T x, const vec& ys) { + return map_join([x](T y){ return approx(x, y); }, ys); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr vec approximately(const vec& xs, const vec& ys) { - return map_join([](T x, T y){ return approximately(x, y); }, xs, ys); + [[nodiscard]] constexpr vec approx(const vec& xs, const vec& ys) { + return map_join([](T x, T y){ return approx(x, y); }, xs, ys); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr vec approximately(const vec& xs, T y, T epsilon) { - return map_join([y, epsilon](T x){ return approximately(x, y, epsilon); }, xs); + [[nodiscard]] constexpr vec approx(const vec& xs, T y, T epsilon) { + return map_join([y, epsilon](T x){ return approx(x, y, epsilon); }, xs); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr vec approximately(T x, const vec& ys, T epsilon) { - return map_join([x, epsilon](T y){ return approximately(x, y, epsilon); }, ys); + [[nodiscard]] constexpr vec approx(T x, const vec& ys, T epsilon) { + return map_join([x, epsilon](T y){ return approx(x, y, epsilon); }, ys); } template < typename T, std::size_t Size > - [[nodiscard]] constexpr vec approximately(const vec& xs, const vec& ys, T epsilon) { - return map_join([epsilon](T x, T y){ return approximately(x, y, epsilon); }, xs, ys); + [[nodiscard]] constexpr vec approx(const vec& xs, const vec& ys, T epsilon) { + return map_join([epsilon](T x, T y){ return approx(x, y, epsilon); }, xs, ys); } } diff --git a/untests/vmath_fun_tests.cpp b/untests/vmath_fun_tests.cpp index b52ffd3..c2e24ee 100644 --- a/untests/vmath_fun_tests.cpp +++ b/untests/vmath_fun_tests.cpp @@ -153,14 +153,14 @@ TEST_CASE("vmath/fun") { STATIC_REQUIRE(all(true)); STATIC_REQUIRE(all(1)); - STATIC_REQUIRE(approximately(1, 1)); - STATIC_REQUIRE_FALSE(approximately(0, 1)); - STATIC_REQUIRE_FALSE(approximately(0, 1, 0)); - STATIC_REQUIRE(approximately(0, 1, 1)); + STATIC_REQUIRE(approx(1, 1)); + STATIC_REQUIRE_FALSE(approx(0, 1)); + STATIC_REQUIRE_FALSE(approx(0, 1, 0)); + STATIC_REQUIRE(approx(0, 1, 1)); - STATIC_REQUIRE(approximately(1.f, 1.f + std::numeric_limits::epsilon() * 0.5f)); - STATIC_REQUIRE_FALSE(approximately(1.f, 1.f + std::numeric_limits::epsilon() * 1.5f)); - STATIC_REQUIRE(approximately(100.f, 100.f + std::numeric_limits::epsilon() * 90.f)); - STATIC_REQUIRE_FALSE(approximately(100.f, 100.f + std::numeric_limits::epsilon() * 110.f)); + STATIC_REQUIRE(approx(1.f, 1.f + std::numeric_limits::epsilon() * 0.5f)); + STATIC_REQUIRE_FALSE(approx(1.f, 1.f + std::numeric_limits::epsilon() * 1.5f)); + STATIC_REQUIRE(approx(100.f, 100.f + std::numeric_limits::epsilon() * 90.f)); + STATIC_REQUIRE_FALSE(approx(100.f, 100.f + std::numeric_limits::epsilon() * 110.f)); } } diff --git a/untests/vmath_mat_fun_tests.cpp b/untests/vmath_mat_fun_tests.cpp index 0f9c61b..39a17ea 100644 --- a/untests/vmath_mat_fun_tests.cpp +++ b/untests/vmath_mat_fun_tests.cpp @@ -202,21 +202,21 @@ TEST_CASE("vmath/mat_fun") { STATIC_REQUIRE_FALSE(all(int2x2(0, 1, 0, 1))); STATIC_REQUIRE(all(int2x2(1, 1, 1, 1))); - STATIC_REQUIRE(approximately(int2x2(1,1,1,1), int2x2(0,1,2,3)) == bool2x2(false, true, false, false)); - STATIC_REQUIRE(approximately(int2x2(0,1,2,3),1) == bool2x2(false, true, false, false)); - STATIC_REQUIRE(approximately(1,int2x2(0,1,2,3)) == bool2x2(false, true, false, false)); + STATIC_REQUIRE(approx(int2x2(1,1,1,1), int2x2(0,1,2,3)) == bool2x2(false, true, false, false)); + STATIC_REQUIRE(approx(int2x2(0,1,2,3),1) == bool2x2(false, true, false, false)); + STATIC_REQUIRE(approx(1,int2x2(0,1,2,3)) == bool2x2(false, true, false, false)); - STATIC_REQUIRE(approximately(int2x2(1,1,1,1), int2x2(0,1,2,3), 0) == bool2x2(false, true, false, false)); - STATIC_REQUIRE(approximately(int2x2(0,1,2,3), 1, 0) == bool2x2(false, true, false, false)); - STATIC_REQUIRE(approximately(1, int2x2(0,1,2,3), 0) == bool2x2(false, true, false, false)); + STATIC_REQUIRE(approx(int2x2(1,1,1,1), int2x2(0,1,2,3), 0) == bool2x2(false, true, false, false)); + STATIC_REQUIRE(approx(int2x2(0,1,2,3), 1, 0) == bool2x2(false, true, false, false)); + STATIC_REQUIRE(approx(1, int2x2(0,1,2,3), 0) == bool2x2(false, true, false, false)); - STATIC_REQUIRE(approximately(int2x2(1,1,1,1), int2x2(0,1,2,3), 1) == bool2x2(true, true, true, false)); - STATIC_REQUIRE(approximately(int2x2(0,1,2,3), 1, 1) == bool2x2(true, true, true, false)); - STATIC_REQUIRE(approximately(1, int2x2(0,1,2,3), 1) == bool2x2(true, true, true, false)); + STATIC_REQUIRE(approx(int2x2(1,1,1,1), int2x2(0,1,2,3), 1) == bool2x2(true, true, true, false)); + STATIC_REQUIRE(approx(int2x2(0,1,2,3), 1, 1) == bool2x2(true, true, true, false)); + STATIC_REQUIRE(approx(1, int2x2(0,1,2,3), 1) == bool2x2(true, true, true, false)); - STATIC_REQUIRE(approximately(int2x2(1,1,1,1), int2x2(0,1,2,3), 2) == bool2x2(true, true, true, true)); - STATIC_REQUIRE(approximately(int2x2(0,1,2,3), 1, 2) == bool2x2(true, true, true, true)); - STATIC_REQUIRE(approximately(1, int2x2(0,1,2,3), 2) == bool2x2(true, true, true, true)); + STATIC_REQUIRE(approx(int2x2(1,1,1,1), int2x2(0,1,2,3), 2) == bool2x2(true, true, true, true)); + STATIC_REQUIRE(approx(int2x2(0,1,2,3), 1, 2) == bool2x2(true, true, true, true)); + STATIC_REQUIRE(approx(1, int2x2(0,1,2,3), 2) == bool2x2(true, true, true, true)); } SUBCASE("transpose") { @@ -280,7 +280,7 @@ TEST_CASE("vmath/mat_fun") { { constexpr float4x4 m1 = translate(float3(1.f, 2.f, 3.f)); constexpr float4x4 rm1 = inverse(m1); - STATIC_REQUIRE(all(approximately( + STATIC_REQUIRE(all(approx( unit4_z * m1 * rm1, unit4_z, uapprox_epsilon_v))); @@ -290,7 +290,7 @@ TEST_CASE("vmath/mat_fun") { const float3 axis2 = normalize(float3(1.f, 2.f, 3.f)); const float4x4 m2 = rotate(0.5f,axis2); const float4x4 rm2 = inverse(m2); - REQUIRE(all(approximately( + REQUIRE(all(approx( unit4_z * m2 * rm2, unit4_z, uapprox_epsilon_v))); @@ -300,7 +300,7 @@ TEST_CASE("vmath/mat_fun") { const float3 axis3 = normalize(float3(1.f, 2.f, 3.f)); const float3x3 m3 = float3x3(rotate(0.5f,axis3)); const float3x3 rm3 = inverse(m3); - REQUIRE(all(approximately( + REQUIRE(all(approx( unit3_z * m3 * rm3, unit3_z, uapprox_epsilon_v))); @@ -310,7 +310,7 @@ TEST_CASE("vmath/mat_fun") { const float3 axis4 = normalize(float3(0.f, 0.f, 3.f)); const float2x2 m4 = float2x2(rotate(0.5f,axis4)); const float2x2 rm4 = inverse(m4); - REQUIRE(all(approximately( + REQUIRE(all(approx( unit2_y * m4 * rm4, unit2_y, uapprox_epsilon_v))); diff --git a/untests/vmath_tests.hpp b/untests/vmath_tests.hpp index 385c530..c978d46 100644 --- a/untests/vmath_tests.hpp +++ b/untests/vmath_tests.hpp @@ -73,21 +73,21 @@ namespace vmath_tests template < typename T > constexpr bool operator==(const T& l, const uapprox& r) { - return approximately(l, r.value, uapprox_epsilon_v); + return approx(l, r.value, uapprox_epsilon_v); } template < typename T > constexpr bool operator==(const vec& l, const uapprox2& r) { - return all(approximately(l, r.value, uapprox_epsilon_v)); + return all(approx(l, r.value, uapprox_epsilon_v)); } template < typename T > constexpr bool operator==(const vec& l, const uapprox3& r) { - return all(approximately(l, r.value, uapprox_epsilon_v)); + return all(approx(l, r.value, uapprox_epsilon_v)); } template < typename T > constexpr bool operator==(const vec& l, const uapprox4& r) { - return all(approximately(l, r.value, uapprox_epsilon_v)); + return all(approx(l, r.value, uapprox_epsilon_v)); } } diff --git a/untests/vmath_vec_fun_tests.cpp b/untests/vmath_vec_fun_tests.cpp index 38bd335..a3b70d5 100644 --- a/untests/vmath_vec_fun_tests.cpp +++ b/untests/vmath_vec_fun_tests.cpp @@ -289,20 +289,20 @@ TEST_CASE("vmath/vec_fun") { STATIC_REQUIRE_FALSE(all(int2(0, 1))); STATIC_REQUIRE(all(int2(1, 1))); - STATIC_REQUIRE(approximately(int3(1,1,1), int3(0,1,2)) == bool3(false, true, false)); - STATIC_REQUIRE(approximately(int3(0,1,2),1) == bool3(false, true, false)); - STATIC_REQUIRE(approximately(1,int3(0,1,2)) == bool3(false, true, false)); + STATIC_REQUIRE(approx(int3(1,1,1), int3(0,1,2)) == bool3(false, true, false)); + STATIC_REQUIRE(approx(int3(0,1,2),1) == bool3(false, true, false)); + STATIC_REQUIRE(approx(1,int3(0,1,2)) == bool3(false, true, false)); - STATIC_REQUIRE(approximately(int4(1,1,1,1), int4(0,1,2,3), 0) == bool4(false, true, false, false)); - STATIC_REQUIRE(approximately(int4(0,1,2,3), 1, 0) == bool4(false, true, false, false)); - STATIC_REQUIRE(approximately(1, int4(0,1,2,3), 0) == bool4(false, true, false, false)); + STATIC_REQUIRE(approx(int4(1,1,1,1), int4(0,1,2,3), 0) == bool4(false, true, false, false)); + STATIC_REQUIRE(approx(int4(0,1,2,3), 1, 0) == bool4(false, true, false, false)); + STATIC_REQUIRE(approx(1, int4(0,1,2,3), 0) == bool4(false, true, false, false)); - STATIC_REQUIRE(approximately(int4(1,1,1,1), int4(0,1,2,3), 1) == bool4(true, true, true, false)); - STATIC_REQUIRE(approximately(int4(0,1,2,3), 1, 1) == bool4(true, true, true, false)); - STATIC_REQUIRE(approximately(1, int4(0,1,2,3), 1) == bool4(true, true, true, false)); + STATIC_REQUIRE(approx(int4(1,1,1,1), int4(0,1,2,3), 1) == bool4(true, true, true, false)); + STATIC_REQUIRE(approx(int4(0,1,2,3), 1, 1) == bool4(true, true, true, false)); + STATIC_REQUIRE(approx(1, int4(0,1,2,3), 1) == bool4(true, true, true, false)); - STATIC_REQUIRE(approximately(int4(1,1,1,1), int4(0,1,2,3), 2) == bool4(true, true, true, true)); - STATIC_REQUIRE(approximately(int4(0,1,2,3), 1, 2) == bool4(true, true, true, true)); - STATIC_REQUIRE(approximately(1, int4(0,1,2,3), 2) == bool4(true, true, true, true)); + STATIC_REQUIRE(approx(int4(1,1,1,1), int4(0,1,2,3), 2) == bool4(true, true, true, true)); + STATIC_REQUIRE(approx(int4(0,1,2,3), 1, 2) == bool4(true, true, true, true)); + STATIC_REQUIRE(approx(1, int4(0,1,2,3), 2) == bool4(true, true, true, true)); } }