Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
VecSVE< T, N > Class Template Reference

#include <vectorclass_sve.hpp>

Inheritance diagram for VecSVE< T, N >:
Collaboration diagram for VecSVE< T, N >:

Public Types

using sve_vec_t = typename VecSVEBase<T, N>::sve_vec_t
using sve_scalar_t = typename VecSVEBase<T, N>::sve_scalar_t
Public Types inherited from VecSVEBase< T, N >
using sve_vec_t = typename sve::type<T>::vec
using sve_integral_t = typename sve::type<T>::integral
using sve_scalar_t = typename sve::type<T>::scalar

Public Member Functions

SVE_INLINE VecSVE ()=default
SVE_INLINE VecSVE (const T *data)
SVE_INLINE VecSVE (sve_vec_t *data)
SVE_INLINE VecSVE (const VecSVE &other)
SVE_INLINE VecSVE (std::initializer_list< T > values)
SVE_INLINE VecSVE (const T value)
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
 VecSVE (U value)
SVE_INLINE VecSVEoperator= (const VecSVE< T, N > &other)
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEoperator= (const U value)
SVE_INLINE VecSVEload (const T *ptr)
SVE_INLINE VecSVEload_a (const T *ptr)
SVE_INLINE void store (T *destination) const
SVE_INLINE void store_a (T *destination) const
SVE_INLINE VecSVE sqrt () const
template<typename conv_t>
VecSVE< conv_t, N > as () const
SVE_INLINE VecSVE operator+ (const VecSVE &rhs) const
SVE_INLINE VecSVEoperator+= (const VecSVE &rhs)
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE operator+ (const U value) const
SVE_INLINE VecSVE operator* (const VecSVE &rhs) const
SVE_INLINE VecSVEoperator*= (const VecSVE &rhs)
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE operator* (const U value) const
SVE_INLINE VecSVE operator- (const VecSVE &rhs) const
SVE_INLINE VecSVEoperator-= (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE operator- (const U value) const
SVE_INLINE VecSVE operator- () const
SVE_INLINE VecSVE operator/ (const VecSVE &rhs) const
SVE_INLINE VecSVEoperator/= (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE operator/ (const U value) const
SVE_INLINE VecSVE abs () const
SVE_INLINE VecSVE min (const VecSVE &rhs) const
SVE_INLINE VecSVE max (const VecSVE &rhs) const
SVE_INLINE VecSVE select (const VecSVEMask< T, N > &mask, const VecSVE &rhs) const
SVE_INLINE VecSVEMask< T, N > operator== (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > operator== (const U &value) const
SVE_INLINE VecSVEMask< T, N > operator!= (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > operator!= (const U &value) const
SVE_INLINE VecSVEMask< T, N > operator> (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > operator> (const U &value) const
SVE_INLINE VecSVEMask< T, N > operator< (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > operator< (const U &value) const
SVE_INLINE VecSVEMask< T, N > operator>= (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > operator>= (const U &value) const
SVE_INLINE VecSVEMask< T, N > operator<= (const VecSVE &rhs) const
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > operator<= (const U &value) const
Public Member Functions inherited from VecSVEBase< T, N >
operator[] (const std::size_t i) const
SVE_INLINE sve_scalar_t reduce () const
sve_scalar_tleak_ptr () const

Static Public Attributes

static constexpr std::size_t sve_size_bytes = VecSVEBase<T, N>::sve_size_bytes
static constexpr std::size_t len = VecSVEBase<T, N>::len
static constexpr std::size_t elems_per_vec = VecSVEBase<T, N>::elems_per_vec
Static Public Attributes inherited from VecSVEBase< T, N >
static constexpr std::size_t sve_size_bytes = __ARM_FEATURE_SVE_BITS >> 3
static constexpr std::size_t len = N * sizeof(T) / sve_size_bytes
static constexpr std::size_t elems_per_vec = sve_size_bytes / sizeof(T)

Additional Inherited Members

Protected Member Functions inherited from VecSVEBase< T, N >
sve_vec_t m_data[len__attribute__ ((aligned(CACHE_LINE_SIZE)))

Detailed Description

template<typename T, std::size_t N>
class VecSVE< T, N >

Definition at line 662 of file vectorclass_sve.hpp.

Member Typedef Documentation

◆ sve_scalar_t

template<typename T, std::size_t N>
using VecSVE< T, N >::sve_scalar_t = typename VecSVEBase<T, N>::sve_scalar_t

Definition at line 666 of file vectorclass_sve.hpp.

◆ sve_vec_t

template<typename T, std::size_t N>
using VecSVE< T, N >::sve_vec_t = typename VecSVEBase<T, N>::sve_vec_t

Definition at line 665 of file vectorclass_sve.hpp.

Constructor & Destructor Documentation

◆ VecSVE() [1/7]

template<typename T, std::size_t N>
SVE_INLINE VecSVE< T, N >::VecSVE ( )
default
Here is the caller graph for this function:

◆ VecSVE() [2/7]

template<typename T, std::size_t N>
SVE_INLINE VecSVE< T, N >::VecSVE ( const T * data)
inline

Definition at line 673 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ VecSVE() [3/7]

template<typename T, std::size_t N>
SVE_INLINE VecSVE< T, N >::VecSVE ( sve_vec_t * data)
inline

Definition at line 675 of file vectorclass_sve.hpp.

◆ VecSVE() [4/7]

template<typename T, std::size_t N>
SVE_INLINE VecSVE< T, N >::VecSVE ( const VecSVE< T, N > & other)
inline

Definition at line 681 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ VecSVE() [5/7]

template<typename T, std::size_t N>
SVE_INLINE VecSVE< T, N >::VecSVE ( std::initializer_list< T > values)
inline

Definition at line 687 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ VecSVE() [6/7]

template<typename T, std::size_t N>
SVE_INLINE VecSVE< T, N >::VecSVE ( const T value)
inline

Definition at line 707 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ VecSVE() [7/7]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
VecSVE< T, N >::VecSVE ( U value)
inlineexplicit

Definition at line 715 of file vectorclass_sve.hpp.

Here is the call graph for this function:

Member Function Documentation

◆ abs()

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::abs ( ) const
inline

Definition at line 864 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ as()

template<typename T, std::size_t N>
template<typename conv_t>
VecSVE< conv_t, N > VecSVE< T, N >::as ( ) const
inline

Definition at line 756 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ load()

template<typename T, std::size_t N>
SVE_INLINE VecSVE & VecSVE< T, N >::load ( const T * ptr)
inline

Definition at line 733 of file vectorclass_sve.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_a()

template<typename T, std::size_t N>
SVE_INLINE VecSVE & VecSVE< T, N >::load_a ( const T * ptr)
inline

Definition at line 738 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ max()

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::max ( const VecSVE< T, N > & rhs) const
inline

Definition at line 873 of file vectorclass_sve.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ min()

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::min ( const VecSVE< T, N > & rhs) const
inline

Definition at line 868 of file vectorclass_sve.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!=() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator!= ( const U & value) const
inline

Definition at line 903 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator!=() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator!= ( const VecSVE< T, N > & rhs) const
inline

Definition at line 896 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator*() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE VecSVE< T, N >::operator* ( const U value) const
inline

Definition at line 814 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator*() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::operator* ( const VecSVE< T, N > & rhs) const
inline

Definition at line 802 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator*=()

template<typename T, std::size_t N>
SVE_INLINE VecSVE & VecSVE< T, N >::operator*= ( const VecSVE< T, N > & rhs)
inline

Definition at line 807 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator+() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE VecSVE< T, N >::operator+ ( const U value) const
inline

Definition at line 796 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator+() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::operator+ ( const VecSVE< T, N > & rhs) const
inline

Definition at line 784 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator+=()

template<typename T, std::size_t N>
SVE_INLINE VecSVE & VecSVE< T, N >::operator+= ( const VecSVE< T, N > & rhs)
inline

Definition at line 789 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator-() [1/3]

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::operator- ( ) const
inline

Definition at line 838 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator-() [2/3]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE VecSVE< T, N >::operator- ( const U value) const
inline

Definition at line 832 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator-() [3/3]

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::operator- ( const VecSVE< T, N > & rhs) const
inline

Definition at line 820 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator-=()

template<typename T, std::size_t N>
SVE_INLINE VecSVE & VecSVE< T, N >::operator-= ( const VecSVE< T, N > & rhs) const
inline

Definition at line 825 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator/() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE VecSVE< T, N >::operator/ ( const U value) const
inline

Definition at line 857 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator/() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::operator/ ( const VecSVE< T, N > & rhs) const
inline

Definition at line 843 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator/=()

template<typename T, std::size_t N>
SVE_INLINE VecSVE & VecSVE< T, N >::operator/= ( const VecSVE< T, N > & rhs) const
inline

Definition at line 849 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator<() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator< ( const U & value) const
inline

Definition at line 930 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator<() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator< ( const VecSVE< T, N > & rhs) const
inline

Definition at line 923 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator<=() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator<= ( const U & value) const
inline

Definition at line 957 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator<=() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator<= ( const VecSVE< T, N > & rhs) const
inline

Definition at line 950 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator=() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVE & VecSVE< T, N >::operator= ( const U value)
inline

Definition at line 725 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator=() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVE & VecSVE< T, N >::operator= ( const VecSVE< T, N > & other)
inline

Definition at line 717 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator==() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator== ( const U & value) const
inline

Definition at line 890 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator==() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator== ( const VecSVE< T, N > & rhs) const
inline

Definition at line 883 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator>() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator> ( const U & value) const
inline

Definition at line 917 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator>() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator> ( const VecSVE< T, N > & rhs) const
inline

Definition at line 910 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator>=() [1/2]

template<typename T, std::size_t N>
template<typename U, typename = std::enable_if_t<std::is_arithmetic_v<U>>>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator>= ( const U & value) const
inline

Definition at line 943 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ operator>=() [2/2]

template<typename T, std::size_t N>
SVE_INLINE VecSVEMask< T, N > VecSVE< T, N >::operator>= ( const VecSVE< T, N > & rhs) const
inline

Definition at line 936 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ select()

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::select ( const VecSVEMask< T, N > & mask,
const VecSVE< T, N > & rhs ) const
inline

Definition at line 878 of file vectorclass_sve.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sqrt()

template<typename T, std::size_t N>
SVE_INLINE VecSVE VecSVE< T, N >::sqrt ( ) const
inline

Definition at line 752 of file vectorclass_sve.hpp.

Here is the call graph for this function:

◆ store()

template<typename T, std::size_t N>
SVE_INLINE void VecSVE< T, N >::store ( T * destination) const
inline

Definition at line 743 of file vectorclass_sve.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ store_a()

template<typename T, std::size_t N>
SVE_INLINE void VecSVE< T, N >::store_a ( T * destination) const
inline

Definition at line 747 of file vectorclass_sve.hpp.

Here is the call graph for this function:

Member Data Documentation

◆ elems_per_vec

template<typename T, std::size_t N>
std::size_t VecSVE< T, N >::elems_per_vec = VecSVEBase<T, N>::elems_per_vec
staticconstexpr

Definition at line 669 of file vectorclass_sve.hpp.

◆ len

template<typename T, std::size_t N>
std::size_t VecSVE< T, N >::len = VecSVEBase<T, N>::len
staticconstexpr

Definition at line 668 of file vectorclass_sve.hpp.

◆ sve_size_bytes

template<typename T, std::size_t N>
std::size_t VecSVE< T, N >::sve_size_bytes = VecSVEBase<T, N>::sve_size_bytes
staticconstexpr

Definition at line 667 of file vectorclass_sve.hpp.


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