|
native 0.0.1
Vectors, masks and wide register packs for C++26
|
Range-reduced exponential over scalar, SIMD, and register-pack inputs. More...
Go to the source code of this file.
Namespaces | |
| namespace | native |
| Architecture-tagged vectors, register packs and supporting value types. Native arithmetic follows its architecture tag and instruction-set preconditions. Common utilities do not select or admit a runtime CPU profile. | |
Functions | |
| template<bool Flush = false, std::size_t L, ::native::isa<> Arch> requires (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr simd< float, L, Arch > | native::exp2 (simd< float, L, Arch > input) noexcept |
| template<bool Flush = false, std::size_t L, std::size_t N, ::native::isa<> Arch> requires (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr std::array< simd< float, L, Arch >, N > | native::exp2 (std::array< simd< float, L, Arch >, N > const &input) noexcept |
| template<bool Flush, std::size_t L, ::native::isa<> Arch> requires (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr simd< float, L, Arch > | native::exp2 (simd< float, L, Arch > input, std::bool_constant< Flush >) noexcept |
| template<bool Flush, std::size_t L, std::size_t N, ::native::isa<> Arch> requires (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr std::array< simd< float, L, Arch >, N > | native::exp2 (std::array< simd< float, L, Arch >, N > const &input, std::bool_constant< Flush >) noexcept |
| template<std::size_t L, ::native::isa<> Arch> requires (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr simd< float, L, Arch > | native::atan2 (simd< float, L, Arch > y, simd< float, L, Arch > x) noexcept |
| template<std::size_t L, std::size_t N, ::native::isa<> Arch> requires (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr std::array< simd< float, L, Arch >, N > | native::atan2 (std::array< simd< float, L, Arch >, N > const &y, std::array< simd< float, L, Arch >, N > const &x) noexcept |
| template<bool Flush = false, unsigned Degree = 6, std::size_t L, ::native::isa<> Arch> requires (Degree >= 1 && Degree <= 7) && (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr simd< float, L, Arch > | native::exp (simd< float, L, Arch > input) noexcept |
| Evaluate the binary32 range-reduced exponential approximation. Degree selects a polynomial from one through seven, defaulting to six. Every degree shares range reduction and exponent scaling; none promises correctly rounded exp for every input. Flush selects the early underflow cutoff at compile time; it does not change CPU controls or turn a raw vector into a policy-bearing FTZ type. | |
| template<bool Flush = false, unsigned Degree = 6, std::size_t L, std::size_t N, ::native::isa<> Arch> requires (Degree >= 1 && Degree <= 7) && (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr std::array< simd< float, L, Arch >, N > | native::exp (std::array< simd< float, L, Arch >, N > const &input) noexcept |
| template<bool Flush, unsigned Degree = 6, std::size_t L, std::size_t N, ::native::isa<> Arch> requires (Degree >= 1 && Degree <= 7) && (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr std::array< simd< float, L, Arch >, N > | native::exp (std::array< simd< float, L, Arch >, N > const &input, std::bool_constant< Flush >, std::integral_constant< unsigned, Degree >={}) noexcept |
| template<bool Flush, unsigned Degree = 6, std::size_t L, ::native::isa<> Arch> requires (Degree >= 1 && Degree <= 7) && (::native::avx512 <= Arch ) && ::native::detail::avx512_backend::float_shape<L> | |
| constexpr simd< float, L, Arch > | native::exp (simd< float, L, Arch > input, std::bool_constant< Flush >, std::integral_constant< unsigned, Degree >={}) noexcept |
Range-reduced exponential over scalar, SIMD, and register-pack inputs.
Definition in file exp_body.h.