From 99f533de94c9591dd5eb61a2a41a68e99d75889b Mon Sep 17 00:00:00 2001 From: Joel Falcou Date: Mon, 22 Apr 2024 21:36:13 +0200 Subject: [PATCH] Cleanup old decorators related files than needed to be removed --- include/eve/module/core.hpp | 3 - .../eve/module/core/decorator/associated.hpp | 43 ----- .../eve/module/core/decorator/compensated.hpp | 53 ------- .../module/core/decorator/condon_shortley.hpp | 43 ----- include/eve/module/core/decorator/core.hpp | 131 +++++----------- include/eve/module/core/decorator/cyl.hpp | 52 ------ include/eve/module/core/decorator/fuzzy.hpp | 148 ------------------ include/eve/module/core/decorator/kind.hpp | 126 --------------- include/eve/module/core/decorator/musl.hpp | 21 --- include/eve/module/core/decorator/numeric.hpp | 54 ------- include/eve/module/core/decorator/plain.hpp | 21 --- include/eve/module/core/decorator/regular.hpp | 56 ------- include/eve/module/core/decorator/sph.hpp | 52 ------ include/eve/module/core/detail/tolerance.hpp | 14 +- include/eve/module/core/fuzzy/core.hpp | 17 -- .../eve/module/core/fuzzy/impl/is_equal.hpp | 89 ----------- .../eve/module/core/fuzzy/impl/is_greater.hpp | 88 ----------- .../core/fuzzy/impl/is_greater_equal.hpp | 88 ----------- .../eve/module/core/fuzzy/impl/is_less.hpp | 88 ----------- .../module/core/fuzzy/impl/is_less_equal.hpp | 89 ----------- .../module/core/fuzzy/impl/is_not_equal.hpp | 90 ----------- .../module/core/fuzzy/impl/is_not_greater.hpp | 88 ----------- .../core/fuzzy/impl/is_not_greater_equal.hpp | 88 ----------- .../module/core/fuzzy/impl/is_not_less.hpp | 88 ----------- .../core/fuzzy/impl/is_not_less_equal.hpp | 88 ----------- include/eve/module/core/fuzzy/is_equal.hpp | 11 -- include/eve/module/core/fuzzy/is_greater.hpp | 11 -- .../module/core/fuzzy/is_greater_equal.hpp | 11 -- include/eve/module/core/fuzzy/is_less.hpp | 11 -- .../eve/module/core/fuzzy/is_less_equal.hpp | 11 -- .../eve/module/core/fuzzy/is_not_equal.hpp | 11 -- .../eve/module/core/fuzzy/is_not_greater.hpp | 11 -- .../core/fuzzy/is_not_greater_equal.hpp | 11 -- include/eve/module/core/fuzzy/is_not_less.hpp | 11 -- .../module/core/fuzzy/is_not_less_equal.hpp | 11 -- include/eve/module/core/numeric/core.hpp | 8 - include/eve/module/core/numeric/fam.hpp | 11 -- include/eve/module/core/numeric/fanm.hpp | 11 -- include/eve/module/core/numeric/fms.hpp | 15 -- include/eve/module/core/numeric/fnma.hpp | 15 -- include/eve/module/core/numeric/fnms.hpp | 15 -- include/eve/module/core/numeric/fsm.hpp | 11 -- include/eve/module/core/numeric/fsnm.hpp | 11 -- include/eve/module/core/numeric/impl/fam.hpp | 38 ----- include/eve/module/core/numeric/impl/fanm.hpp | 38 ----- include/eve/module/core/numeric/impl/fms.hpp | 36 ----- include/eve/module/core/numeric/impl/fnma.hpp | 38 ----- include/eve/module/core/numeric/impl/fnms.hpp | 38 ----- include/eve/module/core/numeric/impl/fsm.hpp | 98 ------------ include/eve/module/core/numeric/impl/fsnm.hpp | 38 ----- .../eve/module/core/numeric/impl/is_equal.hpp | 64 -------- .../module/core/numeric/impl/is_not_equal.hpp | 67 -------- include/eve/module/core/numeric/impl/lerp.hpp | 38 ----- .../module/core/numeric/impl/simd/x86/fms.hpp | 31 ---- .../core/numeric/impl/simd/x86/fnma.hpp | 31 ---- .../core/numeric/impl/simd/x86/fnms.hpp | 31 ---- include/eve/module/core/numeric/is_equal.hpp | 11 -- .../eve/module/core/numeric/is_not_equal.hpp | 11 -- include/eve/module/core/numeric/lerp.hpp | 11 -- include/eve/module/core/pedantic/core.hpp | 8 - include/eve/module/core/pedantic/fam.hpp | 11 -- include/eve/module/core/pedantic/fanm.hpp | 11 -- include/eve/module/core/pedantic/fms.hpp | 15 -- include/eve/module/core/pedantic/fnma.hpp | 15 -- include/eve/module/core/pedantic/fnms.hpp | 15 -- include/eve/module/core/pedantic/fsm.hpp | 11 -- include/eve/module/core/pedantic/fsnm.hpp | 11 -- include/eve/module/core/pedantic/impl/fam.hpp | 37 ----- .../eve/module/core/pedantic/impl/fanm.hpp | 44 ------ include/eve/module/core/pedantic/impl/fms.hpp | 35 ----- .../eve/module/core/pedantic/impl/fnma.hpp | 44 ------ .../eve/module/core/pedantic/impl/fnms.hpp | 44 ------ include/eve/module/core/pedantic/impl/fsm.hpp | 37 ----- .../eve/module/core/pedantic/impl/fsnm.hpp | 44 ------ .../eve/module/core/pedantic/impl/lerp.hpp | 41 ----- include/eve/module/core/pedantic/lerp.hpp | 11 -- include/eve/module/core/promote/core.hpp | 16 -- include/eve/module/core/promote/fam.hpp | 10 -- include/eve/module/core/promote/fanm.hpp | 10 -- include/eve/module/core/promote/fms.hpp | 10 -- include/eve/module/core/promote/fnma.hpp | 10 -- include/eve/module/core/promote/fnms.hpp | 10 -- include/eve/module/core/promote/fsm.hpp | 10 -- include/eve/module/core/promote/fsnm.hpp | 10 -- include/eve/module/core/promote/impl/fam.hpp | 28 ---- include/eve/module/core/promote/impl/fanm.hpp | 28 ---- include/eve/module/core/promote/impl/fms.hpp | 28 ---- include/eve/module/core/promote/impl/fnma.hpp | 28 ---- include/eve/module/core/promote/impl/fnms.hpp | 28 ---- include/eve/module/core/promote/impl/fsm.hpp | 28 ---- include/eve/module/core/promote/impl/fsnm.hpp | 28 ---- include/eve/module/core/regular/fam.hpp | 4 +- include/eve/module/core/regular/fma.hpp | 6 +- include/eve/module/core/regular/fms.hpp | 4 +- include/eve/module/core/regular/fnma.hpp | 4 +- include/eve/module/core/regular/fnms.hpp | 4 +- include/eve/module/core/regular/fsm.hpp | 4 +- include/eve/module/core/regular/fsnm.hpp | 4 +- .../eve/module/core/regular/impl/absmax.hpp | 2 +- .../eve/module/core/regular/impl/absmin.hpp | 2 +- include/eve/module/core/regular/impl/ceil.hpp | 4 +- include/eve/module/core/regular/impl/fam.hpp | 10 +- .../eve/module/core/regular/impl/floor.hpp | 4 +- include/eve/module/core/regular/impl/fma.hpp | 10 +- include/eve/module/core/regular/impl/fms.hpp | 10 +- include/eve/module/core/regular/impl/max.hpp | 2 +- .../eve/module/core/regular/impl/maxabs.hpp | 2 +- .../eve/module/core/regular/impl/maxmag.hpp | 2 +- include/eve/module/core/regular/impl/min.hpp | 2 +- .../eve/module/core/regular/impl/minabs.hpp | 2 +- .../eve/module/core/regular/impl/minmag.hpp | 2 +- .../core/regular/impl/simd/arm/neon/ceil.hpp | 2 +- .../core/regular/impl/simd/arm/neon/floor.hpp | 2 +- .../core/regular/impl/simd/arm/neon/max.hpp | 2 +- .../core/regular/impl/simd/arm/neon/min.hpp | 2 +- .../core/regular/impl/simd/arm/neon/trunc.hpp | 2 +- .../core/regular/impl/simd/arm/sve/ceil.hpp | 2 +- .../core/regular/impl/simd/arm/sve/floor.hpp | 2 +- .../core/regular/impl/simd/arm/sve/max.hpp | 2 +- .../core/regular/impl/simd/arm/sve/min.hpp | 2 +- .../core/regular/impl/simd/arm/sve/trunc.hpp | 2 +- .../core/regular/impl/simd/ppc/ceil.hpp | 2 +- .../core/regular/impl/simd/ppc/floor.hpp | 2 +- .../module/core/regular/impl/simd/ppc/max.hpp | 2 +- .../module/core/regular/impl/simd/ppc/min.hpp | 2 +- .../core/regular/impl/simd/ppc/trunc.hpp | 2 +- .../core/regular/impl/simd/x86/absmax.hpp | 4 +- .../core/regular/impl/simd/x86/absmin.hpp | 4 +- .../core/regular/impl/simd/x86/ceil.hpp | 4 +- .../core/regular/impl/simd/x86/floor.hpp | 4 +- .../core/regular/impl/simd/x86/is_equal.hpp | 2 +- .../core/regular/impl/simd/x86/is_greater.hpp | 2 +- .../impl/simd/x86/is_greater_equal.hpp | 2 +- .../core/regular/impl/simd/x86/is_less.hpp | 2 +- .../regular/impl/simd/x86/is_not_equal.hpp | 2 +- .../regular/impl/simd/x86/is_not_greater.hpp | 12 +- .../impl/simd/x86/is_not_greater_equal.hpp | 2 +- .../regular/impl/simd/x86/is_not_less.hpp | 4 +- .../impl/simd/x86/is_not_less_equal.hpp | 4 +- .../core/regular/impl/simd/x86/is_ordered.hpp | 12 +- .../module/core/regular/impl/simd/x86/max.hpp | 4 +- .../core/regular/impl/simd/x86/maxabs.hpp | 4 +- .../core/regular/impl/simd/x86/maxmag.hpp | 4 +- .../module/core/regular/impl/simd/x86/min.hpp | 4 +- .../core/regular/impl/simd/x86/minabs.hpp | 4 +- .../core/regular/impl/simd/x86/minmag.hpp | 4 +- .../core/regular/impl/simd/x86/negabsmax.hpp | 4 +- .../core/regular/impl/simd/x86/negabsmin.hpp | 4 +- .../core/regular/impl/simd/x86/negmaxabs.hpp | 4 +- .../core/regular/impl/simd/x86/negminabs.hpp | 4 +- .../core/regular/impl/simd/x86/trunc.hpp | 4 +- .../eve/module/core/regular/impl/trunc.hpp | 4 +- .../eve/module/core/regular/impl/ulpdist.hpp | 3 +- include/eve/module/core/regular/is_equal.hpp | 6 +- .../eve/module/core/regular/is_greater.hpp | 4 +- .../module/core/regular/is_greater_equal.hpp | 4 +- include/eve/module/core/regular/is_less.hpp | 4 +- .../eve/module/core/regular/is_less_equal.hpp | 4 +- include/eve/module/core/regular/is_ngez.hpp | 1 + include/eve/module/core/regular/is_ngtz.hpp | 3 +- include/eve/module/core/regular/is_nltz.hpp | 1 + .../eve/module/core/regular/is_not_equal.hpp | 6 +- .../module/core/regular/is_not_greater.hpp | 8 +- .../core/regular/is_not_greater_equal.hpp | 4 +- .../eve/module/core/regular/is_not_less.hpp | 8 +- .../module/core/regular/is_not_less_equal.hpp | 4 +- include/eve/module/core/regular/next.hpp | 3 +- include/eve/module/core/saturated/core.hpp | 2 + .../polynomial/regular/impl/laguerre.hpp | 2 +- .../polynomial/regular/impl/legendre.hpp | 30 ++-- .../polynomial/regular/impl/tchebytchev.hpp | 8 +- .../module/polynomial/regular/legendre.hpp | 4 +- test/doc/core/ceil.cpp | 4 +- test/doc/core/floor.cpp | 6 +- test/doc/core/is_equal.cpp | 6 +- test/doc/core/is_greater.cpp | 2 +- test/doc/core/is_less.cpp | 2 +- test/doc/core/is_less_equal.cpp | 2 +- test/doc/core/is_not_equal.cpp | 6 +- test/doc/core/is_not_greater.cpp | 2 +- test/doc/core/is_not_greater_equal.cpp | 2 +- test/doc/core/is_not_less.cpp | 2 +- test/doc/core/trunc.cpp | 6 +- test/unit/meta/concepts/decorator.cpp | 34 ---- test/unit/module/core/ceil.cpp | 36 ++--- test/unit/module/core/floor.cpp | 86 +++++----- test/unit/module/core/fnma.cpp | 8 +- test/unit/module/core/is_equal.cpp | 32 ++-- test/unit/module/core/is_greater.cpp | 44 +++--- test/unit/module/core/is_greater_equal.cpp | 60 +++---- test/unit/module/core/is_less.cpp | 44 +++--- test/unit/module/core/is_less_equal.cpp | 60 +++---- test/unit/module/core/is_not_equal.cpp | 48 +++--- test/unit/module/core/is_not_greater.cpp | 60 +++---- .../unit/module/core/is_not_greater_equal.cpp | 44 +++--- test/unit/module/core/is_not_less.cpp | 60 +++---- test/unit/module/core/is_not_less_equal.cpp | 44 +++--- test/unit/module/core/trunc.cpp | 22 +-- 198 files changed, 560 insertions(+), 3753 deletions(-) delete mode 100644 include/eve/module/core/decorator/associated.hpp delete mode 100644 include/eve/module/core/decorator/compensated.hpp delete mode 100644 include/eve/module/core/decorator/condon_shortley.hpp delete mode 100644 include/eve/module/core/decorator/cyl.hpp delete mode 100644 include/eve/module/core/decorator/fuzzy.hpp delete mode 100644 include/eve/module/core/decorator/kind.hpp delete mode 100644 include/eve/module/core/decorator/musl.hpp delete mode 100644 include/eve/module/core/decorator/numeric.hpp delete mode 100644 include/eve/module/core/decorator/plain.hpp delete mode 100644 include/eve/module/core/decorator/regular.hpp delete mode 100644 include/eve/module/core/decorator/sph.hpp delete mode 100644 include/eve/module/core/fuzzy/core.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_greater.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_greater_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_less.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_less_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_not_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_not_greater.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_not_greater_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_not_less.hpp delete mode 100644 include/eve/module/core/fuzzy/impl/is_not_less_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/is_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/is_greater.hpp delete mode 100644 include/eve/module/core/fuzzy/is_greater_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/is_less.hpp delete mode 100644 include/eve/module/core/fuzzy/is_less_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/is_not_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/is_not_greater.hpp delete mode 100644 include/eve/module/core/fuzzy/is_not_greater_equal.hpp delete mode 100644 include/eve/module/core/fuzzy/is_not_less.hpp delete mode 100644 include/eve/module/core/fuzzy/is_not_less_equal.hpp delete mode 100644 include/eve/module/core/numeric/core.hpp delete mode 100644 include/eve/module/core/numeric/fam.hpp delete mode 100644 include/eve/module/core/numeric/fanm.hpp delete mode 100644 include/eve/module/core/numeric/fms.hpp delete mode 100644 include/eve/module/core/numeric/fnma.hpp delete mode 100644 include/eve/module/core/numeric/fnms.hpp delete mode 100644 include/eve/module/core/numeric/fsm.hpp delete mode 100644 include/eve/module/core/numeric/fsnm.hpp delete mode 100644 include/eve/module/core/numeric/impl/fam.hpp delete mode 100644 include/eve/module/core/numeric/impl/fanm.hpp delete mode 100644 include/eve/module/core/numeric/impl/fms.hpp delete mode 100644 include/eve/module/core/numeric/impl/fnma.hpp delete mode 100644 include/eve/module/core/numeric/impl/fnms.hpp delete mode 100644 include/eve/module/core/numeric/impl/fsm.hpp delete mode 100644 include/eve/module/core/numeric/impl/fsnm.hpp delete mode 100644 include/eve/module/core/numeric/impl/is_equal.hpp delete mode 100644 include/eve/module/core/numeric/impl/is_not_equal.hpp delete mode 100644 include/eve/module/core/numeric/impl/lerp.hpp delete mode 100644 include/eve/module/core/numeric/impl/simd/x86/fms.hpp delete mode 100644 include/eve/module/core/numeric/impl/simd/x86/fnma.hpp delete mode 100644 include/eve/module/core/numeric/impl/simd/x86/fnms.hpp delete mode 100644 include/eve/module/core/numeric/is_equal.hpp delete mode 100644 include/eve/module/core/numeric/is_not_equal.hpp delete mode 100644 include/eve/module/core/numeric/lerp.hpp delete mode 100644 include/eve/module/core/pedantic/fam.hpp delete mode 100644 include/eve/module/core/pedantic/fanm.hpp delete mode 100644 include/eve/module/core/pedantic/fms.hpp delete mode 100644 include/eve/module/core/pedantic/fnma.hpp delete mode 100644 include/eve/module/core/pedantic/fnms.hpp delete mode 100644 include/eve/module/core/pedantic/fsm.hpp delete mode 100644 include/eve/module/core/pedantic/fsnm.hpp delete mode 100644 include/eve/module/core/pedantic/impl/fam.hpp delete mode 100644 include/eve/module/core/pedantic/impl/fanm.hpp delete mode 100644 include/eve/module/core/pedantic/impl/fms.hpp delete mode 100644 include/eve/module/core/pedantic/impl/fnma.hpp delete mode 100644 include/eve/module/core/pedantic/impl/fnms.hpp delete mode 100644 include/eve/module/core/pedantic/impl/fsm.hpp delete mode 100644 include/eve/module/core/pedantic/impl/fsnm.hpp delete mode 100644 include/eve/module/core/pedantic/impl/lerp.hpp delete mode 100644 include/eve/module/core/pedantic/lerp.hpp delete mode 100644 include/eve/module/core/promote/core.hpp delete mode 100644 include/eve/module/core/promote/fam.hpp delete mode 100644 include/eve/module/core/promote/fanm.hpp delete mode 100644 include/eve/module/core/promote/fms.hpp delete mode 100644 include/eve/module/core/promote/fnma.hpp delete mode 100644 include/eve/module/core/promote/fnms.hpp delete mode 100644 include/eve/module/core/promote/fsm.hpp delete mode 100644 include/eve/module/core/promote/fsnm.hpp delete mode 100644 include/eve/module/core/promote/impl/fam.hpp delete mode 100644 include/eve/module/core/promote/impl/fanm.hpp delete mode 100644 include/eve/module/core/promote/impl/fms.hpp delete mode 100644 include/eve/module/core/promote/impl/fnma.hpp delete mode 100644 include/eve/module/core/promote/impl/fnms.hpp delete mode 100644 include/eve/module/core/promote/impl/fsm.hpp delete mode 100644 include/eve/module/core/promote/impl/fsnm.hpp delete mode 100644 test/unit/meta/concepts/decorator.cpp diff --git a/include/eve/module/core.hpp b/include/eve/module/core.hpp index 4730caf54e..3e58db1da8 100644 --- a/include/eve/module/core.hpp +++ b/include/eve/module/core.hpp @@ -106,12 +106,9 @@ #include #include #include -#include #include #include -#include #include -#include #include #include #include diff --git a/include/eve/module/core/decorator/associated.hpp b/include/eve/module/core/decorator/associated.hpp deleted file mode 100644 index 197a9b8389..0000000000 --- a/include/eve/module/core/decorator/associated.hpp +++ /dev/null @@ -1,43 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct associated_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using associated_type = decorated; -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var associated -//! -//! @brief Higher-order @callable imbuing incrementation behaviour onto other @callable{s}. -//! -//! #### Synopsis -//! -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A modified @callable -//! -//! Actually supported by eve::laguerre and legendre in module polynomial -//! -//! @} -//================================================================================================ -inline constexpr associated_type const associated = {}; -} diff --git a/include/eve/module/core/decorator/compensated.hpp b/include/eve/module/core/decorator/compensated.hpp deleted file mode 100644 index 73694b6b36..0000000000 --- a/include/eve/module/core/decorator/compensated.hpp +++ /dev/null @@ -1,53 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ - -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct compensated_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using compensated_type = decorated; -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var compensated -//! -//! @brief Higher-order @callable imbuing more accuracy onto other @callable{s}. -//! -//! #### Synopsis -//! -//! if compensated(eve::fname) is to be called then -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! must be included. -//! -//! #### Members Functions -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the same kind of operation but ensuring a higher accuracy. -//! -//! @} -//================================================================================================ -inline constexpr compensated_type const compensated = {}; -} diff --git a/include/eve/module/core/decorator/condon_shortley.hpp b/include/eve/module/core/decorator/condon_shortley.hpp deleted file mode 100644 index b24302c782..0000000000 --- a/include/eve/module/core/decorator/condon_shortley.hpp +++ /dev/null @@ -1,43 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct condon_shortley_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using condon_shortley_type = decorated; -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var condon_shortley -//! -//! @brief Higher-order @callable imbuing incrementation behaviour onto other @callable{s}. -//! -//! #### Synopsis -//! -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A modified @callable -//! -//! Actually supported by eve::legendre in module polynomial -//! -//! @} -//================================================================================================ -inline constexpr condon_shortley_type const condon_shortley = {}; -} diff --git a/include/eve/module/core/decorator/core.hpp b/include/eve/module/core/decorator/core.hpp index 578fb41245..bfebaa7356 100644 --- a/include/eve/module/core/decorator/core.hpp +++ b/include/eve/module/core/decorator/core.hpp @@ -7,98 +7,79 @@ //====================================================================================================================== #pragma once -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include #include -#include -#include #include -#include #include #include -#include -#include -#include #include #include //====================================================================================================================== // New option style - TODO rename later without the '2' //====================================================================================================================== -#include - namespace eve { - struct almost_mode {}; - struct associated_mode {}; - struct compensated_mode {}; + struct almost_mode {}; + struct associated_mode {}; + struct compensated_mode {}; struct condon_shortley_mode {}; - struct definitely_mode {}; + struct definitely_mode {}; + struct kind_1_mode {}; + struct kind_2_mode {}; + struct numeric_mode {}; + struct p_kind_mode {}; + struct promote_mode {}; + struct q_kind_mode {}; + struct spherical_mode {}; + struct successor_mode {}; + struct downward_mode {}; - struct kind_1_mode {}; - struct kind_2_mode {}; - struct musl_mode {}; - struct numeric_mode {}; - struct p_kind_mode {}; struct pedantic_mode {}; - struct plain_mode {}; - struct promote_mode {}; - struct q_kind_mode {}; struct raw_mode {}; - struct regular_mode {}; struct saturated_mode {}; - struct spherical_mode {}; - struct successor_mode {}; struct to_nearest_mode {}; struct toward_zero_mode {}; struct upward_mode {}; - [[maybe_unused]] inline constexpr auto associated2 = ::rbr::flag( associated_mode{} ); - [[maybe_unused]] inline constexpr auto compensated2 = ::rbr::flag( compensated_mode{} ); - [[maybe_unused]] inline constexpr auto condon_shortley2 = ::rbr::flag( condon_shortley_mode{} ); + [[maybe_unused]] inline constexpr auto associated = ::rbr::flag( associated_mode{} ); + [[maybe_unused]] inline constexpr auto compensated = ::rbr::flag( compensated_mode{} ); + [[maybe_unused]] inline constexpr auto condon_shortley = ::rbr::flag( condon_shortley_mode{} ); + [[maybe_unused]] inline constexpr auto kind_1 = ::rbr::flag( kind_1_mode{} ); + [[maybe_unused]] inline constexpr auto kind_2 = ::rbr::flag( kind_2_mode{} ); + [[maybe_unused]] inline constexpr auto numeric = ::rbr::flag( numeric_mode{} ); + [[maybe_unused]] inline constexpr auto p_kind = ::rbr::flag( p_kind_mode{} ); + [[maybe_unused]] inline constexpr auto promote = ::rbr::flag( promote_mode{} ); + [[maybe_unused]] inline constexpr auto q_kind = ::rbr::flag( q_kind_mode{} ); + [[maybe_unused]] inline constexpr auto spherical = ::rbr::flag( spherical_mode{} ); + [[maybe_unused]] inline constexpr auto successor = ::rbr::flag( successor_mode{} ); + [[maybe_unused]] inline constexpr auto downward2 = ::rbr::flag( downward_mode{} ); - [[maybe_unused]] inline constexpr auto kind_12 = ::rbr::flag( kind_1_mode{} ); - [[maybe_unused]] inline constexpr auto kind_22 = ::rbr::flag( kind_2_mode{} ); - [[maybe_unused]] inline constexpr auto musl2 = ::rbr::flag( musl_mode{} ); - [[maybe_unused]] inline constexpr auto numeric2 = ::rbr::flag( numeric_mode{} ); - [[maybe_unused]] inline constexpr auto p_kind2 = ::rbr::flag( p_kind_mode{} ); [[maybe_unused]] inline constexpr auto pedantic2 = ::rbr::flag( pedantic_mode{} ); - [[maybe_unused]] inline constexpr auto plain2 = ::rbr::flag( plain_mode{} ); - [[maybe_unused]] inline constexpr auto promote2 = ::rbr::flag( promote_mode{} ); - [[maybe_unused]] inline constexpr auto q_kind2 = ::rbr::flag( q_kind_mode{} ); [[maybe_unused]] inline constexpr auto raw2 = ::rbr::flag( raw_mode{} ); - [[maybe_unused]] inline constexpr auto regular2 = ::rbr::flag( regular_mode{} ); [[maybe_unused]] inline constexpr auto saturated2 = ::rbr::flag( saturated_mode{} ); - [[maybe_unused]] inline constexpr auto spherical2 = ::rbr::flag( spherical_mode{} ); - [[maybe_unused]] inline constexpr auto successor2 = ::rbr::flag( successor_mode{} ); [[maybe_unused]] inline constexpr auto to_nearest2 = ::rbr::flag( to_nearest_mode{} ); [[maybe_unused]] inline constexpr auto toward_zero2 = ::rbr::flag( toward_zero_mode{} ); [[maybe_unused]] inline constexpr auto upward2 = ::rbr::flag( upward_mode{} ); - struct associated_option : detail::exact_option {}; - struct compensated_option : detail::exact_option {}; - struct condon_shortley_option : detail::exact_option {}; + struct associated_option : detail::exact_option {}; + struct compensated_option : detail::exact_option {}; + struct condon_shortley_option : detail::exact_option {}; + struct kind_1_option : detail::exact_option {}; + struct kind_2_option : detail::exact_option {}; + struct numeric_option : detail::exact_option {}; + struct p_kind_option : detail::exact_option {}; + struct promote_option : detail::exact_option {}; + struct q_kind_option : detail::exact_option {}; + struct spherical_option : detail::exact_option {}; + struct successor_option : detail::exact_option {}; + struct downward_option : detail::exact_option {}; - struct kind_1_option : detail::exact_option {}; - struct kind_2_option : detail::exact_option {}; - struct musl_option : detail::exact_option {}; - struct numeric_option : detail::exact_option {}; - struct p_kind_option : detail::exact_option {}; struct pedantic_option : detail::exact_option {}; - struct plain_option : detail::exact_option {}; - struct promote_option : detail::exact_option {}; - struct q_kind_option : detail::exact_option {}; struct raw_option : detail::exact_option {}; - struct regular_option : detail::exact_option {}; struct saturated_option : detail::exact_option {}; - struct spherical_option : detail::exact_option {}; - struct successor_option : detail::exact_option {}; struct to_nearest_option : detail::exact_option {}; struct toward_zero_option : detail::exact_option {}; struct upward_option : detail::exact_option {}; @@ -106,31 +87,16 @@ namespace eve // ---------------------------------------------------------------------------------- // [TEMPORARY] Will be removed when all decorator have been converted // ---------------------------------------------------------------------------------- - inline constexpr auto as_option(associated_type const&) { return associated2; } - inline constexpr auto as_option(compensated_type const&) { return compensated2; } - inline constexpr auto as_option(condon_shortley_type const&) { return condon_shortley2; } inline constexpr auto as_option(downward_type const&) { return downward2; } - inline constexpr auto as_option(kind_1_type const&) { return kind_12; } - inline constexpr auto as_option(kind_2_type const&) { return kind_22; } - inline constexpr auto as_option(musl_type const&) { return musl2; } - inline constexpr auto as_option(numeric_type const&) { return numeric2; } - inline constexpr auto as_option(p_kind_type const&) { return p_kind2; } inline constexpr auto as_option(pedantic_type const&) { return pedantic2; } - inline constexpr auto as_option(plain_type const&) { return plain2; } - inline constexpr auto as_option(promote_type const&) { return promote2; } - inline constexpr auto as_option(q_kind_type const&) { return q_kind2; } inline constexpr auto as_option(raw_type const&) { return raw2; } - inline constexpr auto as_option(regular_type const&) { return regular2; } inline constexpr auto as_option(saturated_type const&) { return saturated2; } - inline constexpr auto as_option(spherical_type const&) { return spherical2; } - inline constexpr auto as_option(successor_type const&) { return successor2; } inline constexpr auto as_option(to_nearest_type const&) { return to_nearest2; } inline constexpr auto as_option(toward_zero_type const&) { return toward_zero2; } inline constexpr auto as_option(upward_type const&) { return upward2; } // New tolerance option that carry a value - template - struct almost_t; + template struct almost_t; struct almost_option { @@ -144,8 +110,7 @@ namespace eve EVE_FORCEINLINE constexpr auto default_to(auto const& base) const { return base; } }; - template - struct definitely_t; + template struct definitely_t; struct definitely_option { @@ -158,16 +123,4 @@ namespace eve EVE_FORCEINLINE constexpr auto default_to(auto const& base) const { return base; } }; - - struct tolerant_mode {}; - struct default_tolerance - { - friend std::ostream& operator<<(std::ostream& os, default_tolerance const&) { return os << "3 * eps"; } - }; - - [[maybe_unused]] inline constexpr auto tolerance = ::rbr::keyword( tolerant_mode{} ); - [[maybe_unused]] inline constexpr auto tolerant2 = (tolerance = default_tolerance{}); - - struct tolerant_option : detail::exact_option {}; - inline constexpr auto as_option(tolerant_type const&) { return tolerant2; } } diff --git a/include/eve/module/core/decorator/cyl.hpp b/include/eve/module/core/decorator/cyl.hpp deleted file mode 100644 index 6031a6d782..0000000000 --- a/include/eve/module/core/decorator/cyl.hpp +++ /dev/null @@ -1,52 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct cyl_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using cyl_type = decorated; -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var cyl -//! -//! @brief Higher-order @callable imbuing cylindrical semantic onto other @callable{s}. -//! -//! #### Synopsis -//! -//! if cyl(eve::fname) is to be called then -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! must be included. -//! -//! #### Members Functions -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the same kind of operation but implying cylindrical semantic. -//! -//! @} -//================================================================================================ -[[maybe_unused]] inline constexpr cyl_type const cyl = {}; -} diff --git a/include/eve/module/core/decorator/fuzzy.hpp b/include/eve/module/core/decorator/fuzzy.hpp deleted file mode 100644 index 6113ba4dd0..0000000000 --- a/include/eve/module/core/decorator/fuzzy.hpp +++ /dev/null @@ -1,148 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -namespace eve -{ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct almost_type : decorator_ -{ - template constexpr EVE_FORCEINLINE auto operator()(Function f) const noexcept - { - return [f](auto&&...args) { return f(almost_type {}, EVE_FWD(args)...); }; - } -}; - -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var almost -//! -//! @brief Higher-order @callable imbuing a tolerant to little errors semantic onto other -//! @callable{s}. -//! -//! @groupheader{Synopsis} -//! -//! if almost(eve::fname) is to be called then -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! must be included. -//! -//! @groupheader{Members Functions} -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the same kind of operation but while insuring that a small error on the -//! parameters will not affect the result. -//! -//! almost is currently supported by eve::is_greater_equal, eve::is_less_equal, -//! eve::is_not_greater, eve::is_not_less and eve::is_equal -//! object functions. -//! @} -//================================================================================================ -inline constexpr almost_type const almost = {}; - -//================================================================================================ -// Function decorators mark-up used in function overloads -struct definitely_type : decorator_ -{ - template constexpr EVE_FORCEINLINE auto operator()(Function f) const noexcept - { - return [f](auto&&...args) { return f(definitely_type {}, EVE_FWD(args)...); }; - } -}; - -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var definitely -//! -//! @brief Higher-order @callable imbuing a tolerant to small errors semantic onto other -//! @callable{s}. -//! -//! @groupheader{Synopsis} -//! -//! if definitely(eve::fname) is to be called then -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! must be included. -//! -//! @groupheader{Members Functions} -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the same kind of operation but while insuring that a small error on the -//! parameters will not affect the result. -//! -//! eve::definitely is currently supported by eve::is_greater, eve::is_less, -//! eve::is_not_greater_equal, eve::is_not_less_equal and eve::is_not_equal -//! object functions. -//! -//! @} -//================================================================================================ -inline constexpr definitely_type const definitely = {}; - -//================================================================================================ -// Function decorators mark-up used in function overloads -struct tolerant_type : decorator_ -{ - template constexpr EVE_FORCEINLINE auto operator()(Function f) const noexcept - { - return [f](auto&&...args) { return f(tolerant_type {}, EVE_FWD(args)...); }; - } -}; - -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var tolerant -//! -//! @brief Higher-order @callable imbuing a less strict semantic onto other @callable{s}. -//! -//! @groupheader{Synopsis} -//! -//! if tolerant(eve::fname) is to be called then -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! must be included. -//! -//! @groupheader{Members Functions} -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the same kind of operation but while insuring that a small error on the -//! parameters will not affect the result. -//! -//! eve::tolerant is currently supported by eve::ceil, eve::floor and eve::trunc object functions. -//! -//! @} -//================================================================================================ -inline constexpr tolerant_type const tolerant = {}; -} diff --git a/include/eve/module/core/decorator/kind.hpp b/include/eve/module/core/decorator/kind.hpp deleted file mode 100644 index 851386a7a4..0000000000 --- a/include/eve/module/core/decorator/kind.hpp +++ /dev/null @@ -1,126 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct p_kind_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using p_kind_type = decorated; -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var p_kind -//! -//! @brief Higher-order @callable imbuing p_kind behaviour onto other @callable{s}. -//! -//! #### Synopsis -//! -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the p_kind algorithm choice -//! -//! @} -//================================================================================================ -inline constexpr p_kind_type const p_kind = {}; - -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct q_kind_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using q_kind_type = decorated; -//================================================================================================ -//! @addtogroup polynomial -//! @{ -//! @var q_kind -//! -//! @brief Higher-order @callable imbuing q_kind behaviour onto other @callable{s}. -//! -//! #### Synopsis -//! -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the q_kind algorithm choice -//! -//! @} -//================================================================================================ -inline constexpr q_kind_type const q_kind = {}; - -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct kind_1_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using kind_1_type = decorated; -//================================================================================================ -//! @addtogroup polynomial -//! @{ -//! @var kind_1 -//! -//! @brief Higher-order @callable imbuing kind_1 behaviour onto other @callable{s}. -//! -//! #### Synopsis -//! -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the kind_1 algorithm choice -//! -//! @} -//================================================================================================ -inline constexpr kind_1_type const kind_1 = {}; - -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct kind_2_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using kind_2_type = decorated; -//================================================================================================ -//! @addtogroup polynomial -//! @{ -//! @var kind_2 -//! -//! @brief Higher-order @callable imbuing kind_2 behaviour onto other @callable{s}. -//! -//! #### Synopsis -//! -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the kind_2 algorithm choice -//! -//! @} -//================================================================================================ -inline constexpr kind_2_type const kind_2 = {}; - -} diff --git a/include/eve/module/core/decorator/musl.hpp b/include/eve/module/core/decorator/musl.hpp deleted file mode 100644 index af2c89fac6..0000000000 --- a/include/eve/module/core/decorator/musl.hpp +++ /dev/null @@ -1,21 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -struct musl_t -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using musl_type = decorated; -inline constexpr musl_type const musl_ = {}; -} diff --git a/include/eve/module/core/decorator/numeric.hpp b/include/eve/module/core/decorator/numeric.hpp deleted file mode 100644 index e5f6bf27ef..0000000000 --- a/include/eve/module/core/decorator/numeric.hpp +++ /dev/null @@ -1,54 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct numeric_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using numeric_type = decorated; -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var numeric -//! -//! @brief Higher-order @callable imbuing non invalid return preference semantic onto other -//! @callable{s}. -//! -//! #### Synopsis -//! -//! if numeric(eve::fname) is to be called then -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! must be included. -//! -//! #### Members Functions -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the same kind of operation but while insuring a preference to return -//! numeric values instead of Nans, whenever possible. -//! -//! @} -//================================================================================================ -[[maybe_unused]] inline constexpr numeric_type const numeric = {}; -} diff --git a/include/eve/module/core/decorator/plain.hpp b/include/eve/module/core/decorator/plain.hpp deleted file mode 100644 index a5dec6e508..0000000000 --- a/include/eve/module/core/decorator/plain.hpp +++ /dev/null @@ -1,21 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -struct plain_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using plain_type = decorated; -inline constexpr plain_type const plain = {}; -} diff --git a/include/eve/module/core/decorator/regular.hpp b/include/eve/module/core/decorator/regular.hpp deleted file mode 100644 index 61a976297a..0000000000 --- a/include/eve/module/core/decorator/regular.hpp +++ /dev/null @@ -1,56 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -namespace eve -{ -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct regular_ -{ - template constexpr EVE_FORCEINLINE auto operator()(Function f) const noexcept - { - return f; - } -}; - - -using regular_type = decorated; - -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var regular -//! -//! @brief Higher-order @callable having identity semantic onto other @callable{s}. -//! -//! #### Synopsis -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! -//! #### Members Functions -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! The same @callable as input. -//! -//! @} -//================================================================================================ -inline constexpr regular_type const regular = {}; -} diff --git a/include/eve/module/core/decorator/sph.hpp b/include/eve/module/core/decorator/sph.hpp deleted file mode 100644 index 7b02681222..0000000000 --- a/include/eve/module/core/decorator/sph.hpp +++ /dev/null @@ -1,52 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include - -namespace eve -{ -//================================================================================================ -//================================================================================================ -// Function decorators mark-up used in function overloads -struct sph_ -{ - template static constexpr auto combine(D const&) noexcept = delete; -}; - -using sph_type = decorated; -//================================================================================================ -//! @addtogroup core_decorators -//! @{ -//! @var sph -//! -//! @brief Higher-order @callable imbuing spherical semantic onto other @callable{s}. -//! -//! #### Synopsis -//! -//! if sph(eve::fname) is to be called then -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! #include -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! must be included. -//! -//! #### Members Functions -//! -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} -//! auto operator()(eve::callable auto const& f ) const noexcept; -//! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -//! @param f -//! An instance of eve::callable -//! -//! @return -//! A @callable performing the same kind of operation but implying spherical semantic. -//! -//! @} -//================================================================================================ -[[maybe_unused]] inline constexpr sph_type const sph = {}; -} diff --git a/include/eve/module/core/detail/tolerance.hpp b/include/eve/module/core/detail/tolerance.hpp index b5f75cca08..f23de24446 100644 --- a/include/eve/module/core/detail/tolerance.hpp +++ b/include/eve/module/core/detail/tolerance.hpp @@ -13,6 +13,11 @@ namespace eve { + struct default_tolerance + { + friend std::ostream& operator<<(std::ostream& os, default_tolerance const&) { return os << "3 * eps"; } + }; + // =============================================================================================== //almost @@ -59,9 +64,7 @@ namespace eve Value value_; }; - inline constexpr almost_t almost2 = {}; - - inline constexpr auto as_option(almost_type const&) { return almost2; } + inline constexpr almost_t almost = {}; // ============================================================================================ // definitely @@ -109,8 +112,5 @@ namespace eve Value value_; }; - inline constexpr definitely_t definitely2 = {}; - - inline constexpr auto as_option(definitely_type const&) { return definitely2; } - + inline constexpr definitely_t definitely = {}; } diff --git a/include/eve/module/core/fuzzy/core.hpp b/include/eve/module/core/fuzzy/core.hpp deleted file mode 100644 index 87119b23c2..0000000000 --- a/include/eve/module/core/fuzzy/core.hpp +++ /dev/null @@ -1,17 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include diff --git a/include/eve/module/core/fuzzy/impl/is_equal.hpp b/include/eve/module/core/fuzzy/impl/is_equal.hpp deleted file mode 100644 index f1d7e4fca6..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_equal.hpp +++ /dev/null @@ -1,89 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(almost(is_equal), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_equal, a, b); -} - -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return almost(is_equal)(aa, bb, tol); - } - else return arithmetic_call(almost(is_equal), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return almost(is_equal)(c_t(a), c_t(b), convert(tol, as())); - } - else { return convert(nb_values(a, b) <= tol, as(logical>())); } - } - else { return is_less_equal(dist(a, b), tol * max(eve::abs(a), eve::abs(b))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_greater.hpp b/include/eve/module/core/fuzzy/impl/is_greater.hpp deleted file mode 100644 index 0474485b7e..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_greater.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_greater_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(definitely(is_greater), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_greater_(EVE_SUPPORTS(cpu_), - definitely_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_greater, a, b); -} - -template -EVE_FORCEINLINE auto -is_greater_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return definitely(is_greater)(aa, bb, tol); - } - else return arithmetic_call(definitely(is_greater), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_greater_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return definitely(is_greater)(c_t(a), c_t(b), convert(tol, as())); - } - else { return is_greater(a, saturated(next)(b, tol)); } - } - else { return is_greater(a, saturated(add)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_greater_equal.hpp b/include/eve/module/core/fuzzy/impl/is_greater_equal.hpp deleted file mode 100644 index 4ddd3c30c0..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_greater_equal.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_greater_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(almost(is_greater_equal), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_greater_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_greater_equal, a, b); -} - -template -EVE_FORCEINLINE auto -is_greater_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return almost(is_greater_equal)(aa, bb, tol); - } - else return arithmetic_call(almost(is_greater_equal), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_greater_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return almost(is_greater_equal)(c_t(a), c_t(b), convert(tol, as())); - } - else { return is_greater_equal(a, saturated(prev)(b, tol)); } - } - else { return is_greater_equal(a, saturated(sub)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_less.hpp b/include/eve/module/core/fuzzy/impl/is_less.hpp deleted file mode 100644 index 581a007f8f..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_less.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_less_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(definitely(is_less), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_less_(EVE_SUPPORTS(cpu_), - definitely_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_less, a, b); -} - -template -EVE_FORCEINLINE auto -is_less_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return definitely(is_less)(aa, bb, tol); - } - else return arithmetic_call(definitely(is_less), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_less_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return definitely(is_less)(c_t(a), c_t(b), convert(tol, as())); - } - else { return is_less(a, saturated(prev)(b, tol)); } - } - else { return is_less(a, saturated(sub)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_less_equal.hpp b/include/eve/module/core/fuzzy/impl/is_less_equal.hpp deleted file mode 100644 index d6c3ad5d1f..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_less_equal.hpp +++ /dev/null @@ -1,89 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_less_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(almost(is_less_equal), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_less_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(almost(is_less_equal), a, b); -} - -template -EVE_FORCEINLINE auto -is_less_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return is_less_equal(almost_type(), aa, bb, tol); - } - else return arithmetic_call(almost(is_less_equal), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_less_equal_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return is_less_equal(almost_type(), c_t(a), c_t(b), convert(tol, as())); - } - else { return is_less_equal(a, saturated(next)(b, tol)); } - } - else { return is_less_equal(a, saturated(add)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_not_equal.hpp b/include/eve/module/core/fuzzy/impl/is_not_equal.hpp deleted file mode 100644 index 2f87dee827..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_not_equal.hpp +++ /dev/null @@ -1,90 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(definitely(is_not_equal), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_not_equal, a, b); -} - -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return definitely(is_not_equal)(aa, bb, tol); - } - else return arithmetic_call(definitely(is_not_equal), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return definitely(is_not_equal)(c_t(a), c_t(b), convert(tol, as())); - } - else { return convert(nb_values(a, b) > tol, as(logical>())); } - } - else { return is_greater(dist(a, b), tol * max(eve::abs(a), eve::abs(b))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_not_greater.hpp b/include/eve/module/core/fuzzy/impl/is_not_greater.hpp deleted file mode 100644 index 05500095d0..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_not_greater.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_not_greater_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(almost(is_not_greater), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_not_greater_(EVE_SUPPORTS(cpu_), - almost_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_not_greater, a, b); -} - -template -EVE_FORCEINLINE auto -is_not_greater_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return almost(is_not_greater)(aa, bb, tol); - } - else return arithmetic_call(almost(is_not_greater), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_not_greater_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return almost(is_not_greater)(c_t(a), c_t(b), convert(tol, as())); - } - else { return is_not_greater(a, saturated(next)(b, tol)); } - } - else { return is_not_greater(a, saturated(add)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_not_greater_equal.hpp b/include/eve/module/core/fuzzy/impl/is_not_greater_equal.hpp deleted file mode 100644 index d9becb47f9..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_not_greater_equal.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_not_greater_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(definitely(is_not_greater_equal), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_not_greater_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_not_greater_equal, a, b); -} - -template -EVE_FORCEINLINE auto -is_not_greater_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return definitely(is_not_greater_equal)(aa, bb, tol); - } - else return arithmetic_call(definitely(is_not_greater_equal), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_not_greater_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return definitely(is_not_greater_equal)(c_t(a), c_t(b), convert(tol, as())); - } - else { return is_not_greater_equal(a, saturated(prev)(b, tol)); } - } - else { return is_not_greater_equal(a, saturated(sub)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_not_less.hpp b/include/eve/module/core/fuzzy/impl/is_not_less.hpp deleted file mode 100644 index 68c3efba72..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_not_less.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_not_less_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(almost(is_not_less), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_not_less_(EVE_SUPPORTS(cpu_), - almost_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_not_less, a, b); -} - -template -EVE_FORCEINLINE auto -is_not_less_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return almost(is_not_less)(aa, bb, tol); - } - else return arithmetic_call(almost(is_not_less), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_not_less_(EVE_SUPPORTS(cpu_), - almost_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return almost(is_not_less)(c_t(a), c_t(b), convert(tol, as())); - } - else { return is_not_less(a, saturated(prev)(b, tol)); } - } - else { return is_not_less(a, saturated(sub)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/impl/is_not_less_equal.hpp b/include/eve/module/core/fuzzy/impl/is_not_less_equal.hpp deleted file mode 100644 index 5b9bed0a40..0000000000 --- a/include/eve/module/core/fuzzy/impl/is_not_less_equal.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -is_not_less_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(definitely(is_not_less_equal), a, b, 3 * eps(as(a))); -} - -template -EVE_FORCEINLINE auto -is_not_less_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_not_less_equal, a, b); -} - -template -EVE_FORCEINLINE auto -is_not_less_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const& a, - U const& b, - V const& tol) noexcept --> common_logical_t -{ - if constexpr( integral_value ) - { - using c_t = std::conditional_t, U, T>; - c_t aa(a); - c_t bb(b); - return definitely(is_not_less_equal)(aa, bb, tol); - } - else return arithmetic_call(definitely(is_not_less_equal), a, b, tol); -} - -template -EVE_FORCEINLINE auto -is_not_less_equal_(EVE_SUPPORTS(cpu_), - definitely_type const&, - T const & a, - T const & b, - [[maybe_unused]] V const& tol) noexcept -{ - if constexpr( integral_value ) - { - if constexpr( simd_value && scalar_value ) - { - using c_t = as_wide_t>; - using i_t = as_integer_t; - return definitely(is_not_less_equal)(c_t(a), c_t(b), convert(tol, as())); - } - else { return is_not_less_equal(a, saturated(next)(b, tol)); } - } - else { return is_not_less_equal(a, saturated(add)(b, tol * max(eve::abs(a), eve::abs(b)))); } -} -} diff --git a/include/eve/module/core/fuzzy/is_equal.hpp b/include/eve/module/core/fuzzy/is_equal.hpp deleted file mode 100644 index f2b6ede76a..0000000000 --- a/include/eve/module/core/fuzzy/is_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_greater.hpp b/include/eve/module/core/fuzzy/is_greater.hpp deleted file mode 100644 index 233f7454d8..0000000000 --- a/include/eve/module/core/fuzzy/is_greater.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_greater_equal.hpp b/include/eve/module/core/fuzzy/is_greater_equal.hpp deleted file mode 100644 index e41f489b8d..0000000000 --- a/include/eve/module/core/fuzzy/is_greater_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_less.hpp b/include/eve/module/core/fuzzy/is_less.hpp deleted file mode 100644 index efb11b0f78..0000000000 --- a/include/eve/module/core/fuzzy/is_less.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_less_equal.hpp b/include/eve/module/core/fuzzy/is_less_equal.hpp deleted file mode 100644 index c3a639e072..0000000000 --- a/include/eve/module/core/fuzzy/is_less_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_not_equal.hpp b/include/eve/module/core/fuzzy/is_not_equal.hpp deleted file mode 100644 index 71edc21f0a..0000000000 --- a/include/eve/module/core/fuzzy/is_not_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_not_greater.hpp b/include/eve/module/core/fuzzy/is_not_greater.hpp deleted file mode 100644 index 80d1d618d1..0000000000 --- a/include/eve/module/core/fuzzy/is_not_greater.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_not_greater_equal.hpp b/include/eve/module/core/fuzzy/is_not_greater_equal.hpp deleted file mode 100644 index 346beb28c9..0000000000 --- a/include/eve/module/core/fuzzy/is_not_greater_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_not_less.hpp b/include/eve/module/core/fuzzy/is_not_less.hpp deleted file mode 100644 index 3af551ef91..0000000000 --- a/include/eve/module/core/fuzzy/is_not_less.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/fuzzy/is_not_less_equal.hpp b/include/eve/module/core/fuzzy/is_not_less_equal.hpp deleted file mode 100644 index ee1055d36e..0000000000 --- a/include/eve/module/core/fuzzy/is_not_less_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/numeric/core.hpp b/include/eve/module/core/numeric/core.hpp deleted file mode 100644 index 2d6a16fc03..0000000000 --- a/include/eve/module/core/numeric/core.hpp +++ /dev/null @@ -1,8 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once diff --git a/include/eve/module/core/numeric/fam.hpp b/include/eve/module/core/numeric/fam.hpp deleted file mode 100644 index 9939d2e9d9..0000000000 --- a/include/eve/module/core/numeric/fam.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/numeric/fanm.hpp b/include/eve/module/core/numeric/fanm.hpp deleted file mode 100644 index c9d20fbbad..0000000000 --- a/include/eve/module/core/numeric/fanm.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/numeric/fms.hpp b/include/eve/module/core/numeric/fms.hpp deleted file mode 100644 index 35e692f65e..0000000000 --- a/include/eve/module/core/numeric/fms.hpp +++ /dev/null @@ -1,15 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -#if defined(EVE_INCLUDE_X86_HEADER) -# include -#endif diff --git a/include/eve/module/core/numeric/fnma.hpp b/include/eve/module/core/numeric/fnma.hpp deleted file mode 100644 index c1dec882a0..0000000000 --- a/include/eve/module/core/numeric/fnma.hpp +++ /dev/null @@ -1,15 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -#if defined(EVE_INCLUDE_X86_HEADER) -# include -#endif diff --git a/include/eve/module/core/numeric/fnms.hpp b/include/eve/module/core/numeric/fnms.hpp deleted file mode 100644 index 8b01cb057c..0000000000 --- a/include/eve/module/core/numeric/fnms.hpp +++ /dev/null @@ -1,15 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -#if defined(EVE_INCLUDE_X86_HEADER) -# include -#endif diff --git a/include/eve/module/core/numeric/fsm.hpp b/include/eve/module/core/numeric/fsm.hpp deleted file mode 100644 index fb0d2991ac..0000000000 --- a/include/eve/module/core/numeric/fsm.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/numeric/fsnm.hpp b/include/eve/module/core/numeric/fsnm.hpp deleted file mode 100644 index c0bb06b61d..0000000000 --- a/include/eve/module/core/numeric/fsnm.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/numeric/impl/fam.hpp b/include/eve/module/core/numeric/impl/fam.hpp deleted file mode 100644 index 252629eaa6..0000000000 --- a/include/eve/module/core/numeric/impl/fam.hpp +++ /dev/null @@ -1,38 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fam_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, U const& b, V const& c) noexcept --> common_value_t -{ - return arithmetic_call(numeric(fam), a, b, c); -} - -template -EVE_FORCEINLINE T -fam_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return fma[pedantic](b, c, a); -} -} diff --git a/include/eve/module/core/numeric/impl/fanm.hpp b/include/eve/module/core/numeric/impl/fanm.hpp deleted file mode 100644 index a41fa750e6..0000000000 --- a/include/eve/module/core/numeric/impl/fanm.hpp +++ /dev/null @@ -1,38 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fanm_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, U const& b, V const& c) noexcept --> common_value_t -{ - return arithmetic_call(numeric(fanm), a, b, c); -} - -template -EVE_FORCEINLINE T -fanm_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return numeric(fnma)(b, c, a); -} -} diff --git a/include/eve/module/core/numeric/impl/fms.hpp b/include/eve/module/core/numeric/impl/fms.hpp deleted file mode 100644 index f1f5f9c00b..0000000000 --- a/include/eve/module/core/numeric/impl/fms.hpp +++ /dev/null @@ -1,36 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fms_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, U const& b, V const& c) noexcept --> common_value_t -{ - return arithmetic_call(numeric(fms), a, b, c); -} - -template -EVE_FORCEINLINE T -fms_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return fma[pedantic](a, b, T(-c)); -} -} diff --git a/include/eve/module/core/numeric/impl/fnma.hpp b/include/eve/module/core/numeric/impl/fnma.hpp deleted file mode 100644 index 90ed01f548..0000000000 --- a/include/eve/module/core/numeric/impl/fnma.hpp +++ /dev/null @@ -1,38 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fnma_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, U const& b, V const& c) noexcept --> common_value_t -{ - return arithmetic_call(numeric(fnma), a, b, c); -} - -template -EVE_FORCEINLINE T -fnma_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return fma[pedantic](T(-a), b, c); -} -} diff --git a/include/eve/module/core/numeric/impl/fnms.hpp b/include/eve/module/core/numeric/impl/fnms.hpp deleted file mode 100644 index 6166854305..0000000000 --- a/include/eve/module/core/numeric/impl/fnms.hpp +++ /dev/null @@ -1,38 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fnms_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, U const& b, V const& c) noexcept --> common_value_t -{ - return arithmetic_call(numeric(fnms), a, b, c); -} - -template -EVE_FORCEINLINE T -fnms_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return -fma[pedantic](a, b, c); -} -} diff --git a/include/eve/module/core/numeric/impl/fsm.hpp b/include/eve/module/core/numeric/impl/fsm.hpp deleted file mode 100644 index 07d0a2d2b7..0000000000 --- a/include/eve/module/core/numeric/impl/fsm.hpp +++ /dev/null @@ -1,98 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE constexpr auto fsm_(EVE_REQUIRES(cpu_), O const& o, T const& a, U const& b, V const& c) - { - // PROMOTE --------------------- - if constexpr(O::contains(promote2)) - { - using er_t = common_type_t, element_type_t, element_type_t>; - constexpr auto tgt = as(eve::as()); - return fsm[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); - } - // OTHERS --------------------- - else - { - using r_t = common_value_t; - return fsm[o](r_t(a), r_t(b), r_t(c)); - } - } - - // PROMOTE may mix values of different types, making automatic masking from the default behaviors unwieldy - // We catch the mask + PROMOTE case and handle it properly - // No special provision is made for PEDANTIC as it is handled in the second pass without issues. - template - EVE_FORCEINLINE constexpr auto - fsm_(EVE_REQUIRES(cpu_), C const& mask, O const& o, T const& a, U const& b, V const& c) - { - // PROMOTE --------------------- - if constexpr(O::contains(promote2)) - { - using er_t = common_type_t, element_type_t, element_type_t>; - constexpr auto tgt = as(eve::as()); - - return fsm[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); - } - // OTHERS --------------------- - else - { - using r_t = common_value_t; - // Drop the mask key to prevent circular calls - auto opt = o.drop(condition_key); - return detail::mask_op(mask, detail::return_2nd, r_t(a), fsm[opt](r_t(a), r_t(b), r_t(c))); - } - } - - template - EVE_FORCEINLINE constexpr auto fsm_(EVE_REQUIRES(cpu_), O const& o, T const& a, T const& b, T const& c) - { - // PROMOTE --------------------- - // We promote before going pedantic in case it changes the behavior - if constexpr(O::contains(promote2)) return fsm[o.drop(promote2)](a,b,c); - // PEDANTIC --------------------- - else if constexpr(O::contains(pedantic2)) - { - if constexpr( std::same_as, float> ) - { - constexpr auto tgt = as{}; - return convert( convert(b,tgt) * convert(c,tgt) - convert(a,tgt), as_element(a)); - } - else if constexpr( std::same_as, double> ) - { - [[maybe_unused]] auto stdfsm = [](auto sa, auto sb, auto sc){return std::fma(sb, sa, sc); }; - if constexpr(scalar_value) return std::fma(b, c, -a); - else return map(stdfsm, a, b, c); - } - else if constexpr( std::is_integral_v> ) - { - // Pedantic fsm has to ensure "no intermediate overflow". - // This is done in the case of signed integers by trans-typing to unsigned type - // to perform the computations in a guarantee 2-complement environment - // since signed integer overflows in C++ produce "undefined results" - constexpr auto tgt = as>{}; - return bit_cast(fsm(bit_cast(a,tgt), bit_cast(b,tgt), bit_cast(c,tgt)), as()); - } - else return fsm(a, b, c); - } - // REGULAR --------------------- - else return b * c - a; - } -} diff --git a/include/eve/module/core/numeric/impl/fsnm.hpp b/include/eve/module/core/numeric/impl/fsnm.hpp deleted file mode 100644 index 2c5f801b15..0000000000 --- a/include/eve/module/core/numeric/impl/fsnm.hpp +++ /dev/null @@ -1,38 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fsnm_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, U const& b, V const& c) noexcept --> common_value_t -{ - return arithmetic_call(numeric(fsnm), a, b, c); -} - -template -EVE_FORCEINLINE T -fsnm_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b, T const& c) noexcept -requires has_native_abi_v -{ - return numeric(fnms)(b, c, a); -} -} diff --git a/include/eve/module/core/numeric/impl/is_equal.hpp b/include/eve/module/core/numeric/impl/is_equal.hpp deleted file mode 100644 index f99ad5d7ec..0000000000 --- a/include/eve/module/core/numeric/impl/is_equal.hpp +++ /dev/null @@ -1,64 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -/////////////////////////////////////////////////////////////////////////// -// numeric decorator -> nans are considered equal -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), - numeric_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(numeric(is_equal), a, b); -} - -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), - numeric_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_equal, a, b); -} - -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b) noexcept -{ - auto tmp = is_equal(a, b); - if constexpr( floating_value ) return tmp || (is_nan(a) && is_nan(b)); - else return tmp; -} - -template -EVE_FORCEINLINE auto -is_equal_(EVE_SUPPORTS(cpu_), - numeric_type const&, - logical const& a, - logical const& b) noexcept -{ - return is_equal(a, b); -} -} diff --git a/include/eve/module/core/numeric/impl/is_not_equal.hpp b/include/eve/module/core/numeric/impl/is_not_equal.hpp deleted file mode 100644 index 455e5dae15..0000000000 --- a/include/eve/module/core/numeric/impl/is_not_equal.hpp +++ /dev/null @@ -1,67 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -/////////////////////////////////////////////////////////////////////////// -// numeric decorator -> nans are considered equal -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), - numeric_type const&, - T const& a, - U const& b) noexcept --> common_logical_t -{ - return arithmetic_call(numeric(is_not_equal), a, b); -} - -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), - numeric_type const&, - logical const& a, - logical const& b) noexcept --> common_logical_t -{ - return arithmetic_call(is_not_equal, a, b); -} - -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b) noexcept -{ - auto tmp = is_not_equal(a, b); - if constexpr( floating_value ) return tmp && (is_not_nan(a) || is_not_nan(b)); - else return tmp; -} - -template -EVE_FORCEINLINE auto -is_not_equal_(EVE_SUPPORTS(cpu_), - numeric_type const&, - logical const& a, - logical const& b) noexcept -{ - return is_not_equal(a, b); -} -} diff --git a/include/eve/module/core/numeric/impl/lerp.hpp b/include/eve/module/core/numeric/impl/lerp.hpp deleted file mode 100644 index ebc3ef42a3..0000000000 --- a/include/eve/module/core/numeric/impl/lerp.hpp +++ /dev/null @@ -1,38 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -lerp_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, U const& b, V const& t) noexcept --> decltype(lerp(a, b, t)) -{ - return arithmetic_call(numeric(lerp), a, b, t); -} - -template -EVE_FORCEINLINE T -lerp_(EVE_SUPPORTS(cpu_), numeric_type const&, T const& a, T const& b, T const& t) noexcept -{ - return fma[pedantic](t, b, numeric(fnma)(t, a, a)); -} -} diff --git a/include/eve/module/core/numeric/impl/simd/x86/fms.hpp b/include/eve/module/core/numeric/impl/simd/x86/fms.hpp deleted file mode 100644 index 1708b88841..0000000000 --- a/include/eve/module/core/numeric/impl/simd/x86/fms.hpp +++ /dev/null @@ -1,31 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE wide - fms_(EVE_SUPPORTS(avx2_), - numeric_type const&, - wide const &a, - wide const &b, - wide const &c) noexcept requires x86_abi> -{ - if constexpr( supports_fma3 ) { return fms(a, b, c); } - else { return fms_(EVE_RETARGET(cpu_), numeric_type(), a, b, c); } -} -} diff --git a/include/eve/module/core/numeric/impl/simd/x86/fnma.hpp b/include/eve/module/core/numeric/impl/simd/x86/fnma.hpp deleted file mode 100644 index afcd2350b3..0000000000 --- a/include/eve/module/core/numeric/impl/simd/x86/fnma.hpp +++ /dev/null @@ -1,31 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE wide - fnma_(EVE_SUPPORTS(avx2_), - numeric_type const&, - wide const &a, - wide const &b, - wide const &c) noexcept requires x86_abi> -{ - if constexpr( supports_fma3 ) { return fnma(a, b, c); } - else { return fnma_(EVE_RETARGET(cpu_), numeric_type(), a, b, c); } -} -} diff --git a/include/eve/module/core/numeric/impl/simd/x86/fnms.hpp b/include/eve/module/core/numeric/impl/simd/x86/fnms.hpp deleted file mode 100644 index fa1e3d29de..0000000000 --- a/include/eve/module/core/numeric/impl/simd/x86/fnms.hpp +++ /dev/null @@ -1,31 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE wide - fnms_(EVE_SUPPORTS(avx2_), - numeric_type const&, - wide const &a, - wide const &b, - wide const &c) noexcept requires x86_abi> -{ - if constexpr( supports_fma3 ) { return fnms(a, b, c); } - else { return fnms_(EVE_RETARGET(cpu_), numeric_type(), a, b, c); } -} -} diff --git a/include/eve/module/core/numeric/is_equal.hpp b/include/eve/module/core/numeric/is_equal.hpp deleted file mode 100644 index 21c4a5e804..0000000000 --- a/include/eve/module/core/numeric/is_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/numeric/is_not_equal.hpp b/include/eve/module/core/numeric/is_not_equal.hpp deleted file mode 100644 index c5b996f3e5..0000000000 --- a/include/eve/module/core/numeric/is_not_equal.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/numeric/lerp.hpp b/include/eve/module/core/numeric/lerp.hpp deleted file mode 100644 index 6b73006311..0000000000 --- a/include/eve/module/core/numeric/lerp.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/pedantic/core.hpp b/include/eve/module/core/pedantic/core.hpp index 0bcd746c3e..b239aa2c2a 100644 --- a/include/eve/module/core/pedantic/core.hpp +++ b/include/eve/module/core/pedantic/core.hpp @@ -8,14 +8,6 @@ #pragma once #include -#include -#include -#include -#include -#include -#include -#include -#include #include #include #include diff --git a/include/eve/module/core/pedantic/fam.hpp b/include/eve/module/core/pedantic/fam.hpp deleted file mode 100644 index fbd5052e45..0000000000 --- a/include/eve/module/core/pedantic/fam.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/pedantic/fanm.hpp b/include/eve/module/core/pedantic/fanm.hpp deleted file mode 100644 index 1ba4396237..0000000000 --- a/include/eve/module/core/pedantic/fanm.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/pedantic/fms.hpp b/include/eve/module/core/pedantic/fms.hpp deleted file mode 100644 index f80e09af90..0000000000 --- a/include/eve/module/core/pedantic/fms.hpp +++ /dev/null @@ -1,15 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -#if defined(EVE_INCLUDE_X86_HEADER) -# include -#endif diff --git a/include/eve/module/core/pedantic/fnma.hpp b/include/eve/module/core/pedantic/fnma.hpp deleted file mode 100644 index 024037f4e3..0000000000 --- a/include/eve/module/core/pedantic/fnma.hpp +++ /dev/null @@ -1,15 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -#if defined(EVE_INCLUDE_X86_HEADER) -# include -#endif diff --git a/include/eve/module/core/pedantic/fnms.hpp b/include/eve/module/core/pedantic/fnms.hpp deleted file mode 100644 index 2af4376f8e..0000000000 --- a/include/eve/module/core/pedantic/fnms.hpp +++ /dev/null @@ -1,15 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include - -#if defined(EVE_INCLUDE_X86_HEADER) -# include -#endif diff --git a/include/eve/module/core/pedantic/fsm.hpp b/include/eve/module/core/pedantic/fsm.hpp deleted file mode 100644 index 0d68135b2a..0000000000 --- a/include/eve/module/core/pedantic/fsm.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/pedantic/fsnm.hpp b/include/eve/module/core/pedantic/fsnm.hpp deleted file mode 100644 index 5b039a2f1d..0000000000 --- a/include/eve/module/core/pedantic/fsnm.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/pedantic/impl/fam.hpp b/include/eve/module/core/pedantic/impl/fam.hpp deleted file mode 100644 index 721b4406bd..0000000000 --- a/include/eve/module/core/pedantic/impl/fam.hpp +++ /dev/null @@ -1,37 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fam_(EVE_SUPPORTS(cpu_), pedantic_type const&, T const& a, U const& b, V const& c) noexcept --> decltype(fam(a, b, c)) -{ - return arithmetic_call(pedantic(fam), a, b, c); -} - -template -EVE_FORCEINLINE T -fam_(EVE_SUPPORTS(cpu_), pedantic_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return fma[pedantic](b, c, a); -} -} diff --git a/include/eve/module/core/pedantic/impl/fanm.hpp b/include/eve/module/core/pedantic/impl/fanm.hpp deleted file mode 100644 index df1ea256e2..0000000000 --- a/include/eve/module/core/pedantic/impl/fanm.hpp +++ /dev/null @@ -1,44 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fanm_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - U const& b, - V const& c) noexcept --> decltype(fsm(a, b, c)) -{ - return arithmetic_call(pedantic(fanm), a, b, c); -} - -template -EVE_FORCEINLINE T -fanm_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - T const& b, - T const& c) noexcept requires has_native_abi_v -{ - return fnma[pedantic2](b, c, a); -} -} diff --git a/include/eve/module/core/pedantic/impl/fms.hpp b/include/eve/module/core/pedantic/impl/fms.hpp deleted file mode 100644 index 8277ebfb0e..0000000000 --- a/include/eve/module/core/pedantic/impl/fms.hpp +++ /dev/null @@ -1,35 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fms_(EVE_SUPPORTS(cpu_), pedantic_type const&, T const& a, U const& b, V const& c) noexcept --> decltype(fsm(a, b, c)) -{ - return arithmetic_call(pedantic(fms), a, b, c); -} - -template -EVE_FORCEINLINE T -fms_(EVE_SUPPORTS(cpu_), pedantic_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return fma[pedantic](a, b, T(-c)); -} -} diff --git a/include/eve/module/core/pedantic/impl/fnma.hpp b/include/eve/module/core/pedantic/impl/fnma.hpp deleted file mode 100644 index a500d26a7d..0000000000 --- a/include/eve/module/core/pedantic/impl/fnma.hpp +++ /dev/null @@ -1,44 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fnma_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - U const& b, - V const& c) noexcept --> decltype(fsm(a, b, c)) -{ - return arithmetic_call(pedantic(fnma), a, b, c); -} - -template -EVE_FORCEINLINE T -fnma_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - T const& b, - T const& c) noexcept requires has_native_abi_v -{ - return fma[pedantic](T(-a), b, c); -} -} diff --git a/include/eve/module/core/pedantic/impl/fnms.hpp b/include/eve/module/core/pedantic/impl/fnms.hpp deleted file mode 100644 index 0dd46ab6cc..0000000000 --- a/include/eve/module/core/pedantic/impl/fnms.hpp +++ /dev/null @@ -1,44 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fnms_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - U const& b, - V const& c) noexcept --> decltype(fsm(a, b, c)) -{ - return arithmetic_call(pedantic(fnms), a, b, c); -} - -template -EVE_FORCEINLINE T -fnms_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - T const& b, - T const& c) noexcept requires has_native_abi_v -{ - return -fma[pedantic](a, b, c); -} -} diff --git a/include/eve/module/core/pedantic/impl/fsm.hpp b/include/eve/module/core/pedantic/impl/fsm.hpp deleted file mode 100644 index cbd130be38..0000000000 --- a/include/eve/module/core/pedantic/impl/fsm.hpp +++ /dev/null @@ -1,37 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fsm_(EVE_SUPPORTS(cpu_), pedantic_type const&, T const& a, U const& b, V const& c) noexcept --> decltype(fsm(a, b, c)) -{ - return arithmetic_call(pedantic(fsm), a, b, c); -} - -template -EVE_FORCEINLINE T -fsm_(EVE_SUPPORTS(cpu_), pedantic_type const&, T const& a, T const& b, T const& c) noexcept requires - has_native_abi_v -{ - return pedantic(fms)(b, c, a); -} -} diff --git a/include/eve/module/core/pedantic/impl/fsnm.hpp b/include/eve/module/core/pedantic/impl/fsnm.hpp deleted file mode 100644 index b96f9a2c09..0000000000 --- a/include/eve/module/core/pedantic/impl/fsnm.hpp +++ /dev/null @@ -1,44 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -fsnm_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - U const& b, - V const& c) noexcept --> decltype(fsnm(a, b, c)) -{ - return arithmetic_call(pedantic(fsnm), a, b, c); -} - -template -EVE_FORCEINLINE T -fsnm_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - T const& b, - T const& c) noexcept requires has_native_abi_v -{ - return pedantic(fnms)(b, c, a); -} -} diff --git a/include/eve/module/core/pedantic/impl/lerp.hpp b/include/eve/module/core/pedantic/impl/lerp.hpp deleted file mode 100644 index 8630893773..0000000000 --- a/include/eve/module/core/pedantic/impl/lerp.hpp +++ /dev/null @@ -1,41 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace eve::detail -{ -template -EVE_FORCEINLINE auto -lerp_(EVE_SUPPORTS(cpu_), - pedantic_type const&, - T const& a, - U const& b, - V const& t) noexcept --> decltype(lerp(a, b, t)) -{ - return arithmetic_call(pedantic(lerp), a, b, t); -} - -template -EVE_FORCEINLINE T -lerp_(EVE_SUPPORTS(cpu_), pedantic_type const&, T const& a, T const& b, T const& t) noexcept -{ - return fma[pedantic](t, b, pedantic(fnma)(t, a, a)); -} -} diff --git a/include/eve/module/core/pedantic/lerp.hpp b/include/eve/module/core/pedantic/lerp.hpp deleted file mode 100644 index 168866123b..0000000000 --- a/include/eve/module/core/pedantic/lerp.hpp +++ /dev/null @@ -1,11 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include diff --git a/include/eve/module/core/promote/core.hpp b/include/eve/module/core/promote/core.hpp deleted file mode 100644 index 1b31dd1a46..0000000000 --- a/include/eve/module/core/promote/core.hpp +++ /dev/null @@ -1,16 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include -#include -#include -#include diff --git a/include/eve/module/core/promote/fam.hpp b/include/eve/module/core/promote/fam.hpp deleted file mode 100644 index 170f0ca0b1..0000000000 --- a/include/eve/module/core/promote/fam.hpp +++ /dev/null @@ -1,10 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include diff --git a/include/eve/module/core/promote/fanm.hpp b/include/eve/module/core/promote/fanm.hpp deleted file mode 100644 index e9469c0aca..0000000000 --- a/include/eve/module/core/promote/fanm.hpp +++ /dev/null @@ -1,10 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include diff --git a/include/eve/module/core/promote/fms.hpp b/include/eve/module/core/promote/fms.hpp deleted file mode 100644 index 4635066a95..0000000000 --- a/include/eve/module/core/promote/fms.hpp +++ /dev/null @@ -1,10 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include diff --git a/include/eve/module/core/promote/fnma.hpp b/include/eve/module/core/promote/fnma.hpp deleted file mode 100644 index 58c44b5b57..0000000000 --- a/include/eve/module/core/promote/fnma.hpp +++ /dev/null @@ -1,10 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include diff --git a/include/eve/module/core/promote/fnms.hpp b/include/eve/module/core/promote/fnms.hpp deleted file mode 100644 index 2db1e68665..0000000000 --- a/include/eve/module/core/promote/fnms.hpp +++ /dev/null @@ -1,10 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include diff --git a/include/eve/module/core/promote/fsm.hpp b/include/eve/module/core/promote/fsm.hpp deleted file mode 100644 index 564d375565..0000000000 --- a/include/eve/module/core/promote/fsm.hpp +++ /dev/null @@ -1,10 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include diff --git a/include/eve/module/core/promote/fsnm.hpp b/include/eve/module/core/promote/fsnm.hpp deleted file mode 100644 index 5851fea48a..0000000000 --- a/include/eve/module/core/promote/fsnm.hpp +++ /dev/null @@ -1,10 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include diff --git a/include/eve/module/core/promote/impl/fam.hpp b/include/eve/module/core/promote/impl/fam.hpp deleted file mode 100644 index 78aafdc2b5..0000000000 --- a/include/eve/module/core/promote/impl/fam.hpp +++ /dev/null @@ -1,28 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE auto - fam_(EVE_SUPPORTS(cpu_), promote_type const&, T const& a, U const& b, V const& c) noexcept - { - using er_t = common_type_t, element_type_t, element_type_t>; - auto cv_t = as(eve::as()); - return fam(convert(a, cv_t), convert(b, cv_t), convert(c,cv_t)); - } -} diff --git a/include/eve/module/core/promote/impl/fanm.hpp b/include/eve/module/core/promote/impl/fanm.hpp deleted file mode 100644 index 25c9fa4ca4..0000000000 --- a/include/eve/module/core/promote/impl/fanm.hpp +++ /dev/null @@ -1,28 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE auto - fanm_(EVE_SUPPORTS(cpu_), promote_type const&, T const& a, U const& b, V const& c) noexcept - { - using er_t = common_type_t, element_type_t, element_type_t>; - auto cv_t = as(eve::as()); - return fanm(convert(a, cv_t), convert(b, cv_t), convert(c,cv_t)); - } -} diff --git a/include/eve/module/core/promote/impl/fms.hpp b/include/eve/module/core/promote/impl/fms.hpp deleted file mode 100644 index 04c662eec5..0000000000 --- a/include/eve/module/core/promote/impl/fms.hpp +++ /dev/null @@ -1,28 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE auto - fms_(EVE_SUPPORTS(cpu_), promote_type const&, T const& a, U const& b, V const& c) noexcept - { - using er_t = common_type_t, element_type_t, element_type_t>; - auto cv_t = as(eve::as()); - return fms(convert(a, cv_t), convert(b, cv_t), convert(c,cv_t)); - } -} diff --git a/include/eve/module/core/promote/impl/fnma.hpp b/include/eve/module/core/promote/impl/fnma.hpp deleted file mode 100644 index 91644906b5..0000000000 --- a/include/eve/module/core/promote/impl/fnma.hpp +++ /dev/null @@ -1,28 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE auto - fnma_(EVE_SUPPORTS(cpu_), promote_type const&, T const& a, U const& b, V const& c) noexcept - { - using er_t = common_type_t, element_type_t, element_type_t>; - auto cv_t = as(eve::as()); - return fnma(convert(a, cv_t), convert(b, cv_t), convert(c,cv_t)); - } -} diff --git a/include/eve/module/core/promote/impl/fnms.hpp b/include/eve/module/core/promote/impl/fnms.hpp deleted file mode 100644 index f1255f792d..0000000000 --- a/include/eve/module/core/promote/impl/fnms.hpp +++ /dev/null @@ -1,28 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE auto - fnms_(EVE_SUPPORTS(cpu_), promote_type const&, T const& a, U const& b, V const& c) noexcept - { - using er_t = common_type_t, element_type_t, element_type_t>; - auto cv_t = as(eve::as()); - return fnms(convert(a, cv_t), convert(b, cv_t), convert(c,cv_t)); - } -} diff --git a/include/eve/module/core/promote/impl/fsm.hpp b/include/eve/module/core/promote/impl/fsm.hpp deleted file mode 100644 index 79cc1d9519..0000000000 --- a/include/eve/module/core/promote/impl/fsm.hpp +++ /dev/null @@ -1,28 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE auto - fsm_(EVE_SUPPORTS(cpu_), promote_type const&, T const& a, U const& b, V const& c) noexcept - { - using er_t = common_type_t, element_type_t, element_type_t>; - auto cv_t = as(eve::as()); - return fsm(convert(a, cv_t), convert(b, cv_t), convert(c,cv_t)); - } -} diff --git a/include/eve/module/core/promote/impl/fsnm.hpp b/include/eve/module/core/promote/impl/fsnm.hpp deleted file mode 100644 index 69739c767f..0000000000 --- a/include/eve/module/core/promote/impl/fsnm.hpp +++ /dev/null @@ -1,28 +0,0 @@ -//================================================================================================== -/* - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -*/ -//================================================================================================== -#pragma once - -#include -#include -#include -#include - -#include -#include - -namespace eve::detail -{ - template - EVE_FORCEINLINE auto - fsnm_(EVE_SUPPORTS(cpu_), promote_type const&, T const& a, U const& b, V const& c) noexcept - { - using er_t = common_type_t, element_type_t, element_type_t>; - auto cv_t = as(eve::as()); - return fsnm(convert(a, cv_t), convert(b, cv_t), convert(c,cv_t)); - } -} diff --git a/include/eve/module/core/regular/fam.hpp b/include/eve/module/core/regular/fam.hpp index b25a4d13d4..364299b43a 100644 --- a/include/eve/module/core/regular/fam.hpp +++ b/include/eve/module/core/regular/fam.hpp @@ -17,11 +17,11 @@ namespace eve struct fam_t : strict_elementwise_callable { template - requires(Options::contains(promote2)) + requires(Options::contains(promote)) constexpr EVE_FORCEINLINE auto operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } template - requires(!Options::contains(promote2)) + requires(!Options::contains(promote)) constexpr EVE_FORCEINLINE common_value_t operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } diff --git a/include/eve/module/core/regular/fma.hpp b/include/eve/module/core/regular/fma.hpp index 419ef8a003..5077822bba 100644 --- a/include/eve/module/core/regular/fma.hpp +++ b/include/eve/module/core/regular/fma.hpp @@ -17,11 +17,11 @@ template struct fma_t : strict_elementwise_callable { template - requires(Options::contains(promote2)) + requires(Options::contains(promote)) constexpr EVE_FORCEINLINE auto operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } template - requires(!Options::contains(promote2)) + requires(!Options::contains(promote)) constexpr EVE_FORCEINLINE common_value_t operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } @@ -85,7 +85,7 @@ struct fma_t : strict_elementwise_callable { template - requires(Options::contains(promote2)) + requires(Options::contains(promote)) constexpr EVE_FORCEINLINE auto operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } template - requires(!Options::contains(promote2)) + requires(!Options::contains(promote)) constexpr EVE_FORCEINLINE common_value_t operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } diff --git a/include/eve/module/core/regular/fnma.hpp b/include/eve/module/core/regular/fnma.hpp index 32296625f4..4d7910a693 100644 --- a/include/eve/module/core/regular/fnma.hpp +++ b/include/eve/module/core/regular/fnma.hpp @@ -18,11 +18,11 @@ namespace eve struct fnma_t : strict_elementwise_callable { template - requires(Options::contains(promote2)) + requires(Options::contains(promote)) constexpr EVE_FORCEINLINE auto operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } template - requires(!Options::contains(promote2)) + requires(!Options::contains(promote)) constexpr EVE_FORCEINLINE common_value_t operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } diff --git a/include/eve/module/core/regular/fnms.hpp b/include/eve/module/core/regular/fnms.hpp index 0ebe5ad0d2..a2eb40525a 100644 --- a/include/eve/module/core/regular/fnms.hpp +++ b/include/eve/module/core/regular/fnms.hpp @@ -18,11 +18,11 @@ namespace eve struct fnms_t : strict_elementwise_callable { template - requires(Options::contains(promote2)) + requires(Options::contains(promote)) constexpr EVE_FORCEINLINE auto operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } template - requires(!Options::contains(promote2)) + requires(!Options::contains(promote)) constexpr EVE_FORCEINLINE common_value_t operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } diff --git a/include/eve/module/core/regular/fsm.hpp b/include/eve/module/core/regular/fsm.hpp index f1a5af47af..09718528c4 100644 --- a/include/eve/module/core/regular/fsm.hpp +++ b/include/eve/module/core/regular/fsm.hpp @@ -18,11 +18,11 @@ template struct fsm_t : strict_elementwise_callable { template - requires(Options::contains(promote2)) + requires(Options::contains(promote)) constexpr EVE_FORCEINLINE auto operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } template - requires(!Options::contains(promote2)) + requires(!Options::contains(promote)) constexpr EVE_FORCEINLINE common_value_t operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } diff --git a/include/eve/module/core/regular/fsnm.hpp b/include/eve/module/core/regular/fsnm.hpp index 10c75bc7ac..05579f379c 100644 --- a/include/eve/module/core/regular/fsnm.hpp +++ b/include/eve/module/core/regular/fsnm.hpp @@ -18,12 +18,12 @@ namespace eve struct fsnm_t : strict_elementwise_callable { template - requires(Options::contains(promote2)) + requires(Options::contains(promote)) constexpr EVE_FORCEINLINE auto operator()(T a, U b, V c) const { return EVE_DISPATCH_CALL(a, b, c); } template - requires(!Options::contains(promote2)) + requires(!Options::contains(promote)) constexpr EVE_FORCEINLINE common_value_t operator()(T a, U b, V c) const noexcept { return EVE_DISPATCH_CALL(a,b,c); } diff --git a/include/eve/module/core/regular/impl/absmax.hpp b/include/eve/module/core/regular/impl/absmax.hpp index 354bb34ccc..64a4022642 100644 --- a/include/eve/module/core/regular/impl/absmax.hpp +++ b/include/eve/module/core/regular/impl/absmax.hpp @@ -16,6 +16,6 @@ namespace eve::detail EVE_FORCEINLINE constexpr common_value_t absmax_(EVE_REQUIRES(cpu_), O const & o, T0 r0, T1 r1, Ts... rs) noexcept { - return eve::abs[o.drop(pedantic2,numeric2)](eve::max[o.drop(saturated2)](r0, r1, rs...)); + return eve::abs[o.drop(pedantic2,numeric)](eve::max[o.drop(saturated2)](r0, r1, rs...)); } } diff --git a/include/eve/module/core/regular/impl/absmin.hpp b/include/eve/module/core/regular/impl/absmin.hpp index 21ccf9822d..5c7f613781 100644 --- a/include/eve/module/core/regular/impl/absmin.hpp +++ b/include/eve/module/core/regular/impl/absmin.hpp @@ -17,6 +17,6 @@ namespace eve::detail EVE_FORCEINLINE constexpr common_value_t absmin_(EVE_REQUIRES(cpu_), O const & o, T0 r0, T1 r1, Ts... rs) noexcept { - return eve::abs[o.drop(pedantic2,numeric2)](eve::min[o.drop(saturated2)](r0, r1, rs...)); + return eve::abs[o.drop(pedantic2,numeric)](eve::min[o.drop(saturated2)](r0, r1, rs...)); } } diff --git a/include/eve/module/core/regular/impl/ceil.hpp b/include/eve/module/core/regular/impl/ceil.hpp index ca3341ddc6..f2e0be690e 100644 --- a/include/eve/module/core/regular/impl/ceil.hpp +++ b/include/eve/module/core/regular/impl/ceil.hpp @@ -20,9 +20,9 @@ namespace eve::detail EVE_FORCEINLINE constexpr T ceil_(EVE_REQUIRES(cpu_), O const& o, T const& a0) noexcept { - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { - auto tol = o[almost2].value(a0); + auto tol = o[almost].value(a0); if constexpr(integral_value) return ceil(prev(a0, tol)); else diff --git a/include/eve/module/core/regular/impl/fam.hpp b/include/eve/module/core/regular/impl/fam.hpp index 1869d9e370..1a3262da95 100644 --- a/include/eve/module/core/regular/impl/fam.hpp +++ b/include/eve/module/core/regular/impl/fam.hpp @@ -22,11 +22,11 @@ namespace eve::detail EVE_FORCEINLINE constexpr auto fam_(EVE_REQUIRES(cpu_), O const& o, T const& a, U const& b, V const& c) { // PROMOTE --------------------- - if constexpr(O::contains(promote2)) + if constexpr(O::contains(promote)) { using er_t = common_type_t, element_type_t, element_type_t>; constexpr auto tgt = as(eve::as()); - return fam[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); + return fam[o.drop(promote)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); } // OTHERS --------------------- else @@ -44,12 +44,12 @@ namespace eve::detail fam_(EVE_REQUIRES(cpu_), C const& mask, O const& o, T const& a, U const& b, V const& c) { // PROMOTE --------------------- - if constexpr(O::contains(promote2)) + if constexpr(O::contains(promote)) { using er_t = common_type_t, element_type_t, element_type_t>; constexpr auto tgt = as(eve::as()); - return fam[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); + return fam[o.drop(promote)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); } // OTHERS --------------------- else @@ -66,7 +66,7 @@ namespace eve::detail { // PROMOTE --------------------- // We promote before going pedantic in case it changes the behavior - if constexpr(O::contains(promote2)) return fam[o.drop(promote2)](a,b,c); + if constexpr(O::contains(promote)) return fam[o.drop(promote)](a,b,c); // PEDANTIC --------------------- else if constexpr(O::contains(pedantic2)) { diff --git a/include/eve/module/core/regular/impl/floor.hpp b/include/eve/module/core/regular/impl/floor.hpp index 1e63001d39..9e72f1372b 100644 --- a/include/eve/module/core/regular/impl/floor.hpp +++ b/include/eve/module/core/regular/impl/floor.hpp @@ -34,9 +34,9 @@ namespace eve::detail if constexpr(integral_value) return a0; else { - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { - auto tol = o[almost2].value(a0); + auto tol = o[almost].value(a0); if constexpr(integral_value) return floor(next(a0, tol)); else diff --git a/include/eve/module/core/regular/impl/fma.hpp b/include/eve/module/core/regular/impl/fma.hpp index 60307e9365..c9c7ca0616 100644 --- a/include/eve/module/core/regular/impl/fma.hpp +++ b/include/eve/module/core/regular/impl/fma.hpp @@ -24,11 +24,11 @@ namespace eve::detail EVE_FORCEINLINE constexpr auto fma_(EVE_REQUIRES(cpu_), O const& o, T const& a, U const& b, V const& c) { // PROMOTE --------------------- - if constexpr(O::contains(promote2)) + if constexpr(O::contains(promote)) { using er_t = common_type_t, element_type_t, element_type_t>; constexpr auto tgt = as(eve::as()); - return fma[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); + return fma[o.drop(promote)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); } // OTHERS --------------------- else @@ -46,12 +46,12 @@ namespace eve::detail fma_(EVE_REQUIRES(cpu_), C const& mask, O const& o, T const& a, U const& b, V const& c) { // PROMOTE --------------------- - if constexpr(O::contains(promote2)) + if constexpr(O::contains(promote)) { using er_t = common_type_t, element_type_t, element_type_t>; constexpr auto tgt = as(eve::as()); - return fma[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); + return fma[o.drop(promote)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); } // OTHERS --------------------- else @@ -68,7 +68,7 @@ namespace eve::detail { // PROMOTE --------------------- // We promote before going pedantic in case it changes the behavior - if constexpr(O::contains(promote2)) return fma[o.drop(promote2)](a,b,c); + if constexpr(O::contains(promote)) return fma[o.drop(promote)](a,b,c); // PEDANTIC --------------------- else if constexpr(O::contains(pedantic2)) { diff --git a/include/eve/module/core/regular/impl/fms.hpp b/include/eve/module/core/regular/impl/fms.hpp index 08ae10e12e..d0e37b73f1 100644 --- a/include/eve/module/core/regular/impl/fms.hpp +++ b/include/eve/module/core/regular/impl/fms.hpp @@ -24,11 +24,11 @@ namespace eve::detail EVE_FORCEINLINE constexpr auto fms_(EVE_REQUIRES(cpu_), O const& o, T const& a, U const& b, V const& c) { // PROMOTE --------------------- - if constexpr(O::contains(promote2)) + if constexpr(O::contains(promote)) { using er_t = common_type_t, element_type_t, element_type_t>; constexpr auto tgt = as(eve::as()); - return fms[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); + return fms[o.drop(promote)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); } // OTHERS --------------------- else @@ -46,12 +46,12 @@ namespace eve::detail fms_(EVE_REQUIRES(cpu_), C const& mask, O const& o, T const& a, U const& b, V const& c) { // PROMOTE --------------------- - if constexpr(O::contains(promote2)) + if constexpr(O::contains(promote)) { using er_t = common_type_t, element_type_t, element_type_t>; constexpr auto tgt = as(eve::as()); - return fms[o.drop(promote2)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); + return fms[o.drop(promote)](convert(a, tgt), convert(b, tgt), convert(c,tgt)); } // OTHERS --------------------- else @@ -68,7 +68,7 @@ namespace eve::detail { // PROMOTE --------------------- // We promote before going pedantic in case it changes the behavior - if constexpr(O::contains(promote2)) return fms[o.drop(promote2)](a,b,c); + if constexpr(O::contains(promote)) return fms[o.drop(promote)](a,b,c); // PEDANTIC --------------------- else if constexpr(O::contains(pedantic2)) { diff --git a/include/eve/module/core/regular/impl/max.hpp b/include/eve/module/core/regular/impl/max.hpp index 3b4a940bde..642fc0bbeb 100644 --- a/include/eve/module/core/regular/impl/max.hpp +++ b/include/eve/module/core/regular/impl/max.hpp @@ -50,7 +50,7 @@ namespace eve::detail else { return if_else(is_eqz(a0) && is_eqz(a1), bit_and(a0, a1), eve::max(a0, a1)); } } } - else if constexpr(O::contains(numeric2)) // numeric + else if constexpr(O::contains(numeric)) // numeric { if constexpr( integral_value ) return max(a0, a1); else if constexpr( eve::platform::supports_invalids ) diff --git a/include/eve/module/core/regular/impl/maxabs.hpp b/include/eve/module/core/regular/impl/maxabs.hpp index c8777d509a..855ec86c97 100644 --- a/include/eve/module/core/regular/impl/maxabs.hpp +++ b/include/eve/module/core/regular/impl/maxabs.hpp @@ -17,7 +17,7 @@ namespace eve::detail EVE_FORCEINLINE constexpr common_value_t maxabs_(EVE_REQUIRES(cpu_), O const & o, T0 a0, T1 a1, Ts... as) noexcept { - auto abso = abs[o.drop(pedantic2,numeric2)]; + auto abso = abs[o.drop(pedantic2,numeric)]; return eve::max[o.drop(saturated2)](abso(a0), abso(a1), abso(as)...); } } diff --git a/include/eve/module/core/regular/impl/maxmag.hpp b/include/eve/module/core/regular/impl/maxmag.hpp index b65b706d0d..ac67433c47 100644 --- a/include/eve/module/core/regular/impl/maxmag.hpp +++ b/include/eve/module/core/regular/impl/maxmag.hpp @@ -31,7 +31,7 @@ namespace eve::detail auto abso = abs[saturated]; if constexpr(sizeof...(Ts) == 0) // 2 parameters { - if constexpr(O::contains(numeric2)) + if constexpr(O::contains(numeric)) { auto aaa = if_else(is_nan(a), b, a); auto bbb = if_else(is_nan(b), a, b); diff --git a/include/eve/module/core/regular/impl/min.hpp b/include/eve/module/core/regular/impl/min.hpp index f0c63017be..bbac7beb40 100644 --- a/include/eve/module/core/regular/impl/min.hpp +++ b/include/eve/module/core/regular/impl/min.hpp @@ -55,7 +55,7 @@ namespace eve::detail else return if_else(is_eqz(a0) && is_eqz(a1), bit_or(a0, a1), eve::min(a0, a1)); } } - else if constexpr(O::contains(numeric2)) // numeric + else if constexpr(O::contains(numeric)) // numeric { if constexpr( eve::platform::supports_invalids ) { diff --git a/include/eve/module/core/regular/impl/minabs.hpp b/include/eve/module/core/regular/impl/minabs.hpp index 394661b6b4..5f27134967 100644 --- a/include/eve/module/core/regular/impl/minabs.hpp +++ b/include/eve/module/core/regular/impl/minabs.hpp @@ -16,7 +16,7 @@ namespace eve::detail EVE_FORCEINLINE constexpr common_value_t minabs_(EVE_REQUIRES(cpu_), O const & o, T0 a0, T1 a1, Ts... as) noexcept { - auto abso = abs[o.drop(pedantic2,numeric2)]; + auto abso = abs[o.drop(pedantic2,numeric)]; return eve::min[o.drop(saturated2)](abso(a0), abso(a1), abso(as)...); } } diff --git a/include/eve/module/core/regular/impl/minmag.hpp b/include/eve/module/core/regular/impl/minmag.hpp index e7ed544bcf..c9d82bcac0 100644 --- a/include/eve/module/core/regular/impl/minmag.hpp +++ b/include/eve/module/core/regular/impl/minmag.hpp @@ -31,7 +31,7 @@ namespace eve::detail auto abso = abs[saturated]; if constexpr(sizeof...(Ts) == 0) // 2 parameters { - if constexpr(O::contains(numeric2)) + if constexpr(O::contains(numeric)) { auto aaa = if_else(is_nan(a), b, a); auto bbb = if_else(is_nan(b), a, b); diff --git a/include/eve/module/core/regular/impl/simd/arm/neon/ceil.hpp b/include/eve/module/core/regular/impl/simd/arm/neon/ceil.hpp index 3f8ed92ea6..f766c334f4 100644 --- a/include/eve/module/core/regular/impl/simd/arm/neon/ceil.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/neon/ceil.hpp @@ -19,7 +19,7 @@ namespace eve::detail wide const& v) noexcept requires arm_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto cat = categorize>(); if constexpr( current_api >= asimd ) diff --git a/include/eve/module/core/regular/impl/simd/arm/neon/floor.hpp b/include/eve/module/core/regular/impl/simd/arm/neon/floor.hpp index d770b60f2e..b7b26997f9 100644 --- a/include/eve/module/core/regular/impl/simd/arm/neon/floor.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/neon/floor.hpp @@ -19,7 +19,7 @@ namespace eve::detail wide const& v) noexcept requires arm_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto cat = categorize>(); if constexpr( current_api >= asimd ) diff --git a/include/eve/module/core/regular/impl/simd/arm/neon/max.hpp b/include/eve/module/core/regular/impl/simd/arm/neon/max.hpp index b0bb215e39..e4147837d0 100644 --- a/include/eve/module/core/regular/impl/simd/arm/neon/max.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/neon/max.hpp @@ -20,7 +20,7 @@ namespace eve::detail wide const & v1) noexcept requires arm_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) { return max_(EVE_TARGETS(cpu_), opts, v0, v1); } diff --git a/include/eve/module/core/regular/impl/simd/arm/neon/min.hpp b/include/eve/module/core/regular/impl/simd/arm/neon/min.hpp index b2442268bb..0b8137cdba 100644 --- a/include/eve/module/core/regular/impl/simd/arm/neon/min.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/neon/min.hpp @@ -20,7 +20,7 @@ namespace eve::detail wide const &v1) noexcept requires arm_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return min_(EVE_TARGETS(cpu_), opts, v0, v1); else { diff --git a/include/eve/module/core/regular/impl/simd/arm/neon/trunc.hpp b/include/eve/module/core/regular/impl/simd/arm/neon/trunc.hpp index 04f043b444..d0572c2d43 100644 --- a/include/eve/module/core/regular/impl/simd/arm/neon/trunc.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/neon/trunc.hpp @@ -19,7 +19,7 @@ namespace eve::detail wide const& v) noexcept requires arm_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto cat = categorize>(); diff --git a/include/eve/module/core/regular/impl/simd/arm/sve/ceil.hpp b/include/eve/module/core/regular/impl/simd/arm/sve/ceil.hpp index 9874c4bb65..a209e8f86a 100644 --- a/include/eve/module/core/regular/impl/simd/arm/sve/ceil.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/sve/ceil.hpp @@ -32,7 +32,7 @@ namespace eve::detail auto alt = alternative(cond, v, as(v)); if constexpr(C::is_complete && !C::is_inverted) return alt; - else if constexpr(!O::contains(almost2 )) return svrintp_m(alt, cond.mask(as(v)), v); + else if constexpr(!O::contains(almost )) return svrintp_m(alt, cond.mask(as(v)), v); else return ceil.behavior(cpu_{}, opts, v); } } diff --git a/include/eve/module/core/regular/impl/simd/arm/sve/floor.hpp b/include/eve/module/core/regular/impl/simd/arm/sve/floor.hpp index a55979ed96..1e39565b41 100644 --- a/include/eve/module/core/regular/impl/simd/arm/sve/floor.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/sve/floor.hpp @@ -32,7 +32,7 @@ namespace eve::detail auto alt = alternative(cond, v, as(v)); if constexpr(C::is_complete && !C::is_inverted) return alt; - else if constexpr(!O::contains(almost2)) return svrintm_m(alt, cond.mask(as(v)), v); + else if constexpr(!O::contains(almost)) return svrintm_m(alt, cond.mask(as(v)), v); else return floor.behavior(cpu_{}, opts, v); } } diff --git a/include/eve/module/core/regular/impl/simd/arm/sve/max.hpp b/include/eve/module/core/regular/impl/simd/arm/sve/max.hpp index 1e0842364d..b1ea3be432 100644 --- a/include/eve/module/core/regular/impl/simd/arm/sve/max.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/sve/max.hpp @@ -20,7 +20,7 @@ namespace eve::detail max_(EVE_REQUIRES(sve_), O const& opts, wide const& a, wide const& b) noexcept requires sve_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return max.behavior(cpu_{}, opts, a, b); else return svmax_z(sve_true(),a,b); diff --git a/include/eve/module/core/regular/impl/simd/arm/sve/min.hpp b/include/eve/module/core/regular/impl/simd/arm/sve/min.hpp index 6aef580090..25b56b8705 100644 --- a/include/eve/module/core/regular/impl/simd/arm/sve/min.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/sve/min.hpp @@ -20,7 +20,7 @@ namespace eve::detail min_(EVE_REQUIRES(sve_), O const& opts, wide const& a, wide const& b) noexcept requires sve_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return min.behavior(cpu_{}, opts, a, b); else return svmin_z(sve_true(),a,b); diff --git a/include/eve/module/core/regular/impl/simd/arm/sve/trunc.hpp b/include/eve/module/core/regular/impl/simd/arm/sve/trunc.hpp index 6311c5d612..88f898c3c2 100644 --- a/include/eve/module/core/regular/impl/simd/arm/sve/trunc.hpp +++ b/include/eve/module/core/regular/impl/simd/arm/sve/trunc.hpp @@ -33,7 +33,7 @@ namespace eve::detail auto alt = alternative(cond, v, as(v)); if constexpr(C::is_complete && !C::is_inverted) return alt; - else if constexpr(!O::contains(almost2 )) return svrintz_m(alt, cond.mask(as(v)), v); + else if constexpr(!O::contains(almost )) return svrintz_m(alt, cond.mask(as(v)), v); else return trunc.behavior(cpu_{}, opts, v); } } diff --git a/include/eve/module/core/regular/impl/simd/ppc/ceil.hpp b/include/eve/module/core/regular/impl/simd/ppc/ceil.hpp index 689f3f3875..dd9aa9e076 100644 --- a/include/eve/module/core/regular/impl/simd/ppc/ceil.hpp +++ b/include/eve/module/core/regular/impl/simd/ppc/ceil.hpp @@ -18,7 +18,7 @@ namespace eve::detail wide const& v0) noexcept requires ppc_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { if constexpr( floating_value ) return vec_ceil(v0.storage()); diff --git a/include/eve/module/core/regular/impl/simd/ppc/floor.hpp b/include/eve/module/core/regular/impl/simd/ppc/floor.hpp index 30b08f78c1..40943e7b51 100644 --- a/include/eve/module/core/regular/impl/simd/ppc/floor.hpp +++ b/include/eve/module/core/regular/impl/simd/ppc/floor.hpp @@ -18,7 +18,7 @@ namespace eve::detail wide const& v0) noexcept requires ppc_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { if constexpr( floating_value ) return vec_floor(v0.storage()); diff --git a/include/eve/module/core/regular/impl/simd/ppc/max.hpp b/include/eve/module/core/regular/impl/simd/ppc/max.hpp index 84021a8029..c7de5b237a 100644 --- a/include/eve/module/core/regular/impl/simd/ppc/max.hpp +++ b/include/eve/module/core/regular/impl/simd/ppc/max.hpp @@ -20,7 +20,7 @@ EVE_FORCEINLINE wide max_(EVE_REQUIRES(vmx_), wide const &v0, wide const &v1) noexcept requires ppc_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return max_(EVE_TARGETS(cpu_), opts, v0, v1); else return vec_max(v0.storage(), v1.storage()); diff --git a/include/eve/module/core/regular/impl/simd/ppc/min.hpp b/include/eve/module/core/regular/impl/simd/ppc/min.hpp index 990a966cdb..701a108d70 100644 --- a/include/eve/module/core/regular/impl/simd/ppc/min.hpp +++ b/include/eve/module/core/regular/impl/simd/ppc/min.hpp @@ -20,7 +20,7 @@ EVE_FORCEINLINE wide min_(EVE_REQUIRES(vmx_), wide const &v0, wide const &v1) noexcept requires ppc_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return min_(EVE_TARGETS(cpu_), opts, v0, v1); else return vec_min(v0.storage(), v1.storage()); diff --git a/include/eve/module/core/regular/impl/simd/ppc/trunc.hpp b/include/eve/module/core/regular/impl/simd/ppc/trunc.hpp index e896ae1f2f..b7860ee061 100644 --- a/include/eve/module/core/regular/impl/simd/ppc/trunc.hpp +++ b/include/eve/module/core/regular/impl/simd/ppc/trunc.hpp @@ -18,7 +18,7 @@ namespace eve::detail wide const& v0) noexcept requires ppc_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { if constexpr( integral_value ) return v0; diff --git a/include/eve/module/core/regular/impl/simd/x86/absmax.hpp b/include/eve/module/core/regular/impl/simd/x86/absmax.hpp index 95f7967fad..d9997aeadb 100644 --- a/include/eve/module/core/regular/impl/simd/x86/absmax.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/absmax.hpp @@ -21,7 +21,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) { return absmax.behavior(cpu_{}, opts, v0, v1); } @@ -51,7 +51,7 @@ namespace eve::detail wide const &w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return absmax.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/absmin.hpp b/include/eve/module/core/regular/impl/simd/x86/absmin.hpp index 20c5a7d5e1..f62e3033de 100644 --- a/include/eve/module/core/regular/impl/simd/x86/absmin.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/absmin.hpp @@ -21,7 +21,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return absmin.behavior(cpu_{}, opts, v0, v1); else { @@ -49,7 +49,7 @@ namespace eve::detail wide const &w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return absmin.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/ceil.hpp b/include/eve/module/core/regular/impl/simd/x86/ceil.hpp index ef05471cbc..fc5df11278 100644 --- a/include/eve/module/core/regular/impl/simd/x86/ceil.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/ceil.hpp @@ -25,7 +25,7 @@ EVE_FORCEINLINE wide ceil_(EVE_REQUIRES(sse4_1_), wide a0) noexcept requires x86_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto c = categorize>(); @@ -49,7 +49,7 @@ requires x86_abi> wide const& v) noexcept requires x86_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto c = categorize>(); auto src = alternative(cx, v, as> {}); diff --git a/include/eve/module/core/regular/impl/simd/x86/floor.hpp b/include/eve/module/core/regular/impl/simd/x86/floor.hpp index acba27c020..5204a50121 100644 --- a/include/eve/module/core/regular/impl/simd/x86/floor.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/floor.hpp @@ -26,7 +26,7 @@ namespace eve::detail wide const& a0) noexcept requires x86_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto c = categorize>(); @@ -50,7 +50,7 @@ namespace eve::detail wide const& v) noexcept requires x86_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto c = categorize>(); auto src = alternative(cx, v, as> {}); diff --git a/include/eve/module/core/regular/impl/simd/x86/is_equal.hpp b/include/eve/module/core/regular/impl/simd/x86/is_equal.hpp index 029dcb25b2..944b7177b8 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_equal.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_equal.hpp @@ -30,7 +30,7 @@ requires x86_abi> { constexpr auto c = categorize>(); - if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(almost2)) + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(almost)) { return is_equal.behavior(cpu_{}, opts, v, w); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_greater.hpp b/include/eve/module/core/regular/impl/simd/x86/is_greater.hpp index 71a9136a98..376c35f583 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_greater.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_greater.hpp @@ -31,7 +31,7 @@ EVE_FORCEINLINE auto is_greater_(EVE_SUPPORTS(avx512_), { constexpr auto c = categorize>(); - if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely2)) + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely)) { return is_greater.behavior(cpu_{}, opts, v, w); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_greater_equal.hpp b/include/eve/module/core/regular/impl/simd/x86/is_greater_equal.hpp index cac895a258..ffadc18ac6 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_greater_equal.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_greater_equal.hpp @@ -32,7 +32,7 @@ namespace eve::detail { constexpr auto c = categorize>(); - if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(almost2) ) + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(almost) ) { return is_greater.behavior(cpu_{}, opts, v, w); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_less.hpp b/include/eve/module/core/regular/impl/simd/x86/is_less.hpp index 59964b010d..51d1e34a20 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_less.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_less.hpp @@ -30,7 +30,7 @@ EVE_FORCEINLINE as_logical_t> is_less_(EVE_SUPPORTS(avx512_), { constexpr auto c = categorize>(); - if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely2)) + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely)) { return is_less.behavior(cpu_{}, opts, v, w); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_not_equal.hpp b/include/eve/module/core/regular/impl/simd/x86/is_not_equal.hpp index c8c98ee876..bb880340a8 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_not_equal.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_not_equal.hpp @@ -30,7 +30,7 @@ EVE_FORCEINLINE as_logical_t> { constexpr auto c = categorize>(); - if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely2)) + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely)) { return is_not_equal.behavior(cpu_{}, opts, v, w); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_not_greater.hpp b/include/eve/module/core/regular/impl/simd/x86/is_not_greater.hpp index bbfe6d45dc..522f7424f6 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_not_greater.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_not_greater.hpp @@ -29,8 +29,8 @@ namespace eve::detail using l_t = logical>; constexpr auto c = categorize>(); constexpr auto m = _CMP_NGT_UQ; - - if constexpr( O::contains(definitely2)) + + if constexpr( O::contains(definitely)) { return is_not_greater.behavior(cpu_{}, opts, a, b); } @@ -39,7 +39,7 @@ namespace eve::detail if constexpr( current_api >= eve::avx512 ) { using s_t = typename l_t::storage_type; - + if constexpr( c == category::float64x8 ) return s_t {_mm512_cmp_pd_mask(a, b, m)}; else if constexpr( c == category::float64x4 ) return s_t {_mm256_cmp_pd_mask(a, b, m)}; else if constexpr( c == category::float64x2 ) return s_t {_mm_cmp_pd_mask(a, b, m)}; @@ -66,8 +66,8 @@ namespace eve::detail -> decltype(is_not_greater(v, w)) requires x86_abi> { constexpr auto c = categorize>(); - - if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely2)) + + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical || O::contains(definitely)) { return is_not_greater.behavior(cpu_{}, opts, v, w); } @@ -75,7 +75,7 @@ namespace eve::detail { auto m = expand_mask(cx, as> {}).storage().value; constexpr auto f = to_integer(cmp_flt::ngt_uq); - + if constexpr( c == category::float32x16 ) return mask16 {_mm512_mask_cmp_ps_mask(m, v, w, f)}; else if constexpr( c == category::float64x8 ) return mask8 {_mm512_mask_cmp_pd_mask(m, v, w, f)}; diff --git a/include/eve/module/core/regular/impl/simd/x86/is_not_greater_equal.hpp b/include/eve/module/core/regular/impl/simd/x86/is_not_greater_equal.hpp index cb162d6ee6..1e17d2ee4b 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_not_greater_equal.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_not_greater_equal.hpp @@ -26,7 +26,7 @@ namespace eve::detail constexpr auto c = categorize>(); constexpr auto m = _CMP_NGE_UQ; - if constexpr( O::contains(almost2)) + if constexpr( O::contains(almost)) { return is_not_less_equal.behavior(cpu_{}, o, a, b); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_not_less.hpp b/include/eve/module/core/regular/impl/simd/x86/is_not_less.hpp index 549480dc8e..b09d88443a 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_not_less.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_not_less.hpp @@ -29,7 +29,7 @@ namespace eve::detail constexpr auto c = categorize>(); constexpr auto m = _CMP_NLT_UQ; - if constexpr( O::contains(definitely2)) + if constexpr( O::contains(definitely)) { return is_not_less.behavior(cpu_{}, o, a, b); } @@ -64,7 +64,7 @@ namespace eve::detail wide const& w) noexcept -> decltype(is_not_less(v, w)) requires x86_abi> { - if constexpr( O::contains(definitely2)) + if constexpr( O::contains(definitely)) { return is_not_less.behavior(cpu_{}, o, v, w); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_not_less_equal.hpp b/include/eve/module/core/regular/impl/simd/x86/is_not_less_equal.hpp index 372ae3ef8a..2667ee3959 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_not_less_equal.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_not_less_equal.hpp @@ -28,7 +28,7 @@ namespace eve::detail constexpr auto c = categorize>(); constexpr auto m = _CMP_NLE_UQ; - if constexpr( O::contains(almost2)) + if constexpr( O::contains(almost)) { return is_not_less_equal.behavior(cpu_{}, o, a, b); } @@ -66,7 +66,7 @@ namespace eve::detail { constexpr auto c = categorize>(); - if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical | O::contains(definitely2)) + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical | O::contains(definitely)) { return is_not_less_equal.behavior(cpu_{}, o, v, w); } diff --git a/include/eve/module/core/regular/impl/simd/x86/is_ordered.hpp b/include/eve/module/core/regular/impl/simd/x86/is_ordered.hpp index dc2fc01e61..dd5381f98a 100644 --- a/include/eve/module/core/regular/impl/simd/x86/is_ordered.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/is_ordered.hpp @@ -24,12 +24,12 @@ namespace eve::detail using l_t = logical>; constexpr auto c = categorize>(); constexpr auto m = _CMP_ORD_Q; - + if constexpr( match(c, category::integer_) ) return true_(eve::as()); else if constexpr( current_api >= eve::avx512 ) { using s_t = typename l_t::storage_type; - + if constexpr( c == category::float64x8 ) return s_t {_mm512_cmp_pd_mask(a, b, m)}; else if constexpr( c == category::float64x4 ) return s_t {_mm256_cmp_pd_mask(a, b, m)}; else if constexpr( c == category::float64x2 ) return s_t {_mm_cmp_pd_mask(a, b, m)}; @@ -42,7 +42,7 @@ namespace eve::detail else if constexpr( c == category::float32x8 ) return l_t(_mm256_cmp_ps(a, b, m)); else if constexpr( c == category::float32x4 ) return l_t(_mm_cmpord_ps(a, b)); } - + // ----------------------------------------------------------------------------------------------- // masked implementation template @@ -55,16 +55,16 @@ namespace eve::detail requires x86_abi> { constexpr auto c = categorize>(); - + if constexpr( C::has_alternative || C::is_complete || abi_t::is_wide_logical ) { - return is_not_greater.behavior(cpu_{}, o, v, w); + return is_ordered.behavior(cpu_{}, o, v, w); } else { auto m = expand_mask(cx, as> {}).storage().value; constexpr auto f = to_integer(cmp_flt::ord_q); - + if constexpr( c == category::float32x16 ) return mask16 {_mm512_mask_cmp_ps_mask(m, v, w, f)}; else if constexpr( c == category::float64x8 ) return mask8 {_mm512_mask_cmp_pd_mask(m, v, w, f)}; diff --git a/include/eve/module/core/regular/impl/simd/x86/max.hpp b/include/eve/module/core/regular/impl/simd/x86/max.hpp index f5eb34c9d3..d29f4c3c14 100644 --- a/include/eve/module/core/regular/impl/simd/x86/max.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/max.hpp @@ -29,7 +29,7 @@ namespace eve::detail max_(EVE_REQUIRES(sse2_), O const& opts, wide v0, wide v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return max.behavior(cpu_{}, opts, v0, v1); else { @@ -115,7 +115,7 @@ namespace eve::detail max_(EVE_REQUIRES(avx512_), C const& cx, O const& opts, wide const& v, wide const& w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return max.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/maxabs.hpp b/include/eve/module/core/regular/impl/simd/x86/maxabs.hpp index d68e27a968..78c4a8c847 100644 --- a/include/eve/module/core/regular/impl/simd/x86/maxabs.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/maxabs.hpp @@ -21,7 +21,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return maxabs.behavior(cpu_{}, opts, v0, v1); else { @@ -49,7 +49,7 @@ namespace eve::detail wide const &w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return maxabs.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/maxmag.hpp b/include/eve/module/core/regular/impl/simd/x86/maxmag.hpp index f86d9e3156..cd04f057d1 100644 --- a/include/eve/module/core/regular/impl/simd/x86/maxmag.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/maxmag.hpp @@ -12,7 +12,7 @@ namespace eve::detail wide const & v0, wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return maxmag.behavior(cpu_{}, opts, v0, v1); else { @@ -40,7 +40,7 @@ namespace eve::detail wide const &w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return maxmag.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/min.hpp b/include/eve/module/core/regular/impl/simd/x86/min.hpp index 7b7b4f084c..7376967ca4 100644 --- a/include/eve/module/core/regular/impl/simd/x86/min.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/min.hpp @@ -29,7 +29,7 @@ namespace eve::detail min_(EVE_REQUIRES(sse2_), O const& opts, wide v0, wide v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return min.behavior(cpu_{}, opts, v0, v1); else { @@ -116,7 +116,7 @@ namespace eve::detail -> wide requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return min.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/minabs.hpp b/include/eve/module/core/regular/impl/simd/x86/minabs.hpp index c7c4fee6b4..a312b1385e 100644 --- a/include/eve/module/core/regular/impl/simd/x86/minabs.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/minabs.hpp @@ -21,7 +21,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return minabs.behavior(cpu_{}, opts, v0, v1); else { @@ -48,7 +48,7 @@ namespace eve::detail wide const & v, wide const & w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return minabs.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/minmag.hpp b/include/eve/module/core/regular/impl/simd/x86/minmag.hpp index 4c6362fadd..cd000fd0e4 100644 --- a/include/eve/module/core/regular/impl/simd/x86/minmag.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/minmag.hpp @@ -20,7 +20,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return minmag.behavior(cpu_{}, opts, v0, v1); else { @@ -49,7 +49,7 @@ namespace eve::detail wide const &w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return minmag.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/negabsmax.hpp b/include/eve/module/core/regular/impl/simd/x86/negabsmax.hpp index 2058938dd6..6a42396672 100644 --- a/include/eve/module/core/regular/impl/simd/x86/negabsmax.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/negabsmax.hpp @@ -21,7 +21,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return negabsmax.behavior(cpu_{}, opts, v0, v1); else { @@ -49,7 +49,7 @@ namespace eve::detail wide const & v, wide const & w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return negabsmax.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/negabsmin.hpp b/include/eve/module/core/regular/impl/simd/x86/negabsmin.hpp index 62d5e377ac..28993cb468 100644 --- a/include/eve/module/core/regular/impl/simd/x86/negabsmin.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/negabsmin.hpp @@ -21,7 +21,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return negabsmin.behavior(cpu_{}, opts, v0, v1); else { @@ -50,7 +50,7 @@ namespace eve::detail wide const & w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return negabsmin.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/negmaxabs.hpp b/include/eve/module/core/regular/impl/simd/x86/negmaxabs.hpp index 08aa8e7a87..08203f7e32 100644 --- a/include/eve/module/core/regular/impl/simd/x86/negmaxabs.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/negmaxabs.hpp @@ -21,7 +21,7 @@ namespace eve::detail wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return negmaxabs.behavior(cpu_{}, opts, v0, v1); else { @@ -48,7 +48,7 @@ namespace eve::detail wide const & v, wide const & w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2) || O::contains(saturated2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2) || O::contains(saturated2)) return negmaxabs.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/negminabs.hpp b/include/eve/module/core/regular/impl/simd/x86/negminabs.hpp index bba022ad28..b02d193471 100644 --- a/include/eve/module/core/regular/impl/simd/x86/negminabs.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/negminabs.hpp @@ -20,7 +20,7 @@ namespace eve::detail wide const & v0, wide const & v1) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return negminabs.behavior(cpu_{}, opts, v0, v1); else { @@ -47,7 +47,7 @@ namespace eve::detail wide const & v, wide const &w) noexcept requires x86_abi> { - if constexpr(O::contains(numeric2) || O::contains(pedantic2)) + if constexpr(O::contains(numeric) || O::contains(pedantic2)) return negminabs.behavior(cpu_{}, opts, v, w); else { diff --git a/include/eve/module/core/regular/impl/simd/x86/trunc.hpp b/include/eve/module/core/regular/impl/simd/x86/trunc.hpp index a412ebe7b7..04e819431e 100644 --- a/include/eve/module/core/regular/impl/simd/x86/trunc.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/trunc.hpp @@ -23,7 +23,7 @@ namespace eve::detail wide a0) noexcept requires x86_abi> { - if constexpr(!O::contains(almost2)) + if constexpr(!O::contains(almost)) { constexpr auto c = categorize>(); @@ -53,7 +53,7 @@ namespace eve::detail if constexpr( C::is_complete ) return src; - else if constexpr(!O::contains(almost2)) + else if constexpr(!O::contains(almost)) { if constexpr( c == category::float32x16 ) return _mm512_mask_roundscale_ps(src, m, v, _MM_FROUND_TO_ZERO); diff --git a/include/eve/module/core/regular/impl/trunc.hpp b/include/eve/module/core/regular/impl/trunc.hpp index 851bfb5a0d..6a5f334684 100644 --- a/include/eve/module/core/regular/impl/trunc.hpp +++ b/include/eve/module/core/regular/impl/trunc.hpp @@ -36,9 +36,9 @@ namespace eve::detail using i_t = as_integer_t; return convert(convert(a0, as()), as()); } - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { - auto tol = o[almost2].value(a0); + auto tol = o[almost].value(a0); if constexpr(integral_value) return copysign(trunc(next(eve::abs(a0))), a0); else diff --git a/include/eve/module/core/regular/impl/ulpdist.hpp b/include/eve/module/core/regular/impl/ulpdist.hpp index 6e3841eba4..bb3287cb45 100644 --- a/include/eve/module/core/regular/impl/ulpdist.hpp +++ b/include/eve/module/core/regular/impl/ulpdist.hpp @@ -14,9 +14,8 @@ #include #include #include -#include #include -#include +#include #include #include #include diff --git a/include/eve/module/core/regular/is_equal.hpp b/include/eve/module/core/regular/is_equal.hpp index 16661a0440..12e25d783c 100644 --- a/include/eve/module/core/regular/is_equal.hpp +++ b/include/eve/module/core/regular/is_equal.hpp @@ -121,19 +121,19 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_equal_(EVE_REQUIRES(cpu_),O const & o, T const& a, U const& b) noexcept { - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { using w_t = common_logical_t; using r_t = common_value_t; - auto tol = o[almost2].value(r_t{}); + auto tol = o[almost].value(r_t{}); if constexpr(integral_value) return if_else(nb_values(a, b) <= tol, true_(as()), false_(as())) ; else return dist[pedantic](a, b) <= tol * max(eve::abs(a), eve::abs(b)); } - else if constexpr(O::contains(numeric2)) + else if constexpr(O::contains(numeric)) { using r_t = common_value_t; auto tmp = is_equal(a, b); diff --git a/include/eve/module/core/regular/is_greater.hpp b/include/eve/module/core/regular/is_greater.hpp index d6f002cb30..6a5a5ad282 100644 --- a/include/eve/module/core/regular/is_greater.hpp +++ b/include/eve/module/core/regular/is_greater.hpp @@ -111,13 +111,13 @@ namespace eve::detail EVE_FORCEINLINE constexpr common_logical_t is_greater_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(definitely2)) + if constexpr(O::contains(definitely)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[definitely2].value(w_t{}); + auto tol = o[definitely].value(w_t{}); if constexpr(integral_value) return a > eve::next(b, tol); else return a > fam(b, tol, eve::max(eve::abs(a), eve::abs(b))); } diff --git a/include/eve/module/core/regular/is_greater_equal.hpp b/include/eve/module/core/regular/is_greater_equal.hpp index 3761a7ba85..11275f99d5 100644 --- a/include/eve/module/core/regular/is_greater_equal.hpp +++ b/include/eve/module/core/regular/is_greater_equal.hpp @@ -99,13 +99,13 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_greater_equal_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[almost2].value(w_t{}); + auto tol = o[almost].value(w_t{}); if constexpr(integral_value) return a >= eve::prev(b, tol); else return a >= fam(b, -tol, eve::max(eve::abs(a), eve::abs(b))); } diff --git a/include/eve/module/core/regular/is_less.hpp b/include/eve/module/core/regular/is_less.hpp index 2bb76cb5b4..0591890ea0 100644 --- a/include/eve/module/core/regular/is_less.hpp +++ b/include/eve/module/core/regular/is_less.hpp @@ -108,13 +108,13 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_less_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(definitely2)) + if constexpr(O::contains(definitely)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[definitely2].value(w_t{}); + auto tol = o[definitely].value(w_t{}); if constexpr(integral_value) return a < eve::prev(b, tol); else return a < fam(b, -tol, eve::max(eve::abs(a), eve::abs(b))); } diff --git a/include/eve/module/core/regular/is_less_equal.hpp b/include/eve/module/core/regular/is_less_equal.hpp index 05cf81bfa3..d1ded30348 100644 --- a/include/eve/module/core/regular/is_less_equal.hpp +++ b/include/eve/module/core/regular/is_less_equal.hpp @@ -99,13 +99,13 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_less_equal_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[almost2].value(w_t{}); + auto tol = o[almost].value(w_t{}); if constexpr(integral_value) return a <= eve::next(b, tol); else return a <= fam(b, tol, eve::max(eve::abs(a), eve::abs(b))); } diff --git a/include/eve/module/core/regular/is_ngez.hpp b/include/eve/module/core/regular/is_ngez.hpp index 2103b1c819..b0860fced7 100644 --- a/include/eve/module/core/regular/is_ngez.hpp +++ b/include/eve/module/core/regular/is_ngez.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #include namespace eve diff --git a/include/eve/module/core/regular/is_ngtz.hpp b/include/eve/module/core/regular/is_ngtz.hpp index fd2844c0e5..7588f6159a 100644 --- a/include/eve/module/core/regular/is_ngtz.hpp +++ b/include/eve/module/core/regular/is_ngtz.hpp @@ -9,7 +9,8 @@ #include #include #include -#include +#include +#include #include namespace eve diff --git a/include/eve/module/core/regular/is_nltz.hpp b/include/eve/module/core/regular/is_nltz.hpp index adb6142b6d..98b25490f6 100644 --- a/include/eve/module/core/regular/is_nltz.hpp +++ b/include/eve/module/core/regular/is_nltz.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #include namespace eve diff --git a/include/eve/module/core/regular/is_not_equal.hpp b/include/eve/module/core/regular/is_not_equal.hpp index a0cbdb731e..191f463f8c 100644 --- a/include/eve/module/core/regular/is_not_equal.hpp +++ b/include/eve/module/core/regular/is_not_equal.hpp @@ -120,19 +120,19 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_not_equal_(EVE_REQUIRES(cpu_),O const & o, T const& a, U const& b) noexcept { - if constexpr(O::contains(definitely2)) + if constexpr(O::contains(definitely)) { using w_t = common_logical_t; using r_t = common_value_t; - auto tol = o[definitely2].value(r_t{}); + auto tol = o[definitely].value(r_t{}); if constexpr(integral_value) return if_else(nb_values(a, b) > tol, true_(as()), false_(as())) ; else return dist[pedantic](a, b) > tol * max(eve::abs(a), eve::abs(b)); } - else if constexpr(O::contains(numeric2)) + else if constexpr(O::contains(numeric)) { using r_t = common_value_t; auto tmp = is_not_equal(a, b); diff --git a/include/eve/module/core/regular/is_not_greater.hpp b/include/eve/module/core/regular/is_not_greater.hpp index 9014c5a9cd..ffa5d01f95 100644 --- a/include/eve/module/core/regular/is_not_greater.hpp +++ b/include/eve/module/core/regular/is_not_greater.hpp @@ -80,8 +80,8 @@ namespace eve //! //! * `almost` //! -//! The expression `almost(is_not_greater)(x, y, t)` where `x` and `y` must be -//! floating point values, evals to true if and only if and only if `x` is not almost greater +//! The expression `is_not_greater[almost](x, y, t)` where `x` and `y` must be +//! floating point values, evaluates to true if and only if and only if `x` is not almost greater //! than `y`. This means that: //! //! * if `t` is a floating_value then \f$(x < y + t \max(|x|, |y|))\f$ @@ -107,13 +107,13 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_not_greater_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[almost2].value(w_t{}); + auto tol = o[almost].value(w_t{}); if constexpr(integral_value) return a <= eve::next(b, tol); else return is_not_greater(a, fam(b, tol, eve::max(eve::abs(a), eve::abs(b)))); } diff --git a/include/eve/module/core/regular/is_not_greater_equal.hpp b/include/eve/module/core/regular/is_not_greater_equal.hpp index c3d4b9c239..437f9621b9 100644 --- a/include/eve/module/core/regular/is_not_greater_equal.hpp +++ b/include/eve/module/core/regular/is_not_greater_equal.hpp @@ -106,13 +106,13 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_not_greater_equal_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(definitely2)) + if constexpr(O::contains(definitely)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[definitely2].value(w_t{}); + auto tol = o[definitely].value(w_t{}); if constexpr(integral_value) return a < eve::prev(b, tol); else return a < fam(b, -tol, eve::max(eve::abs(a), eve::abs(b))); } diff --git a/include/eve/module/core/regular/is_not_less.hpp b/include/eve/module/core/regular/is_not_less.hpp index 5ae7f0fc98..692ad321dd 100644 --- a/include/eve/module/core/regular/is_not_less.hpp +++ b/include/eve/module/core/regular/is_not_less.hpp @@ -76,8 +76,8 @@ namespace eve //! //! * `almost` //! -//! The expression `almost(is_not_less)(x, y, t)` where `x` and `y` must be -//! floating point values, evals to true if and only if and only if `x` is not almost less than +//! The expression `is_not_less[almost](x, y, t)` where `x` and `y` must be +//! floating point values, evaluates to true if and only if and only if `x` is not almost less than //! `y`. This means that the pair `x, y` is unordered or: //! //! * if `t` is a floating_value then \f$(x \ge y - t \max(|x|, |y|))\f$ @@ -103,13 +103,13 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_not_less_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(almost2)) + if constexpr(O::contains(almost)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[almost2].value(w_t{}); + auto tol = o[almost].value(w_t{}); if constexpr(integral_value) return a >= eve::prev(b, tol); else return a >= fam(b, -tol, eve::max(eve::abs(a), eve::abs(b))); } diff --git a/include/eve/module/core/regular/is_not_less_equal.hpp b/include/eve/module/core/regular/is_not_less_equal.hpp index d981f62084..ad481505b5 100644 --- a/include/eve/module/core/regular/is_not_less_equal.hpp +++ b/include/eve/module/core/regular/is_not_less_equal.hpp @@ -103,13 +103,13 @@ namespace eve EVE_FORCEINLINE constexpr common_logical_t is_not_less_equal_(EVE_REQUIRES(cpu_), O const & o, T const& aa, U const& bb) noexcept { - if constexpr(O::contains(definitely2)) + if constexpr(O::contains(definitely)) { using w_t = common_value_t; auto a = w_t(aa); auto b = w_t(bb); - auto tol = o[definitely2].value(w_t{}); + auto tol = o[definitely].value(w_t{}); if constexpr(integral_value) return is_not_less_equal(a, eve::next(b, tol)); else return is_not_less_equal(a, fam(b, tol, eve::max(eve::abs(a), eve::abs(b)))); } diff --git a/include/eve/module/core/regular/next.hpp b/include/eve/module/core/regular/next.hpp index 1e88afc5bb..c4a387d4b9 100644 --- a/include/eve/module/core/regular/next.hpp +++ b/include/eve/module/core/regular/next.hpp @@ -10,8 +10,7 @@ #include #include #include -#include -#include +#include #include #include #include diff --git a/include/eve/module/core/saturated/core.hpp b/include/eve/module/core/saturated/core.hpp index 518fda6ded..a6fc517f24 100644 --- a/include/eve/module/core/saturated/core.hpp +++ b/include/eve/module/core/saturated/core.hpp @@ -13,6 +13,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/include/eve/module/polynomial/regular/impl/laguerre.hpp b/include/eve/module/polynomial/regular/impl/laguerre.hpp index 7584b726a4..a814949a9d 100644 --- a/include/eve/module/polynomial/regular/impl/laguerre.hpp +++ b/include/eve/module/polynomial/regular/impl/laguerre.hpp @@ -80,7 +80,7 @@ namespace eve::detail template constexpr as_wide_as_t> laguerre_(EVE_REQUIRES(cpu_), O const&, N nn, M mm, T x) - requires(O::contains(associated2)) + requires(O::contains(associated)) { if constexpr(integral_scalar_value && integral_scalar_value) { diff --git a/include/eve/module/polynomial/regular/impl/legendre.hpp b/include/eve/module/polynomial/regular/impl/legendre.hpp index f3a29efc72..53e56f8c22 100644 --- a/include/eve/module/polynomial/regular/impl/legendre.hpp +++ b/include/eve/module/polynomial/regular/impl/legendre.hpp @@ -18,7 +18,7 @@ namespace eve::detail template constexpr EVE_FORCEINLINE as_wide_as_t legendre_(EVE_REQUIRES(cpu_), O const&, L l, T x, T pl, T plm1) - requires(O::contains(successor2)) + requires(O::contains(successor)) { EVE_ASSERT(eve::all(l >= 0 && is_flint(l)), "successor(legendre)(l, x, pl, plm1): l is negative or not integral"); @@ -35,17 +35,17 @@ namespace eve::detail using r_t = as_wide_as_t; if constexpr(scalar_value) { - if constexpr(O::contains(p_kind2) || O::contains(q_kind2)) + if constexpr(O::contains(p_kind) || O::contains(q_kind)) { auto out_of_range = eve::abs(x) > one(as(x)); if( l < 0 ) l = -l - 1; // reflection formula auto p0 = one(as(x)); auto p1 = x; - if constexpr(O::contains(p_kind2)) + if constexpr(O::contains(p_kind)) { if( is_eqz(l) ) return if_else(out_of_range, allbits, p0); } - else if constexpr(O::contains(q_kind2)) + else if constexpr(O::contains(q_kind)) { p0 = eve::atanh(x); if( is_eqz(l) ) return if_else(out_of_range, allbits, p0); @@ -74,7 +74,7 @@ namespace eve::detail { if constexpr( has_native_abi_v ) { - if constexpr(O::contains(p_kind2) || O::contains(q_kind2)) + if constexpr(O::contains(p_kind) || O::contains(q_kind)) { auto xx = r_t(x); using elt_t = element_type_t; @@ -84,11 +84,11 @@ namespace eve::detail auto p1 = xx; auto out_of_range = eve::abs(xx) > one(as(xx)); - if constexpr(O::contains(p_kind2)) + if constexpr(O::contains(p_kind)) { if( eve::all(iseqzn) ) return if_else(out_of_range, allbits, p0); } - else if constexpr(O::contains(q_kind2)) + else if constexpr(O::contains(q_kind)) { p0 = atanh(xx); p00 = p0; @@ -106,9 +106,9 @@ namespace eve::detail c = inc(c); test = c < n; } - if constexpr(O::contains(p_kind2)) + if constexpr(O::contains(p_kind)) p1 = if_else(iseqzn, one, p1); - else if constexpr(O::contains(q_kind2) ) + else if constexpr(O::contains(q_kind) ) p1 = if_else(iseqzn, p00, p1); return if_else(out_of_range, allbits, p1); } @@ -116,7 +116,7 @@ namespace eve::detail } else { - if constexpr(O::contains(p_kind2)) + if constexpr(O::contains(p_kind)) return apply_over(legendre[p_kind], l, r_t(x)); else return apply_over(legendre[q_kind], l, r_t(x)); @@ -132,7 +132,7 @@ namespace eve::detail template EVE_FORCEINLINE constexpr T legendre_(EVE_REQUIRES(cpu_), O const&, L l, M m, T x, T pl, T plm1) - requires(O::contains(successor2)&& O::contains(associated2)) + requires(O::contains(successor)&& O::contains(associated)) { auto lp1 = inc(l); return fms((lp1 + l) * x, pl, (l + m) * plm1) / (lp1 - m); @@ -141,11 +141,11 @@ namespace eve::detail template constexpr as_wide_as_t> legendre_(EVE_REQUIRES(cpu_), O const&, L l, M m, T x) - requires(O::contains(associated2)||O::contains(condon_shortley2)||O::contains(spherical2)) + requires(O::contains(associated)||O::contains(condon_shortley)||O::contains(spherical)) { EVE_ASSERT(eve::all(l >= 0 && is_flint(l)), "legendre(l, m, x): l is negative or not integral"); EVE_ASSERT(eve::all(m >= 0 && is_flint(l)), "legendre(l, m, x): m is negative or not integral"); - if constexpr(O::contains(spherical2)) + if constexpr(O::contains(spherical)) { auto ll = convert(l, as_element(x)); auto mm = convert(m, as_element(x)); @@ -156,9 +156,9 @@ namespace eve::detail * exp(log_abs_gamma(ll - mm + 1) - log_abs_gamma(ll + mm + 1))); return if_else(is_odd(m), -p0, p0); } - else if constexpr(O::contains(condon_shortley2)) + else if constexpr(O::contains(condon_shortley)) { - auto p0 = legendre[associated2](l, m, x); + auto p0 = legendre[associated](l, m, x); return if_else(is_odd(m), -p0, p0); } else if constexpr(scalar_value && scalar_value) diff --git a/include/eve/module/polynomial/regular/impl/tchebytchev.hpp b/include/eve/module/polynomial/regular/impl/tchebytchev.hpp index 69f4f99ad9..616edea4b0 100644 --- a/include/eve/module/polynomial/regular/impl/tchebytchev.hpp +++ b/include/eve/module/polynomial/regular/impl/tchebytchev.hpp @@ -15,7 +15,7 @@ namespace eve::detail { // Recurrence relation for Tchebytchev polynomials: template - requires(O::contains(successor2)) + requires(O::contains(successor)) constexpr EVE_FORCEINLINE T tchebytchev_(EVE_REQUIRES(cpu_), O const& , T x, T tn, T tnm1) { @@ -30,7 +30,7 @@ namespace eve::detail EVE_ASSERT(eve::all(is_gez(n)), "n not positive"); EVE_ASSERT(eve::all(is_flint(n)), "n not flint"); using r_t = as_wide_as_t; - if constexpr(O::contains(kind_12)) + if constexpr(O::contains(kind_1)) { if constexpr(scalar_value) { @@ -108,7 +108,7 @@ namespace eve::detail else return apply_over(tchebytchev, n, x); } } - else if constexpr(O::contains(kind_22)) + else if constexpr(O::contains(kind_2)) { auto nn = inc(convert(n, as_element(x))); auto z = eve::abs(x); @@ -131,7 +131,7 @@ namespace eve::detail } else { - return tchebytchev[kind_12](n, x); + return tchebytchev[kind_1](n, x); } } } diff --git a/include/eve/module/polynomial/regular/legendre.hpp b/include/eve/module/polynomial/regular/legendre.hpp index dee5d9087b..d8f7237f71 100644 --- a/include/eve/module/polynomial/regular/legendre.hpp +++ b/include/eve/module/polynomial/regular/legendre.hpp @@ -93,9 +93,9 @@ namespace eve //! //! * eve::p_kind, eve::q_kind //! -//! The expression `p_kind(legendre)(n,x)` is equivalent to `legendre(n,x)`. +//! The expression `legendre[p_kind](n,x)` is equivalent to `legendre(n,x)`. //! -//! The expression `q_kind(legendre)(n,x)` return the value at `x` of the +//! The expression `legendre[q_kind](n,x)` return the value at `x` of the //! second kind legendre function of order `n`. //! //! **Example** diff --git a/test/doc/core/ceil.cpp b/test/doc/core/ceil.cpp index fd51c4ad04..74a2784389 100644 --- a/test/doc/core/ceil.cpp +++ b/test/doc/core/ceil.cpp @@ -11,8 +11,8 @@ int main() std::cout << "---- simd" << '\n' << "<- pf = " << pf << '\n' << "-> ceil(pf) = " << eve::ceil(pf) << '\n' - << "-> ceil[eve::almost2]ceil(pf) = " << eve::ceil[eve::almost2](pf) << '\n' - << "-> ceil[eve::almost2 = 1]ceil(pf) = " << eve::ceil[eve::almost2 = 1](pf) << '\n' + << "-> ceil[eve::almost]ceil(pf) = " << eve::ceil[eve::almost](pf) << '\n' + << "-> ceil[eve::almost = 1]ceil(pf) = " << eve::ceil[eve::almost = 1](pf) << '\n' << "-> ceil[pf > -1.5f](pf) = " << eve::ceil[pf > -1.5f](pf) << '\n'; float xf = -32.768f; diff --git a/test/doc/core/floor.cpp b/test/doc/core/floor.cpp index 05a51f14fc..33a4f1de0f 100644 --- a/test/doc/core/floor.cpp +++ b/test/doc/core/floor.cpp @@ -13,9 +13,9 @@ int main() std::cout << "---- simd" << std::setprecision(8) << '\n' << "<- pf = " << pf << '\n' << "-> floor(pf) = " << eve::floor(pf) << '\n' - << "-> floor[almost2](pf) = " << eve::floor[eve::almost2](pf) << '\n' - << "-> floor[almost2 = 2*decr](pf) = " << eve::floor[eve::almost2 = 2*decr](pf) << '\n' - << "-> floor[almost2 = 4](pf) = " << eve::floor[eve::almost2 = 4](pf) << '\n' + << "-> floor[almost](pf) = " << eve::floor[eve::almost](pf) << '\n' + << "-> floor[almost = 2*decr](pf) = " << eve::floor[eve::almost = 2*decr](pf) << '\n' + << "-> floor[almost = 4](pf) = " << eve::floor[eve::almost = 4](pf) << '\n' << "-> floor[pf>1.5](pf) = " << eve::floor[pf>1.5](pf) << '\n'; float xf = -32.768f; diff --git a/test/doc/core/is_equal.cpp b/test/doc/core/is_equal.cpp index 9b355eff46..e4eef282b3 100644 --- a/test/doc/core/is_equal.cpp +++ b/test/doc/core/is_equal.cpp @@ -14,8 +14,8 @@ int main() << "<- qf = " << qf << '\n' << "-> is_equal(pf, qf) = " << eve::is_equal(pf, qf) << '\n' << "-> is_equal[eve::numeric](pf, qf) = " << eve::is_equal[eve::numeric](pf, qf) << '\n' - << "-> is_equal[almost2](pf, qf) = " << eve::is_equal[eve::almost2](pf, qf) << '\n' - << "-> is_equal[almost2 = 2](pf, qf) = " << eve::is_equal[eve::almost2 = 2](pf, qf) << '\n' - << "-> is_equal[almost2 = 2.0f](pf, qf) = " << eve::is_equal[eve::almost2 = 2.0f](pf, qf) << '\n'; + << "-> is_equal[almost](pf, qf) = " << eve::is_equal[eve::almost](pf, qf) << '\n' + << "-> is_equal[almost = 2](pf, qf) = " << eve::is_equal[eve::almost = 2](pf, qf) << '\n' + << "-> is_equal[almost = 2.0f](pf, qf) = " << eve::is_equal[eve::almost = 2.0f](pf, qf) << '\n'; return 0; } diff --git a/test/doc/core/is_greater.cpp b/test/doc/core/is_greater.cpp index d1c843b4c2..a019e8caba 100644 --- a/test/doc/core/is_greater.cpp +++ b/test/doc/core/is_greater.cpp @@ -13,7 +13,7 @@ int main() << "<- pf = " << pf << '\n' << "<- qf = " << qf << '\n' << "-> is_greater(pf, qf) = " << eve::is_greater(pf, qf) << '\n' - << "-> is_greater[definitely2](pf, qf) = " << eve::is_greater[eve::definitely2](pf, qf) << '\n' + << "-> is_greater[definitely](pf, qf) = " << eve::is_greater[eve::definitely](pf, qf) << '\n' << "-> is_greater[pf > 0](pf, qf) = " << eve::is_greater[pf > 0](pf, qf) << '\n'; float xf = 1.0f; diff --git a/test/doc/core/is_less.cpp b/test/doc/core/is_less.cpp index edd5b7cc13..9b2d5d3fb4 100644 --- a/test/doc/core/is_less.cpp +++ b/test/doc/core/is_less.cpp @@ -14,7 +14,7 @@ int main() << "<- qf = " << qf << '\n' << "-> is_less[pf > 0](pf, qf) = " << eve::is_less[pf > 0](pf, qf) << '\n' << "-> is_less(pf, qf) = " << eve::is_less(pf, qf) << '\n' - << "-> is_less[definitely2](pf, qf) = " << eve::is_less[eve::definitely2](pf, qf) << '\n'; + << "-> is_less[definitely](pf, qf) = " << eve::is_less[eve::definitely](pf, qf) << '\n'; float xf = 1.0f; float yf = 2.0f; diff --git a/test/doc/core/is_less_equal.cpp b/test/doc/core/is_less_equal.cpp index cbc8538e52..2f00a569ab 100644 --- a/test/doc/core/is_less_equal.cpp +++ b/test/doc/core/is_less_equal.cpp @@ -13,7 +13,7 @@ int main() << "<- pf = " << pf << '\n' << "<- qf = " << qf << '\n' << "-> is_less(pf, qf) = " << eve::is_less(pf, qf) << '\n' - << "-> is_less_equal[almost2](pf, qf)= " << eve::is_less_equal[eve::almost2](pf, qf) << '\n' + << "-> is_less_equal[almost](pf, qf)= " << eve::is_less_equal[eve::almost](pf, qf) << '\n' << "-> is_less[pf > 0](pf, qf) = " << eve::is_less[pf > 0](pf, qf) << '\n'; float xf = 1.0f; diff --git a/test/doc/core/is_not_equal.cpp b/test/doc/core/is_not_equal.cpp index 19d0a7e1b0..4c1c39af2c 100644 --- a/test/doc/core/is_not_equal.cpp +++ b/test/doc/core/is_not_equal.cpp @@ -20,9 +20,9 @@ int main() << "<- pf = " << pf << '\n' << "<- qf = " << qf << '\n' << "-> is_not_equal)(pf, qf) = " << eve::is_not_equal(pf, qf) << '\n' - << "-> is_not_equal[definitely2](pf, qf) = " << eve::is_not_equal[eve::definitely2](pf, qf) << '\n' - << "-> is_not_equal[definitely2 = 2](pf, qf) = " << eve::is_not_equal[eve::definitely2 = 2](pf, qf) << '\n' - << "-> is_not_equal[definitely2 = 2.0f](pf, qf) = " << eve::is_not_equal[eve::definitely2 = 2.0f](pf, qf) << '\n'; + << "-> is_not_equal[definitely](pf, qf) = " << eve::is_not_equal[eve::definitely](pf, qf) << '\n' + << "-> is_not_equal[definitely = 2](pf, qf) = " << eve::is_not_equal[eve::definitely = 2](pf, qf) << '\n' + << "-> is_not_equal[definitely = 2.0f](pf, qf) = " << eve::is_not_equal[eve::definitely = 2.0f](pf, qf) << '\n'; float xf = 1.0f; float yf = 2.0f; diff --git a/test/doc/core/is_not_greater.cpp b/test/doc/core/is_not_greater.cpp index 8d3dfcff46..a51cd406e2 100644 --- a/test/doc/core/is_not_greater.cpp +++ b/test/doc/core/is_not_greater.cpp @@ -13,7 +13,7 @@ int main() << "<- pf = " << pf << '\n' << "<- qf = " << qf << '\n' << "-> is_not_greater(pf, qf) = " << eve::is_not_greater(pf, qf) << '\n' - << "-> is_not_greater[almost2](pf, qf) = " << eve::is_not_greater[eve::almost2](pf, qf) << '\n' + << "-> is_not_greater[almost](pf, qf) = " << eve::is_not_greater[eve::almost](pf, qf) << '\n' << "-> is_not_greater[pf > 0](pf, qf) = " << eve::is_not_greater[pf > 0](pf, qf) << '\n'; float xf = 1.0f; diff --git a/test/doc/core/is_not_greater_equal.cpp b/test/doc/core/is_not_greater_equal.cpp index fb07f6b66d..523ceba41e 100644 --- a/test/doc/core/is_not_greater_equal.cpp +++ b/test/doc/core/is_not_greater_equal.cpp @@ -14,7 +14,7 @@ int main() << "<- qf = " << qf << '\n' << "-> is_not_greater_equal(pf, qf) = " << eve::is_not_greater_equal(pf, qf) << '\n' << "-> is_not_greater_equal[pf>0](pf, qf) = " << eve::is_not_greater_equal[pf > 0](pf, qf) << '\n' - << "-> is_not_greater_equal[eve::definitely2](pf, qf) = " << eve::is_not_greater_equal[eve::definitely2](pf, qf) << '\n'; + << "-> is_not_greater_equal[eve::definitely](pf, qf) = " << eve::is_not_greater_equal[eve::definitely](pf, qf) << '\n'; float xf = 1.0f; float yf = 2.0f; diff --git a/test/doc/core/is_not_less.cpp b/test/doc/core/is_not_less.cpp index 02df22bad6..cd571bfc69 100644 --- a/test/doc/core/is_not_less.cpp +++ b/test/doc/core/is_not_less.cpp @@ -14,7 +14,7 @@ int main() << "<- qf = " << qf << '\n' << "-> is_not_less(pf, qf) = " << eve::is_not_less(pf, qf) << '\n' << "-> is_not_less[pf > 0](pf, qf) = " << eve::is_not_less[pf > 0](pf, qf) << '\n' - << "-> is_not_lessl[almost2](pf, qf) = " << eve::is_not_less[eve::almost2](pf, qf) << '\n'; + << "-> is_not_lessl[almost](pf, qf) = " << eve::is_not_less[eve::almost](pf, qf) << '\n'; float xf = 1.0f; float yf = 2.0f; diff --git a/test/doc/core/trunc.cpp b/test/doc/core/trunc.cpp index 397d86648e..796f5dab9a 100644 --- a/test/doc/core/trunc.cpp +++ b/test/doc/core/trunc.cpp @@ -12,9 +12,9 @@ int main() std::cout << "---- simd" << '\n' << "<- pf = " << pf << '\n' << "-> trunc(pf) = " << eve::trunc(pf) << '\n' - << "-> trunc[almost2](pf) = " << eve::trunc[eve::almost2](pf) << '\n' - << "-> trunc[almost2 = 2*decr](pf) = " << eve::trunc[eve::almost2 = 2*decr](pf) << '\n' - << "-> trunc[almost2 = 4](pf) = " << eve::trunc[eve::almost2 = 4](pf) << '\n'; + << "-> trunc[almost](pf) = " << eve::trunc[eve::almost](pf) << '\n' + << "-> trunc[almost = 2*decr](pf) = " << eve::trunc[eve::almost = 2*decr](pf) << '\n' + << "-> trunc[almost = 4](pf) = " << eve::trunc[eve::almost = 4](pf) << '\n'; return 0; float xf = -32.768f; diff --git a/test/unit/meta/concepts/decorator.cpp b/test/unit/meta/concepts/decorator.cpp deleted file mode 100644 index f32b42dd0e..0000000000 --- a/test/unit/meta/concepts/decorator.cpp +++ /dev/null @@ -1,34 +0,0 @@ -//================================================================================================== -/** - EVE - Expressive Vector Engine - Copyright : EVE Project Contributors - SPDX-License-Identifier: BSL-1.0 -**/ -//================================================================================================== -#include "test.hpp" -#include - -TTS_CASE("Check that non-decorator types don't satisfy decorator" ) -{ - TTS_EXPECT_NOT( eve::decorator ); - TTS_EXPECT_NOT( eve::decorator ); - TTS_EXPECT_NOT( eve::decorator ); - TTS_EXPECT_NOT( eve::decorator); - - TTS_EXPECT_NOT( eve::decorator>); - TTS_EXPECT_NOT( eve::decorator>); -}; - -TTS_CASE("Check that decorators satisfies decorator" ) -{ - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); - TTS_EXPECT( eve::decorator ); -}; diff --git a/test/unit/module/core/ceil.cpp b/test/unit/module/core/ceil.cpp index 28946ea682..b5fd7df0c0 100644 --- a/test/unit/module/core/ceil.cpp +++ b/test/unit/module/core/ceil.cpp @@ -30,13 +30,13 @@ TTS_CASE_TPL("Check return types of ceil", eve::test::simd::all_types) TTS_EXPR_IS(eve::ceil(v_t(), eve::as()), eve::as_integer_t); TTS_EXPR_IS(eve::ceil(T(), eve::as()), (eve::as_integer_t)); TTS_EXPR_IS(eve::ceil(v_t(), eve::as()), (eve::as_integer_t)); - TTS_EXPR_IS(eve::ceil[eve::almost2](T()), T); - TTS_EXPR_IS(eve::ceil[eve::almost2](v_t()), v_t); + TTS_EXPR_IS(eve::ceil[eve::almost](T()), T); + TTS_EXPR_IS(eve::ceil[eve::almost](v_t()), v_t); } }; //================================================================================================== -// almost2 tests +// almost tests //================================================================================================== TTS_CASE_TPL("Check with specific values", eve::test::simd::ieee_reals) (tts::type) @@ -54,22 +54,22 @@ TTS_CASE_TPL("Check with specific values", eve::test::simd::ieee_reals) TTS_EQUAL(eve::ceil(T(1.5)), T(2)); TTS_EQUAL(eve::ceil(T(1.6)), T(2)); - TTS_EQUAL(eve::ceil[eve::almost2](T(-1)), T(-1)); - TTS_EQUAL(eve::ceil[eve::almost2](T(-2)), T(-2)); - TTS_EQUAL(eve::ceil[eve::almost2](T(0)), T(0)); - TTS_EQUAL(eve::ceil[eve::almost2](T(1)), T(1)); - TTS_EQUAL(eve::ceil[eve::almost2](T(2)), T(2)); + TTS_EQUAL(eve::ceil[eve::almost](T(-1)), T(-1)); + TTS_EQUAL(eve::ceil[eve::almost](T(-2)), T(-2)); + TTS_EQUAL(eve::ceil[eve::almost](T(0)), T(0)); + TTS_EQUAL(eve::ceil[eve::almost](T(1)), T(1)); + TTS_EQUAL(eve::ceil[eve::almost](T(2)), T(2)); - TTS_EQUAL(eve::ceil[eve::almost2](T(-1.3)), T(-1)); - TTS_EQUAL(eve::ceil[eve::almost2](T(-1.5)), T(-1)); - TTS_EQUAL(eve::ceil[eve::almost2](T(-1.6)), T(-1)); - TTS_EQUAL(eve::ceil[eve::almost2](T(1.3)), T(2)); - TTS_EQUAL(eve::ceil[eve::almost2](T(1.5)), T(2)); - TTS_EQUAL(eve::ceil[eve::almost2](T(1.6)), T(2)); - TTS_EQUAL(eve::ceil[eve::almost2](eve::eps(eve::as())), T(0)); - TTS_EQUAL(eve::ceil[eve::almost2](2 * eve::eps(eve::as())), T(0)); - TTS_EQUAL(eve::ceil[eve::almost2](3 * eve::eps(eve::as())), T(0)); - TTS_EQUAL(eve::ceil[eve::almost2](4 * eve::eps(eve::as())), T(1)); + TTS_EQUAL(eve::ceil[eve::almost](T(-1.3)), T(-1)); + TTS_EQUAL(eve::ceil[eve::almost](T(-1.5)), T(-1)); + TTS_EQUAL(eve::ceil[eve::almost](T(-1.6)), T(-1)); + TTS_EQUAL(eve::ceil[eve::almost](T(1.3)), T(2)); + TTS_EQUAL(eve::ceil[eve::almost](T(1.5)), T(2)); + TTS_EQUAL(eve::ceil[eve::almost](T(1.6)), T(2)); + TTS_EQUAL(eve::ceil[eve::almost](eve::eps(eve::as())), T(0)); + TTS_EQUAL(eve::ceil[eve::almost](2 * eve::eps(eve::as())), T(0)); + TTS_EQUAL(eve::ceil[eve::almost](3 * eve::eps(eve::as())), T(0)); + TTS_EQUAL(eve::ceil[eve::almost](4 * eve::eps(eve::as())), T(1)); }; //================================================================================================== diff --git a/test/unit/module/core/floor.cpp b/test/unit/module/core/floor.cpp index 76249b3b2d..da4079bab0 100644 --- a/test/unit/module/core/floor.cpp +++ b/test/unit/module/core/floor.cpp @@ -29,13 +29,13 @@ TTS_CASE_TPL("Check return types of floor", eve::test::simd::all_types) TTS_EXPR_IS(eve::floor(v_t(), eve::as()), (eve::as_integer_t)); TTS_EXPR_IS(eve::floor(T(), eve::as()), (eve::as_integer_t)); TTS_EXPR_IS(eve::floor(v_t(), eve::as()), (eve::as_integer_t)); - TTS_EXPR_IS(eve::floor[eve::almost2](T()), T); - TTS_EXPR_IS(eve::floor[eve::almost2](v_t()), v_t); + TTS_EXPR_IS(eve::floor[eve::almost](T()), T); + TTS_EXPR_IS(eve::floor[eve::almost](v_t()), v_t); } }; //================================================================================================== -// almost2 tests +// almost tests //================================================================================================== TTS_CASE_TPL("Check with particular values", eve::test::simd::ieee_reals) (tts::type) @@ -47,48 +47,48 @@ TTS_CASE_TPL("Check with particular values", eve::test::simd::ieee_reals) TTS_EQUAL(eve::floor(static_cast(1.5)), T(1)); TTS_EQUAL(eve::floor(static_cast(1.6)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2](static_cast(-1.3)), T(-2)); - TTS_EQUAL(eve::floor[eve::almost2](static_cast(-1.5)), T(-2)); - TTS_EQUAL(eve::floor[eve::almost2](static_cast(-1.6)), T(-2)); - TTS_EQUAL(eve::floor[eve::almost2](static_cast(1.3)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2](static_cast(1.5)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2](static_cast(1.6)), T(1)); + TTS_EQUAL(eve::floor[eve::almost](static_cast(-1.3)), T(-2)); + TTS_EQUAL(eve::floor[eve::almost](static_cast(-1.5)), T(-2)); + TTS_EQUAL(eve::floor[eve::almost](static_cast(-1.6)), T(-2)); + TTS_EQUAL(eve::floor[eve::almost](static_cast(1.3)), T(1)); + TTS_EQUAL(eve::floor[eve::almost](static_cast(1.5)), T(1)); + TTS_EQUAL(eve::floor[eve::almost](static_cast(1.6)), T(1)); auto epsi = eve::eps(eve::as()); - TTS_EQUAL(eve::floor[eve::almost2](T(0)), T(0)); - TTS_EQUAL(eve::floor[eve::almost2](-epsi), T(0)); - TTS_EQUAL(eve::floor[eve::almost2]((-2 * epsi)), T(0)); - TTS_EQUAL(eve::floor[eve::almost2]((-3 * epsi)), T(0)); - TTS_EQUAL(eve::floor[eve::almost2]((-4 * epsi)), T(-1)); - - TTS_EQUAL(eve::floor[eve::almost2](T(1)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2]((T(1) - epsi)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2]((T(1) - 2 * epsi)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2]((T(1) - 3 * epsi)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2]((T(1) - 4 * epsi)), T(0)); - - TTS_EQUAL(eve::floor[eve::almost2](T(45)), T(45)); - TTS_EQUAL(eve::floor[eve::almost2](45 * (T(1) - 2 * epsi)), T(45)); - TTS_EQUAL(eve::floor[eve::almost2](45 * (T(1) - 3 * epsi)), T(45)); - TTS_EQUAL(eve::floor[eve::almost2](45 * (T(1) - 4 * epsi)), T(44)); - - TTS_EQUAL(eve::floor[eve::almost2](T(1)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2](eve::prev(T(1), 1)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2](eve::prev(T(1), 2)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2](eve::prev(T(1), 3)), T(1)); - TTS_EQUAL(eve::floor[eve::almost2](eve::prev(T(1), 10)), T(0)); - - TTS_EQUAL(eve::floor[eve::almost2 = 3](T(45)), T(45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(45), 1)), T(45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(45), 2)), T(45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(45), 3)), T(45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(45), 4)), T(44)); - - TTS_EQUAL(eve::floor[eve::almost2 = 3](T(-45)), T(-45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(-45), 1)), T(-45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(-45), 2)), T(-45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(-45), 3)), T(-45)); - TTS_EQUAL(eve::floor[eve::almost2 = 3](eve::prev(T(-45), 4)), T(-46)); + TTS_EQUAL(eve::floor[eve::almost](T(0)), T(0)); + TTS_EQUAL(eve::floor[eve::almost](-epsi), T(0)); + TTS_EQUAL(eve::floor[eve::almost]((-2 * epsi)), T(0)); + TTS_EQUAL(eve::floor[eve::almost]((-3 * epsi)), T(0)); + TTS_EQUAL(eve::floor[eve::almost]((-4 * epsi)), T(-1)); + + TTS_EQUAL(eve::floor[eve::almost](T(1)), T(1)); + TTS_EQUAL(eve::floor[eve::almost]((T(1) - epsi)), T(1)); + TTS_EQUAL(eve::floor[eve::almost]((T(1) - 2 * epsi)), T(1)); + TTS_EQUAL(eve::floor[eve::almost]((T(1) - 3 * epsi)), T(1)); + TTS_EQUAL(eve::floor[eve::almost]((T(1) - 4 * epsi)), T(0)); + + TTS_EQUAL(eve::floor[eve::almost](T(45)), T(45)); + TTS_EQUAL(eve::floor[eve::almost](45 * (T(1) - 2 * epsi)), T(45)); + TTS_EQUAL(eve::floor[eve::almost](45 * (T(1) - 3 * epsi)), T(45)); + TTS_EQUAL(eve::floor[eve::almost](45 * (T(1) - 4 * epsi)), T(44)); + + TTS_EQUAL(eve::floor[eve::almost](T(1)), T(1)); + TTS_EQUAL(eve::floor[eve::almost](eve::prev(T(1), 1)), T(1)); + TTS_EQUAL(eve::floor[eve::almost](eve::prev(T(1), 2)), T(1)); + TTS_EQUAL(eve::floor[eve::almost](eve::prev(T(1), 3)), T(1)); + TTS_EQUAL(eve::floor[eve::almost](eve::prev(T(1), 10)), T(0)); + + TTS_EQUAL(eve::floor[eve::almost = 3](T(45)), T(45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(45), 1)), T(45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(45), 2)), T(45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(45), 3)), T(45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(45), 4)), T(44)); + + TTS_EQUAL(eve::floor[eve::almost = 3](T(-45)), T(-45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(-45), 1)), T(-45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(-45), 2)), T(-45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(-45), 3)), T(-45)); + TTS_EQUAL(eve::floor[eve::almost = 3](eve::prev(T(-45), 4)), T(-46)); }; //================================================================================================== diff --git a/test/unit/module/core/fnma.cpp b/test/unit/module/core/fnma.cpp index f46ff9a0bd..adfc8e4b06 100644 --- a/test/unit/module/core/fnma.cpp +++ b/test/unit/module/core/fnma.cpp @@ -117,24 +117,24 @@ TTS_CASE_WITH("Check behavior of fnma on all types full range", // constexpr int N = eve::cardinal_v; // eve::wide> fa([](auto i, auto){return float(i)/2; }); -// auto r1 = fnma[eve::promote2](a0, a1, fa); +// auto r1 = fnma[eve::promote](a0, a1, fa); // using er1_t = eve::element_type_t; // auto refr1 = eve::fnma(eve::convert(a0, eve::as()), eve::convert(a1, eve::as()), eve::convert(fa, eve::as())); // TTS_ULP_EQUAL(r1, refr1, 2.0); // eve::wide> da([](auto i, auto){return double(i)/3; }); -// auto r2 = fnma[eve::promote2](a0, da, a1); +// auto r2 = fnma[eve::promote](a0, da, a1); // using er2_t = eve::element_type_t; // auto refr2 = eve::fnma(eve::convert(a0, eve::as()), eve::convert(da, eve::as()), eve::convert(a1, eve::as())); // TTS_ULP_EQUAL(r2, refr2, 0.5); // eve::wide> ia([](auto i, auto){return int(i); }); -// auto r3 = fnma[eve::promote2](ia, a0, a1); +// auto r3 = fnma[eve::promote](ia, a0, a1); // using er3_t = eve::element_type_t; // auto refr3 = eve::fnma(eve::convert(ia, eve::as()), eve::convert(a0, eve::as()), eve::convert(a1, eve::as())); // TTS_ULP_EQUAL(r3, refr3, 0.5); -// auto r4 = fnma[eve::promote2](ia, da, a1); +// auto r4 = fnma[eve::promote](ia, da, a1); // using er4_t = eve::element_type_t; // auto refr4= eve::fnma(eve::convert(ia, eve::as()), eve::convert(da, eve::as()), eve::convert(a1, eve::as())); // TTS_ULP_EQUAL(r4, refr4, 0.5); diff --git a/test/unit/module/core/is_equal.cpp b/test/unit/module/core/is_equal.cpp index bdc4a564b5..455aef7a06 100644 --- a/test/unit/module/core/is_equal.cpp +++ b/test/unit/module/core/is_equal.cpp @@ -77,20 +77,20 @@ TTS_CASE_TPL("Check behavior of eve::is_equal(simd)", eve::test::simd::ieee_real auto cases = tts::limits(tgt); TTS_EQUAL(eve::is_equal(cases.nan, cases.nan), eve::false_(as())); TTS_EQUAL(eve::is_equal[eve::numeric](cases.nan, cases.nan), eve::true_(as())); - TTS_EQUAL(eve::is_equal[eve::almost2](T(1 + eve::eps(as())), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = eve::eps(as())](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = eve::eps(as())](T(3), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](T(3), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](eve::next(T(0)), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](eve::next(T(0), 3), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](eve::next(T(0), 4), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](v_t(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](v_t(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_equal[eve::almost2 = ui_t(3)](v_t(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost](T(1 + eve::eps(as())), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = eve::eps(as())](T(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = eve::eps(as())](T(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](T(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](T(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](eve::next(T(0)), T(0)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](eve::next(T(0), 3), T(0)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](eve::next(T(0), 4), T(0)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](v_t(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](v_t(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_equal[eve::almost = ui_t(3)](v_t(3), v_t(1)), eve::false_(eve::as())); }; diff --git a/test/unit/module/core/is_greater.cpp b/test/unit/module/core/is_greater.cpp index 7e76c35022..dbe7d87021 100644 --- a/test/unit/module/core/is_greater.cpp +++ b/test/unit/module/core/is_greater.cpp @@ -24,10 +24,10 @@ TTS_CASE_TPL("Check return types of eve::is_greater(simd)", eve::test::simd::all if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_greater[eve::definitely2](T(), T()), logical); - TTS_EXPR_IS(eve::is_greater[eve::definitely2](v_t(), v_t()), logical); - TTS_EXPR_IS(eve::is_greater[eve::definitely2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_greater[eve::definitely2](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_greater[eve::definitely](T(), T()), logical); + TTS_EXPR_IS(eve::is_greater[eve::definitely](v_t(), v_t()), logical); + TTS_EXPR_IS(eve::is_greater[eve::definitely](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_greater[eve::definitely](v_t(), T()), logical); } }; @@ -63,32 +63,32 @@ TTS_CASE_TPL("Check behavior of eve::is_greater(simd)", eve::test::simd::ieee_re using v_t = eve::element_type_t; using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_greater[eve::definitely2](T(1), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2](T(1), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2](T(3), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2](T(3), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely](T(1), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely](T(1), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely](T(3), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely](T(3), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = eve::eps(as())](T(3), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = eve::eps(as())](T(3), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = eve::eps(as())](T(3), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = eve::eps(as())](T(3), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](T(1), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](T(1), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](T(3), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](T(3), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](T(1), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](T(1), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](T(3), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](T(3), v_t(1)), eve::true_(eve::as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(eve::as()); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](v_t(md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](v_t(2 * md), T(0)), + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](v_t(md), T(0)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](v_t(2 * md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](v_t(3 * md), T(0)), + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](v_t(3 * md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](v_t(4 * md), T(0)), + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](v_t(4 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater[eve::definitely2 = ui_t(3)](v_t(1), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater[eve::definitely = ui_t(3)](v_t(1), v_t(1)), eve::false_(eve::as())); } }; diff --git a/test/unit/module/core/is_greater_equal.cpp b/test/unit/module/core/is_greater_equal.cpp index a06b352d0d..bc4f0ee517 100644 --- a/test/unit/module/core/is_greater_equal.cpp +++ b/test/unit/module/core/is_greater_equal.cpp @@ -24,19 +24,19 @@ TTS_CASE_TPL("Check return types of eve::is_greater_equal(simd)", eve::test::sim if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2](T(), T()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = unsigned()](T(), T()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = unsigned()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = unsigned()](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = v_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = v_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = v_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost](T(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = unsigned()](T(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = unsigned()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = unsigned()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = v_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = v_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = v_t()](v_t(), T()), logical); using ui_t = eve::as_integer_t; - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = ui_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = ui_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_greater_equal[eve::almost2 = ui_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = ui_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = ui_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_greater_equal[eve::almost = ui_t()](v_t(), T()), logical); } }; @@ -72,42 +72,42 @@ TTS_CASE_TPL("Check behavior of eve::is_greater_equal(simd)", eve::test::simd::i using eve::detail::map; using v_t = eve::element_type_t; - TTS_EQUAL(eve::is_greater_equal[eve::almost2](T(1), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2](T(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2](T(1), T(3)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2](T(1), v_t(3)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost](T(1), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost](T(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost](T(1), T(3)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost](T(1), v_t(3)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = eve::eps(as())](T(1 - eve::eps(as())), T(1)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = eve::eps(as())](T(1 - eve::eps(as())), T(1)), eve::true_(eve::as())); TTS_EQUAL( - eve::is_greater_equal[eve::almost2 = eve::eps(as())](T(1 - 2 * eve::eps(as())), T(1)), + eve::is_greater_equal[eve::almost = eve::eps(as())](T(1 - 2 * eve::eps(as())), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = eve::eps(as())](T(1 - eve::eps(as())), v_t(1)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = eve::eps(as())](T(1 - eve::eps(as())), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = eve::eps(as())](T(1), T(3)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = eve::eps(as())](T(1), T(3)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = eve::eps(as())](T(1), v_t(3)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = eve::eps(as())](T(1), v_t(3)), eve::false_(eve::as())); using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](T(1), T(3)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](T(1), v_t(3)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](T(1), T(3)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](T(1), v_t(3)), eve::false_(eve::as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(eve::as()); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](v_t(-md), T(0)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](v_t(-md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](v_t(-2 * md), T(0)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](v_t(-2 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](v_t(-3 * md), T(0)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](v_t(-3 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](v_t(-4 * md), T(0)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](v_t(-4 * md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_greater_equal[eve::almost2 = ui_t(3)](v_t(1), v_t(1)), + TTS_EQUAL(eve::is_greater_equal[eve::almost = ui_t(3)](v_t(1), v_t(1)), eve::true_(eve::as())); } }; diff --git a/test/unit/module/core/is_less.cpp b/test/unit/module/core/is_less.cpp index 5f4cc89b52..6e49adc86d 100644 --- a/test/unit/module/core/is_less.cpp +++ b/test/unit/module/core/is_less.cpp @@ -24,10 +24,10 @@ TTS_CASE_TPL("Check return types of eve::is_less(simd)", eve::test::simd::all_ty if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_less[eve::definitely2](T(), T()), logical); - TTS_EXPR_IS(eve::is_less[eve::definitely2](v_t(), v_t()), logical); - TTS_EXPR_IS(eve::is_less[eve::definitely2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_less[eve::definitely2](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_less[eve::definitely](T(), T()), logical); + TTS_EXPR_IS(eve::is_less[eve::definitely](v_t(), v_t()), logical); + TTS_EXPR_IS(eve::is_less[eve::definitely](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_less[eve::definitely](v_t(), T()), logical); } }; @@ -62,29 +62,29 @@ TTS_CASE_TPL("Check behavior of eve::is_less(simd)", eve::test::simd::ieee_reals using v_t = eve::element_type_t; using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_less[eve::definitely2](T(1), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2](T(1), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2](T(1), T(3)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2](T(1), v_t(3)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely](T(1), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely](T(1), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely](T(1), T(3)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely](T(1), v_t(3)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = eve::eps(as())](T(1 - eve::eps(as())), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = eve::eps(as())](T(1 - 2 * eve::eps(as())), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = eve::eps(as())](T(1 - eve::eps(as())), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = eve::eps(as())](T(1), T(3)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = eve::eps(as())](T(1), v_t(3)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = eve::eps(as())](T(1 - eve::eps(as())), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = eve::eps(as())](T(1 - 2 * eve::eps(as())), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = eve::eps(as())](T(1 - eve::eps(as())), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = eve::eps(as())](T(1), T(3)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = eve::eps(as())](T(1), v_t(3)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = ui_t(3)](T(1), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2= ui_t(3)](T(1), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2= ui_t(3)](T(1), T(3)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2= ui_t(3)](T(1), v_t(3)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = ui_t(3)](T(1), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely= ui_t(3)](T(1), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely= ui_t(3)](T(1), T(3)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely= ui_t(3)](T(1), v_t(3)), eve::true_(eve::as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(eve::as()); - TTS_EQUAL(eve::is_less[eve::definitely2 = ui_t(3)](v_t(-md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = ui_t(3)](v_t(-2 * md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = ui_t(3)](v_t(-3 * md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = ui_t(3)](v_t(-4 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less[eve::definitely2 = ui_t(3)](v_t(1), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = ui_t(3)](v_t(-md), T(0)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = ui_t(3)](v_t(-2 * md), T(0)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = ui_t(3)](v_t(-3 * md), T(0)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = ui_t(3)](v_t(-4 * md), T(0)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less[eve::definitely = ui_t(3)](v_t(1), v_t(1)), eve::false_(eve::as())); } }; diff --git a/test/unit/module/core/is_less_equal.cpp b/test/unit/module/core/is_less_equal.cpp index a9d471d965..5c9a516afe 100644 --- a/test/unit/module/core/is_less_equal.cpp +++ b/test/unit/module/core/is_less_equal.cpp @@ -24,19 +24,19 @@ TTS_CASE_TPL("Check return types of eve::is_less_equal(simd)", eve::test::simd:: if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_less_equal[eve::almost2](T(), T()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = unsigned()](T(), T()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = unsigned()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = unsigned()](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = v_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = v_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = v_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost](T(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = unsigned()](T(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = unsigned()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = unsigned()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = v_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = v_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = v_t()](v_t(), T()), logical); using ui_t = eve::as_integer_t; - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = ui_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = ui_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_less_equal[eve::almost2 = ui_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = ui_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = ui_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_less_equal[eve::almost = ui_t()](v_t(), T()), logical); } }; @@ -71,35 +71,35 @@ TTS_CASE_TPL("Check behavior of eve::is_less_equal(simd)", eve::test::simd::ieee using eve::logical; using v_t = eve::element_type_t; - TTS_EQUAL(eve::is_less_equal[eve::almost2](T(1), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2](T(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2](T(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost](T(1), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost](T(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost](T(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost](T(3), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = eve::eps(as())](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = eve::eps(as())](T(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = eve::eps(as())](T(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = eve::eps(as())](T(3), v_t(1)), eve::false_(eve::as())); using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](T(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](T(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](T(3), v_t(1)), eve::false_(eve::as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(eve::as()); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](v_t(md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](v_t(2 * md), T(0)), + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](v_t(md), T(0)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](v_t(2 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](v_t(3 * md), T(0)), + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](v_t(3 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](v_t(4 * md), T(0)), + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](v_t(4 * md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_less_equal[eve::almost2 = ui_t(3)](v_t(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_less_equal[eve::almost = ui_t(3)](v_t(1), v_t(1)), eve::true_(eve::as())); } }; diff --git a/test/unit/module/core/is_not_equal.cpp b/test/unit/module/core/is_not_equal.cpp index 53037bcc5c..f1bc4d28aa 100644 --- a/test/unit/module/core/is_not_equal.cpp +++ b/test/unit/module/core/is_not_equal.cpp @@ -31,10 +31,10 @@ TTS_CASE_TPL("Check return types of eve::is_not_equal(simd)", eve::test::simd::a TTS_EXPR_IS(eve::is_not_equal[eve::numeric](T(), v_t()), logical); TTS_EXPR_IS(eve::is_not_equal[eve::numeric](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_not_equal[eve::definitely2](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_equal[eve::definitely2](v_t(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_equal[eve::definitely2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_equal[eve::definitely2](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_equal[eve::definitely](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_equal[eve::definitely](v_t(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_equal[eve::definitely](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_equal[eve::definitely](v_t(), T()), logical); } }; @@ -75,26 +75,26 @@ TTS_CASE_TPL("Check behavior of eve::is_not_equal(simd)", eve::test::simd::ieee_ using v_t = eve::element_type_t; using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_not_equal[eve::definitely2](T(1), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2](T(1), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2](T(3), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2](T(3), v_t(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = eve::eps(as())](T(3), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = eve::eps(as())](T(3), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely](T(1), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely](T(1), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely](T(3), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely](T(3), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = eve::eps(as())](T(3), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = eve::eps(as())](T(3), v_t(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](T(1), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](T(1), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](T(3), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](T(3), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](T(1), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](T(1), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](T(3), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](T(3), v_t(1)), eve::true_(as())); auto md = eve::next(v_t(0)); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](v_t(md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](v_t(2 * md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](v_t(3 * md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](v_t(4 * md), T(0)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](v_t(1), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](v_t(3), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_equal[eve::definitely2 = ui_t(3)](v_t(3), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](v_t(md), T(0)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](v_t(2 * md), T(0)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](v_t(3 * md), T(0)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](v_t(4 * md), T(0)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](v_t(1), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](v_t(3), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_equal[eve::definitely = ui_t(3)](v_t(3), v_t(1)), eve::true_(as())); }; diff --git a/test/unit/module/core/is_not_greater.cpp b/test/unit/module/core/is_not_greater.cpp index ecfd979ea6..3065165523 100644 --- a/test/unit/module/core/is_not_greater.cpp +++ b/test/unit/module/core/is_not_greater.cpp @@ -24,19 +24,19 @@ TTS_CASE_TPL("Check return types of eve::is_not_greater(simd)", eve::test::simd: if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_not_greater[eve::almost2](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = unsigned()](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = unsigned()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = unsigned()](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = v_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = v_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = v_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = unsigned()](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = unsigned()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = unsigned()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = v_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = v_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = v_t()](v_t(), T()), logical); using ui_t = eve::as_integer_t; - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = ui_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = ui_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_greater[eve::almost2 = ui_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = ui_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = ui_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_greater[eve::almost = ui_t()](v_t(), T()), logical); } }; @@ -72,38 +72,38 @@ TTS_CASE_TPL("Check behavior of eve::is_not_greater(simd)", eve::test::simd::iee using v_t = eve::element_type_t; using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_not_greater[eve::almost2](T(1), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2](T(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2](T(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost](T(1), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost](T(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost](T(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost](T(3), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = eve::eps(as())](T(1 + eve::eps(as())), T(1)), + TTS_EQUAL(eve::is_not_greater[eve::almost = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), + TTS_EQUAL(eve::is_not_greater[eve::almost = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), + TTS_EQUAL(eve::is_not_greater[eve::almost = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = eve::eps(as())](T(3), T(1)), + TTS_EQUAL(eve::is_not_greater[eve::almost = eve::eps(as())](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = eve::eps(as())](T(3), v_t(1)), + TTS_EQUAL(eve::is_not_greater[eve::almost = eve::eps(as())](T(3), v_t(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](T(3), T(1)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](T(3), v_t(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](T(1), T(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](T(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](T(3), T(1)), eve::false_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](T(3), v_t(1)), eve::false_(eve::as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(eve::as()); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](v_t(md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](v_t(2 * md), T(0)), + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](v_t(md), T(0)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](v_t(2 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](v_t(3 * md), T(0)), + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](v_t(3 * md), T(0)), eve::true_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](v_t(4 * md), T(0)), + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](v_t(4 * md), T(0)), eve::false_(eve::as())); - TTS_EQUAL(eve::is_not_greater[eve::almost2 = ui_t(3)](v_t(1), v_t(1)), eve::true_(eve::as())); + TTS_EQUAL(eve::is_not_greater[eve::almost = ui_t(3)](v_t(1), v_t(1)), eve::true_(eve::as())); } }; diff --git a/test/unit/module/core/is_not_greater_equal.cpp b/test/unit/module/core/is_not_greater_equal.cpp index c5571f546f..d571de0a8e 100644 --- a/test/unit/module/core/is_not_greater_equal.cpp +++ b/test/unit/module/core/is_not_greater_equal.cpp @@ -24,10 +24,10 @@ TTS_CASE_TPL("Check return types of eve::is_not_greater_equal(simd)", eve::test: if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely2](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely2](v_t(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely2](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely](v_t(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_greater_equal[eve::definitely](v_t(), T()), logical); } }; @@ -61,44 +61,44 @@ TTS_CASE_TPL("Check behavior of eve::is_not_greater_equal(simd)", eve::test::sim using eve::as; using v_t = eve::element_type_t; - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2](T(1), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2](T(1), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2](T(1), T(3)), eve::true_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2](T(1), v_t(3)), eve::true_(as())); + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely](T(1), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely](T(1), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely](T(1), T(3)), eve::true_(as())); + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely](T(1), v_t(3)), eve::true_(as())); TTS_EQUAL( - eve::is_not_greater_equal[eve::definitely2 = eve::eps(as())](T(1 - eve::eps(as())), T(1)), + eve::is_not_greater_equal[eve::definitely = eve::eps(as())](T(1 - eve::eps(as())), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = eve::eps(as())]( + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = eve::eps(as())]( T(1 - 2 * eve::eps(as())), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = eve::eps(as())]( + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = eve::eps(as())]( T(1 - eve::eps(as())), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = eve::eps(as())](T(1), T(3)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = eve::eps(as())](T(1), T(3)), eve::true_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = eve::eps(as())](T(1), v_t(3)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = eve::eps(as())](T(1), v_t(3)), eve::true_(as())); using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](T(1), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](T(1), v_t(1)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](T(1), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](T(1), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](T(1), T(3)), eve::true_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](T(1), v_t(3)), eve::true_(as())); + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](T(1), T(3)), eve::true_(as())); + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](T(1), v_t(3)), eve::true_(as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(as()); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](v_t(-md), T(0)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](v_t(-md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](v_t(-2 * md), T(0)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](v_t(-2 * md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](v_t(-3 * md), T(0)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](v_t(-3 * md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](v_t(-4 * md), T(0)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](v_t(-4 * md), T(0)), eve::true_(as())); - TTS_EQUAL(eve::is_not_greater_equal[eve::definitely2 = ui_t(3)](v_t(1), v_t(1)), + TTS_EQUAL(eve::is_not_greater_equal[eve::definitely = ui_t(3)](v_t(1), v_t(1)), eve::false_(as())); } }; diff --git a/test/unit/module/core/is_not_less.cpp b/test/unit/module/core/is_not_less.cpp index 278fa894b5..c817aa7bd5 100644 --- a/test/unit/module/core/is_not_less.cpp +++ b/test/unit/module/core/is_not_less.cpp @@ -24,19 +24,19 @@ TTS_CASE_TPL("Check return types of eve::is_not_less(simd)", eve::test::simd::al if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_not_less[eve::almost2](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = unsigned()](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = unsigned()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = unsigned()](v_t(), T()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = v_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = v_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = v_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = unsigned()](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = unsigned()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = unsigned()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = v_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = v_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = v_t()](v_t(), T()), logical); using ui_t = eve::as_integer_t; - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = ui_t()](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = ui_t()](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_less[eve::almost2 = ui_t()](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = ui_t()](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = ui_t()](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_less[eve::almost = ui_t()](v_t(), T()), logical); } }; @@ -72,28 +72,28 @@ TTS_CASE_TPL("Check behavior of eve::is_not_less(simd)", eve::test::simd::ieee_r using v_t = eve::element_type_t; using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_not_less[eve::almost2](T(1), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2](T(1), v_t(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2](T(1), T(3)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2](T(1), v_t(3)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = eve::eps(as())](T(1 - eve::eps(as())), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = eve::eps(as())](T(1 - 2 * eve::eps(as())), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = eve::eps(as())](T(1 - eve::eps(as())), v_t(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = eve::eps(as())](T(1), T(3)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = eve::eps(as())](T(1), v_t(3)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost](T(1), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost](T(1), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost](T(1), T(3)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost](T(1), v_t(3)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = eve::eps(as())](T(1 - eve::eps(as())), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = eve::eps(as())](T(1 - 2 * eve::eps(as())), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = eve::eps(as())](T(1 - eve::eps(as())), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = eve::eps(as())](T(1), T(3)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = eve::eps(as())](T(1), v_t(3)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](T(1), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](T(1), v_t(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](T(1), T(3)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](T(1), v_t(3)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](T(1), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](T(1), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](T(1), T(3)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](T(1), v_t(3)), eve::false_(as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(as()); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](v_t(-md), T(0)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](v_t(-2 * md), T(0)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](v_t(-3 * md), T(0)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](v_t(-4 * md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less[eve::almost2 = ui_t(3)](v_t(1), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](v_t(-md), T(0)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](v_t(-2 * md), T(0)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](v_t(-3 * md), T(0)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](v_t(-4 * md), T(0)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less[eve::almost = ui_t(3)](v_t(1), v_t(1)), eve::true_(as())); } }; diff --git a/test/unit/module/core/is_not_less_equal.cpp b/test/unit/module/core/is_not_less_equal.cpp index a4e9bbf755..446aa68d8a 100644 --- a/test/unit/module/core/is_not_less_equal.cpp +++ b/test/unit/module/core/is_not_less_equal.cpp @@ -24,10 +24,10 @@ TTS_CASE_TPL("Check return types of eve::is_not_less_equal(simd)", eve::test::si if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely2](T(), T()), logical); - TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely2](v_t(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely2](T(), v_t()), logical); - TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely2](v_t(), T()), logical); + TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely](T(), T()), logical); + TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely](v_t(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely](T(), v_t()), logical); + TTS_EXPR_IS(eve::is_not_less_equal[eve::definitely](v_t(), T()), logical); } }; @@ -62,27 +62,27 @@ TTS_CASE_TPL("Check behavior of eve::is_not_less_equal(simd)", eve::test::simd:: using v_t = eve::element_type_t; using ui_t = eve::as_integer_t; - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2](T(1), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2](T(1), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2](T(3), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2](T(3), v_t(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = eve::eps(as())](T(3), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = eve::eps(as())](T(3), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely](T(1), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely](T(1), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely](T(3), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely](T(3), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = eve::eps(as())](T(1 + eve::eps(as())), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = eve::eps(as())](T(1 + 2 * eve::eps(as())), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = eve::eps(as())](T(1 + eve::eps(as())), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = eve::eps(as())](T(3), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = eve::eps(as())](T(3), v_t(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](T(1), T(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](T(1), v_t(1)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](T(3), T(1)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](T(3), v_t(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](T(1), T(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](T(1), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](T(3), T(1)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](T(3), v_t(1)), eve::true_(as())); if constexpr( eve::platform::supports_denormals ) { auto md = eve::mindenormal(as()); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](v_t(md), T(0)), eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](v_t(2 * md), T(0)),eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](v_t(3 * md), T(0)),eve::false_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](v_t(4 * md), T(0)), eve::true_(as())); - TTS_EQUAL(eve::is_not_less_equal[eve::definitely2 = ui_t(3)](v_t(1), v_t(1)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](v_t(md), T(0)), eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](v_t(2 * md), T(0)),eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](v_t(3 * md), T(0)),eve::false_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](v_t(4 * md), T(0)), eve::true_(as())); + TTS_EQUAL(eve::is_not_less_equal[eve::definitely = ui_t(3)](v_t(1), v_t(1)), eve::false_(as())); } }; diff --git a/test/unit/module/core/trunc.cpp b/test/unit/module/core/trunc.cpp index c2d06bf494..5e7d89413f 100644 --- a/test/unit/module/core/trunc.cpp +++ b/test/unit/module/core/trunc.cpp @@ -28,25 +28,25 @@ TTS_CASE_TPL("Check return types of trunc", eve::test::simd::all_types) if constexpr( eve::floating_value ) { - TTS_EXPR_IS(eve::trunc[eve::almost2](T()), T); - TTS_EXPR_IS(eve::trunc[eve::almost2](v_t()), v_t); + TTS_EXPR_IS(eve::trunc[eve::almost](T()), T); + TTS_EXPR_IS(eve::trunc[eve::almost](v_t()), v_t); } }; //================================================================================================== -// almost2 tests +// almost tests //================================================================================================== TTS_CASE_TPL("Check with nans and infs", eve::test::simd::ieee_reals) (tts::type) { - TTS_EQUAL(eve::trunc[eve::almost2](eve::inc(-eve::eps(eve::as()))), T(1)); - TTS_EQUAL(eve::trunc[eve::almost2](eve::inc(-2 * eve::eps(eve::as()))), T(1)); - TTS_EQUAL(eve::trunc[eve::almost2](eve::inc(-3 * eve::eps(eve::as()))), T(1)); - TTS_EQUAL(eve::trunc[eve::almost2](eve::inc(-4 * eve::eps(eve::as()))), T(0)); - TTS_EQUAL(eve::trunc[eve::almost2](eve::dec(eve::eps(eve::as()))), T(-1)); - TTS_EQUAL(eve::trunc[eve::almost2](eve::dec(2 * eve::eps(eve::as()))), T(-1)); - TTS_EQUAL(eve::trunc[eve::almost2](eve::dec(3 * eve::eps(eve::as()))), T(-1)); - TTS_EQUAL(eve::trunc[eve::almost2](eve::dec(4 * eve::eps(eve::as()))), T(0)); + TTS_EQUAL(eve::trunc[eve::almost](eve::inc(-eve::eps(eve::as()))), T(1)); + TTS_EQUAL(eve::trunc[eve::almost](eve::inc(-2 * eve::eps(eve::as()))), T(1)); + TTS_EQUAL(eve::trunc[eve::almost](eve::inc(-3 * eve::eps(eve::as()))), T(1)); + TTS_EQUAL(eve::trunc[eve::almost](eve::inc(-4 * eve::eps(eve::as()))), T(0)); + TTS_EQUAL(eve::trunc[eve::almost](eve::dec(eve::eps(eve::as()))), T(-1)); + TTS_EQUAL(eve::trunc[eve::almost](eve::dec(2 * eve::eps(eve::as()))), T(-1)); + TTS_EQUAL(eve::trunc[eve::almost](eve::dec(3 * eve::eps(eve::as()))), T(-1)); + TTS_EQUAL(eve::trunc[eve::almost](eve::dec(4 * eve::eps(eve::as()))), T(0)); }; //==================================================================================================