HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
hi::v1::simd< T, N > Struct Template Reference
Inheritance diagram for hi::v1::simd< T, N >:
std::array< T, N >

Public Types

using array_type = std::array<T, N>
using value_type = T
using generic_type = array_generic<T, N>

Public Member Functions

constexpr simd (simd const &) noexcept=default
constexpr simd (simd &&) noexcept=default
constexpr simd & operator= (simd const &) noexcept=default
constexpr simd & operator= (simd &&) noexcept=default
template<array_generic_convertible_to< value_type >... Args>
requires (sizeof...(Args) == N)
constexpr simd (Args... args) noexcept
template<array_generic_convertible_to< value_type > Arg>
constexpr simd (Arg arg) noexcept
template<array_generic_convertible_to< value_type > O>
constexpr simd (std::array< O, N > a) noexcept
constexpr std::size_t mask () noexcept
constexpr value_type x () const noexcept
constexpr value_type y () const noexcept
constexpr value_type z () const noexcept
constexpr value_type w () const noexcept
constexpr value_type & x () noexcept
constexpr value_type & y () noexcept
constexpr value_type & z () noexcept
constexpr value_type & w () noexcept
constexpr value_type r () const noexcept
constexpr value_type g () const noexcept
constexpr value_type b () const noexcept
constexpr value_type a () const noexcept
constexpr value_type & r () noexcept
constexpr value_type & g () noexcept
constexpr value_type & b () noexcept
constexpr value_type & a () noexcept
constexpr value_type width () const noexcept
constexpr value_type height () const noexcept
constexpr value_type depth () const noexcept
constexpr value_type & width () noexcept
constexpr value_type & height () noexcept
constexpr value_type & depth () noexcept
constexpr simd & operator+= (array_type a) noexcept
constexpr simd & operator-= (array_type a) noexcept
constexpr simd & operator*= (array_type a) noexcept
constexpr simd & operator/= (array_type a) noexcept
constexpr simd & operator%= (array_type a) noexcept
constexpr simd & operator|= (array_type a) noexcept
constexpr simd & operator&= (array_type a) noexcept
constexpr simd & operator^= (array_type a) noexcept
Public Member Functions inherited from std::array< T, N >
max_size (T... args)
rbegin (T... args)
crend (T... args)
crbegin (T... args)
swap (T... args)
data (T... args)
back (T... args)
end (T... args)
fill (T... args)
empty (T... args)
cend (T... args)
size (T... args)
cbegin (T... args)
rend (T... args)
front (T... args)
at (T... args)
operator[] (T... args)
begin (T... args)

Static Public Member Functions

static constexpr simd make_undefined () noexcept
static constexpr simd make_zero () noexcept
static constexpr simd make_one () noexcept
static constexpr simd make_all_ones () noexcept
template<array_generic_convertible_to< value_type > Arg>
static constexpr simd broadcast (Arg arg) noexcept
static constexpr simd broadcast (array_type arg) noexcept
static constexpr simd make_mask (std::size_t mask) noexcept

Friends

constexpr friend simd operator- (array_type a) noexcept
template<std::size_t Mask>
constexpr friend simd neg_mask (array_type a) noexcept
constexpr friend simd operator~ (array_type a) noexcept
constexpr friend simd rcp (array_type a) noexcept
constexpr friend simd sqrt (array_type a) noexcept
constexpr friend simd rsqrt (array_type a) noexcept
constexpr friend simd abs (array_type a) noexcept
constexpr friend simd round (array_type a) noexcept
constexpr friend simd floor (array_type a) noexcept
constexpr friend simd ceil (array_type a) noexcept
constexpr friend simd operator+ (array_type a, array_type b) noexcept
constexpr friend simd operator- (array_type a, array_type b) noexcept
template<std::size_t Mask>
constexpr friend simd addsub_mask (array_type a, array_type b) noexcept
constexpr friend simd operator* (array_type a, array_type b) noexcept
constexpr friend simd operator/ (array_type a, array_type b) noexcept
constexpr friend simd operator% (array_type a, array_type b) noexcept
constexpr friend simd operator== (array_type a, array_type b) noexcept
constexpr friend simd operator!= (array_type a, array_type b) noexcept
constexpr friend simd operator< (array_type a, array_type b) noexcept
constexpr friend simd operator> (array_type a, array_type b) noexcept
constexpr friend simd operator<= (array_type a, array_type b) noexcept
constexpr friend simd operator>= (array_type a, array_type b) noexcept
constexpr friend bool test (array_type a, array_type b) noexcept
constexpr friend bool equal (array_type a, array_type b) noexcept
constexpr friend simd max (simd a, simd b) noexcept
constexpr friend simd min (simd a, simd b) noexcept
constexpr friend simd clamp (simd v, simd lo, simd hi) noexcept
constexpr friend simd operator| (array_type a, array_type b) noexcept
constexpr friend simd operator& (array_type a, array_type b) noexcept
constexpr friend simd operator^ (array_type a, array_type b) noexcept
constexpr friend simd sll (array_type a, unsigned int b) noexcept
constexpr friend simd sra (array_type a, unsigned int b) noexcept
constexpr friend simd srl (array_type a, unsigned int b) noexcept
constexpr friend simd operator<< (array_type a, unsigned int b) noexcept
constexpr friend simd operator>> (array_type a, unsigned int b) noexcept
constexpr friend simd andnot (array_type a, array_type b) noexcept
constexpr friend simd hadd (array_type a, array_type b) noexcept
constexpr friend simd hsub (array_type a, array_type b) noexcept
template<int... Indices>
constexpr friend simd shuffle (array_type a) noexcept
template<std::size_t Mask>
constexpr friend simd blend (array_type a, array_type b) noexcept
template<int... Indices>
constexpr friend simd swizzle (array_type a) noexcept
constexpr friend simd sum (array_type a) noexcept
template<std::size_t Mask>
constexpr friend simd dot (array_type a, array_type b) noexcept
template<std::size_t Mask>
constexpr friend simd hypot (array_type a) noexcept
template<std::size_t Mask>
constexpr friend simd rhypot (array_type a) noexcept
template<std::size_t Mask>
constexpr friend simd normalize (array_type a) noexcept
template<std::derived_from< array_type >... Columns>
constexpr friend std::array< simd, N > transpose (Columns... columns) noexcept

Additional Inherited Members

Data Fields inherited from std::array< T, N >
elements
 STL member.

The documentation for this struct was generated from the following file: