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

#include <CL/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>
void load (size_t offset, multi_ptr< DataT, Space > 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 cl::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 cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >

Definition at line 118 of file types.hpp.

Member Function Documentation

◆ __SYCL2020_DEPRECATED() [1/2]

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

Definition at line 1457 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()>
cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::__SYCL2020_DEPRECATED ( "get_size() is  deprecated,
please use byte_size() instead  
) const
inline

Definition at line 1462 of file types.hpp.

◆ as()

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

Definition at line 1890 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 cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::byte_size ( ) const
inlinenoexcept

Definition at line 1468 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)> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::convert ( ) const
inline

Definition at line 1884 of file types.hpp.

◆ load()

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

Definition at line 1877 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>>
cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator T ( ) const
inline

Definition at line 1475 of file types.hpp.

◆ operator!()

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

Definition at line 1552 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator!= ( const RhsOperation &  Rhs) const
inline

Definition at line 1765 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator!= ( const T Rhs) const
inline

Definition at line 1757 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator& ( const RhsOperation &  Rhs) const
inline

Definition at line 1658 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator& ( const T Rhs) const
inline

Definition at line 1650 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator&& ( const RhsOperation &  Rhs) const
inline

Definition at line 1834 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator&& ( const T Rhs) const
inline

Definition at line 1826 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator* ( const RhsOperation &  Rhs) const
inline

Definition at line 1601 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator* ( const T Rhs) const
inline

Definition at line 1593 of file types.hpp.

◆ operator+() [1/3]

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

Definition at line 1557 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator+ ( const RhsOperation &  Rhs) const
inline

Definition at line 1615 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator+ ( const T Rhs) const
inline

Definition at line 1607 of file types.hpp.

◆ operator-() [1/3]

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

Definition at line 1562 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator- ( const RhsOperation &  Rhs) const
inline

Definition at line 1629 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator- ( const T Rhs) const
inline

Definition at line 1621 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator/ ( const RhsOperation &  Rhs) const
inline

Definition at line 1643 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator/ ( const T Rhs) const
inline

Definition at line 1635 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator< ( const RhsOperation &  Rhs) const
inline

Definition at line 1820 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator< ( const T Rhs) const
inline

Definition at line 1812 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<< ( const RhsOperation &  Rhs) const
inline

Definition at line 1714 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<< ( const T Rhs) const
inline

Definition at line 1706 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<= ( const RhsOperation &  Rhs) const
inline

Definition at line 1793 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator<= ( const T Rhs) const
inline

Definition at line 1785 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& cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( const DataT &  Rhs)
inline

Definition at line 1578 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& cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( const SwizzleOp< T1, T2, T3, T4, T5... > &  Rhs)
inline

Definition at line 1722 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& cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( const vec< DataT, IdxNum > &  Rhs)
inline

Definition at line 1569 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& cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( DataT &&  Rhs)
inline

Definition at line 1585 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& cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator= ( SwizzleOp< T1, T2, T3, T4, T5... > &&  Rhs)
inline

Definition at line 1734 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator== ( const RhsOperation &  Rhs) const
inline

Definition at line 1751 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator== ( const T Rhs) const
inline

Definition at line 1743 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator> ( const RhsOperation &  Rhs) const
inline

Definition at line 1807 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator> ( const T Rhs) 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>>
NewRelOp<RhsOperation, GreaterEqualTo, Indexes...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>= ( const RhsOperation &  Rhs) const
inline

Definition at line 1779 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>= ( const T Rhs) const
inline

Definition at line 1771 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>> ( const RhsOperation &  Rhs) const
inline

Definition at line 1701 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator>> ( const T Rhs) const
inline

Definition at line 1693 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator^ ( const RhsOperation &  Rhs) const
inline

Definition at line 1687 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator^ ( const T Rhs) const
inline

Definition at line 1679 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator| ( const RhsOperation &  Rhs) const
inline

Definition at line 1673 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator| ( const T Rhs) const
inline

Definition at line 1665 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator|| ( const RhsOperation &  Rhs) const
inline

Definition at line 1848 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...> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator|| ( const T Rhs) const
inline

Definition at line 1840 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> cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes >::operator~ ( )
inline

Definition at line 1547 of file types.hpp.

◆ size()

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

Definition at line 1459 of file types.hpp.

Friends And Related Function Documentation

◆ cl::sycl::vec

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

Definition at line 1966 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::multiplies, Indexes...> operator* ( const T Lhs,
const SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes > &  Rhs 
)
friend

Definition at line 1481 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 1488 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 1495 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 1970 of file types.hpp.


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