alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka Namespace Reference

main alpaka namespace. More...

Namespaces

namespace  action
namespace  api
namespace  concepts
namespace  core
namespace  deviceKind
namespace  exec
namespace  fn
 alpaka'S function interface
namespace  layer
namespace  math
namespace  meta
namespace  object
namespace  onAcc
 functionality which is usable on the accelerator compute device from within a kernel.
namespace  onHost
 Functionality which is usable on the host CPU controller thread.
namespace  operation
 Contains functors with operation following the atomic operation semantics.
namespace  queueKind
namespace  rand
namespace  trait

Classes

struct  Alignment
 Strongly typed and constexpr representation of a byte-alignment of memory. More...
struct  ArrayStorage
 Array storge for vector data. More...
struct  BoundaryDirection
 An n-dimensional boundary direction. More...
struct  BoundaryDirectionIter
 The iterator type for BoundaryDirectionsContainer. More...
struct  BoundaryDirectionsContainer
 A container for boundary directions of an n-dimensional volume. More...
struct  CArrayType
 build C array type with compile time extents from a scalar value based on the compile time extents vector More...
struct  CArrayType< T, T_Extents, 1u, T_dim >
struct  DataPitches
struct  DataPitches< T_Type, Vec< T_IndexType, 1u, T_Storage > >
struct  Dict
struct  Dict< DictEntry< T_Keys, T_Values >... >
struct  DictEntry
struct  Empty
struct  IdxRange
class  KernelBundle
 The class used to bind kernel function object and arguments together. Once an instance of this class is created, arguments are not needed to be separately given to functions who need kernel function and arguments. More...
struct  LinearizedIdxGenerator
 Generate a linearized scalar index. More...
class  MdForwardIter
class  MdForwardIterEnd
 special implementation to define the end More...
struct  MdSpan
 Lightweight view to data in an n-dimensional array. More...
struct  MdSpanArray
struct  MdSpanArray< T_ArrayType, T_IndexType, T_MemAlignment >
struct  NotRequired
 This type is used in cases where a template type parameter is not required and can optionally be passed to a trait or concept. More...
struct  remove_restrict
 Removes restrict from a type. More...
struct  remove_restrict< T *__restrict__ >
struct  ResolveArrayAccess
 access a C array with compile time extents via a runtime md index. More...
struct  ResolveArrayAccess< 1u, T_dim >
struct  ScalarFunc
 Marks a functor that can only be executed with scalar types and not SIMD packages. More...
struct  Simd
 Simd vector. More...
struct  SimdMask
 Simd mask vector. More...
struct  SimdPtr
 pointer to a SIMD pack with the width T_SimdWidth More...
struct  SimdWhereExpr
struct  StencilFunc
 Marks a functor which supports SimdPtr as arguments. More...
struct  Tag
struct  ThreadSpace
struct  Tuple
 basic tuple implementation More...
class  UniqueId
struct  Vec
struct  Vec< Type, 0 >
struct  View
 Non owning view to data. More...

Typedefs

using AutoAligned = Alignment<>
template<typename T, T... T_values>
using CVec = Vec<T, sizeof...(T_values), detail::CVec<T, T_values...>>
 A vector with compile-time known values.
template<typename T>
using remove_restrict_t = typename remove_restrict<T>::type
 Helper to remove restrict from a type.
template<typename T>
using RemoveVolatileFromPointer_t = std::add_pointer_t<std::remove_volatile_t<std::remove_pointer_t<T>>>

Enumerations

enum class  BoundaryType : uint32_t {
  LOWER ,
  MIDDLE ,
  UPPER ,
  OOB
}
 An enum representing the different types of boundary, with LOWER, MIDDLE, and UPPER being valid states, and OOB being invalid (out-of-bounds). More...

Functions

constexpr void alpakaSimdizedInvoke (auto &&fn, auto &&... args)
 Invokes the callable object fn with the parameters args.
template<typename T_Func, typename T_TupleLike>
ALPAKA_FN_INLINE constexpr decltype(auto) apply (T_Func &&func, T_TupleLike &&tuple)
 Applies a function to the elements of a tuple-like object.
template<concepts::Vector LowHaloVecType, concepts::Vector UpHaloVecType>
 BoundaryDirectionsContainer (LowHaloVecType const &lowerHalos, UpHaloVecType const &upperHalos) -> BoundaryDirectionsContainer< LowHaloVecType::dim(), LowHaloVecType, UpHaloVecType >
template<typename T_Elem, alpaka::concepts::Vector T_Vec>
constexpr auto calculatePitches (T_Vec const &extent, typename T_Vec::type const &rowPitchBytes)
 Calculate the pitches purely from the extents.
template<typename T_Elem, alpaka::concepts::Vector T_Vec>
constexpr auto calculatePitchesFromExtents (T_Vec const &extent)
 Calculate the pitches purely from the extents.
constexpr int32_t clz (auto const &arg)
template<bool condition, typename... T_Entries0, typename... T_Entries1>
constexpr auto conditionalAppendDict (Dict< T_Entries0... > const &dict0, Dict< T_Entries1... > const &dict1)
template<typename... T_Keys, typename... T_Values>
ALPAKA_FN_HOST_ACC Dict (DictEntry< T_Keys, T_Values > const &...) -> Dict< DictEntry< T_Keys, T_Values >... >
template<typename... T_Keys, typename... T_Values>
ALPAKA_FN_HOST_ACC Dict (Tuple< DictEntry< T_Keys, T_Values >... > const &) -> Dict< DictEntry< T_Keys, T_Values >... >
template<std::integral Integral>
ALPAKA_FN_HOST_ACC constexpr auto divCeil (Integral a, Integral b) -> Integral
 Returns the ceiling of a / b, as integer.
template<concepts::Vector T_Vector0, concepts::Vector T_Vector1>
ALPAKA_FN_HOST_ACC constexpr concepts::Vector auto divCeil (T_Vector0 a, T_Vector1 b)
template<std::integral Integral>
ALPAKA_FN_HOST_ACC constexpr auto divExZero (Integral a, Integral b) -> Integral
 Returns the max(a / b, 1) as integer.
template<concepts::Vector T_Vector0, concepts::Vector T_Vector1>
ALPAKA_FN_HOST_ACC constexpr concepts::Vector auto divExZero (T_Vector0 a, T_Vector1 b)
constexpr int32_t ffs (auto const &arg)
template<typename T, uint32_t T_dim, T T_val>
consteval auto fillCVec ()
 Create and return a CVector of some length, filled with the given value.
constexpr auto filter (concepts::CVector auto left, concepts::CVector auto right)
 Filter the left vector with the right vector's values.
template<std::integral T>
constexpr T firstSetBit (T value)
template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 1u)
constexpr auto & get (alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > &v)
template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 0u)
constexpr auto & get (alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > &v)
template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 1u)
constexpr auto get (alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > const &v)
template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 0u)
constexpr auto get (alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > const &v)
template<size_t T_idx>
constexpr decltype(auto) get (concepts::SpecializationOf< Dict > auto &t) noexcept
template<size_t T_idx>
constexpr decltype(auto) get (concepts::SpecializationOf< Dict > auto const &t) noexcept
template<size_t T_idx>
constexpr decltype(auto) get (concepts::SpecializationOf< Tuple > auto &&t) noexcept
template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
constexpr auto & get (Simd< T_Type, T_width, T_Storage > &v)
template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
constexpr auto get (Simd< T_Type, T_width, T_Storage > const &v)
template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
constexpr auto & get (SimdMask< T_Type, T_width, T_Storage > &v)
template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
constexpr auto get (SimdMask< T_Type, T_width, T_Storage > const &v)
template<std::size_t I, typename T_Type, uint32_t T_dim, typename T_Storage>
constexpr decltype(auto) get (Vec< T_Type, T_dim, T_Storage > &v)
template<std::size_t I, typename T_Type, uint32_t T_dim, typename T_Storage>
constexpr auto get (Vec< T_Type, T_dim, T_Storage > const &v)
template<typename T_Type>
consteval uint32_t getAdjustedAlignment (concepts::Api auto const api, concepts::DeviceKind auto const deviceType, auto const alignment)
 Adjusts the memory alignment based on a specific API and device kind.
constexpr auto getAlignment (auto &&any)
 Get the value type alignment of an object.
template<typename T_Type>
constexpr uint32_t getArchSimdWidth (auto &&any)
 get SIMD with in bytes for the
template<typename T_Type>
consteval uint32_t getArchSimdWidth (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 Get the SIMD width in bytes for an API and device kind combination.
consteval uint32_t getCachelineSize (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 get the cacheline size in bytes
template<typename T>
consteval uint32_t getDim (T const &any)
template<typename T_Key, typename T_Tuple>
consteval ssize_t getIdx (T_Tuple &&, T_Key const &=T_Key{})
template<typename T_Type>
constexpr uint32_t getNumElemPerThread (auto &&any)
 Get the number of elements to compute per thread.
template<typename T_Type>
consteval uint32_t getNumElemPerThread (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 Get the number of elements to compute per thread.
constexpr uint32_t getNumPipelines (auto &&any)
 get the number of instruction can be issued in parallel
consteval uint32_t getNumPipelines (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 Get the number of instructions that can be issued in parallel.
template<typename T_Key, typename T_Tuple>
constexpr decltype(auto) getTag (T_Tuple &&t, T_Key const &=T_Key{})
template<typename T>
consteval auto getVec (T const &any)
template<typename T_Key, typename T_Tuple>
consteval bool hasTag (T_Tuple &&, T_Key const &=T_Key{})
template<concepts::VectorOrScalar T_Begin, concepts::VectorOrScalar T_End>
ALPAKA_FN_HOST_ACC IdxRange (T_Begin const &, T_End const &) -> IdxRange< typename trait::getVec_t< T_Begin >::UniVec, typename trait::getVec_t< T_End >::UniVec, typename trait::getVec_t< T_End >::UniVec >
template<concepts::VectorOrScalar T_Begin, concepts::VectorOrScalar T_End, concepts::VectorOrScalar T_Stride>
ALPAKA_FN_HOST_ACC IdxRange (T_Begin const &, T_End const &, T_Stride const &) -> IdxRange< typename trait::getVec_t< T_Begin >::UniVec, typename trait::getVec_t< T_End >::UniVec, typename trait::getVec_t< T_Stride >::UniVec >
template<concepts::VectorOrScalar T_Extents>
ALPAKA_FN_HOST_ACC IdxRange (T_Extents const &) -> IdxRange< typename trait::getVec_t< T_Extents >::UniVec >
template<typename Integral, typename = std::enable_if_t<std::is_integral_v<Integral>>>
ALPAKA_FN_HOST_ACC constexpr auto intPow (Integral base, Integral n) -> Integral
 Computes the nth power of base, in integers.
template<typename T, uint32_t T_dim>
consteval auto iotaCVec ()
 Create and return a CVector of the given length with values 1, 2, ...
constexpr auto ipow (std::integral auto const base, std::integral auto const exponent)
 Helper function calculating the integer power for the given base and exponent.
template<typename T_Exec>
consteval bool isSeqExecutor (T_Exec exec)
 check if a executor can only be used with a single thread per block
template<typename... T_Entries0, typename... T_Entries1>
constexpr auto joinDict (Dict< T_Entries0... > const &dict0, Dict< T_Entries1... > const &dict1)
template<std::size_t... idx0, std::size_t... idx1, typename T_Dict0, typename T_Dict1>
constexpr auto joinDictHelper (std::index_sequence< idx0... >, std::index_sequence< idx1... >, T_Dict0 dict0, T_Dict1 dict1)
template<typename TKernelFn, typename... TArgs>
ALPAKA_FN_HOST KernelBundle (TKernelFn const &, TArgs &&...) -> KernelBundle< TKernelFn, TArgs... >
 User defined deduction guide with trailing return type. For CTAD during the construction.
template<concepts::VectorOrScalar T_Extents>
ALPAKA_FN_HOST_ACC LinearizedIdxGenerator (T_Extents const &) -> LinearizedIdxGenerator< trait::GetValueType_t< T_Extents >, trait::getDim_v< T_Extents > >
template<typename T_To>
requires (isLosslesslyConvertible_v<typename ALPAKA_TYPEOF(input)::type, T_To>)
constexpr decltype(auto) lpCast (auto &&input)
 Performs a static_cast on the storage type of combined data type.
template<uint32_t T_dim>
constexpr auto makeBoundaryDirIterator ()
 Construct and return a BoundaryDirectionsContainer.
constexpr auto makeBoundaryDirIterator (concepts::IView auto const &view)
 Construct and return a BoundaryDirectionsContainer for the given view with default (size 1) halo sizes.
constexpr auto makeBoundaryDirIterator (concepts::Vector auto const &haloSizes)
 Construct and return a boundary direction container with the given halo sizes.
constexpr auto makeBoundaryDirIterator (concepts::Vector auto const &lowerHaloSizes, concepts::Vector auto const &upperHaloSizes)
 Construct and return a BoundaryDirectionsContainer with the given halo sizes.
template<uint32_t T_dim>
consteval auto makeCoreBoundaryDirection ()
 Construct and return a single BoundaryDirection specifying the middle of a volume with all halo sizes set to 1.
template<uint32_t T_dim>
constexpr auto makeCoreBoundaryDirection (concepts::Vector auto const &halos)
 Construct and return a single BoundaryDirection specifying the middle of a volume with symmetric halos.
template<uint32_t T_dim>
constexpr auto makeCoreBoundaryDirection (concepts::Vector auto const &lowerHalos, concepts::Vector auto const &upperHalos)
 Construct and return a single BoundaryDirection specifying the middle of a volume.
template<uint32_t T_dim, alpaka::concepts::Vector T_LowHaloVec, alpaka::concepts::Vector T_UpHaloVec>
constexpr auto makeDirectionSubRange (auto const range, alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec > const &boundaryDir)
constexpr auto makeMdSpan (auto &&any)
template<concepts::Alignment T_MemAlignment = Alignment<>>
constexpr auto makeMdSpan (auto *pointer, concepts::Vector auto const &extents, concepts::Vector auto const &pitchBytes, T_MemAlignment const memAlignment=T_MemAlignment{})
template<typename T_ValueType, concepts::Alignment T_MemAlignment = Alignment<>>
constexpr auto makeMdSpan (T_ValueType *pointer, concepts::Vector auto const &extents, T_MemAlignment const memAlignment=T_MemAlignment{})
template<uint32_t T_width>
constexpr auto makeSimdized (auto &&value)
 Transform a type into a SIMD-optimized data structure.
template<typename T, typename... T_Args>
constexpr auto makeSimdMask (T_Args... args)
 Creates a mask for the given type.
constexpr auto makeTuple (auto &&... args)
constexpr auto makeView (auto &&any)
template<typename T_ValueType, concepts::Alignment T_MemAlignment = Alignment<>>
constexpr auto makeView (auto &&anyWithApi, T_ValueType *pointer, concepts::Vector auto const &extents, concepts::Vector auto const &pitches, T_MemAlignment const memAlignment=T_MemAlignment{})
template<typename T_ValueType, concepts::Alignment T_MemAlignment = Alignment<>>
constexpr auto makeView (auto &&anyWithApi, T_ValueType *pointer, concepts::Vector auto const &extents, T_MemAlignment const memAlignment=T_MemAlignment{})
template<alpaka::concepts::IMdSpan T_MdSpan>
ALPAKA_FN_HOST_ACC MdForwardIterEnd (T_MdSpan const &) -> MdForwardIterEnd< typename T_MdSpan::index_type >
template<typename Integral, typename = std::enable_if_t<std::is_integral_v<Integral>>>
ALPAKA_FN_HOST_ACC constexpr auto nthRootFloor (Integral value, Integral n) -> Integral
 Computes the floor of the nth root of value, in integers.
constexpr bool operator!= (concepts::Executor auto lhs, concepts::Executor auto rhs)
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator!= (const SimdMask< T_Type, T_width, T_Storage > &lhs, const SimdMask< T_Type, T_width, T_OtherStorage > &rhs)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator!= (const SimdMask< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
template<typename T_MdSpan>
constexpr bool operator!= (MdForwardIter< T_MdSpan > const &mdIter, MdForwardIterEnd< typename T_MdSpan::index_type > const &mdIteratorEnd)
template<typename T_MdSpan>
constexpr bool operator!= (MdForwardIterEnd< typename T_MdSpan::index_type > const &mdIteratorEnd, MdForwardIter< T_MdSpan > const &mdIter)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator!= (T_ValueType lhs, const SimdMask< T_Type, T_width, T_Storage > &rhs)
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator& (const SimdMask< T_Type, T_width, T_Storage > &lhs, const SimdMask< T_Type, T_width, T_OtherStorage > &rhs)
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator& (const SimdMask< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator& (T_ValueType lhs, const SimdMask< T_Type, T_width, T_Storage > &rhs)
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator&& (const SimdMask< T_Type, T_width, T_Storage > &lhs, const SimdMask< T_Type, T_width, T_OtherStorage > &rhs)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator&& (const SimdMask< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator&& (T_ValueType lhs, const SimdMask< T_Type, T_width, T_Storage > &rhs)
std::ostream & operator<< (std::ostream &os, concepts::BoundaryDirection auto const &bd)
template<typename T_Type, concepts::Vector T_Extents, concepts::Vector T_Pitches, concepts::Alignment T_MemAlignment>
std::ostream & operator<< (std::ostream &s, MdSpan< T_Type, T_Extents, T_Pitches, T_MemAlignment > const &mdSpan)
template<typename Type, uint32_t T_width, typename T_Storage>
std::ostream & operator<< (std::ostream &s, Simd< Type, T_width, T_Storage > const &vec)
template<typename Type, uint32_t T_width, typename T_Storage>
std::ostream & operator<< (std::ostream &s, SimdMask< Type, T_width, T_Storage > const &vec)
template<typename Type, uint32_t T_dim, typename T_Storage>
std::ostream & operator<< (std::ostream &s, Vec< Type, T_dim, T_Storage > const &vec)
template<typename T_Api, typename T_Type, concepts::Vector T_Extents, concepts::Alignment T_MemAlignment>
std::ostream & operator<< (std::ostream &s, View< T_Api, T_Type, T_Extents, T_MemAlignment > const &view)
constexpr bool operator== (concepts::Executor auto lhs, concepts::Executor auto rhs)
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator== (const SimdMask< T_Type, T_width, T_Storage > &lhs, const SimdMask< T_Type, T_width, T_OtherStorage > &rhs)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator== (const SimdMask< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
template<typename T_MdSpan>
constexpr bool operator== (MdForwardIter< T_MdSpan > const &mdIter, MdForwardIterEnd< typename T_MdSpan::index_type > const &mdIteratorEnd)
template<typename T_MdSpan>
constexpr bool operator== (MdForwardIterEnd< typename T_MdSpan::index_type > const &mdIteratorEnd, MdForwardIter< T_MdSpan > const &mdIter)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator== (T_ValueType lhs, const SimdMask< T_Type, T_width, T_Storage > &rhs)
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator^ (const SimdMask< T_Type, T_width, T_Storage > &lhs, const SimdMask< T_Type, T_width, T_OtherStorage > &rhs)
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator^ (const SimdMask< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator^ (T_ValueType lhs, const SimdMask< T_Type, T_width, T_Storage > &rhs)
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator| (const SimdMask< T_Type, T_width, T_Storage > &lhs, const SimdMask< T_Type, T_width, T_OtherStorage > &rhs)
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator| (const SimdMask< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator| (T_ValueType lhs, const SimdMask< T_Type, T_width, T_Storage > &rhs)
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator|| (const SimdMask< T_Type, T_width, T_Storage > &lhs, const SimdMask< T_Type, T_width, T_OtherStorage > &rhs)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator|| (const SimdMask< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator|| (T_ValueType lhs, const SimdMask< T_Type, T_width, T_Storage > &rhs)
template<typename T_To>
requires (isConvertible_v<typename ALPAKA_TYPEOF(input)::type, T_To>)
constexpr decltype(auto) pCast (auto &&input)
 Performs a static_cast on the storage type of combined data type.
constexpr int32_t popcount (auto const &arg)
 Returns the number of bits set to 1.
template<std::integral T>
constexpr T roundDownToPowerOfTwo (T value)
 round to the next power of two which is equal or lower to the value
template<typename T_Func>
ALPAKA_FN_HOST_ACC ScalarFunc (T_Func &&) -> ScalarFunc< T_Func >
template<typename T_1, typename... T_Args>
ALPAKA_FN_HOST_ACC Simd (T_1, T_Args...) -> Simd< T_1, uint32_t(sizeof...(T_Args)+1u)>
template<typename T_1, typename... T_Args>
ALPAKA_FN_HOST_ACC SimdMask (T_1, T_Args...) -> SimdMask< T_1, uint32_t(sizeof...(T_Args)+1u)>
template<typename T_Func>
ALPAKA_FN_HOST_ACC StencilFunc (T_Func &&) -> StencilFunc< T_Func >
constexpr auto thisApi ()
 provides the API used during the execution of the current code path
template<typename T>
auto * toVoidPtr (T inPtr)
 Cast a pointer that may or may not point to volatile memory to a (void*) or (void const*).
template<typename... T_Args>
 Tuple (T_Args &&...) -> Tuple< T_Args... >
consteval size_t uniqueId (std::source_location const location=std::source_location::current())
 creates a unique id on any call
template<typename T>
constexpr decltype(auto) unWrapp (T &&value)
template<typename T_1, typename... T_Args>
ALPAKA_FN_HOST_ACC Vec (T_1, T_Args...) -> Vec< T_1, uint32_t(sizeof...(T_Args)+1u), ArrayStorage< T_1, uint32_t(sizeof...(T_Args)+1u)> >
template<alpaka::concepts::HasApi T_Any, typename T_Type, alpaka::concepts::Vector T_UserExtents, alpaka::concepts::Vector T_UserPitches, alpaka::concepts::Alignment T_MemAlignment>
ALPAKA_FN_HOST_ACC View (T_Any const &, T_Type *, T_UserExtents const &, T_UserPitches const &, T_MemAlignment const memAlignment) -> View< ALPAKA_TYPEOF(getApi(std::declval< T_Any >())), T_Type, typename T_UserPitches::UniVec, T_MemAlignment >
template<alpaka::concepts::HasApi T_Any, typename T_Type, alpaka::concepts::Vector T_UserExtents, alpaka::concepts::Vector T_UserPitches>
ALPAKA_FN_HOST_ACC View (T_Any, T_Type *, T_UserExtents const &, T_UserPitches const &) -> View< ALPAKA_TYPEOF(getApi(std::declval< T_Any >())), T_Type, typename T_UserPitches::UniVec, Alignment<> >
template<concepts::SimdMask T_Mask, concepts::Simd T_Simd>
constexpr SimdWhereExpr< T_Mask, T_Simd > where (T_Mask const &mask, T_Simd &value)
 Conditionally update each component of an SIMD pack.
template<typename T_Acc, typename T_Functor, typename... T_Args>
constexpr auto callFunctor (T_Acc const &acc, T_Functor &&functor, T_Args &&... args)
 Execute the functor with or without an accelerator as first argument.
constexpr decltype(auto) getExecutor (auto &&any)
 Get the executor associated with an object.
constexpr decltype(auto) getExecutor (alpaka::concepts::HasGet auto &&any)
 Get the executor associated with an object.
constexpr decltype(auto) getApi (auto &&any)
 Get the API an object depends on.
constexpr decltype(auto) getApi (alpaka::concepts::HasGet auto &&any)
 Get the API an object depends on.
constexpr decltype(auto) getDeviceKind (auto &&any)
 Get the device type of an object.
constexpr decltype(auto) getDeviceKind (alpaka::concepts::HasGet auto &&any)
 Get the device type of an object.
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator+ (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator+ (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator+ (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator- (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator- (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator- (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator* (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator* (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator* (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator/ (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator/ (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator/ (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator% (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator% (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator% (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator<< (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator<< (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator<< (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator>> (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator>> (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator>> (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator& (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator& (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator& (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator| (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator| (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator| (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator^ (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator^ (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator^ (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator>= (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator>= (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator>= (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator> (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator> (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator> (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator<= (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator<= (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator<= (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator< (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator< (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator< (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator== (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator== (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator== (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
constexpr auto operator!= (const Simd< T_Type, T_width, T_Storage > &lhs, const Simd< T_Type, T_width, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator!= (const Simd< T_Type, T_width, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
constexpr auto operator!= (T_ValueType lhs, const Simd< T_Type, T_width, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator+ (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator+ (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator+ (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator- (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator- (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator- (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator* (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator* (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator* (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator/ (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator/ (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator/ (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator>= (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator>= (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator>= (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator> (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator> (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator> (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator<= (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator<= (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator<= (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator< (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator< (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator< (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator&& (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator&& (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator&& (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator|| (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator|| (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator|| (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator% (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator% (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator% (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator<< (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator<< (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator<< (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator>> (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator>> (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator>> (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator& (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator& (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator& (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator| (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator| (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator| (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
constexpr auto operator^ (const Vec< T_Type, T_dim, T_Storage > &lhs, const Vec< T_Type, T_dim, T_OtherStorage > &rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator^ (const Vec< T_Type, T_dim, T_Storage > &lhs, T_ValueType rhs)
 binary operators
template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
constexpr auto operator^ (T_ValueType lhs, const Vec< T_Type, T_dim, T_Storage > &rhs)
 binary operators
template<std::integral T_IntegralType, typename T_Storage, typename T_OtherStorage, uint32_t T_dim>
requires (T_dim >= 2u)
constexpr T_IntegralType linearize (Vec< T_IntegralType, T_dim - 1u, T_Storage > const &dim, Vec< T_IntegralType, T_dim, T_OtherStorage > const &idx)
 Give the linear index of an N-dimensional index within an N-dimensional index space.
template<std::integral T_IntegralType, typename T_Storage, typename T_OtherStorage, uint32_t T_dim>
constexpr T_IntegralType linearize (Vec< T_IntegralType, T_dim, T_Storage > const &dim, Vec< T_IntegralType, T_dim, T_OtherStorage > const &idx)
 Give the linear index of an N-dimensional index within an N-dimensional index space.
template<std::integral T_IntegralType, typename T_Storage, typename T_OtherStorage>
ALPAKA_FN_HOST_ACC T_IntegralType linearize (Vec< T_IntegralType, 1u, T_Storage > const &, Vec< T_IntegralType, 1u, T_OtherStorage > const &idx)
 Give the linear index of an N-dimensional index within an N-dimensional index space.
template<std::integral T_IntegralType, typename T_Storage, uint32_t T_dim>
requires (T_dim >= 2u)
constexpr Vec< T_IntegralType, T_dim > mapToND (Vec< T_IntegralType, T_dim, T_Storage > const &extents, T_IntegralType linearIdx)
 Maps a linear index to an N-dimensional index.
template<std::integral T_IntegralType, typename T_Storage>
constexpr Vec< T_IntegralType, 1u > mapToND (Vec< T_IntegralType, 1u, T_Storage > const &extents, T_IntegralType linearIdx)
 Maps a linear index to an N-dimensional index.

Variables

template<typename T, typename U>
constexpr auto is_decayed_v = std::is_same_v<std::decay_t<T>, std::decay_t<U>>
 Provides a decaying wrapper around std::is_same. Example: is_decayed_v<volatile float, float> returns true.
template<typename T_Type>
constexpr bool isAlignment_v = trait::IsAlignment<T_Type>::value
template<typename T_Type>
constexpr bool isApi_v = trait::IsApi<T_Type>::value
template<typename T>
constexpr bool isBoundaryDirection_v = trait::IsBoundaryDirection<T>::value
template<typename T_From, typename T_To>
constexpr bool isConvertible_v = concepts::Convertible<T_From, T_To>
template<typename T>
constexpr bool isCVector_v = trait::IsCVector<T>::value
template<typename T>
constexpr bool isExecutor = trait::IsExecutor<T>::value
template<typename T>
constexpr bool isIndexRange_v = trait::IsIndexRange<T>::value
template<typename T>
constexpr bool isKernelArgumentTriviallyCopyable_v = trait::IsKernelArgumentTriviallyCopyable<T>::value
template<typename T>
constexpr bool isKernelBundle_v = trait::IsKernelBundle<T>::value
template<typename T>
constexpr bool isKernelTriviallyCopyable_v = trait::IsKernelTriviallyCopyable<T>::value
template<typename T>
constexpr bool isLazyIndexRange_v = trait::IsLazyIndexRange<T>::value
template<typename T_From, typename T_To>
constexpr bool isLosslesslyConvertible_v = concepts::LosslesslyConvertible<T_From, T_To>
template<typename T>
constexpr bool isSimd_v = trait::IsSimd<T>::value
template<typename T>
constexpr bool isSimdMask_v = trait::IsSimdMask<T>::value
template<typename T>
constexpr bool isSimdPtr_v = trait::IsSimdPtr<T>::value
template<typename T>
constexpr bool isVector_v = trait::IsVector<T>::value
constexpr uint32_t notRequiredDim = std::numeric_limits<uint32_t>::max()
constexpr uint32_t notRequiredWidth = notRequiredDim
template<typename T, template< typename... > typename U>
constexpr bool isSpecializationOf_v = std::false_type{}
 checks if T is a instance of U
template<template< typename... > typename U, typename... Vs>
constexpr bool isSpecializationOf_v< U< Vs... >, U > = std::true_type{}
 checks if T is a instance of U

Detailed Description

main alpaka namespace.

namespace onHost::* contains all functionality which is usable on the host CPU controller thread. namespace onAcc::* contains all functionality which is usable on the accelerator compute device from within a kernel. namespace alpaka contains all functionality which is generic and can be used from within the host controller thread and within compute device kernels.

Typedef Documentation

◆ AutoAligned

Definition at line 60 of file Alignment.hpp.

◆ CVec

template<typename T, T... T_values>
using alpaka::CVec = Vec<T, sizeof...(T_values), detail::CVec<T, T_values...>>

A vector with compile-time known values.

A CVec is guaranteed to be constexpr, because all of its values are stored in the type. A CVec instance satisfies the alpaka::concept::Vector. Some ways to create common types of vectors are fillCVec() and iotaCVec().

Template Parameters
TThe type of the vector's stored values
T_valuesList of values of type T that the vector stores; the length of the vector is inferred from the length of this list

Definition at line 31 of file CVec.hpp.

◆ remove_restrict_t

template<typename T>
using alpaka::remove_restrict_t = typename remove_restrict<T>::type

Helper to remove restrict from a type.

Definition at line 34 of file RemoveRestrict.hpp.

◆ RemoveVolatileFromPointer_t

template<typename T>
using alpaka::RemoveVolatileFromPointer_t = std::add_pointer_t<std::remove_volatile_t<std::remove_pointer_t<T>>>

Definition at line 23 of file util.hpp.

Enumeration Type Documentation

◆ BoundaryType

enum class alpaka::BoundaryType : uint32_t
strong

An enum representing the different types of boundary, with LOWER, MIDDLE, and UPPER being valid states, and OOB being invalid (out-of-bounds).

Enumerator
LOWER 
MIDDLE 
UPPER 
OOB 

Definition at line 24 of file BoundaryIter.hpp.

Function Documentation

◆ alpakaSimdizedInvoke()

void alpaka::alpakaSimdizedInvoke ( auto && fn,
auto &&... args )
constexpr

Invokes the callable object fn with the parameters args.

For structured data where each component is a SIMD pack, the functor should be forwarded to the members while recursively calling alpakaSimdizedInvoke. As soon as there is no use specialization available, the recursion is terminated by the invocation of the functor with the forwarded arguments. This function can be specialized within the namespace of the argument types and will be found via ADL.

See also
makeSimdized should be specialized together with this function.

As shown in the code snippet, alpaka assumes at least a specialization where each argument can perform the same access used within the function. It is allowed to specialize more function signatures that do not follow the rule but are useful within the user code.

// A typical case of how this specialization is called is
// `alpakaSimdizedInvoke(f, Pos<int>{}, Pos<alpaka::Simd<int,4>>{})`.
constexpr void alpakaSimdizedInvoke(auto&& f, alpaka::concepts::SpecializationOf<Pos> auto&&... args)
{
// Accessing .x and .y must be supported by all arguments.
}
#define ALPAKA_FORWARD(instance)
Perfectly forward an instance as argument.
Definition common.hpp:148
Validates if T is a specialization of the unspecialized template type U.
Definition utility.hpp:118
constexpr void alpakaSimdizedInvoke(auto &&fn, auto &&... args)
Invokes the callable object fn with the parameters args.
Definition simdized.hpp:81
Parameters
fnCallable object to which the arguments will be forwarded.
argsArguments forwarded to fn.

Definition at line 81 of file simdized.hpp.

◆ apply()

template<typename T_Func, typename T_TupleLike>
ALPAKA_FN_INLINE constexpr decltype(auto) alpaka::apply ( T_Func && func,
T_TupleLike && tuple )
constexpr

Applies a function to the elements of a tuple-like object.

This function forwards the function and the tuple-like object, and uses an index sequence to unpack the tuple.

Parameters
funcThe function to apply.
tupleThe tuple-like object containing the arguments for the function.
Returns
The result of applying the function to the elements of the tuple-like object.
Attention
Do not use std::tuple_size_v here because it results in compile issues with gcc11.4

Definition at line 35 of file apply.hpp.

◆ BoundaryDirectionsContainer()

template<concepts::Vector LowHaloVecType, concepts::Vector UpHaloVecType>
alpaka::BoundaryDirectionsContainer ( LowHaloVecType const & lowerHalos,
UpHaloVecType const & upperHalos ) -> BoundaryDirectionsContainer< LowHaloVecType::dim(), LowHaloVecType, UpHaloVecType >

◆ calculatePitches()

template<typename T_Elem, alpaka::concepts::Vector T_Vec>
auto alpaka::calculatePitches ( T_Vec const & extent,
typename T_Vec::type const & rowPitchBytes )
constexpr

Calculate the pitches purely from the extents.

Definition at line 34 of file DataPitches.hpp.

◆ calculatePitchesFromExtents()

template<typename T_Elem, alpaka::concepts::Vector T_Vec>
auto alpaka::calculatePitchesFromExtents ( T_Vec const & extent)
constexpr

Calculate the pitches purely from the extents.

Definition at line 18 of file DataPitches.hpp.

◆ callFunctor()

template<typename T_Acc, typename T_Functor, typename... T_Args>
auto alpaka::callFunctor ( T_Acc const & acc,
T_Functor && functor,
T_Args &&... args )
inlineconstexpr

Execute the functor with or without an accelerator as first argument.

The functor is not allowed to have both possible signatures.

Definition at line 58 of file functor.hpp.

◆ clz()

int32_t alpaka::clz ( auto const & arg)
constexpr

Definition at line 41 of file intrinsic.hpp.

◆ conditionalAppendDict()

template<bool condition, typename... T_Entries0, typename... T_Entries1>
auto alpaka::conditionalAppendDict ( Dict< T_Entries0... > const & dict0,
Dict< T_Entries1... > const & dict1 )
constexpr

Definition at line 215 of file Dict.hpp.

◆ Dict() [1/2]

template<typename... T_Keys, typename... T_Values>
ALPAKA_FN_HOST_ACC alpaka::Dict ( DictEntry< T_Keys, T_Values > const & ...) -> Dict< DictEntry< T_Keys, T_Values >... >

◆ Dict() [2/2]

template<typename... T_Keys, typename... T_Values>
ALPAKA_FN_HOST_ACC alpaka::Dict ( Tuple< DictEntry< T_Keys, T_Values >... > const & ) -> Dict< DictEntry< T_Keys, T_Values >... >

◆ divCeil() [1/2]

template<std::integral Integral>
ALPAKA_FN_HOST_ACC constexpr auto alpaka::divCeil ( Integral a,
Integral b ) -> Integral
nodiscardconstexpr

Returns the ceiling of a / b, as integer.

Definition at line 34 of file utility.hpp.

◆ divCeil() [2/2]

template<concepts::Vector T_Vector0, concepts::Vector T_Vector1>
ALPAKA_FN_HOST_ACC constexpr concepts::Vector auto alpaka::divCeil ( T_Vector0 a,
T_Vector1 b )
nodiscardconstexpr
Todo
the function for integral values is defined in Utils.hpp move this to a better place, e.g. math and expose this for the user too

Definition at line 988 of file Vec.hpp.

◆ divExZero() [1/2]

template<std::integral Integral>
ALPAKA_FN_HOST_ACC constexpr auto alpaka::divExZero ( Integral a,
Integral b ) -> Integral
nodiscardconstexpr

Returns the max(a / b, 1) as integer.

Definition at line 41 of file utility.hpp.

◆ divExZero() [2/2]

template<concepts::Vector T_Vector0, concepts::Vector T_Vector1>
ALPAKA_FN_HOST_ACC constexpr concepts::Vector auto alpaka::divExZero ( T_Vector0 a,
T_Vector1 b )
nodiscardconstexpr

Definition at line 995 of file Vec.hpp.

◆ ffs()

int32_t alpaka::ffs ( auto const & arg)
constexpr

Definition at line 30 of file intrinsic.hpp.

◆ fillCVec()

template<typename T, uint32_t T_dim, T T_val>
auto alpaka::fillCVec ( )
nodiscardconsteval

Create and return a CVector of some length, filled with the given value.

The function is defined consteval, so the result can and should always be constexpr.

Template Parameters
TType of the stored values
T_dimLength of the vector
T_valValues to fill the vector with
Returns
The filled vector

Definition at line 153 of file CVec.hpp.

◆ filter()

auto alpaka::filter ( concepts::CVector auto left,
concepts::CVector auto right )
nodiscardconstexpr

Filter the left vector with the right vector's values.

Returns
A CVec that contains all values of the left vector that don't exist in the right vector. Preserves original order.

Definition at line 169 of file CVec.hpp.

◆ firstSetBit()

template<std::integral T>
T alpaka::firstSetBit ( T value)
inlineconstexpr

Definition at line 77 of file utility.hpp.

◆ get() [1/13]

template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 1u)
auto & alpaka::get ( alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > & v)
constexpr

Definition at line 142 of file ThreadSpace.hpp.

◆ get() [2/13]

template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 0u)
auto & alpaka::get ( alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > & v)
constexpr

Definition at line 130 of file ThreadSpace.hpp.

◆ get() [3/13]

template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 1u)
auto alpaka::get ( alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > const & v)
constexpr

Definition at line 136 of file ThreadSpace.hpp.

◆ get() [4/13]

template<std::size_t I, typename T_ThreadIdx, typename T_ThreadCount>
requires (I == 0u)
auto alpaka::get ( alpaka::ThreadSpace< T_ThreadIdx, T_ThreadCount > const & v)
constexpr

Definition at line 124 of file ThreadSpace.hpp.

◆ get() [5/13]

template<size_t T_idx>
decltype(auto) alpaka::get ( concepts::SpecializationOf< Dict > auto & t)
constexprnoexcept

Definition at line 156 of file Dict.hpp.

◆ get() [6/13]

template<size_t T_idx>
decltype(auto) alpaka::get ( concepts::SpecializationOf< Dict > auto const & t)
constexprnoexcept

Definition at line 162 of file Dict.hpp.

◆ get() [7/13]

template<size_t T_idx>
decltype(auto) alpaka::get ( concepts::SpecializationOf< Tuple > auto && t)
constexprnoexcept

Definition at line 95 of file Tuple.hpp.

◆ get() [8/13]

template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
auto & alpaka::get ( Simd< T_Type, T_width, T_Storage > & v)
constexpr

Definition at line 531 of file Simd.hpp.

◆ get() [9/13]

template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
auto alpaka::get ( Simd< T_Type, T_width, T_Storage > const & v)
constexpr

Definition at line 525 of file Simd.hpp.

◆ get() [10/13]

template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
auto & alpaka::get ( SimdMask< T_Type, T_width, T_Storage > & v)
constexpr

Definition at line 413 of file SimdMask.hpp.

◆ get() [11/13]

template<std::size_t I, typename T_Type, uint32_t T_width, typename T_Storage>
auto alpaka::get ( SimdMask< T_Type, T_width, T_Storage > const & v)
constexpr

Definition at line 407 of file SimdMask.hpp.

◆ get() [12/13]

template<std::size_t I, typename T_Type, uint32_t T_dim, typename T_Storage>
decltype(auto) alpaka::get ( Vec< T_Type, T_dim, T_Storage > & v)
constexpr

Definition at line 700 of file Vec.hpp.

◆ get() [13/13]

template<std::size_t I, typename T_Type, uint32_t T_dim, typename T_Storage>
auto alpaka::get ( Vec< T_Type, T_dim, T_Storage > const & v)
constexpr

Definition at line 694 of file Vec.hpp.

◆ getAdjustedAlignment()

template<typename T_Type>
uint32_t alpaka::getAdjustedAlignment ( concepts::Api auto const api,
concepts::DeviceKind auto const deviceType,
auto const alignment )
consteval

Adjusts the memory alignment based on a specific API and device kind.

Template Parameters
T_TypeThe data type being allocated.
Parameters
alignmentthe previously selected alignment
Returns
adjusted alignment in bytes

Definition at line 204 of file trait.hpp.

◆ getAlignment()

auto alpaka::getAlignment ( auto && any)
constexpr

Get the value type alignment of an object.

Parameters
anytype derive the alignment from
Returns
alignment in bytes, if not defined the alignment of the value_type will be returned

Definition at line 127 of file interface.hpp.

◆ getApi() [1/2]

decltype(auto) alpaka::getApi ( alpaka::concepts::HasGet auto && any)
inlineconstexpr

Get the API an object depends on.

Parameters
anycan be a platform, device, queue, view
Returns
API tag

Definition at line 47 of file interface.hpp.

◆ getApi() [2/2]

decltype(auto) alpaka::getApi ( auto && any)
inlineconstexpr

Get the API an object depends on.

Parameters
anycan be a platform, device, queue, view
Returns
API tag

Definition at line 42 of file interface.hpp.

◆ getArchSimdWidth() [1/2]

template<typename T_Type>
uint32_t alpaka::getArchSimdWidth ( auto && any)
constexpr

get SIMD with in bytes for the

Template Parameters
T_Typedata type
Returns
number of elements that can be processed in parallel in a vector register

Definition at line 111 of file interface.hpp.

◆ getArchSimdWidth() [2/2]

template<typename T_Type>
uint32_t alpaka::getArchSimdWidth ( concepts::Api auto const api,
alpaka::concepts::DeviceKind auto const deviceType )
consteval

Get the SIMD width in bytes for an API and device kind combination.

Template Parameters
T_Typedata type
Returns
number of elements that can be processed in parallel in a vector register

Definition at line 152 of file trait.hpp.

◆ getCachelineSize()

uint32_t alpaka::getCachelineSize ( concepts::Api auto const api,
alpaka::concepts::DeviceKind auto const deviceType )
consteval

get the cacheline size in bytes

Cache line size is the distance between two memory address that guarantees to be false sharing free.

Returns
cacheline size in bytes

Definition at line 190 of file trait.hpp.

◆ getDeviceKind() [1/2]

decltype(auto) alpaka::getDeviceKind ( alpaka::concepts::HasGet auto && any)
inlineconstexpr

Get the device type of an object.

Parameters
anycan be a platform, device, queue, view
Returns
type from alpaka::deviceKind

Definition at line 83 of file interface.hpp.

◆ getDeviceKind() [2/2]

decltype(auto) alpaka::getDeviceKind ( auto && any)
inlineconstexpr

Get the device type of an object.

Parameters
anycan be a platform, device, queue, view
Returns
type from alpaka::deviceKind

Definition at line 78 of file interface.hpp.

◆ getDim()

template<typename T>
uint32_t alpaka::getDim ( T const & any)
nodiscardconsteval

Definition at line 116 of file trait.hpp.

◆ getExecutor() [1/2]

decltype(auto) alpaka::getExecutor ( alpaka::concepts::HasGet auto && any)
inlineconstexpr

Get the executor associated with an object.

Parameters
anyobject carrying an executor, e.g. an accelerator or backend dictionary
Returns
executor tag

Definition at line 28 of file interface.hpp.

◆ getExecutor() [2/2]

decltype(auto) alpaka::getExecutor ( auto && any)
inlineconstexpr

Get the executor associated with an object.

Parameters
anyobject carrying an executor, e.g. an accelerator or backend dictionary
Returns
executor tag

Definition at line 23 of file interface.hpp.

◆ getIdx()

template<typename T_Key, typename T_Tuple>
ssize_t alpaka::getIdx ( T_Tuple && ,
T_Key const & = T_Key{} )
inlineconsteval

Definition at line 58 of file Dict.hpp.

◆ getNumElemPerThread() [1/2]

template<typename T_Type>
uint32_t alpaka::getNumElemPerThread ( auto && any)
constexpr

Get the number of elements to compute per thread.

This function considers the SIMD width for the corresponding data type and the potential for instruction parallelism.

Template Parameters
T_TypeThe data type used to determine the SIMD width.
Returns
The minimum number of elements a thread should compute to achieve optimal utilization.

Definition at line 100 of file interface.hpp.

◆ getNumElemPerThread() [2/2]

template<typename T_Type>
uint32_t alpaka::getNumElemPerThread ( concepts::Api auto const api,
alpaka::concepts::DeviceKind auto const deviceType )
consteval

Get the number of elements to compute per thread.

This function considers the SIMD width for the corresponding data type and the potential for instruction parallelism.

Template Parameters
T_TypeThe data type used to determine the SIMD width.
Returns
The minimum number of elements a thread should compute to achieve optimal utilization.

Definition at line 177 of file trait.hpp.

◆ getNumPipelines() [1/2]

uint32_t alpaka::getNumPipelines ( auto && any)
constexpr

get the number of instruction can be issued in parallel

Definition at line 117 of file interface.hpp.

◆ getNumPipelines() [2/2]

uint32_t alpaka::getNumPipelines ( concepts::Api auto const api,
alpaka::concepts::DeviceKind auto const deviceType )
consteval

Get the number of instructions that can be issued in parallel.

Definition at line 161 of file trait.hpp.

◆ getTag()

template<typename T_Key, typename T_Tuple>
decltype(auto) alpaka::getTag ( T_Tuple && t,
T_Key const & = T_Key{} )
inlineconstexpr

Definition at line 72 of file Dict.hpp.

◆ getVec()

template<typename T>
auto alpaka::getVec ( T const & any)
consteval

Definition at line 959 of file Vec.hpp.

◆ hasTag()

template<typename T_Key, typename T_Tuple>
bool alpaka::hasTag ( T_Tuple && ,
T_Key const & = T_Key{} )
consteval

Definition at line 65 of file Dict.hpp.

◆ IdxRange() [1/3]

template<concepts::VectorOrScalar T_Begin, concepts::VectorOrScalar T_End>
ALPAKA_FN_HOST_ACC alpaka::IdxRange ( T_Begin const & ,
T_End const &  ) -> IdxRange< typename trait::getVec_t< T_Begin >::UniVec, typename trait::getVec_t< T_End >::UniVec, typename trait::getVec_t< T_End >::UniVec >

◆ IdxRange() [2/3]

template<concepts::VectorOrScalar T_Begin, concepts::VectorOrScalar T_End, concepts::VectorOrScalar T_Stride>
ALPAKA_FN_HOST_ACC alpaka::IdxRange ( T_Begin const & ,
T_End const & ,
T_Stride const &  ) -> IdxRange< typename trait::getVec_t< T_Begin >::UniVec, typename trait::getVec_t< T_End >::UniVec, typename trait::getVec_t< T_Stride >::UniVec >

◆ IdxRange() [3/3]

template<concepts::VectorOrScalar T_Extents>
ALPAKA_FN_HOST_ACC alpaka::IdxRange ( T_Extents const & ) -> IdxRange< typename trait::getVec_t< T_Extents >::UniVec >

◆ intPow()

template<typename Integral, typename = std::enable_if_t<std::is_integral_v<Integral>>>
ALPAKA_FN_HOST_ACC constexpr auto alpaka::intPow ( Integral base,
Integral n ) -> Integral
nodiscardconstexpr

Computes the nth power of base, in integers.

Definition at line 48 of file utility.hpp.

◆ iotaCVec()

template<typename T, uint32_t T_dim>
auto alpaka::iotaCVec ( )
nodiscardconsteval

Create and return a CVector of the given length with values 1, 2, ...

The function is defined consteval, so the result can and should always be constexpr.

Template Parameters
TType of the stored values
T_dimLength of the vector
Returns
The vector containing the iota sequence

Definition at line 135 of file CVec.hpp.

◆ ipow()

auto alpaka::ipow ( std::integral auto const base,
std::integral auto const exponent )
constexpr

Helper function calculating the integer power for the given base and exponent.

Definition at line 124 of file utility.hpp.

◆ isSeqExecutor()

template<typename T_Exec>
bool alpaka::isSeqExecutor ( T_Exec exec)
consteval

check if a executor can only be used with a single thread per block

Returns
true if a block can only have a single thread, else false

Definition at line 293 of file tag.hpp.

◆ joinDict()

template<typename... T_Entries0, typename... T_Entries1>
auto alpaka::joinDict ( Dict< T_Entries0... > const & dict0,
Dict< T_Entries1... > const & dict1 )
constexpr

Definition at line 204 of file Dict.hpp.

◆ joinDictHelper()

template<std::size_t... idx0, std::size_t... idx1, typename T_Dict0, typename T_Dict1>
auto alpaka::joinDictHelper ( std::index_sequence< idx0... > ,
std::index_sequence< idx1... > ,
T_Dict0 dict0,
T_Dict1 dict1 )
constexpr

Definition at line 194 of file Dict.hpp.

◆ KernelBundle()

template<typename TKernelFn, typename... TArgs>
ALPAKA_FN_HOST alpaka::KernelBundle ( TKernelFn const & ,
TArgs && ... ) -> KernelBundle< TKernelFn, TArgs... >

User defined deduction guide with trailing return type. For CTAD during the construction.

Template Parameters
TKernelFnThe kernel function object type.
TArgsKernel function object argument types as a parameter pack.
Parameters
kernelFnThe kernel object
argsThe kernel invocation arguments.
Returns
Kernel function bundle. An instance of KernelBundle which consists the kernel function object and its arguments.

◆ linearize() [1/3]

template<std::integral T_IntegralType, typename T_Storage, typename T_OtherStorage>
ALPAKA_FN_HOST_ACC T_IntegralType alpaka::linearize ( Vec< T_IntegralType, 1u, T_Storage > const & ,
Vec< T_IntegralType, 1u, T_OtherStorage > const & idx )

Give the linear index of an N-dimensional index within an N-dimensional index space.

Template Parameters
T_IntegralTypevector data type (must be an integral type)
T_dimdimension of the vector, should be >= 2
Parameters
dimN-dimensional dim of the index space (N can be one dimension less compared to idx)
idxN-dimensional index within the index space
Attention
behaviour is undefined for negative index
if idx is outside of dim the result will be outside of the the index domain too
Returns
linear index within the index domain

Definition at line 859 of file Vec.hpp.

◆ linearize() [2/3]

template<std::integral T_IntegralType, typename T_Storage, typename T_OtherStorage, uint32_t T_dim>
requires (T_dim >= 2u)
T_IntegralType alpaka::linearize ( Vec< T_IntegralType, T_dim - 1u, T_Storage > const & dim,
Vec< T_IntegralType, T_dim, T_OtherStorage > const & idx )
constexpr

Give the linear index of an N-dimensional index within an N-dimensional index space.

Template Parameters
T_IntegralTypevector data type (must be an integral type)
T_dimdimension of the vector, should be >= 2
Parameters
dimN-dimensional dim of the index space (N can be one dimension less compared to idx)
idxN-dimensional index within the index space
Attention
behaviour is undefined for negative index
if idx is outside of dim the result will be outside of the the index domain too
Returns
linear index within the index domain

Definition at line 839 of file Vec.hpp.

◆ linearize() [3/3]

template<std::integral T_IntegralType, typename T_Storage, typename T_OtherStorage, uint32_t T_dim>
T_IntegralType alpaka::linearize ( Vec< T_IntegralType, T_dim, T_Storage > const & dim,
Vec< T_IntegralType, T_dim, T_OtherStorage > const & idx )
constexpr

Give the linear index of an N-dimensional index within an N-dimensional index space.

Template Parameters
T_IntegralTypevector data type (must be an integral type)
T_dimdimension of the vector, should be >= 2
Parameters
dimN-dimensional dim of the index space (N can be one dimension less compared to idx)
idxN-dimensional index within the index space
Attention
behaviour is undefined for negative index
if idx is outside of dim the result will be outside of the the index domain too
Returns
linear index within the index domain

Definition at line 851 of file Vec.hpp.

◆ LinearizedIdxGenerator()

template<concepts::VectorOrScalar T_Extents>
ALPAKA_FN_HOST_ACC alpaka::LinearizedIdxGenerator ( T_Extents const & ) -> LinearizedIdxGenerator< trait::GetValueType_t< T_Extents >, trait::getDim_v< T_Extents > >

◆ lpCast()

template<typename T_To>
requires (isLosslesslyConvertible_v<typename ALPAKA_TYPEOF(input)::type, T_To>)
decltype(auto) alpaka::lpCast ( auto && input)
constexpr

Performs a static_cast on the storage type of combined data type.

It ensures that the conversion is lossless by requiring that the value_type of the input is lossless convertible to the target type T_To.

alpaka::Vec<float, 4> foo{0.f, 0.f, 0.f, 0.f};
// Invalid, loss of precision due to conversion from float to int
// alpaka::Vec<int32_t, 4> bar = lpCast<int32_t>(foo);
constexpr decltype(auto) lpCast(auto &&input)
Performs a static_cast on the storage type of combined data type.
Definition cast.hpp:70
Template Parameters
T_ToThe target type to which the input is cast.
Parameters
inputThe input value to be cast. value_type must be castable to T_To.
Returns
input with exchanged value_type

Definition at line 70 of file cast.hpp.

◆ makeBoundaryDirIterator() [1/4]

template<uint32_t T_dim>
auto alpaka::makeBoundaryDirIterator ( )
nodiscardconstexpr

Construct and return a BoundaryDirectionsContainer.

This container can be iterated over.

This constructor uses a default halo size of 1 everywhere.

Template Parameters
T_dimThe dimensionality of the container.

Definition at line 323 of file BoundaryIter.hpp.

◆ makeBoundaryDirIterator() [2/4]

auto alpaka::makeBoundaryDirIterator ( concepts::IView auto const & view)
nodiscardconstexpr

Construct and return a BoundaryDirectionsContainer for the given view with default (size 1) halo sizes.

This container can be iterated over. For custom halo sizes, use one of the other overloads.

Parameters
viewThe given view; only the dimension of the view matters.

Definition at line 365 of file BoundaryIter.hpp.

◆ makeBoundaryDirIterator() [3/4]

auto alpaka::makeBoundaryDirIterator ( concepts::Vector auto const & haloSizes)
nodiscardconstexpr

Construct and return a boundary direction container with the given halo sizes.

This container can be iterated over. See BoundaryDirectionsContainer. The dimensionality is inferred from the given haloSizes.

Parameters
haloSizesThe halo sizes per dimension. The halos are used for both "ends" of each dimension symmetrically.

Definition at line 337 of file BoundaryIter.hpp.

◆ makeBoundaryDirIterator() [4/4]

auto alpaka::makeBoundaryDirIterator ( concepts::Vector auto const & lowerHaloSizes,
concepts::Vector auto const & upperHaloSizes )
nodiscardconstexpr

Construct and return a BoundaryDirectionsContainer with the given halo sizes.

This container can be iterated over. The dimensionality is inferred from the given halo sizes, which are asserted to be identical.

Parameters
lowerHaloSizesThe lower end halo sizes per dimension. These are the halos from 0 in each dimension.
upperHaloSizesThe upper end halo sizes per dimension. These are the halos to size() in each dimension.

Definition at line 349 of file BoundaryIter.hpp.

◆ makeCoreBoundaryDirection() [1/3]

template<uint32_t T_dim>
auto alpaka::makeCoreBoundaryDirection ( )
consteval

Construct and return a single BoundaryDirection specifying the middle of a volume with all halo sizes set to 1.

Definition at line 311 of file BoundaryIter.hpp.

◆ makeCoreBoundaryDirection() [2/3]

template<uint32_t T_dim>
auto alpaka::makeCoreBoundaryDirection ( concepts::Vector auto const & halos)
nodiscardconstexpr

Construct and return a single BoundaryDirection specifying the middle of a volume with symmetric halos.

Definition at line 298 of file BoundaryIter.hpp.

◆ makeCoreBoundaryDirection() [3/3]

template<uint32_t T_dim>
auto alpaka::makeCoreBoundaryDirection ( concepts::Vector auto const & lowerHalos,
concepts::Vector auto const & upperHalos )
nodiscardconstexpr

Construct and return a single BoundaryDirection specifying the middle of a volume.

Definition at line 284 of file BoundaryIter.hpp.

◆ makeDirectionSubRange()

template<uint32_t T_dim, alpaka::concepts::Vector T_LowHaloVec, alpaka::concepts::Vector T_UpHaloVec>
auto alpaka::makeDirectionSubRange ( auto const range,
alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec > const & boundaryDir )
constexpr

Definition at line 136 of file IdxRange.hpp.

◆ makeMdSpan() [1/3]

auto alpaka::makeMdSpan ( auto && any)
inlineconstexpr

Definition at line 57 of file MdSpan.hpp.

◆ makeMdSpan() [2/3]

template<concepts::Alignment T_MemAlignment = Alignment<>>
auto alpaka::makeMdSpan ( auto * pointer,
concepts::Vector auto const & extents,
concepts::Vector auto const & pitchBytes,
T_MemAlignment const memAlignment = T_MemAlignment{} )
inlineconstexpr

Definition at line 38 of file MdSpan.hpp.

◆ makeMdSpan() [3/3]

template<typename T_ValueType, concepts::Alignment T_MemAlignment = Alignment<>>
auto alpaka::makeMdSpan ( T_ValueType * pointer,
concepts::Vector auto const & extents,
T_MemAlignment const memAlignment = T_MemAlignment{} )
inlineconstexpr

Definition at line 48 of file MdSpan.hpp.

◆ makeSimdized()

template<uint32_t T_width>
auto alpaka::makeSimdized ( auto && value)
constexpr

Transform a type into a SIMD-optimized data structure.

A simdized value is not necessarily a data type wrapped by alpaka::Simd, it can be a structured hierarchical type where each component is a SIMD pack. This function can be specialized within the namespace of the input type and will be found via ADL.

See also
alpakaSimdizedInvoke should be specialized together with this function.

Simdizing of structured types as shown in the code example often improves the performance compared to wrapping into a SIMD pack.

// input type
template<typename T>
struct Pos
{
T x = 0;
T y = 1;
};
// output could be
template<typename T>
struct Pos
{
};
Simd vector.
Definition Simd.hpp:78
Template Parameters
T_widththe width of the used SIMD type
Returns
A simdized data type where each lane replicates the given value. If makeSimdized is not specialized for the given type a SIMD pack wrapping the input value will be returned.

Definition at line 50 of file simdized.hpp.

◆ makeSimdMask()

template<typename T, typename... T_Args>
auto alpaka::makeSimdMask ( T_Args... args)
constexpr

Creates a mask for the given type.

Template Parameters
Tvalue type of SIMD object which should be masked
T_Argsarguments forwarded to the constructor of the mask

Definition at line 435 of file SimdMask.hpp.

◆ makeTuple()

auto alpaka::makeTuple ( auto &&... args)
constexpr

Definition at line 100 of file Tuple.hpp.

◆ makeView() [1/3]

auto alpaka::makeView ( auto && any)
inlineconstexpr

Definition at line 59 of file View.hpp.

◆ makeView() [2/3]

template<typename T_ValueType, concepts::Alignment T_MemAlignment = Alignment<>>
auto alpaka::makeView ( auto && anyWithApi,
T_ValueType * pointer,
concepts::Vector auto const & extents,
concepts::Vector auto const & pitches,
T_MemAlignment const memAlignment = T_MemAlignment{} )
inlineconstexpr

Definition at line 48 of file View.hpp.

◆ makeView() [3/3]

template<typename T_ValueType, concepts::Alignment T_MemAlignment = Alignment<>>
auto alpaka::makeView ( auto && anyWithApi,
T_ValueType * pointer,
concepts::Vector auto const & extents,
T_MemAlignment const memAlignment = T_MemAlignment{} )
inlineconstexpr

Definition at line 37 of file View.hpp.

◆ mapToND() [1/2]

template<std::integral T_IntegralType, typename T_Storage>
Vec< T_IntegralType, 1u > alpaka::mapToND ( Vec< T_IntegralType, 1u, T_Storage > const & extents,
T_IntegralType linearIdx )
constexpr

Maps a linear index to an N-dimensional index.

Template Parameters
T_IntegralTypevector data type (must be an integral type)
Parameters
dimN-dimensional index space
linearIdxLinear index within dim.
Attention
If linearIdx is an index outside of dim the result will be outside of the index domain too.
Returns
N-dimensional index

Definition at line 901 of file Vec.hpp.

◆ mapToND() [2/2]

template<std::integral T_IntegralType, typename T_Storage, uint32_t T_dim>
requires (T_dim >= 2u)
Vec< T_IntegralType, T_dim > alpaka::mapToND ( Vec< T_IntegralType, T_dim, T_Storage > const & extents,
T_IntegralType linearIdx )
constexpr

Maps a linear index to an N-dimensional index.

Template Parameters
T_IntegralTypevector data type (must be an integral type)
Parameters
dimN-dimensional index space
linearIdxLinear index within dim.
Attention
If linearIdx is an index outside of dim the result will be outside of the index domain too.
Returns
N-dimensional index

Definition at line 880 of file Vec.hpp.

◆ MdForwardIterEnd()

template<alpaka::concepts::IMdSpan T_MdSpan>
ALPAKA_FN_HOST_ACC alpaka::MdForwardIterEnd ( T_MdSpan const & ) -> MdForwardIterEnd< typename T_MdSpan::index_type >

◆ nthRootFloor()

template<typename Integral, typename = std::enable_if_t<std::is_integral_v<Integral>>>
ALPAKA_FN_HOST_ACC constexpr auto alpaka::nthRootFloor ( Integral value,
Integral n ) -> Integral
nodiscardconstexpr

Computes the floor of the nth root of value, in integers.

Definition at line 60 of file utility.hpp.

◆ operator!=() [1/9]

bool alpaka::operator!= ( concepts::Executor auto lhs,
concepts::Executor auto rhs )
constexpr

Definition at line 141 of file trait.hpp.

◆ operator!=() [2/9]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator!= ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 628 of file Simd.hpp.

◆ operator!=() [3/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator!= ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 628 of file Simd.hpp.

◆ operator!=() [4/9]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator!= ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
const SimdMask< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

Definition at line 478 of file SimdMask.hpp.

◆ operator!=() [5/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator!= ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

Definition at line 478 of file SimdMask.hpp.

◆ operator!=() [6/9]

template<typename T_MdSpan>
bool alpaka::operator!= ( MdForwardIter< T_MdSpan > const & mdIter,
MdForwardIterEnd< typename T_MdSpan::index_type > const & mdIteratorEnd )
constexpr

Definition at line 157 of file MdForwardIter.hpp.

◆ operator!=() [7/9]

template<typename T_MdSpan>
bool alpaka::operator!= ( MdForwardIterEnd< typename T_MdSpan::index_type > const & mdIteratorEnd,
MdForwardIter< T_MdSpan > const & mdIter )
constexpr

Definition at line 173 of file MdForwardIter.hpp.

◆ operator!=() [8/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator!= ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 628 of file Simd.hpp.

◆ operator!=() [9/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator!= ( T_ValueType lhs,
const SimdMask< T_Type, T_width, T_Storage > & rhs )
constexpr

Definition at line 478 of file SimdMask.hpp.

◆ operator%() [1/6]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator% ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 583 of file Simd.hpp.

◆ operator%() [2/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator% ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 583 of file Simd.hpp.

◆ operator%() [3/6]

template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator% ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 816 of file Vec.hpp.

◆ operator%() [4/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator% ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 816 of file Vec.hpp.

◆ operator%() [5/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator% ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 583 of file Simd.hpp.

◆ operator%() [6/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator% ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 816 of file Vec.hpp.

◆ operator&() [1/9]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator& ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 586 of file Simd.hpp.

◆ operator&() [2/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator& ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 586 of file Simd.hpp.

◆ operator&() [3/9]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator& ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
const SimdMask< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

Definition at line 474 of file SimdMask.hpp.

◆ operator&() [4/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator& ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

Definition at line 474 of file SimdMask.hpp.

◆ operator&() [5/9]

template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator& ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 819 of file Vec.hpp.

◆ operator&() [6/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator& ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 819 of file Vec.hpp.

◆ operator&() [7/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator& ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 586 of file Simd.hpp.

◆ operator&() [8/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator& ( T_ValueType lhs,
const SimdMask< T_Type, T_width, T_Storage > & rhs )
constexpr

Definition at line 474 of file SimdMask.hpp.

◆ operator&() [9/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator& ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 819 of file Vec.hpp.

◆ operator&&() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator&& ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
const SimdMask< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

Definition at line 472 of file SimdMask.hpp.

◆ operator&&() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator&& ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

Definition at line 472 of file SimdMask.hpp.

◆ operator&&() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator&& ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 814 of file Vec.hpp.

◆ operator&&() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator&& ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 814 of file Vec.hpp.

◆ operator&&() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator&& ( T_ValueType lhs,
const SimdMask< T_Type, T_width, T_Storage > & rhs )
constexpr

Definition at line 472 of file SimdMask.hpp.

◆ operator&&() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator&& ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 814 of file Vec.hpp.

◆ operator*() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator* ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 581 of file Simd.hpp.

◆ operator*() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator* ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 581 of file Simd.hpp.

◆ operator*() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator* ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 808 of file Vec.hpp.

◆ operator*() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator* ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 808 of file Vec.hpp.

◆ operator*() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator* ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 581 of file Simd.hpp.

◆ operator*() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator* ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 808 of file Vec.hpp.

◆ operator+() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator+ ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 579 of file Simd.hpp.

◆ operator+() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator+ ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 579 of file Simd.hpp.

◆ operator+() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator+ ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 806 of file Vec.hpp.

◆ operator+() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator+ ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 806 of file Vec.hpp.

◆ operator+() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator+ ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 579 of file Simd.hpp.

◆ operator+() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator+ ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 806 of file Vec.hpp.

◆ operator-() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator- ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 580 of file Simd.hpp.

◆ operator-() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator- ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 580 of file Simd.hpp.

◆ operator-() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator- ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 807 of file Vec.hpp.

◆ operator-() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator- ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 807 of file Vec.hpp.

◆ operator-() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator- ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 580 of file Simd.hpp.

◆ operator-() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator- ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 807 of file Vec.hpp.

◆ operator/() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator/ ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 582 of file Simd.hpp.

◆ operator/() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator/ ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 582 of file Simd.hpp.

◆ operator/() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator/ ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 809 of file Vec.hpp.

◆ operator/() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator/ ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 809 of file Vec.hpp.

◆ operator/() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator/ ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 582 of file Simd.hpp.

◆ operator/() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator/ ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 809 of file Vec.hpp.

◆ operator<() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator< ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 626 of file Simd.hpp.

◆ operator<() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator< ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 626 of file Simd.hpp.

◆ operator<() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator< ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 813 of file Vec.hpp.

◆ operator<() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator< ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 813 of file Vec.hpp.

◆ operator<() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator< ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 626 of file Simd.hpp.

◆ operator<() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator< ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 813 of file Vec.hpp.

◆ operator<<() [1/12]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator<< ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 584 of file Simd.hpp.

◆ operator<<() [2/12]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator<< ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 584 of file Simd.hpp.

◆ operator<<() [3/12]

template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator<< ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 817 of file Vec.hpp.

◆ operator<<() [4/12]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator<< ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 817 of file Vec.hpp.

◆ operator<<() [5/12]

std::ostream & alpaka::operator<< ( std::ostream & os,
concepts::BoundaryDirection auto const & bd )

Definition at line 395 of file BoundaryIter.hpp.

◆ operator<<() [6/12]

template<typename T_Type, concepts::Vector T_Extents, concepts::Vector T_Pitches, concepts::Alignment T_MemAlignment>
std::ostream & alpaka::operator<< ( std::ostream & s,
MdSpan< T_Type, T_Extents, T_Pitches, T_MemAlignment > const & mdSpan )

Definition at line 305 of file MdSpan.hpp.

◆ operator<<() [7/12]

template<typename Type, uint32_t T_width, typename T_Storage>
std::ostream & alpaka::operator<< ( std::ostream & s,
Simd< Type, T_width, T_Storage > const & vec )

Definition at line 537 of file Simd.hpp.

◆ operator<<() [8/12]

template<typename Type, uint32_t T_width, typename T_Storage>
std::ostream & alpaka::operator<< ( std::ostream & s,
SimdMask< Type, T_width, T_Storage > const & vec )

Definition at line 419 of file SimdMask.hpp.

◆ operator<<() [9/12]

template<typename Type, uint32_t T_dim, typename T_Storage>
std::ostream & alpaka::operator<< ( std::ostream & s,
Vec< Type, T_dim, T_Storage > const & vec )

Definition at line 752 of file Vec.hpp.

◆ operator<<() [10/12]

template<typename T_Api, typename T_Type, concepts::Vector T_Extents, concepts::Alignment T_MemAlignment>
std::ostream & alpaka::operator<< ( std::ostream & s,
View< T_Api, T_Type, T_Extents, T_MemAlignment > const & view )

Definition at line 265 of file View.hpp.

◆ operator<<() [11/12]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator<< ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 584 of file Simd.hpp.

◆ operator<<() [12/12]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator<< ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 817 of file Vec.hpp.

◆ operator<=() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator<= ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 625 of file Simd.hpp.

◆ operator<=() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator<= ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 625 of file Simd.hpp.

◆ operator<=() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator<= ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 812 of file Vec.hpp.

◆ operator<=() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator<= ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 812 of file Vec.hpp.

◆ operator<=() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator<= ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 625 of file Simd.hpp.

◆ operator<=() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator<= ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 812 of file Vec.hpp.

◆ operator==() [1/9]

bool alpaka::operator== ( concepts::Executor auto lhs,
concepts::Executor auto rhs )
constexpr

Definition at line 136 of file trait.hpp.

◆ operator==() [2/9]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator== ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 627 of file Simd.hpp.

◆ operator==() [3/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator== ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 627 of file Simd.hpp.

◆ operator==() [4/9]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator== ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
const SimdMask< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

Definition at line 477 of file SimdMask.hpp.

◆ operator==() [5/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator== ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

Definition at line 477 of file SimdMask.hpp.

◆ operator==() [6/9]

template<typename T_MdSpan>
bool alpaka::operator== ( MdForwardIter< T_MdSpan > const & mdIter,
MdForwardIterEnd< typename T_MdSpan::index_type > const & mdIteratorEnd )
constexpr

Definition at line 149 of file MdForwardIter.hpp.

◆ operator==() [7/9]

template<typename T_MdSpan>
bool alpaka::operator== ( MdForwardIterEnd< typename T_MdSpan::index_type > const & mdIteratorEnd,
MdForwardIter< T_MdSpan > const & mdIter )
constexpr

Definition at line 165 of file MdForwardIter.hpp.

◆ operator==() [8/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator== ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 627 of file Simd.hpp.

◆ operator==() [9/9]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator== ( T_ValueType lhs,
const SimdMask< T_Type, T_width, T_Storage > & rhs )
constexpr

Definition at line 477 of file SimdMask.hpp.

◆ operator>() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator> ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 624 of file Simd.hpp.

◆ operator>() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator> ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 624 of file Simd.hpp.

◆ operator>() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator> ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 811 of file Vec.hpp.

◆ operator>() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator> ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 811 of file Vec.hpp.

◆ operator>() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator> ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 624 of file Simd.hpp.

◆ operator>() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator> ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 811 of file Vec.hpp.

◆ operator>=() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator>= ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 623 of file Simd.hpp.

◆ operator>=() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator>= ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 623 of file Simd.hpp.

◆ operator>=() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator>= ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 810 of file Vec.hpp.

◆ operator>=() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator>= ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 810 of file Vec.hpp.

◆ operator>=() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator>= ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 623 of file Simd.hpp.

◆ operator>=() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator>= ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 810 of file Vec.hpp.

◆ operator>>() [1/6]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator>> ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 585 of file Simd.hpp.

◆ operator>>() [2/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator>> ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 585 of file Simd.hpp.

◆ operator>>() [3/6]

template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator>> ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 818 of file Vec.hpp.

◆ operator>>() [4/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator>> ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 818 of file Vec.hpp.

◆ operator>>() [5/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator>> ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 585 of file Simd.hpp.

◆ operator>>() [6/6]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator>> ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 818 of file Vec.hpp.

◆ operator^() [1/9]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator^ ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 588 of file Simd.hpp.

◆ operator^() [2/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator^ ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 588 of file Simd.hpp.

◆ operator^() [3/9]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator^ ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
const SimdMask< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

Definition at line 476 of file SimdMask.hpp.

◆ operator^() [4/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator^ ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

Definition at line 476 of file SimdMask.hpp.

◆ operator^() [5/9]

template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator^ ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 821 of file Vec.hpp.

◆ operator^() [6/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator^ ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 821 of file Vec.hpp.

◆ operator^() [7/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator^ ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 588 of file Simd.hpp.

◆ operator^() [8/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator^ ( T_ValueType lhs,
const SimdMask< T_Type, T_width, T_Storage > & rhs )
constexpr

Definition at line 476 of file SimdMask.hpp.

◆ operator^() [9/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator^ ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 821 of file Vec.hpp.

◆ operator|() [1/9]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator| ( const Simd< T_Type, T_width, T_Storage > & lhs,
const Simd< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 587 of file Simd.hpp.

◆ operator|() [2/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator| ( const Simd< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 587 of file Simd.hpp.

◆ operator|() [3/9]

template<std::integral T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator| ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
const SimdMask< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

Definition at line 475 of file SimdMask.hpp.

◆ operator|() [4/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator| ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

Definition at line 475 of file SimdMask.hpp.

◆ operator|() [5/9]

template<std::integral T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator| ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 820 of file Vec.hpp.

◆ operator|() [6/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator| ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 820 of file Vec.hpp.

◆ operator|() [7/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator| ( T_ValueType lhs,
const Simd< T_Type, T_width, T_Storage > & rhs )
constexpr

binary operators

Definition at line 587 of file Simd.hpp.

◆ operator|() [8/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator| ( T_ValueType lhs,
const SimdMask< T_Type, T_width, T_Storage > & rhs )
constexpr

Definition at line 475 of file SimdMask.hpp.

◆ operator|() [9/9]

template<std::integral T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator| ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 820 of file Vec.hpp.

◆ operator||() [1/6]

template<typename T_Type, uint32_t T_width, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator|| ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
const SimdMask< T_Type, T_width, T_OtherStorage > & rhs )
constexpr

Definition at line 473 of file SimdMask.hpp.

◆ operator||() [2/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator|| ( const SimdMask< T_Type, T_width, T_Storage > & lhs,
T_ValueType rhs )
constexpr

Definition at line 473 of file SimdMask.hpp.

◆ operator||() [3/6]

template<typename T_Type, uint32_t T_dim, typename T_Storage, typename T_OtherStorage>
auto alpaka::operator|| ( const Vec< T_Type, T_dim, T_Storage > & lhs,
const Vec< T_Type, T_dim, T_OtherStorage > & rhs )
constexpr

binary operators

Definition at line 815 of file Vec.hpp.

◆ operator||() [4/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator|| ( const Vec< T_Type, T_dim, T_Storage > & lhs,
T_ValueType rhs )
constexpr

binary operators

Definition at line 815 of file Vec.hpp.

◆ operator||() [5/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_width, typename T_Storage>
auto alpaka::operator|| ( T_ValueType lhs,
const SimdMask< T_Type, T_width, T_Storage > & rhs )
constexpr

Definition at line 473 of file SimdMask.hpp.

◆ operator||() [6/6]

template<typename T_Type, concepts::LosslesslyConvertible< T_Type > T_ValueType, uint32_t T_dim, typename T_Storage>
auto alpaka::operator|| ( T_ValueType lhs,
const Vec< T_Type, T_dim, T_Storage > & rhs )
constexpr

binary operators

Definition at line 815 of file Vec.hpp.

◆ pCast()

template<typename T_To>
requires (isConvertible_v<typename ALPAKA_TYPEOF(input)::type, T_To>)
decltype(auto) alpaka::pCast ( auto && input)
constexpr

Performs a static_cast on the storage type of combined data type.

alpaka::Vec<float, 4> foo{0.f, 0.f, 0.f, 0.f};
constexpr decltype(auto) pCast(auto &&input)
Performs a static_cast on the storage type of combined data type.
Definition cast.hpp:48
Template Parameters
T_ToThe target type to which the input is cast.
Parameters
inputThe input value to be cast. value_type must be castable to T_To.
Returns
input with exchanged value_type

Definition at line 48 of file cast.hpp.

◆ popcount()

int32_t alpaka::popcount ( auto const & arg)
constexpr

Returns the number of bits set to 1.

Definition at line 17 of file intrinsic.hpp.

◆ roundDownToPowerOfTwo()

template<std::integral T>
T alpaka::roundDownToPowerOfTwo ( T value)
inlineconstexpr

round to the next power of two which is equal or lower to the value

Parameters
valueinput value >0

Definition at line 88 of file utility.hpp.

◆ ScalarFunc()

template<typename T_Func>
ALPAKA_FN_HOST_ACC alpaka::ScalarFunc ( T_Func && ) -> ScalarFunc< T_Func >

◆ Simd()

template<typename T_1, typename... T_Args>
ALPAKA_FN_HOST_ACC alpaka::Simd ( T_1 ,
T_Args...  ) -> Simd< T_1, uint32_t(sizeof...(T_Args)+1u)>

◆ SimdMask()

template<typename T_1, typename... T_Args>
ALPAKA_FN_HOST_ACC alpaka::SimdMask ( T_1 ,
T_Args...  ) -> SimdMask< T_1, uint32_t(sizeof...(T_Args)+1u)>

◆ StencilFunc()

template<typename T_Func>
ALPAKA_FN_HOST_ACC alpaka::StencilFunc ( T_Func && ) -> StencilFunc< T_Func >

◆ thisApi()

auto alpaka::thisApi ( )
constexpr

provides the API used during the execution of the current code path

Attention
if api::host os returned it can also mean that this method was called within the host controlling workflow and not within a kernel running on a CPU device.

Definition at line 26 of file api.hpp.

◆ toVoidPtr()

template<typename T>
auto * alpaka::toVoidPtr ( T inPtr)

Cast a pointer that may or may not point to volatile memory to a (void*) or (void const*).

Useful for freeing the memory.

Parameters
inPtrThe pointer to convert.
Template Parameters
TThe type of the given pointer.

Definition at line 34 of file util.hpp.

◆ Tuple()

template<typename... T_Args>
alpaka::Tuple ( T_Args && ...) -> Tuple< T_Args... >

◆ uniqueId()

size_t alpaka::uniqueId ( std::source_location const location = std::source_location::current())
inlineconsteval

creates a unique id on any call

If a class is storing the compile time id and the file of the class is included within two compile units the id will be equal in both compile units. The id is derived from the file name, function name, line, and column from where this method is called. If this call is used to default set a template parameter of a class it will only generate once a unique number not each time the class will be used.

Parameters
locationThe location is the base for the unique id. For the same location the same id is generated.
Returns
unique id

Definition at line 57 of file UniqueId.hpp.

◆ unWrapp()

template<typename T>
decltype(auto) alpaka::unWrapp ( T && value)
constexpr

Definition at line 16 of file util.hpp.

◆ Vec()

template<typename T_1, typename... T_Args>
ALPAKA_FN_HOST_ACC alpaka::Vec ( T_1 ,
T_Args...  ) -> Vec< T_1, uint32_t(sizeof...(T_Args)+1u), ArrayStorage< T_1, uint32_t(sizeof...(T_Args)+1u)> >

◆ View() [1/2]

template<alpaka::concepts::HasApi T_Any, typename T_Type, alpaka::concepts::Vector T_UserExtents, alpaka::concepts::Vector T_UserPitches, alpaka::concepts::Alignment T_MemAlignment>
ALPAKA_FN_HOST_ACC alpaka::View ( T_Any const & ,
T_Type * ,
T_UserExtents const & ,
T_UserPitches const & ,
T_MemAlignment const memAlignment ) -> View< ALPAKA_TYPEOF(getApi(std::declval< T_Any >())), T_Type, typename T_UserPitches::UniVec, T_MemAlignment >

◆ View() [2/2]

template<alpaka::concepts::HasApi T_Any, typename T_Type, alpaka::concepts::Vector T_UserExtents, alpaka::concepts::Vector T_UserPitches>
ALPAKA_FN_HOST_ACC alpaka::View ( T_Any ,
T_Type * ,
T_UserExtents const & ,
T_UserPitches const &  ) -> View< ALPAKA_TYPEOF(getApi(std::declval< T_Any >())), T_Type, typename T_UserPitches::UniVec, Alignment<> >

◆ where()

template<concepts::SimdMask T_Mask, concepts::Simd T_Simd>
SimdWhereExpr< T_Mask, T_Simd > alpaka::where ( T_Mask const & mask,
T_Simd & value )
constexpr

Conditionally update each component of an SIMD pack.

Parameters
maskSIMD pack of booleans, where each component is true for the element in v which should be overwritten with the value assigned to the returned expression
valueSIMD vector to which the mask is applied

Definition at line 87 of file SimdWhereExpr.hpp.

Variable Documentation

◆ is_decayed_v

template<typename T, typename U>
auto alpaka::is_decayed_v = std::is_same_v<std::decay_t<T>, std::decay_t<U>>
inlineconstexpr

Provides a decaying wrapper around std::is_same. Example: is_decayed_v<volatile float, float> returns true.

Definition at line 13 of file decay.hpp.

◆ isAlignment_v

template<typename T_Type>
bool alpaka::isAlignment_v = trait::IsAlignment<T_Type>::value
constexpr

Definition at line 76 of file Alignment.hpp.

◆ isApi_v

template<typename T_Type>
bool alpaka::isApi_v = trait::IsApi<T_Type>::value
constexpr

Definition at line 29 of file api.hpp.

◆ isBoundaryDirection_v

template<typename T>
bool alpaka::isBoundaryDirection_v = trait::IsBoundaryDirection<T>::value
constexpr

Definition at line 385 of file BoundaryIter.hpp.

◆ isConvertible_v

template<typename T_From, typename T_To>
bool alpaka::isConvertible_v = concepts::Convertible<T_From, T_To>
constexpr

Definition at line 125 of file trait.hpp.

◆ isCVector_v

template<typename T>
bool alpaka::isCVector_v = trait::IsCVector<T>::value
constexpr

Definition at line 42 of file Vec.hpp.

◆ isExecutor

template<typename T>
bool alpaka::isExecutor = trait::IsExecutor<T>::value
constexpr

Definition at line 122 of file trait.hpp.

◆ isIndexRange_v

template<typename T>
bool alpaka::isIndexRange_v = trait::IsIndexRange<T>::value
constexpr

Definition at line 225 of file IdxRange.hpp.

◆ isKernelArgumentTriviallyCopyable_v

template<typename T>
bool alpaka::isKernelArgumentTriviallyCopyable_v = trait::IsKernelArgumentTriviallyCopyable<T>::value
inlineconstexpr

Definition at line 110 of file trait.hpp.

◆ isKernelBundle_v

template<typename T>
bool alpaka::isKernelBundle_v = trait::IsKernelBundle<T>::value
constexpr

Definition at line 166 of file KernelBundle.hpp.

◆ isKernelTriviallyCopyable_v

template<typename T>
bool alpaka::isKernelTriviallyCopyable_v = trait::IsKernelTriviallyCopyable<T>::value
inlineconstexpr

Definition at line 113 of file trait.hpp.

◆ isLazyIndexRange_v

template<typename T>
bool alpaka::isLazyIndexRange_v = trait::IsLazyIndexRange<T>::value
constexpr

Definition at line 228 of file IdxRange.hpp.

◆ isLosslesslyConvertible_v

template<typename T_From, typename T_To>
bool alpaka::isLosslesslyConvertible_v = concepts::LosslesslyConvertible<T_From, T_To>
constexpr

Definition at line 122 of file trait.hpp.

◆ isSimd_v

template<typename T>
bool alpaka::isSimd_v = trait::IsSimd<T>::value
constexpr

Definition at line 38 of file concepts.hpp.

◆ isSimdMask_v

template<typename T>
bool alpaka::isSimdMask_v = trait::IsSimdMask<T>::value
constexpr

Definition at line 41 of file concepts.hpp.

◆ isSimdPtr_v

template<typename T>
bool alpaka::isSimdPtr_v = trait::IsSimdPtr<T>::value
constexpr

Definition at line 30 of file SimdPtr.hpp.

◆ isSpecializationOf_v

template<typename T, template< typename... > typename U>
bool alpaka::isSpecializationOf_v = std::false_type{}
inlineconstexpr

checks if T is a instance of U

Template Parameters
Tfull type specialization
Uunspecialized template type
Returns
true if T is a specialization of U

Definition at line 103 of file utility.hpp.

◆ isSpecializationOf_v< U< Vs... >, U >

template<template< typename... > typename U, typename... Vs>
bool alpaka::isSpecializationOf_v< U< Vs... >, U > = std::true_type{}
inlineconstexpr

checks if T is a instance of U

Template Parameters
Tfull type specialization
Uunspecialized template type
Returns
true if T is a specialization of U

Definition at line 106 of file utility.hpp.

◆ isVector_v

template<typename T>
bool alpaka::isVector_v = trait::IsVector<T>::value
constexpr

Definition at line 39 of file Vec.hpp.

◆ notRequiredDim

uint32_t alpaka::notRequiredDim = std::numeric_limits<uint32_t>::max()
constexpr

Definition at line 23 of file trait.hpp.

◆ notRequiredWidth

uint32_t alpaka::notRequiredWidth = notRequiredDim
constexpr

Definition at line 24 of file trait.hpp.