Class Simd

Class Documentation

class Simd

Wrapper around a target-dependent SIMD register or scalar fallback value for double.

Public Types

using value_type = double
using register_type = SimdTraits::register_type

Public Functions

inline Simd()
inline explicit Simd(value_type value)
inline explicit Simd(const value_type *src)
inline void LoadUnaligned(const value_type *src)
inline void StoreUnaligned(value_type *dst) const
inline void Scatter(value_type *dst, const SimdIndex &index) const
inline register_type native() const
inline Simd &operator+=(const Simd &other)
inline Simd &operator-=(const Simd &other)
inline Simd &operator*=(const Simd &other)
inline Simd &operator/=(const Simd &other)

Public Static Functions

static inline Simd Gather(const value_type *src, const SimdIndex &index)
static inline Simd Fma(const Simd &a, const Simd &b, const Simd &c)
static inline Simd Fnma(const Simd &a, const Simd &b, const Simd &c)

Public Static Attributes

static std::size_t size = SimdTraits::size
static std::size_t alignment = SimdTraits::register_alignment