DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes > Class Template Reference

#include <sycl/types.hpp>

Public Types

using element_type = DataT
 
using value_type = DataT
 

Public Member Functions

const DataT & operator[] (int i) const
 
template<typename _T = VecT>
std::enable_if_t<!std::is_const_v< _T >, DataT > & operator[] (int i)
 
 __SYCL2020_DEPRECATED ("get_count() is deprecated, please use size() instead") size_t get_count() const
 
template<int Num = getNumElements()>
 __SYCL2020_DEPRECATED ("get_size() is deprecated, please use byte_size() instead") size_t get_size() const
 
template<int Num = getNumElements()>
size_t byte_size () const noexcept
 
template<typename T , int IdxNum = getNumElements(), typename = EnableIfOneIndex<IdxNum>, typename = EnableIfScalarType<T>>
 operator T () const
 
template<typename T = DataT>
std::enable_if_t< std::is_integral_v< vec_data_t< T > >, vec_toperator~ ()
 
vec_rel_t operator! ()
 
vec_t operator+ ()
 
vec_t operator- ()
 
template<int IdxNum = getNumElements(), typename = EnableIfMultipleIndexes<IdxNum>>
SwizzleOpoperator= (const vec< DataT, IdxNum > &Rhs)
 
template<int IdxNum = getNumElements(), typename = EnableIfOneIndex<IdxNum>>
SwizzleOpoperator= (const DataT &Rhs)
 
template<int IdxNum = getNumElements(), EnableIfMultipleIndexes< IdxNum, bool > = true>
SwizzleOpoperator= (const DataT &Rhs)
 
template<int IdxNum = getNumElements(), typename = EnableIfOneIndex<IdxNum>>
SwizzleOpoperator= (DataT &&Rhs)
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::multiplies, Indexes... > operator* (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::multiplies, Indexes... > operator* (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::plus, Indexes... > operator+ (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::plus, Indexes... > operator+ (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::minus, Indexes... > operator- (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::minus, Indexes... > operator- (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::divides, Indexes... > operator/ (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::divides, Indexes... > operator/ (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::modulus, Indexes... > operator% (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::modulus, Indexes... > operator% (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::bit_and, Indexes... > operator& (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::bit_and, Indexes... > operator& (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::bit_or, Indexes... > operator| (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::bit_or, Indexes... > operator| (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, std::bit_xor, Indexes... > operator^ (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, std::bit_xor, Indexes... > operator^ (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, RShift, Indexes... > operator>> (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, RShift, Indexes... > operator>> (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp< GetScalarOp< T >, LShift, Indexes... > operator<< (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp< RhsOperation, LShift, Indexes... > operator<< (const RhsOperation &Rhs) const
 
template<typename T1 , typename T2 , typename T3 , template< typename > class T4, int... T5, typename = typename std::enable_if_t<sizeof...(T5) == getNumElements()>>
SwizzleOpoperator= (const SwizzleOp< T1, T2, T3, T4, T5... > &Rhs)
 
template<typename T1 , typename T2 , typename T3 , template< typename > class T4, int... T5, typename = typename std::enable_if_t<sizeof...(T5) == getNumElements()>>
SwizzleOpoperator= (SwizzleOp< T1, T2, T3, T4, T5... > &&Rhs)
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, EqualTo, Indexes... > operator== (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, EqualTo, Indexes... > operator== (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, NotEqualTo, Indexes... > operator!= (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, NotEqualTo, Indexes... > operator!= (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, GreaterEqualTo, Indexes... > operator>= (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, GreaterEqualTo, Indexes... > operator>= (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, LessEqualTo, Indexes... > operator<= (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, LessEqualTo, Indexes... > operator<= (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, GreaterThan, Indexes... > operator> (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, GreaterThan, Indexes... > operator> (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, LessThan, Indexes... > operator< (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, LessThan, Indexes... > operator< (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, LogicalAnd, Indexes... > operator&& (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, LogicalAnd, Indexes... > operator&& (const RhsOperation &Rhs) const
 
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp< GetScalarOp< T >, LogicalOr, Indexes... > operator|| (const T &Rhs) const
 
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp< RhsOperation, LogicalOr, Indexes... > operator|| (const RhsOperation &Rhs) const
 
template<access::address_space Space, access::decorated DecorateAddress>
void load (size_t offset, multi_ptr< DataT, Space, DecorateAddress > ptr)
 
template<typename convertT , rounding_mode roundingMode>
vec< convertT, sizeof...(Indexes)> convert () const
 
template<typename asT >
asT as () const
 

Static Public Member Functions

static constexpr size_t size () noexcept
 

Friends

template<typename T1 , int T2>
class sycl::vec
 
template<typename T1 , typename T2 , typename T3 , template< typename > class T4, int... T5>
class SwizzleOp
 
template<typename T , typename = EnableIfScalarType<T>>
NewRHOp< GetScalarOp< T >, std::multiplies, Indexes... > operator* (const T &Lhs, const SwizzleOp &Rhs)
 
template<typename T , typename = EnableIfScalarType<T>>
NewRHOp< GetScalarOp< T >, std::plus, Indexes... > operator+ (const T &Lhs, const SwizzleOp &Rhs)
 
template<typename T , typename = EnableIfScalarType<T>>
NewRHOp< GetScalarOp< T >, std::divides, Indexes... > operator/ (const T &Lhs, const SwizzleOp &Rhs)
 

Detailed Description

template<typename VecT, typename OperationLeftT, typename OperationRightT, template< typename > class OperationCurrentT, int... Indexes>
class sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >

Definition at line 1703 of file types.hpp.

Member Typedef Documentation

◆ element_type

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
using sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::element_type = DataT

Definition at line 1792 of file types.hpp.

◆ value_type

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
using sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::value_type = DataT

Definition at line 1793 of file types.hpp.

Member Function Documentation

◆ __SYCL2020_DEPRECATED() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::__SYCL2020_DEPRECATED ( "get_count() is  deprecated,
please use size() instead  
) const
inline

Definition at line 1810 of file types.hpp.

◆ __SYCL2020_DEPRECATED() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<int Num = getNumElements()>
sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::__SYCL2020_DEPRECATED ( "get_size() is  deprecated,
please use byte_size() instead  
) const
inline

Definition at line 1815 of file types.hpp.

◆ as()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename asT >
asT sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::as ( ) const
inline

Definition at line 2365 of file types.hpp.

◆ byte_size()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<int Num = getNumElements()>
size_t sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::byte_size ( ) const
inlinenoexcept

Definition at line 1821 of file types.hpp.

◆ convert()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename convertT , rounding_mode roundingMode>
vec<convertT, sizeof...(Indexes)> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::convert ( ) const
inline

Definition at line 2359 of file types.hpp.

◆ load()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<access::address_space Space, access::decorated DecorateAddress>
void sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::load ( size_t  offset,
multi_ptr< DataT, Space, DecorateAddress >  ptr 
)
inline

Definition at line 2352 of file types.hpp.

◆ operator T()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , int IdxNum = getNumElements(), typename = EnableIfOneIndex<IdxNum>, typename = EnableIfScalarType<T>>
sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator T ( ) const
inline

Definition at line 1828 of file types.hpp.

◆ operator!()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
vec_rel_t sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator! ( )
inline

Definition at line 1929 of file types.hpp.

◆ operator!=() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, NotEqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator!= ( const RhsOperation &  Rhs) const
inline

Definition at line 2241 of file types.hpp.

◆ operator!=() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, NotEqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator!= ( const T &  Rhs) const
inline

Definition at line 2233 of file types.hpp.

◆ operator%() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::modulus, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator% ( const RhsOperation &  Rhs) const
inline

Definition at line 2119 of file types.hpp.

◆ operator%() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::modulus, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator% ( const T &  Rhs) const
inline

Definition at line 2111 of file types.hpp.

◆ operator&() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::bit_and, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator& ( const RhsOperation &  Rhs) const
inline

Definition at line 2134 of file types.hpp.

◆ operator&() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::bit_and, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator& ( const T &  Rhs) const
inline

Definition at line 2126 of file types.hpp.

◆ operator&&() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, LogicalAnd, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator&& ( const RhsOperation &  Rhs) const
inline

Definition at line 2310 of file types.hpp.

◆ operator&&() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, LogicalAnd, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator&& ( const T &  Rhs) const
inline

Definition at line 2302 of file types.hpp.

◆ operator*() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::multiplies, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator* ( const RhsOperation &  Rhs) const
inline

Definition at line 2062 of file types.hpp.

◆ operator*() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::multiplies, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator* ( const T &  Rhs) const
inline

Definition at line 2054 of file types.hpp.

◆ operator+() [1/3]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
vec_t sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator+ ( )
inline

Definition at line 1934 of file types.hpp.

◆ operator+() [2/3]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::plus, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator+ ( const RhsOperation &  Rhs) const
inline

Definition at line 2076 of file types.hpp.

◆ operator+() [3/3]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::plus, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator+ ( const T &  Rhs) const
inline

Definition at line 2068 of file types.hpp.

◆ operator-() [1/3]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
vec_t sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator- ( )
inline

Definition at line 1939 of file types.hpp.

◆ operator-() [2/3]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::minus, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator- ( const RhsOperation &  Rhs) const
inline

Definition at line 2090 of file types.hpp.

◆ operator-() [3/3]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::minus, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator- ( const T &  Rhs) const
inline

Definition at line 2082 of file types.hpp.

◆ operator/() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::divides, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator/ ( const RhsOperation &  Rhs) const
inline

Definition at line 2104 of file types.hpp.

◆ operator/() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::divides, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator/ ( const T &  Rhs) const
inline

Definition at line 2096 of file types.hpp.

◆ operator<() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, LessThan, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator< ( const RhsOperation &  Rhs) const
inline

Definition at line 2283 of file types.hpp.

◆ operator<() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, LessThan, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator< ( const T &  Rhs) const
inline

Definition at line 2283 of file types.hpp.

◆ operator<<() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, LShift, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<< ( const RhsOperation &  Rhs) const
inline

Definition at line 2177 of file types.hpp.

◆ operator<<() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, LShift, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<< ( const T &  Rhs) const
inline

Definition at line 2177 of file types.hpp.

◆ operator<=() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, LessEqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<= ( const RhsOperation &  Rhs) const
inline

Definition at line 2255 of file types.hpp.

◆ operator<=() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, LessEqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<= ( const T &  Rhs) const
inline

Definition at line 2255 of file types.hpp.

◆ operator=() [1/6]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<int IdxNum = getNumElements(), typename = EnableIfOneIndex<IdxNum>>
SwizzleOp& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( const DataT &  Rhs)
inline

Definition at line 2029 of file types.hpp.

◆ operator=() [2/6]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<int IdxNum = getNumElements(), EnableIfMultipleIndexes< IdxNum, bool > = true>
SwizzleOp& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( const DataT &  Rhs)
inline

Definition at line 2037 of file types.hpp.

◆ operator=() [3/6]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T1 , typename T2 , typename T3 , template< typename > class T4, int... T5, typename = typename std::enable_if_t<sizeof...(T5) == getNumElements()>>
SwizzleOp& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( const SwizzleOp< T1, T2, T3, T4, T5... > &  Rhs)
inline

Definition at line 2198 of file types.hpp.

◆ operator=() [4/6]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<int IdxNum = getNumElements(), typename = EnableIfMultipleIndexes<IdxNum>>
SwizzleOp& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( const vec< DataT, IdxNum > &  Rhs)
inline

Definition at line 2020 of file types.hpp.

◆ operator=() [5/6]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<int IdxNum = getNumElements(), typename = EnableIfOneIndex<IdxNum>>
SwizzleOp& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( DataT &&  Rhs)
inline

Definition at line 2046 of file types.hpp.

◆ operator=() [6/6]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T1 , typename T2 , typename T3 , template< typename > class T4, int... T5, typename = typename std::enable_if_t<sizeof...(T5) == getNumElements()>>
SwizzleOp& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( SwizzleOp< T1, T2, T3, T4, T5... > &&  Rhs)
inline

Definition at line 2210 of file types.hpp.

◆ operator==() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, EqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator== ( const RhsOperation &  Rhs) const
inline

Definition at line 2227 of file types.hpp.

◆ operator==() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, EqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator== ( const T &  Rhs) const
inline

Definition at line 2219 of file types.hpp.

◆ operator>() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, GreaterThan, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator> ( const RhsOperation &  Rhs) const
inline

Definition at line 2283 of file types.hpp.

◆ operator>() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, GreaterThan, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator> ( const T &  Rhs) const
inline

Definition at line 2275 of file types.hpp.

◆ operator>=() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, GreaterEqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>= ( const RhsOperation &  Rhs) const
inline

Definition at line 2255 of file types.hpp.

◆ operator>=() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, GreaterEqualTo, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>= ( const T &  Rhs) const
inline

Definition at line 2247 of file types.hpp.

◆ operator>>() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, RShift, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>> ( const RhsOperation &  Rhs) const
inline

Definition at line 2177 of file types.hpp.

◆ operator>>() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, RShift, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>> ( const T &  Rhs) const
inline

Definition at line 2169 of file types.hpp.

◆ operator[]() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename _T = VecT>
std::enable_if_t<!std::is_const_v<_T>, DataT>& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator[] ( int  i)
inline

Definition at line 1805 of file types.hpp.

◆ operator[]() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
const DataT& sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator[] ( int  i) const
inline

Definition at line 1799 of file types.hpp.

◆ operator^() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::bit_xor, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator^ ( const RhsOperation &  Rhs) const
inline

Definition at line 2163 of file types.hpp.

◆ operator^() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::bit_xor, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator^ ( const T &  Rhs) const
inline

Definition at line 2155 of file types.hpp.

◆ operator|() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewLHOp<RhsOperation, std::bit_or, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator| ( const RhsOperation &  Rhs) const
inline

Definition at line 2149 of file types.hpp.

◆ operator|() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewLHOp<GetScalarOp<T>, std::bit_or, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator| ( const T &  Rhs) const
inline

Definition at line 2141 of file types.hpp.

◆ operator||() [1/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename RhsOperation , typename = EnableIfNoScalarType<RhsOperation>>
NewRelOp<RhsOperation, LogicalOr, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator|| ( const RhsOperation &  Rhs) const
inline

Definition at line 2324 of file types.hpp.

◆ operator||() [2/2]

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRelOp<GetScalarOp<T>, LogicalOr, Indexes...> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator|| ( const T &  Rhs) const
inline

Definition at line 2316 of file types.hpp.

◆ operator~()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T = DataT>
std::enable_if_t<std::is_integral_v<vec_data_t<T> >, vec_t> sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator~ ( )
inline

Definition at line 1924 of file types.hpp.

◆ size()

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
static constexpr size_t sycl::_V1::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::size ( )
inlinestaticconstexprnoexcept

Definition at line 1812 of file types.hpp.

Friends And Related Function Documentation

◆ operator*

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRHOp<GetScalarOp<T>, std::multiplies, Indexes...> operator* ( const T &  Lhs,
const SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes > &  Rhs 
)
friend

Definition at line 1834 of file types.hpp.

◆ operator+

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRHOp<GetScalarOp<T>, std::plus, Indexes...> operator+ ( const T &  Lhs,
const SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes > &  Rhs 
)
friend

Definition at line 1841 of file types.hpp.

◆ operator/

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T , typename = EnableIfScalarType<T>>
NewRHOp<GetScalarOp<T>, std::divides, Indexes...> operator/ ( const T &  Lhs,
const SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes > &  Rhs 
)
friend

Definition at line 1848 of file types.hpp.

◆ SwizzleOp

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T1 , typename T2 , typename T3 , template< typename > class T4, int... T5>
friend class SwizzleOp
friend

Definition at line 2446 of file types.hpp.

◆ sycl::vec

template<typename VecT , typename OperationLeftT , typename OperationRightT , template< typename > class OperationCurrentT, int... Indexes>
template<typename T1 , int T2>
friend class sycl::vec
friend

Definition at line 2442 of file types.hpp.


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