ReXGlue SDK
Loading...
Searching...
No Matches
fpu.h File Reference

Vector estimates, dot product and fused multiply add. More...

#include <array>
#include <bit>
#include <cmath>
#include <simde/x86/sse4.1.h>
#include <simde/x86/fma.h>
#include <rex/types.h>

Go to the source code of this file.

Namespaces

namespace  rex
namespace  rex::ppc
namespace  rex::ppc::simd

Functions

f64 rex::ppc::ReciprocalEstimate (f64 x) noexcept
f64 rex::ppc::ReciprocalSqrtEstimate (f64 x) noexcept
simde__m128 rex::ppc::simd::ReciprocalEstimate (simde__m128 v) noexcept
simde__m128 rex::ppc::simd::ReciprocalSqrtEstimate (simde__m128 v) noexcept
simde__m128 rex::ppc::simd::Log2Estimate (simde__m128 v) noexcept
simde__m128 rex::ppc::simd::Exp2Estimate (simde__m128 v) noexcept
template<bool NonJava>
simde__m128 rex::ppc::simd::ReciprocalEstimate (simde__m128 v) noexcept
simde__m128 rex::ppc::simd::ReciprocalEstimate (simde__m128 v, bool non_java) noexcept
template<bool NonJava>
simde__m128 rex::ppc::simd::ReciprocalSqrtEstimate (simde__m128 v) noexcept
simde__m128 rex::ppc::simd::ReciprocalSqrtEstimate (simde__m128 v, bool non_java) noexcept
template<bool NonJava>
simde__m128 rex::ppc::simd::Log2Estimate (simde__m128 v) noexcept
simde__m128 rex::ppc::simd::Log2Estimate (simde__m128 v, bool non_java) noexcept
simde__m128 rex::ppc::simd::Exp2Estimate (simde__m128 v, bool non_java) noexcept
simde__m128 rex::ppc::simd::DotProduct3 (simde__m128 a, simde__m128 b) noexcept
simde__m128 rex::ppc::simd::DotProduct3 (simde__m128 a, simde__m128 b, bool non_java) noexcept
simde__m128 rex::ppc::simd::DotProduct4 (simde__m128 a, simde__m128 b) noexcept
simde__m128 rex::ppc::simd::DotProduct4 (simde__m128 a, simde__m128 b, bool non_java) noexcept
simde__m128 rex::ppc::simd::MultiplyAdd (simde__m128 a, simde__m128 b, simde__m128 c) noexcept
simde__m128 rex::ppc::simd::MultiplyAdd (simde__m128 a, simde__m128 b, simde__m128 c, bool non_java) noexcept
simde__m128 rex::ppc::simd::NegativeMultiplySubtract (simde__m128 a, simde__m128 b, simde__m128 c) noexcept
simde__m128 rex::ppc::simd::NegativeMultiplySubtract (simde__m128 a, simde__m128 b, simde__m128 c, bool non_java) noexcept

Variables

constexpr u64 rex::ppc::kScalarReciprocalTable [128]
constexpr u64 rex::ppc::kScalarReciprocalSqrtTable [16]
constexpr u32 rex::ppc::simd::kReciprocalBase [32]
constexpr i32 rex::ppc::simd::kReciprocalSlope [32]
constexpr u32 rex::ppc::simd::kReciprocalSqrtBase [32]
constexpr i32 rex::ppc::simd::kReciprocalSqrtSlope [32]
constexpr i32 rex::ppc::simd::kLog2Base [16]
constexpr i32 rex::ppc::simd::kLog2Slope [16]
constexpr u16 rex::ppc::simd::kExp2Positive [2048]
constexpr u32 rex::ppc::kSign32 = 0x80000000u
constexpr u32 rex::ppc::kQuiet32 = 0x00400000u
constexpr u32 rex::ppc::kInfinity32 = 0x7F800000u
constexpr u32 rex::ppc::kQNaN32 = 0x7FC00000u
constexpr u64 rex::ppc::kSign64 = 0x8000000000000000ull
constexpr u64 rex::ppc::kQuiet64 = 0x0008000000000000ull
constexpr u64 rex::ppc::kMantissa64 = 0x000FFFFFFFFFFFFFull
constexpr u64 rex::ppc::kInfinity64 = 0x7FF0000000000000ull
constexpr u64 rex::ppc::kQNaN64 = 0x7FF8000000000000ull

Detailed Description

Vector estimates, dot product and fused multiply add.

License
BSD 3-Clause License See LICENSE file in the project root for full license text.