|
native 0.0.1
Vectors, masks and wide register packs for C++26
|
Concepts | |
| concept | native::one_of |
N is one of the candidates | |
| concept | native::not_one_of |
N is not one of the candidates | |
Classes | |
| struct | native::fp16 |
| struct | native::bf16 |
Typedefs | |
| template<typename T> | |
| using | native::int_t |
| template<typename T> | |
| using | native::uint_t |
Functions | |
| template<typename T> | |
| constexpr bool | native::cmp_unord (T a, T b) noexcept(noexcept(isnan(a)||isnan(b))) |
| Return true if either argument is NaN. | |
| template<typename T> | |
| constexpr bool | native::cmp_ord (T a, T b) noexcept(noexcept(!isnan(a) &&!isnan(b))) |
| Return true if neither argument is NaN. | |
| template<one_of_t< float, double > T> | |
| constexpr T | native::scalef (T x, T y) noexcept |
| template<CMPINT imm8, typename T> requires (one_of_t<T, uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, int64_t> && (std::size_t(imm8) < 8uz)) | |
| constexpr bool | native::cmpint (T a, T b) noexcept |
| template<CMP imm8, typename T> requires (one_of_t<T, float, double> && (std::size_t(imm8) < 32uz)) | |
| constexpr bool | native::cmp (T a, T b) noexcept |
Variables | |
| constexpr std::size_t | native::max_fp_comparison_predicate |
|
export |
returns a signed integer type of the same size as T suitable for std::bit_cast
Definition at line 580 of file native.numerics.ccm.
|
export |
returns an unsigned integer type of the same size as T suitable for std::bit_cast
Definition at line 586 of file native.numerics.ccm.
|
exportstrong |
Scalar floating-comparison predicates, including ordered and unordered truth tables.
Ordered predicates require neither operand to be NaN; unordered predicates include NaNs as indicated by their truth table. The Q/S suffixes retain the x86 encoding names, not a promise about hardware exception flags.
Definition at line 734 of file native.numerics.ccm.
|
exportstrong |
Scalar integer-comparison predicates, encoded like the corresponding x86 immediates.
Select a truth table for cmpint(); comparison uses the signedness of its operands.
| Enumerator | ||
|---|---|---|
| EQ | 0x0uz | == |
| LT | 0x1uz | < |
| LE | 0x2uz | <= |
| FALSE | 0x3uz | always false |
| NE | 0x4uz | != |
| NLT | 0x5uz | >= |
| NLE | 0x6uz | > |
| TRUE | 0x7uz | always true |
Definition at line 689 of file native.numerics.ccm.
|
inlineconstexprexportnoexcept |
Evaluate the selected ordered/unordered truth table on two float or double values. The Q/S immediate variants have the same truth values; this helper does not emulate the x86 signaling versus nonsignaling exception behavior.
Definition at line 775 of file native.numerics.ccm.
|
inlineconstexprexportnoexcept |
Return true if neither argument is NaN.
This corresponds to checking if the two arguments are "ordered" with respect to the IEEE floating point comparison predicates
Definition at line 615 of file native.numerics.ccm.
|
inlineconstexprexportnoexcept |
Return true if either argument is NaN.
This corresponds to checking if the two arguments are "unordered" with respect to the IEEE floating point comparison predicates
Definition at line 598 of file native.numerics.ccm.
|
inlineconstexprexportnoexcept |
Evaluate the selected integer truth table on two values of the same integer type. Signed and unsigned ordering follow T; the immediate selects one of eight predicates.
Definition at line 705 of file native.numerics.ccm.
|
inlineconstexprexportnoexcept |
Scale x by 2 raised to the exponent obtained by truncating y toward zero.
Definition at line 634 of file native.numerics.ccm.
|
inlineconstexprexport |
Number of floating comparison immediates selected by the compile-time AVX-512 feature macro. This constant does not query the running CPU or admit any instruction set.
Definition at line 721 of file native.numerics.ccm.