alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka::internal::EmuSimd< T_Type, T_width > Struct Template Reference

Simd array storge for vector data. More...

#include <EmuSimd.hpp>

Inheritance diagram for alpaka::internal::EmuSimd< T_Type, T_width >:

Public Types

using BaseType = std::array<T_Type, T_width>
using reference = typename BaseType::reference
using value_type = typename BaseType::value_type

Public Member Functions

constexpr EmuSimd ()=default
constexpr EmuSimd (BaseType const &base)
constexpr EmuSimd (EmuSimd &&)=default
constexpr EmuSimd (EmuSimd const &other)
template<typename F>
constexpr EmuSimd (F &&generator)
template<typename... T_Args>
constexpr EmuSimd (T_Args &&... args)
constexpr void copyFrom (T_Type const *data, alpaka::concepts::Alignment auto alignment)
constexpr void copyTo (auto *data, alpaka::concepts::Alignment auto alignment) const
constexpr EmuSimdoperator*= (EmuSimd const &rhs)
constexpr EmuSimdoperator*= (T_Type const value)
constexpr EmuSimdoperator+= (EmuSimd const &rhs)
constexpr EmuSimdoperator+= (T_Type const value)
constexpr EmuSimdoperator-= (EmuSimd const &rhs)
constexpr EmuSimdoperator-= (T_Type const value)
constexpr EmuSimdoperator/= (EmuSimd const &rhs)
constexpr EmuSimdoperator/= (T_Type const value)
constexpr EmuSimdoperator= (EmuSimd &&rhs)=default
constexpr EmuSimdoperator= (EmuSimd const &rhs)=default
constexpr EmuSimdoperator= (T_Type const value)
constexpr void update (alpaka::concepts::SimdMask auto const &mask, alpaka::concepts::Simd auto const &t)
 element wise conditional value update where t is a scalar
constexpr void update (alpaka::concepts::SimdMask auto const &mask, T_Type const &t)
 element wise conditional value update where t is a scalar
constexpr auto & asNativeType ()
 static cast the instance to the parent class
constexpr auto const & asNativeType () const
 static cast the instance to the parent class

Static Public Member Functions

static constexpr auto fill (T_Type value)

Private Member Functions

template<typename F, uint32_t... Is>
constexpr EmuSimd (F &&generator, std::integer_sequence< uint32_t, Is... >)

Friends

template<alpaka::concepts::SimdMask Mask, alpaka::concepts::Simd T_Simd>
struct SimdWhereExpr

Detailed Description

template<typename T_Type, uint32_t T_width>
struct alpaka::internal::EmuSimd< T_Type, T_width >

Simd array storge for vector data.

The storage is aligned for native simd usage.

Definition at line 36 of file EmuSimd.hpp.

Member Typedef Documentation

◆ BaseType

template<typename T_Type, uint32_t T_width>
using alpaka::internal::EmuSimd< T_Type, T_width >::BaseType = std::array<T_Type, T_width>

Definition at line 39 of file EmuSimd.hpp.

◆ reference

template<typename T_Type, uint32_t T_width>
using alpaka::internal::EmuSimd< T_Type, T_width >::reference = typename BaseType::reference

Definition at line 42 of file EmuSimd.hpp.

◆ value_type

template<typename T_Type, uint32_t T_width>
using alpaka::internal::EmuSimd< T_Type, T_width >::value_type = typename BaseType::value_type

Definition at line 41 of file EmuSimd.hpp.

Constructor & Destructor Documentation

◆ EmuSimd() [1/7]

template<typename T_Type, uint32_t T_width>
alpaka::internal::EmuSimd< T_Type, T_width >::EmuSimd ( )
constexprdefault

◆ EmuSimd() [2/7]

template<typename T_Type, uint32_t T_width>
alpaka::internal::EmuSimd< T_Type, T_width >::EmuSimd ( EmuSimd< T_Type, T_width > const & other)
inlineconstexpr

Definition at line 48 of file EmuSimd.hpp.

◆ EmuSimd() [3/7]

template<typename T_Type, uint32_t T_width>
alpaka::internal::EmuSimd< T_Type, T_width >::EmuSimd ( EmuSimd< T_Type, T_width > && )
constexprdefault

◆ EmuSimd() [4/7]

template<typename T_Type, uint32_t T_width>
template<typename... T_Args>
alpaka::internal::EmuSimd< T_Type, T_width >::EmuSimd ( T_Args &&... args)
inlineconstexpr

Definition at line 72 of file EmuSimd.hpp.

◆ EmuSimd() [5/7]

template<typename T_Type, uint32_t T_width>
alpaka::internal::EmuSimd< T_Type, T_width >::EmuSimd ( BaseType const & base)
inlineconstexpr

Definition at line 76 of file EmuSimd.hpp.

◆ EmuSimd() [6/7]

template<typename T_Type, uint32_t T_width>
template<typename F>
alpaka::internal::EmuSimd< T_Type, T_width >::EmuSimd ( F && generator)
inlineexplicitconstexpr

Definition at line 104 of file EmuSimd.hpp.

◆ EmuSimd() [7/7]

template<typename T_Type, uint32_t T_width>
template<typename F, uint32_t... Is>
alpaka::internal::EmuSimd< T_Type, T_width >::EmuSimd ( F && generator,
std::integer_sequence< uint32_t, Is... >  )
inlineexplicitconstexprprivate

Definition at line 199 of file EmuSimd.hpp.

Member Function Documentation

◆ asNativeType() [1/2]

template<typename T_Type, uint32_t T_width>
auto & alpaka::internal::EmuSimd< T_Type, T_width >::asNativeType ( )
inlineconstexpr

static cast the instance to the parent class

This method is mostly used to get access to native arithmetic and comparison operators.

Definition at line 85 of file EmuSimd.hpp.

◆ asNativeType() [2/2]

template<typename T_Type, uint32_t T_width>
auto const & alpaka::internal::EmuSimd< T_Type, T_width >::asNativeType ( ) const
inlineconstexpr

static cast the instance to the parent class

This method is mostly used to get access to native arithmetic and comparison operators.

Definition at line 90 of file EmuSimd.hpp.

◆ copyFrom()

template<typename T_Type, uint32_t T_width>
void alpaka::internal::EmuSimd< T_Type, T_width >::copyFrom ( T_Type const * data,
alpaka::concepts::Alignment auto alignment )
inlineconstexpr

Definition at line 109 of file EmuSimd.hpp.

◆ copyTo()

template<typename T_Type, uint32_t T_width>
void alpaka::internal::EmuSimd< T_Type, T_width >::copyTo ( auto * data,
alpaka::concepts::Alignment auto alignment ) const
inlineconstexpr

Definition at line 120 of file EmuSimd.hpp.

◆ fill()

template<typename T_Type, uint32_t T_width>
constexpr auto alpaka::internal::EmuSimd< T_Type, T_width >::fill ( T_Type value)
inlinestaticconstexpr

Definition at line 97 of file EmuSimd.hpp.

◆ operator*=() [1/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator*= ( EmuSimd< T_Type, T_width > const & rhs)
inlineconstexpr

Definition at line 193 of file EmuSimd.hpp.

◆ operator*=() [2/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator*= ( T_Type const value)
inlineconstexpr

Definition at line 193 of file EmuSimd.hpp.

◆ operator+=() [1/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator+= ( EmuSimd< T_Type, T_width > const & rhs)
inlineconstexpr

Definition at line 190 of file EmuSimd.hpp.

◆ operator+=() [2/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator+= ( T_Type const value)
inlineconstexpr

Definition at line 190 of file EmuSimd.hpp.

◆ operator-=() [1/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator-= ( EmuSimd< T_Type, T_width > const & rhs)
inlineconstexpr

Definition at line 191 of file EmuSimd.hpp.

◆ operator-=() [2/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator-= ( T_Type const value)
inlineconstexpr

Definition at line 191 of file EmuSimd.hpp.

◆ operator/=() [1/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator/= ( EmuSimd< T_Type, T_width > const & rhs)
inlineconstexpr

Definition at line 192 of file EmuSimd.hpp.

◆ operator/=() [2/2]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator/= ( T_Type const value)
inlineconstexpr

Definition at line 192 of file EmuSimd.hpp.

◆ operator=() [1/3]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator= ( EmuSimd< T_Type, T_width > && rhs)
constexprdefault

◆ operator=() [2/3]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator= ( EmuSimd< T_Type, T_width > const & rhs)
constexprdefault

◆ operator=() [3/3]

template<typename T_Type, uint32_t T_width>
EmuSimd & alpaka::internal::EmuSimd< T_Type, T_width >::operator= ( T_Type const value)
inlineconstexpr

Definition at line 60 of file EmuSimd.hpp.

◆ update() [1/2]

template<typename T_Type, uint32_t T_width>
void alpaka::internal::EmuSimd< T_Type, T_width >::update ( alpaka::concepts::SimdMask auto const & mask,
alpaka::concepts::Simd auto const & t )
inlineconstexpr

element wise conditional value update where t is a scalar

Definition at line 135 of file EmuSimd.hpp.

◆ update() [2/2]

template<typename T_Type, uint32_t T_width>
void alpaka::internal::EmuSimd< T_Type, T_width >::update ( alpaka::concepts::SimdMask auto const & mask,
T_Type const & t )
inlineconstexpr

element wise conditional value update where t is a scalar

Definition at line 153 of file EmuSimd.hpp.

◆ SimdWhereExpr

template<typename T_Type, uint32_t T_width>
friend struct SimdWhereExpr
friend

Definition at line 132 of file EmuSimd.hpp.


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