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

#include <sycl/types.hpp>

Public Member Functions

 __SYCL2020_DEPRECATED ("get_count() is deprecated, please use size() instead") size_t get_count() const
 
size_t size () const noexcept
 
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>
detail::enable_if_t< std::is_integral< vec_data_t< T > >::value, 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(), 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::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 detail::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 detail::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
 

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 124 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 1469 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 1474 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 1901 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 1480 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 1895 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 1888 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 1487 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 1564 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 1777 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 1769 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 1670 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 1662 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 1846 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 1838 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 1613 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 1605 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 1569 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 1627 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 1619 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 1574 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 1641 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 1633 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 1655 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 1647 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 1832 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 1824 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 1726 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 1718 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 1805 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 1797 of file types.hpp.

◆ operator=() [1/5]

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 1590 of file types.hpp.

◆ operator=() [2/5]

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 detail::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 1734 of file types.hpp.

◆ operator=() [3/5]

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 1581 of file types.hpp.

◆ operator=() [4/5]

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 1597 of file types.hpp.

◆ operator=() [5/5]

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 detail::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 1746 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 1763 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 1755 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 1819 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 1811 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 1791 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 1783 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 1713 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 1705 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 1699 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 1691 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 1685 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 1677 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 1860 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 1852 of file types.hpp.

◆ operator~()

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

Definition at line 1559 of file types.hpp.

◆ size()

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

Definition at line 1471 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 1493 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 1500 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 1507 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 1981 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 1977 of file types.hpp.


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