HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
simd Namespace Reference

Classes

struct  simd_raw_t
 
struct  simd_bool_t
 
struct  simd_bool_t< 16 >
 
struct  VecType
 
struct  VecType< int, 1 >
 
struct  VecType< float, 1 >
 
struct  VecType< int, 4 >
 
struct  VecType< float, 4 >
 
struct  VecType< float, 3 >
 
struct  VecType< bool, 4 >
 
struct  VecType< int, 8 >
 
struct  VecType< float, 8 >
 
struct  VecType< bool, 8 >
 
struct  VecType< int, 16 >
 
struct  VecType< float, 16 >
 
struct  VecType< bool, 16 >
 
struct  SimdSize
 
struct  SimdSize< vint4 >
 
struct  SimdSize< vfloat4 >
 
struct  SimdSize< vfloat3 >
 
struct  SimdSize< vbool4 >
 
struct  SimdSize< vint8 >
 
struct  SimdSize< vfloat8 >
 
struct  SimdSize< vbool8 >
 
struct  SimdSize< vint16 >
 
struct  SimdSize< vfloat16 >
 
struct  SimdSize< vbool16 >
 
struct  SimdElements
 
struct  SimdElements< vfloat3 >
 
struct  SimdTypeName
 Template giving a printable name for each type. More...
 
struct  SimdTypeName< vfloat4 >
 
struct  SimdTypeName< vint4 >
 
struct  SimdTypeName< vbool4 >
 
struct  SimdTypeName< vfloat8 >
 
struct  SimdTypeName< vint8 >
 
struct  SimdTypeName< vbool8 >
 
struct  SimdTypeName< vfloat16 >
 
struct  SimdTypeName< vint16 >
 
struct  SimdTypeName< vbool16 >
 
struct  is_simd
 Is a type T one of our SIMD-based types? More...
 
struct  is_simd< vint4 >
 
struct  is_simd< vfloat4 >
 
struct  is_simd< vfloat3 >
 
struct  is_simd< vbool4 >
 
struct  is_simd< vint8 >
 
struct  is_simd< vfloat8 >
 
struct  is_simd< vbool8 >
 
struct  is_simd< vint16 >
 
struct  is_simd< vfloat16 >
 
struct  is_simd< vbool16 >
 
struct  is_simd< matrix44 >
 
class  vbool4
 
class  vbool8
 
class  vbool16
 
class  vint4
 Integer 4-vector, accelerated by SIMD instructions when available. More...
 
class  vint8
 Integer 8-vector, accelerated by SIMD instructions when available. More...
 
class  vint16
 Integer 16-vector, accelerated by SIMD instructions when available. More...
 
class  vfloat4
 
class  vfloat3
 
class  matrix44
 
class  vfloat8
 
class  vfloat16
 

Functions

template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vbool4 shuffle (const vbool4 &a)
 
template<int i>
OIIO_FORCEINLINE vbool4 shuffle (const vbool4 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
OIIO_FORCEINLINE bool extract (const vbool4 &a)
 
template<int i>
OIIO_FORCEINLINE vbool4 insert (const vbool4 &a, bool val)
 Helper: substitute val for a[i]. More...
 
bool reduce_and (const vbool4 &v)
 Logical reduction across all components. More...
 
bool reduce_or (const vbool4 &v)
 
bool all (const vbool4 &v)
 
bool any (const vbool4 &v)
 
bool none (const vbool4 &v)
 
bool all (bool v)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
OIIO_FORCEINLINE vbool8 shuffle (const vbool8 &a)
 
template<int i>
OIIO_FORCEINLINE vbool8 shuffle (const vbool8 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
OIIO_FORCEINLINE bool extract (const vbool8 &a)
 
template<int i>
OIIO_FORCEINLINE vbool8 insert (const vbool8 &a, bool val)
 Helper: substitute val for a[i]. More...
 
bool reduce_and (const vbool8 &v)
 Logical reduction across all components. More...
 
bool reduce_or (const vbool8 &v)
 
bool all (const vbool8 &v)
 
bool any (const vbool8 &v)
 
bool none (const vbool8 &v)
 
template<int i>
OIIO_FORCEINLINE bool extract (const vbool16 &a)
 
template<int i>
OIIO_FORCEINLINE vbool16 insert (const vbool16 &a, bool val)
 Helper: substitute val for a[i]. More...
 
bool reduce_and (const vbool16 &v)
 Logical reduction across all components. More...
 
bool reduce_or (const vbool16 &v)
 
bool all (const vbool16 &v)
 
bool any (const vbool16 &v)
 
bool none (const vbool16 &v)
 
vint4 srl (const vint4 &val, const unsigned int bits)
 
template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vint4 shuffle (const vint4 &a)
 
template<int i>
OIIO_FORCEINLINE vint4 shuffle (const vint4 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
OIIO_FORCEINLINE int extract (const vint4 &v)
 
vint4 vreduce_add (const vint4 &v)
 The sum of all components, returned in all components. More...
 
int reduce_add (const vint4 &v)
 
int reduce_and (const vint4 &v)
 
int reduce_or (const vint4 &v)
 
vint4 blend (const vint4 &a, const vint4 &b, const vbool4 &mask)
 
vint4 blend0 (const vint4 &a, const vbool4 &mask)
 
vint4 blend0not (const vint4 &a, const vbool4 &mask)
 
vint4 select (const vbool4 &mask, const vint4 &a, const vint4 &b)
 
vint4 abs (const vint4 &a)
 
vint4 min (const vint4 &a, const vint4 &b)
 
vint4 max (const vint4 &a, const vint4 &b)
 
vint4 rotl (const vint4 &x, const int s)
 Circular bit rotate by s bits, for N values at once. More...
 
vint4 rotl32 (const vint4 &x, const unsigned int k)
 
vint4 andnot (const vint4 &a, const vint4 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vint4 bitcast_to_int (const vbool4 &x)
 Bitcast back and forth to intN (not a convert – move the bits!) More...
 
vint4 bitcast_to_int (const vfloat4 &x)
 
vfloat4 bitcast_to_float (const vint4 &x)
 
void transpose (vint4 &a, vint4 &b, vint4 &c, vint4 &d)
 
void transpose (const vint4 &a, const vint4 &b, const vint4 &c, const vint4 &d, vint4 &r0, vint4 &r1, vint4 &r2, vint4 &r3)
 
vint4 AxBxCxDx (const vint4 &a, const vint4 &b, const vint4 &c, const vint4 &d)
 
vint4 safe_mod (const vint4 &a, const vint4 &b)
 
vint4 safe_mod (const vint4 &a, int b)
 
vint8 srl (const vint8 &val, const unsigned int bits)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
OIIO_FORCEINLINE vint8 shuffle (const vint8 &a)
 
template<int i>
OIIO_FORCEINLINE vint8 shuffle (const vint8 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
OIIO_FORCEINLINE int extract (const vint8 &v)
 
template<int i>
OIIO_FORCEINLINE vint8 insert (const vint8 &a, int val)
 Helper: substitute val for a[i]. More...
 
vint8 vreduce_add (const vint8 &v)
 The sum of all components, returned in all components. More...
 
int reduce_add (const vint8 &v)
 
int reduce_and (const vint8 &v)
 
int reduce_or (const vint8 &v)
 
vint8 blend (const vint8 &a, const vint8 &b, const vbool8 &mask)
 
vint8 blend0 (const vint8 &a, const vbool8 &mask)
 
vint8 blend0not (const vint8 &a, const vbool8 &mask)
 
vint8 select (const vbool8 &mask, const vint8 &a, const vint8 &b)
 
vint8 abs (const vint8 &a)
 
vint8 min (const vint8 &a, const vint8 &b)
 
vint8 max (const vint8 &a, const vint8 &b)
 
vint8 rotl (const vint8 &x, const int s)
 Circular bit rotate by s bits, for N values at once. More...
 
vint8 rotl32 (const vint8 &x, const unsigned int k)
 
vint8 andnot (const vint8 &a, const vint8 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vint8 bitcast_to_int (const vbool8 &x)
 Bitcast back and forth to intN (not a convert – move the bits!) More...
 
vint8 bitcast_to_int (const vfloat8 &x)
 
vfloat8 bitcast_to_float (const vint8 &x)
 
vint8 safe_mod (const vint8 &a, const vint8 &b)
 
vint8 safe_mod (const vint8 &a, int b)
 
vint16 srl (const vint16 &val, const unsigned int bits)
 
template<int i0, int i1, int i2, int i3>
vint16 shuffle4 (const vint16 &a)
 Shuffle groups of 4. More...
 
template<int i>
vint16 shuffle4 (const vint16 &a)
 shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a) More...
 
template<int i0, int i1, int i2, int i3>
vint16 shuffle (const vint16 &a)
 Shuffle within each group of 4. More...
 
template<int i>
vint16 shuffle (const vint16 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
OIIO_FORCEINLINE int extract (const vint16 &v)
 
template<int i>
OIIO_FORCEINLINE vint16 insert (const vint16 &a, int val)
 Helper: substitute val for a[i]. More...
 
vint16 vreduce_add (const vint16 &v)
 The sum of all components, returned in all components. More...
 
int reduce_add (const vint16 &v)
 
int reduce_and (const vint16 &v)
 
int reduce_or (const vint16 &v)
 
vint16 blend (const vint16 &a, const vint16 &b, const vbool16 &mask)
 
vint16 blend0 (const vint16 &a, const vbool16 &mask)
 
vint16 blend0not (const vint16 &a, const vbool16 &mask)
 
vint16 select (const vbool16 &mask, const vint16 &a, const vint16 &b)
 
vint16 abs (const vint16 &a)
 
vint16 min (const vint16 &a, const vint16 &b)
 
vint16 max (const vint16 &a, const vint16 &b)
 
vint16 rotl (const vint16 &x, const int s)
 Circular bit rotate by s bits, for N values at once. More...
 
vint16 rotl32 (const vint16 &x, const unsigned int k)
 
vint16 andnot (const vint16 &a, const vint16 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vint16 bitcast_to_int (const vbool16 &x)
 Bitcast back and forth to intN (not a convert – move the bits!) More...
 
vint16 bitcast_to_int (const vfloat16 &x)
 
vfloat16 bitcast_to_float (const vint16 &x)
 
vint16 safe_mod (const vint16 &a, const vint16 &b)
 
vint16 safe_mod (const vint16 &a, int b)
 
template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vfloat4 shuffle (const vfloat4 &a)
 
template<int i>
OIIO_FORCEINLINE vfloat4 shuffle (const vfloat4 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
OIIO_FORCEINLINE vfloat4 shuffle (const vfloat4 &a, const vfloat4 &b)
 
template<int i>
OIIO_FORCEINLINE float extract (const vfloat4 &a)
 
template<int i>
OIIO_FORCEINLINE vfloat4 insert (const vfloat4 &a, float val)
 Helper: substitute val for a[i]. More...
 
vfloat4 vreduce_add (const vfloat4 &v)
 The sum of all components, returned in all components. More...
 
float reduce_add (const vfloat4 &v)
 The sum of all components, returned as a scalar. More...
 
vfloat4 vdot (const vfloat4 &a, const vfloat4 &b)
 Return the float dot (inner) product of a and b in every component. More...
 
float dot (const vfloat4 &a, const vfloat4 &b)
 Return the float dot (inner) product of a and b. More...
 
vfloat4 vdot3 (const vfloat4 &a, const vfloat4 &b)
 
float dot3 (const vfloat4 &a, const vfloat4 &b)
 Return the float 3-component dot (inner) product of a and b. More...
 
vfloat4 blend (const vfloat4 &a, const vfloat4 &b, const vbool4 &mask)
 
vfloat4 blend0 (const vfloat4 &a, const vbool4 &mask)
 
vfloat4 blend0not (const vfloat4 &a, const vbool4 &mask)
 
vfloat4 safe_div (const vfloat4 &a, const vfloat4 &b)
 
vfloat3 hdiv (const vfloat4 &a)
 Homogeneous divide to turn a vfloat4 into a vfloat3. More...
 
vfloat4 select (const vbool4 &mask, const vfloat4 &a, const vfloat4 &b)
 
vfloat4 abs (const vfloat4 &a)
 absolute value (float) More...
 
vfloat4 sign (const vfloat4 &a)
 1.0 when value >= 0, -1 when negative More...
 
vfloat4 ceil (const vfloat4 &a)
 
vfloat4 floor (const vfloat4 &a)
 
vint4 ifloor (const vfloat4 &a)
 (int)floor More...
 
vint4 floori (const vfloat4 &a)
 
vfloat4 round (const vfloat4 &a)
 
vint4 rint (const vfloat4 &a)
 
vfloat4 rcp_fast (const vfloat4 &a)
 Fast, approximate 1/a. More...
 
vfloat4 sqrt (const vfloat4 &a)
 
vfloat4 rsqrt (const vfloat4 &a)
 Fully accurate 1/sqrt. More...
 
vfloat4 rsqrt_fast (const vfloat4 &a)
 Fast, approximate 1/sqrt. More...
 
vfloat4 min (const vfloat4 &a, const vfloat4 &b)
 Per-element min. More...
 
vfloat4 max (const vfloat4 &a, const vfloat4 &b)
 Per-element max. More...
 
template<typename T >
OIIO_FORCEINLINEexp (const T &v)
 
template<typename T >
OIIO_FORCEINLINElog (const T &v)
 
vfloat4 andnot (const vfloat4 &a, const vfloat4 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vfloat4 madd (const vfloat4 &a, const vfloat4 &b, const vfloat4 &c)
 
vfloat4 msub (const vfloat4 &a, const vfloat4 &b, const vfloat4 &c)
 
vfloat4 nmadd (const vfloat4 &a, const vfloat4 &b, const vfloat4 &c)
 
vfloat4 nmsub (const vfloat4 &a, const vfloat4 &b, const vfloat4 &c)
 
void transpose (vfloat4 &a, vfloat4 &b, vfloat4 &c, vfloat4 &d)
 
void transpose (const vfloat4 &a, const vfloat4 &b, const vfloat4 &c, const vfloat4 &d, vfloat4 &r0, vfloat4 &r1, vfloat4 &r2, vfloat4 &r3)
 
vfloat4 AxBxCxDx (const vfloat4 &a, const vfloat4 &b, const vfloat4 &c, const vfloat4 &d)
 Make a vfloat4 consisting of the first element of each of 4 vfloat4's. More...
 
vfloat3 abs (const vfloat3 &a)
 
vfloat3 sign (const vfloat3 &a)
 
vfloat3 ceil (const vfloat3 &a)
 
vfloat3 floor (const vfloat3 &a)
 
vfloat3 round (const vfloat3 &a)
 
vfloat3 transformp (const matrix44 &M, const vfloat3 &V)
 Transform 3-point V by 4x4 matrix M. More...
 
vfloat3 transformv (const matrix44 &M, const vfloat3 &V)
 Transform 3-vector V by 4x4 matrix M. More...
 
vfloat3 transformvT (const matrix44 &M, const vfloat3 &V)
 
vfloat3 transformp (M44fParam M, const vfloat3 &V)
 
vfloat3 transformv (M44fParam M, const vfloat3 &V)
 
vfloat3 transformvT (M44fParam M, const vfloat3 &V)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
OIIO_FORCEINLINE vfloat8 shuffle (const vfloat8 &a)
 
template<int i>
OIIO_FORCEINLINE vfloat8 shuffle (const vfloat8 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i,...>(a) More...
 
template<int i>
OIIO_FORCEINLINE float extract (const vfloat8 &a)
 
template<int i>
OIIO_FORCEINLINE vfloat8 insert (const vfloat8 &a, float val)
 Helper: substitute val for a[i]. More...
 
vfloat8 vreduce_add (const vfloat8 &v)
 The sum of all components, returned in all components. More...
 
float reduce_add (const vfloat8 &v)
 The sum of all components, returned as a scalar. More...
 
vfloat8 vdot (const vfloat8 &a, const vfloat8 &b)
 Return the float dot (inner) product of a and b in every component. More...
 
float dot (const vfloat8 &a, const vfloat8 &b)
 Return the float dot (inner) product of a and b. More...
 
vfloat8 vdot3 (const vfloat8 &a, const vfloat8 &b)
 
float dot3 (const vfloat8 &a, const vfloat8 &b)
 Return the float 3-component dot (inner) product of a and b. More...
 
vfloat8 blend (const vfloat8 &a, const vfloat8 &b, const vbool8 &mask)
 
vfloat8 blend0 (const vfloat8 &a, const vbool8 &mask)
 
vfloat8 blend0not (const vfloat8 &a, const vbool8 &mask)
 
vfloat8 safe_div (const vfloat8 &a, const vfloat8 &b)
 
vfloat8 select (const vbool8 &mask, const vfloat8 &a, const vfloat8 &b)
 
vfloat8 abs (const vfloat8 &a)
 absolute value (float) More...
 
vfloat8 sign (const vfloat8 &a)
 1.0 when value >= 0, -1 when negative More...
 
vfloat8 ceil (const vfloat8 &a)
 
vfloat8 floor (const vfloat8 &a)
 
vint8 ifloor (const vfloat8 &a)
 (int)floor More...
 
vint8 floori (const vfloat8 &a)
 
vfloat8 round (const vfloat8 &a)
 
vint8 rint (const vfloat8 &a)
 
vfloat8 rcp_fast (const vfloat8 &a)
 Fast, approximate 1/a. More...
 
vfloat8 sqrt (const vfloat8 &a)
 
vfloat8 rsqrt (const vfloat8 &a)
 Fully accurate 1/sqrt. More...
 
vfloat8 rsqrt_fast (const vfloat8 &a)
 Fast, approximate 1/sqrt. More...
 
vfloat8 min (const vfloat8 &a, const vfloat8 &b)
 Per-element min. More...
 
vfloat8 max (const vfloat8 &a, const vfloat8 &b)
 Per-element max. More...
 
vfloat8 andnot (const vfloat8 &a, const vfloat8 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vfloat8 madd (const vfloat8 &a, const vfloat8 &b, const vfloat8 &c)
 
vfloat8 msub (const vfloat8 &a, const vfloat8 &b, const vfloat8 &c)
 
vfloat8 nmadd (const vfloat8 &a, const vfloat8 &b, const vfloat8 &c)
 
vfloat8 nmsub (const vfloat8 &a, const vfloat8 &b, const vfloat8 &c)
 
template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vfloat16 shuffle4 (const vfloat16 &a)
 Shuffle groups of 4. More...
 
template<int i>
OIIO_FORCEINLINE vfloat16 shuffle4 (const vfloat16 &a)
 shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a) More...
 
template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vfloat16 shuffle (const vfloat16 &a)
 Shuffle within each group of 4. More...
 
template<int i>
vfloat16 shuffle (const vfloat16 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
OIIO_FORCEINLINE float extract (const vfloat16 &a)
 
template<int i>
OIIO_FORCEINLINE vfloat16 insert (const vfloat16 &a, float val)
 Helper: substitute val for a[i]. More...
 
vfloat16 vreduce_add (const vfloat16 &v)
 The sum of all components, returned in all components. More...
 
float reduce_add (const vfloat16 &v)
 The sum of all components, returned as a scalar. More...
 
vfloat16 blend (const vfloat16 &a, const vfloat16 &b, const vbool4 &mask)
 
vfloat16 blend0 (const vfloat16 &a, const vbool4 &mask)
 
vfloat16 blend0not (const vfloat16 &a, const vbool4 &mask)
 
vfloat16 safe_div (const vfloat16 &a, const vfloat16 &b)
 
vfloat16 select (const vbool16 &mask, const vfloat16 &a, const vfloat16 &b)
 
vfloat16 abs (const vfloat16 &a)
 absolute value (float) More...
 
vfloat16 sign (const vfloat16 &a)
 1.0 when value >= 0, -1 when negative More...
 
vfloat16 ceil (const vfloat16 &a)
 
vfloat16 floor (const vfloat16 &a)
 
vint16 ifloor (const vfloat16 &a)
 (int)floor More...
 
vint16 floori (const vfloat16 &a)
 
vfloat16 round (const vfloat16 &a)
 
vint16 rint (const vfloat16 &a)
 
vfloat16 rcp_fast (const vfloat16 &a)
 Fast, approximate 1/a. More...
 
vfloat16 sqrt (const vfloat16 &a)
 
vfloat16 rsqrt (const vfloat16 &a)
 Fully accurate 1/sqrt. More...
 
vfloat16 rsqrt_fast (const vfloat16 &a)
 Fast, approximate 1/sqrt. More...
 
vfloat16 min (const vfloat16 &a, const vfloat16 &b)
 Per-element min. More...
 
vfloat16 max (const vfloat16 &a, const vfloat16 &b)
 Per-element max. More...
 
vfloat16 andnot (const vfloat16 &a, const vfloat16 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vfloat16 madd (const vfloat16 &a, const vfloat16 &b, const vfloat16 &c)
 
vfloat16 msub (const vfloat16 &a, const vfloat16 &b, const vfloat16 &c)
 
vfloat16 nmadd (const vfloat16 &a, const vfloat16 &b, const vfloat16 &c)
 
vfloat16 nmsub (const vfloat16 &a, const vfloat16 &b, const vfloat16 &c)
 
bool set_flush_zero_mode (bool on)
 
bool set_denorms_zero_mode (bool on)
 
bool get_flush_zero_mode ()
 
bool get_denorms_zero_mode ()
 
OIIO_FORCEINLINE std::ostream & operator<< (std::ostream &cout, const vbool4 &a)
 
OIIO_FORCEINLINE vbool4 operator! (const vbool4 &a)
 
OIIO_FORCEINLINE vbool4 operator& (const vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE vbool4 operator| (const vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE vbool4 operator^ (const vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE const vbool4operator&= (vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE const vbool4operator|= (vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE const vbool4operator^= (vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE vbool4 operator~ (const vbool4 &a)
 
OIIO_FORCEINLINE vbool4 operator== (const vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE vbool4 operator!= (const vbool4 &a, const vbool4 &b)
 
OIIO_FORCEINLINE std::ostream & operator<< (std::ostream &cout, const vbool8 &a)
 
OIIO_FORCEINLINE vbool8 operator! (const vbool8 &a)
 
OIIO_FORCEINLINE vbool8 operator& (const vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE vbool8 operator| (const vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE vbool8 operator^ (const vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE const vbool8operator&= (vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE const vbool8operator|= (vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE const vbool8operator^= (vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE vbool8 operator~ (const vbool8 &a)
 
OIIO_FORCEINLINE vbool8 operator== (const vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE vbool8 operator!= (const vbool8 &a, const vbool8 &b)
 
OIIO_FORCEINLINE std::ostream & operator<< (std::ostream &cout, const vbool16 &a)
 
OIIO_FORCEINLINE vbool16 operator! (const vbool16 &a)
 
OIIO_FORCEINLINE vbool16 operator& (const vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE vbool16 operator| (const vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE vbool16 operator^ (const vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE const vbool16operator&= (vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE const vbool16operator|= (vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE const vbool16operator^= (vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE vbool16 operator~ (const vbool16 &a)
 
OIIO_FORCEINLINE vbool16 operator== (const vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE vbool16 operator!= (const vbool16 &a, const vbool16 &b)
 
OIIO_FORCEINLINE vint4 operator+ (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator+= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vint4 operator- (const vint4 &a)
 
OIIO_FORCEINLINE vint4 operator- (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator-= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vint4 operator* (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator*= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator*= (vint4 &a, int b)
 
OIIO_FORCEINLINE vint4 operator/ (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator/= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vint4 operator% (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator%= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vint4 operator% (const vint4 &a, int w)
 
OIIO_FORCEINLINE const vint4operator%= (vint4 &a, int b)
 
OIIO_FORCEINLINE vint4 operator& (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator&= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vint4 operator| (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator|= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vint4 operator^ (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE const vint4operator^= (vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vint4 operator~ (const vint4 &a)
 
OIIO_FORCEINLINE vint4 operator<< (const vint4 &a, unsigned int bits)
 
OIIO_FORCEINLINE const vint4operator<<= (vint4 &a, const unsigned int bits)
 
OIIO_FORCEINLINE vint4 operator>> (const vint4 &a, const unsigned int bits)
 
OIIO_FORCEINLINE const vint4operator>>= (vint4 &a, const unsigned int bits)
 
OIIO_FORCEINLINE vbool4 operator== (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vbool4 operator!= (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vbool4 operator> (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vbool4 operator< (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vbool4 operator>= (const vint4 &a, const vint4 &b)
 
OIIO_FORCEINLINE vbool4 operator<= (const vint4 &a, const vint4 &b)
 
std::ostream & operator<< (std::ostream &cout, const vint4 &val)
 
template<int i>
OIIO_FORCEINLINE vint4 insert (const vint4 &a, int val)
 
 OIIO_DEPRECATED ("use bitcast_to_int() (1.8)") inline vint4 bitcast_to_int4(const vbool4 &x)
 
OIIO_FORCEINLINE vint8 operator+ (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator+= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vint8 operator- (const vint8 &a)
 
OIIO_FORCEINLINE vint8 operator- (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator-= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vint8 operator* (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator*= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator*= (vint8 &a, int b)
 
OIIO_FORCEINLINE vint8 operator/ (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator/= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vint8 operator% (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator%= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vint8 operator% (const vint8 &a, int w)
 
OIIO_FORCEINLINE const vint8operator%= (vint8 &a, int b)
 
OIIO_FORCEINLINE vint8 operator& (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator&= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vint8 operator| (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator|= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vint8 operator^ (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE const vint8operator^= (vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vint8 operator~ (const vint8 &a)
 
OIIO_FORCEINLINE vint8 operator<< (const vint8 &a, unsigned int bits)
 
OIIO_FORCEINLINE const vint8operator<<= (vint8 &a, const unsigned int bits)
 
OIIO_FORCEINLINE vint8 operator>> (const vint8 &a, const unsigned int bits)
 
OIIO_FORCEINLINE const vint8operator>>= (vint8 &a, const unsigned int bits)
 
OIIO_FORCEINLINE vbool8 operator== (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vbool8 operator!= (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vbool8 operator> (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vbool8 operator< (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vbool8 operator>= (const vint8 &a, const vint8 &b)
 
OIIO_FORCEINLINE vbool8 operator<= (const vint8 &a, const vint8 &b)
 
std::ostream & operator<< (std::ostream &cout, const vint8 &val)
 
OIIO_FORCEINLINE vint16 operator+ (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator+= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vint16 operator- (const vint16 &a)
 
OIIO_FORCEINLINE vint16 operator- (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator-= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vint16 operator* (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator*= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator*= (vint16 &a, int b)
 
OIIO_FORCEINLINE vint16 operator/ (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator/= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vint16 operator% (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator%= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vint16 operator% (const vint16 &a, int w)
 
OIIO_FORCEINLINE const vint16operator%= (vint16 &a, int b)
 
OIIO_FORCEINLINE vint16 operator& (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator&= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vint16 operator| (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator|= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vint16 operator^ (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE const vint16operator^= (vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vint16 operator~ (const vint16 &a)
 
OIIO_FORCEINLINE vint16 operator<< (const vint16 &a, const unsigned int bits)
 
OIIO_FORCEINLINE const vint16operator<<= (vint16 &a, const unsigned int bits)
 
OIIO_FORCEINLINE vint16 operator>> (const vint16 &a, const unsigned int bits)
 
OIIO_FORCEINLINE const vint16operator>>= (vint16 &a, const unsigned int bits)
 
OIIO_FORCEINLINE vbool16 operator== (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vbool16 operator!= (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vbool16 operator> (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vbool16 operator< (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vbool16 operator>= (const vint16 &a, const vint16 &b)
 
OIIO_FORCEINLINE vbool16 operator<= (const vint16 &a, const vint16 &b)
 
std::ostream & operator<< (std::ostream &cout, const vint16 &val)
 
OIIO_FORCEINLINE vfloat4 operator+ (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 operator- (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 operator* (const vfloat4 &a, float b)
 
OIIO_FORCEINLINE vfloat4 operator* (float a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 operator* (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 operator/ (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator== (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator!= (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator< (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator> (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator>= (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator<= (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 AxyBxy (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 AxBxAyBy (const vfloat4 &a, const vfloat4 &b)
 
std::ostream & operator<< (std::ostream &cout, const vfloat4 &val)
 
vint4 bitcast_to_int4 (const vfloat4 &x)
 
vfloat4 bitcast_to_float4 (const vint4 &x)
 
OIIO_FORCEINLINE vfloat3 operator+ (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat3 operator- (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat3 operator* (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat3 operator* (const vfloat3 &a, float b)
 
OIIO_FORCEINLINE vfloat3 operator* (float a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat3 operator/ (const vfloat3 &a, const vfloat3 &b)
 
std::ostream & operator<< (std::ostream &cout, const vfloat3 &val)
 
OIIO_FORCEINLINE vfloat3 vreduce_add (const vfloat3 &v)
 
OIIO_FORCEINLINE vfloat3 vdot (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE float dot (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat3 vdot3 (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat4 operator* (const vfloat4 &V, const matrix44 &M)
 
OIIO_FORCEINLINE vfloat4 operator* (const matrix44 &M, const vfloat4 &V)
 
OIIO_FORCEINLINE bool operator== (M44fParam a, const matrix44 &b)
 
OIIO_FORCEINLINE bool operator!= (M44fParam a, const matrix44 &b)
 
std::ostream & operator<< (std::ostream &cout, const matrix44 &M)
 
std::ostream & operator<< (std::ostream &cout, const vfloat8 &val)
 
OIIO_FORCEINLINE vfloat8 operator+ (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE const vfloat8operator+= (vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vfloat8 operator- (const vfloat8 &a)
 
OIIO_FORCEINLINE vfloat8 operator- (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE const vfloat8operator-= (vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vfloat8 operator* (const vfloat8 &a, float b)
 
OIIO_FORCEINLINE vfloat8 operator* (float a, const vfloat8 &b)
 
OIIO_FORCEINLINE vfloat8 operator* (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE const vfloat8operator*= (vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vfloat8 operator/ (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE const vfloat8operator/= (vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator== (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator!= (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator< (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator> (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator>= (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator<= (const vfloat8 &a, const vfloat8 &b)
 
std::ostream & operator<< (std::ostream &cout, const vfloat16 &val)
 
OIIO_FORCEINLINE vfloat16 operator+ (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE const vfloat16operator+= (vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vfloat16 operator- (const vfloat16 &a)
 
OIIO_FORCEINLINE vfloat16 operator- (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE const vfloat16operator-= (vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vfloat16 operator* (const vfloat16 &a, float b)
 
OIIO_FORCEINLINE vfloat16 operator* (float a, const vfloat16 &b)
 
OIIO_FORCEINLINE vfloat16 operator* (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE const vfloat16operator*= (vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vfloat16 operator/ (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE const vfloat16operator/= (vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator== (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator!= (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator< (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator> (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator>= (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator<= (const vfloat16 &a, const vfloat16 &b)
 
template<int i0, int i1, int i2, int i3>
vfloat16 shuffle4 (const vfloat16 &a)
 Shuffle groups of 4. More...
 
template<int i>
vfloat16 shuffle4 (const vfloat16 &a)
 Shuffle groups of 4. More...
 
template<int i0, int i1, int i2, int i3>
vfloat16 shuffle (const vfloat16 &a)
 Shuffle within each group of 4. More...
 
OIIO_FORCEINLINE vfloat16 blend (const vfloat16 &a, const vfloat16 &b, const vbool16 &mask)
 
OIIO_FORCEINLINE vfloat16 blend0 (const vfloat16 &a, const vbool16 &mask)
 
OIIO_FORCEINLINE vfloat16 blend0not (const vfloat16 &a, const vbool16 &mask)
 
float abs (float x)
 
float max (float x, float y)
 

Function Documentation

float simd::abs ( float  x)
inline

Definition at line 22 of file unittest.h.

OIIO_FORCEINLINE vint4 simd::abs ( const vint4 &  a)

Definition at line 4989 of file simd.h.

OIIO_FORCEINLINE vint8 simd::abs ( const vint8 &  a)

Definition at line 5817 of file simd.h.

OIIO_FORCEINLINE vint16 simd::abs ( const vint16 &  a)

Definition at line 6621 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::abs ( const vfloat4 &  a)

absolute value (float)

Definition at line 7609 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::abs ( const vfloat3 &  a)

Definition at line 8213 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::abs ( const vfloat8 &  a)

absolute value (float)

Definition at line 9291 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::abs ( const vfloat16 &  a)

absolute value (float)

Definition at line 10158 of file simd.h.

OIIO_FORCEINLINE bool simd::all ( const vbool4 &  v)

Definition at line 3599 of file simd.h.

bool simd::all ( bool  v)
inline

Definition at line 657 of file simd.h.

OIIO_FORCEINLINE bool simd::all ( const vbool8 &  v)

Definition at line 3917 of file simd.h.

OIIO_FORCEINLINE bool simd::all ( const vbool16 &  v)

Definition at line 4165 of file simd.h.

OIIO_FORCEINLINE vint4 simd::andnot ( const vint4 &  a,
const vint4 &  b 
)

andnot(a,b) returns ((~a) & b)

Definition at line 5041 of file simd.h.

OIIO_FORCEINLINE vint8 simd::andnot ( const vint8 &  a,
const vint8 &  b 
)

andnot(a,b) returns ((~a) & b)

Definition at line 5864 of file simd.h.

OIIO_FORCEINLINE vint16 simd::andnot ( const vint16 &  a,
const vint16 &  b 
)

andnot(a,b) returns ((~a) & b)

Definition at line 6666 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::andnot ( const vfloat4 &  a,
const vfloat4 &  b 
)

andnot(a,b) returns ((~a) & b)

Definition at line 7757 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::andnot ( const vfloat8 &  a,
const vfloat8 &  b 
)

andnot(a,b) returns ((~a) & b)

Definition at line 9432 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::andnot ( const vfloat16 &  a,
const vfloat16 &  b 
)

andnot(a,b) returns ((~a) & b)

Definition at line 10286 of file simd.h.

OIIO_FORCEINLINE bool simd::any ( const vbool4 &  v)

Definition at line 3600 of file simd.h.

OIIO_FORCEINLINE bool simd::any ( const vbool8 &  v)

Definition at line 3918 of file simd.h.

OIIO_FORCEINLINE bool simd::any ( const vbool16 &  v)

Definition at line 4166 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::AxBxAyBy ( const vfloat4 &  a,
const vfloat4 &  b 
)

Combine the first two components of A with the first two components of B, but interleaved.

Definition at line 7300 of file simd.h.

OIIO_FORCEINLINE vint4 simd::AxBxCxDx ( const vint4 &  a,
const vint4 &  b,
const vint4 &  c,
const vint4 &  d 
)

Definition at line 8065 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::AxBxCxDx ( const vfloat4 &  a,
const vfloat4 &  b,
const vfloat4 &  c,
const vfloat4 &  d 
)

Make a vfloat4 consisting of the first element of each of 4 vfloat4's.

Definition at line 8052 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::AxyBxy ( const vfloat4 &  a,
const vfloat4 &  b 
)

Combine the first two components of A with the first two components of B.

Definition at line 7292 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::bitcast_to_float ( const vint4 &  x)

Definition at line 7440 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::bitcast_to_float ( const vint8 &  x)

Definition at line 9202 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::bitcast_to_float ( const vint16 &  x)

Definition at line 10075 of file simd.h.

vfloat4 simd::bitcast_to_float4 ( const vint4 &  x)
inline

Definition at line 7454 of file simd.h.

OIIO_FORCEINLINE vint4 simd::bitcast_to_int ( const vbool4 &  x)

Bitcast back and forth to intN (not a convert – move the bits!)

Definition at line 4873 of file simd.h.

OIIO_FORCEINLINE vint4 simd::bitcast_to_int ( const vfloat4 &  x)

Definition at line 7429 of file simd.h.

OIIO_FORCEINLINE vint8 simd::bitcast_to_int ( const vbool8 &  x)

Bitcast back and forth to intN (not a convert – move the bits!)

Definition at line 5709 of file simd.h.

OIIO_FORCEINLINE vint8 simd::bitcast_to_int ( const vfloat8 &  x)

Definition at line 9193 of file simd.h.

OIIO_FORCEINLINE vint16 simd::bitcast_to_int ( const vbool16 &  x)

Bitcast back and forth to intN (not a convert – move the bits!)

Definition at line 6519 of file simd.h.

OIIO_FORCEINLINE vint16 simd::bitcast_to_int ( const vfloat16 &  x)

Definition at line 10066 of file simd.h.

vint4 simd::bitcast_to_int4 ( const vfloat4 &  x)
inline

Definition at line 7453 of file simd.h.

OIIO_FORCEINLINE vint4 simd::blend ( const vint4 &  a,
const vint4 &  b,
const vbool4 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) and b (if mask[i] is true), i.e., mask[i] ? b[i] : a[i].

Examples:
CHOP/CHOP_Blend.C.

Definition at line 4949 of file simd.h.

OIIO_FORCEINLINE vint8 simd::blend ( const vint8 &  a,
const vint8 &  b,
const vbool8 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) and b (if mask[i] is true), i.e., mask[i] ? b[i] : a[i].

Definition at line 5772 of file simd.h.

OIIO_FORCEINLINE vint16 simd::blend ( const vint16 &  a,
const vint16 &  b,
const vbool16 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) and b (if mask[i] is true), i.e., mask[i] ? b[i] : a[i].

Definition at line 6587 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::blend ( const vfloat4 &  a,
const vfloat4 &  b,
const vbool4 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) and b (if mask[i] is true), i.e., mask[i] ? b[i] : a[i].

Definition at line 7533 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::blend ( const vfloat8 &  a,
const vfloat8 &  b,
const vbool8 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) and b (if mask[i] is true), i.e., mask[i] ? b[i] : a[i].

Definition at line 9237 of file simd.h.

vfloat16 simd::blend ( const vfloat16 &  a,
const vfloat16 &  b,
const vbool4 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) and b (if mask[i] is true), i.e., mask[i] ? b[i] : a[i].

OIIO_FORCEINLINE vfloat16 simd::blend ( const vfloat16 &  a,
const vfloat16 &  b,
const vbool16 &  mask 
)

Definition at line 10110 of file simd.h.

OIIO_FORCEINLINE vint4 simd::blend0 ( const vint4 &  a,
const vbool4 &  mask 
)

Use a bool mask to select between a (if mask[i] is true) or 0 if mask[i] is false), i.e., mask[i] ? a[i] : 0. Equivalent to blend(0,a,mask).

Definition at line 4963 of file simd.h.

OIIO_FORCEINLINE vint8 simd::blend0 ( const vint8 &  a,
const vbool8 &  mask 
)

Use a bool mask to select between a (if mask[i] is true) or 0 if mask[i] is false), i.e., mask[i] ? a[i] : 0. Equivalent to blend(0,a,mask).

Definition at line 5785 of file simd.h.

OIIO_FORCEINLINE vint16 simd::blend0 ( const vint16 &  a,
const vbool16 &  mask 
)

Use a bool mask to select between a (if mask[i] is true) or 0 if mask[i] is false), i.e., mask[i] ? a[i] : 0. Equivalent to blend(0,a,mask).

Definition at line 6597 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::blend0 ( const vfloat4 &  a,
const vbool4 &  mask 
)

Use a bool mask to select between a (if mask[i] is true) or 0 if mask[i] is false), i.e., mask[i] ? a[i] : 0. Equivalent to blend(0,a,mask).

Definition at line 7553 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::blend0 ( const vfloat8 &  a,
const vbool8 &  mask 
)

Use a bool mask to select between a (if mask[i] is true) or 0 if mask[i] is false), i.e., mask[i] ? a[i] : 0. Equivalent to blend(0,a,mask).

Definition at line 9250 of file simd.h.

vfloat16 simd::blend0 ( const vfloat16 &  a,
const vbool4 &  mask 
)

Use a bool mask to select between a (if mask[i] is true) or 0 if mask[i] is false), i.e., mask[i] ? a[i] : 0. Equivalent to blend(0,a,mask).

OIIO_FORCEINLINE vfloat16 simd::blend0 ( const vfloat16 &  a,
const vbool16 &  mask 
)

Definition at line 10121 of file simd.h.

OIIO_FORCEINLINE vint4 simd::blend0not ( const vint4 &  a,
const vbool4 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) or 0 (if mask[i] is true), i.e., mask[i] ? 0 : a[i]. Equivalent to blend(0,a,!mask), or blend(a,0,mask).

Definition at line 4974 of file simd.h.

OIIO_FORCEINLINE vint8 simd::blend0not ( const vint8 &  a,
const vbool8 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) or 0 (if mask[i] is true), i.e., mask[i] ? 0 : a[i]. Equivalent to blend(0,a,!mask), or blend(a,0,mask).

Definition at line 5799 of file simd.h.

OIIO_FORCEINLINE vint16 simd::blend0not ( const vint16 &  a,
const vbool16 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) or 0 (if mask[i] is true), i.e., mask[i] ? 0 : a[i]. Equivalent to blend(0,a,!mask), or blend(a,0,mask).

Definition at line 6607 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::blend0not ( const vfloat4 &  a,
const vbool4 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) or 0 (if mask[i] is true), i.e., mask[i] ? 0 : a[i]. Equivalent to blend(0,a,!mask), or blend(a,0,mask).

Definition at line 7566 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::blend0not ( const vfloat8 &  a,
const vbool8 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) or 0 (if mask[i] is true), i.e., mask[i] ? 0 : a[i]. Equivalent to blend(0,a,!mask), or blend(a,0,mask).

Definition at line 9263 of file simd.h.

vfloat16 simd::blend0not ( const vfloat16 &  a,
const vbool4 &  mask 
)

Use a bool mask to select between components of a (if mask[i] is false) or 0 (if mask[i] is true), i.e., mask[i] ? 0 : a[i]. Equivalent to blend(0,a,!mask), or blend(a,0,mask).

OIIO_FORCEINLINE vfloat16 simd::blend0not ( const vfloat16 &  a,
const vbool16 &  mask 
)

Definition at line 10132 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::ceil ( const vfloat4 &  a)

Definition at line 7629 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::ceil ( const vfloat3 &  a)

Definition at line 8233 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::ceil ( const vfloat8 &  a)

Definition at line 9311 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::ceil ( const vfloat16 &  a)

Definition at line 10178 of file simd.h.

OIIO_FORCEINLINE float simd::dot ( const vfloat4 &  a,
const vfloat4 &  b 
)

Return the float dot (inner) product of a and b.

Definition at line 7508 of file simd.h.

float simd::dot ( const vfloat8 &  a,
const vfloat8 &  b 
)

Return the float dot (inner) product of a and b.

OIIO_FORCEINLINE float simd::dot ( const vfloat3 &  a,
const vfloat3 &  b 
)

Definition at line 8279 of file simd.h.

OIIO_FORCEINLINE float simd::dot3 ( const vfloat4 &  a,
const vfloat4 &  b 
)

Return the float 3-component dot (inner) product of a and b.

Definition at line 7524 of file simd.h.

float simd::dot3 ( const vfloat8 &  a,
const vfloat8 &  b 
)

Return the float 3-component dot (inner) product of a and b.

template<typename T >
OIIO_FORCEINLINE T simd::exp ( const T &  v)

Definition at line 7850 of file simd.h.

template<int i>
OIIO_FORCEINLINE bool simd::extract ( const vbool4 &  a)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 3542 of file simd.h.

template<int i>
OIIO_FORCEINLINE bool simd::extract ( const vbool8 &  a)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 3877 of file simd.h.

template<int i>
OIIO_FORCEINLINE bool simd::extract ( const vbool16 &  a)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 4144 of file simd.h.

template<int i>
OIIO_FORCEINLINE int simd::extract ( const vint4 &  v)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 4832 of file simd.h.

template<int i>
OIIO_FORCEINLINE int simd::extract ( const vint8 &  v)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 5678 of file simd.h.

template<int i>
OIIO_FORCEINLINE int simd::extract ( const vint16 &  v)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 6489 of file simd.h.

template<int i>
OIIO_FORCEINLINE float simd::extract ( const vfloat4 &  a)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 7380 of file simd.h.

template<int i>
OIIO_FORCEINLINE float simd::extract ( const vfloat8 &  a)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 9158 of file simd.h.

template<int i>
OIIO_FORCEINLINE float simd::extract ( const vfloat16 &  a)

Helper: as rapid as possible extraction of one component, when the index is fixed.

Definition at line 10036 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::floor ( const vfloat4 &  a)

Definition at line 7638 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::floor ( const vfloat3 &  a)

Definition at line 8242 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::floor ( const vfloat8 &  a)

Definition at line 9320 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::floor ( const vfloat16 &  a)

Definition at line 10187 of file simd.h.

vint4 simd::floori ( const vfloat4 &  a)
inline

Definition at line 2197 of file simd.h.

vint8 simd::floori ( const vfloat8 &  a)
inline

Definition at line 2824 of file simd.h.

vint16 simd::floori ( const vfloat16 &  a)
inline

Definition at line 3150 of file simd.h.

bool simd::get_denorms_zero_mode ( )
inline

Definition at line 3219 of file simd.h.

bool simd::get_flush_zero_mode ( )
inline

Definition at line 3211 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::hdiv ( const vfloat4 &  a)

Homogeneous divide to turn a vfloat4 into a vfloat3.

Definition at line 7591 of file simd.h.

OIIO_FORCEINLINE vint4 simd::ifloor ( const vfloat4 &  a)

(int)floor

Definition at line 7658 of file simd.h.

OIIO_FORCEINLINE vint8 simd::ifloor ( const vfloat8 &  a)

(int)floor

Definition at line 9338 of file simd.h.

OIIO_FORCEINLINE vint16 simd::ifloor ( const vfloat16 &  a)

(int)floor

Definition at line 10206 of file simd.h.

template<int i>
OIIO_FORCEINLINE vbool4 simd::insert ( const vbool4 &  a,
bool  val 
)

Helper: substitute val for a[i].

Definition at line 3556 of file simd.h.

template<int i>
OIIO_FORCEINLINE vbool8 simd::insert ( const vbool8 &  a,
bool  val 
)

Helper: substitute val for a[i].

Definition at line 3886 of file simd.h.

template<int i>
OIIO_FORCEINLINE vbool16 simd::insert ( const vbool16 &  a,
bool  val 
)

Helper: substitute val for a[i].

Definition at line 4149 of file simd.h.

template<int i>
OIIO_FORCEINLINE vint8 simd::insert ( const vint8 &  a,
int  val 
)

Helper: substitute val for a[i].

Definition at line 5688 of file simd.h.

template<int i>
OIIO_FORCEINLINE vint16 simd::insert ( const vint16 &  a,
int  val 
)

Helper: substitute val for a[i].

Definition at line 6495 of file simd.h.

template<int i>
OIIO_FORCEINLINE vfloat4 simd::insert ( const vfloat4 &  a,
float  val 
)

Helper: substitute val for a[i].

Definition at line 7399 of file simd.h.

template<int i>
OIIO_FORCEINLINE vfloat8 simd::insert ( const vfloat8 &  a,
float  val 
)

Helper: substitute val for a[i].

Definition at line 9172 of file simd.h.

template<int i>
OIIO_FORCEINLINE vfloat16 simd::insert ( const vfloat16 &  a,
float  val 
)

Helper: substitute val for a[i].

Definition at line 10042 of file simd.h.

template<int i>
OIIO_FORCEINLINE vint4 simd::insert ( const vint4 &  a,
int  val 
)

Definition at line 4849 of file simd.h.

template<typename T >
OIIO_FORCEINLINE T simd::log ( const T &  v)
Examples:
karma_procedurals/mandelbulb_intersect.vfl.

Definition at line 7905 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::madd ( const vfloat4 &  a,
const vfloat4 &  b,
const vfloat4 &  c 
)

Definition at line 7771 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::madd ( const vfloat8 &  a,
const vfloat8 &  b,
const vfloat8 &  c 
)

Definition at line 9450 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::madd ( const vfloat16 &  a,
const vfloat16 &  b,
const vfloat16 &  c 
)

Definition at line 10295 of file simd.h.

float simd::max ( float  x,
float  y 
)
inline

Definition at line 27 of file unittest.h.

OIIO_FORCEINLINE vint4 simd::max ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 5012 of file simd.h.

OIIO_FORCEINLINE vint8 simd::max ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5837 of file simd.h.

OIIO_FORCEINLINE vint16 simd::max ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6639 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::max ( const vfloat4 &  a,
const vfloat4 &  b 
)

Per-element max.

Definition at line 7745 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::max ( const vfloat8 &  a,
const vfloat8 &  b 
)

Per-element max.

Definition at line 9422 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::max ( const vfloat16 &  a,
const vfloat16 &  b 
)

Per-element max.

Definition at line 10276 of file simd.h.

OIIO_FORCEINLINE vint4 simd::min ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 5001 of file simd.h.

OIIO_FORCEINLINE vint8 simd::min ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5828 of file simd.h.

OIIO_FORCEINLINE vint16 simd::min ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6630 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::min ( const vfloat4 &  a,
const vfloat4 &  b 
)

Per-element min.

Definition at line 7734 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::min ( const vfloat8 &  a,
const vfloat8 &  b 
)

Per-element min.

Definition at line 9413 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::min ( const vfloat16 &  a,
const vfloat16 &  b 
)

Per-element min.

Definition at line 10267 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::msub ( const vfloat4 &  a,
const vfloat4 &  b,
const vfloat4 &  c 
)

Definition at line 7791 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::msub ( const vfloat8 &  a,
const vfloat8 &  b,
const vfloat8 &  c 
)

Definition at line 9466 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::msub ( const vfloat16 &  a,
const vfloat16 &  b,
const vfloat16 &  c 
)

Definition at line 10307 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::nmadd ( const vfloat4 &  a,
const vfloat4 &  b,
const vfloat4 &  c 
)

Definition at line 7810 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::nmadd ( const vfloat8 &  a,
const vfloat8 &  b,
const vfloat8 &  c 
)

Definition at line 9483 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::nmadd ( const vfloat16 &  a,
const vfloat16 &  b,
const vfloat16 &  c 
)

Definition at line 10320 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::nmsub ( const vfloat4 &  a,
const vfloat4 &  b,
const vfloat4 &  c 
)

Definition at line 7829 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::nmsub ( const vfloat8 &  a,
const vfloat8 &  b,
const vfloat8 &  c 
)

Definition at line 9500 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::nmsub ( const vfloat16 &  a,
const vfloat16 &  b,
const vfloat16 &  c 
)

Definition at line 10333 of file simd.h.

OIIO_FORCEINLINE bool simd::none ( const vbool4 &  v)

Definition at line 3601 of file simd.h.

OIIO_FORCEINLINE bool simd::none ( const vbool8 &  v)

Definition at line 3919 of file simd.h.

OIIO_FORCEINLINE bool simd::none ( const vbool16 &  v)

Definition at line 4167 of file simd.h.

simd::OIIO_DEPRECATED ( "use bitcast_to_int() (1.8)"  ) const

Definition at line 4883 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator! ( const vbool4 &  a)

Definition at line 3393 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator! ( const vbool8 &  a)

Definition at line 3786 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator! ( const vbool16 &  a)

Definition at line 4075 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator!= ( const vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3467 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator!= ( const vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3852 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator!= ( const vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4134 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator!= ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4713 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator!= ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5562 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator!= ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6356 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator!= ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7241 of file simd.h.

OIIO_FORCEINLINE bool simd::operator!= ( M44fParam  a,
const matrix44 &  b 
)

Definition at line 8497 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator!= ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9084 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator!= ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9945 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator% ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4589 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator% ( const vint4 &  a,
int  w 
)

Definition at line 4599 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator% ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5456 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator% ( const vint8 &  a,
int  w 
)

Definition at line 5463 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator% ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6253 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator% ( const vint16 &  a,
int  w 
)

Definition at line 6260 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator%= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4596 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator%= ( vint4 &  a,
int  b 
)

Definition at line 4605 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator%= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5461 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator%= ( vint8 &  a,
int  b 
)

Definition at line 5468 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator%= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6258 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator%= ( vint16 &  a,
int  b 
)

Definition at line 6265 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator& ( const vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3403 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator& ( const vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3794 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator& ( const vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4083 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator& ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4608 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator& ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5471 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator& ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6268 of file simd.h.

OIIO_FORCEINLINE const vbool4& simd::operator&= ( vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3434 of file simd.h.

OIIO_FORCEINLINE const vbool8& simd::operator&= ( vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3819 of file simd.h.

OIIO_FORCEINLINE const vbool16& simd::operator&= ( vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4108 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator&= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4619 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator&= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5479 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator&= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6276 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator* ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4566 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator* ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5435 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator* ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6232 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator* ( const vfloat4 &  a,
float  b 
)

Definition at line 7153 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator* ( float  a,
const vfloat4 &  b 
)

Definition at line 7163 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator* ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7167 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::operator* ( const vfloat3 &  a,
const vfloat3 &  b 
)

Definition at line 8172 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::operator* ( const vfloat3 &  a,
float  b 
)

Definition at line 8176 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::operator* ( float  a,
const vfloat3 &  b 
)

Definition at line 8180 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator* ( const vfloat4 &  V,
const matrix44 &  M 
)

Definition at line 8422 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator* ( const matrix44 &  M,
const vfloat4 &  V 
)

Definition at line 8437 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::operator* ( const vfloat8 &  a,
float  b 
)

Definition at line 9040 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::operator* ( float  a,
const vfloat8 &  b 
)

Definition at line 9048 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::operator* ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9052 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::operator* ( const vfloat16 &  a,
float  b 
)

Definition at line 9899 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::operator* ( float  a,
const vfloat16 &  b 
)

Definition at line 9907 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::operator* ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9911 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator*= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4577 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator*= ( vint4 &  a,
int  b 
)

Definition at line 4578 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator*= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5444 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator*= ( vint8 &  a,
int  b 
)

Definition at line 5445 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator*= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6241 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator*= ( vint16 &  a,
int  b 
)

Definition at line 6242 of file simd.h.

OIIO_FORCEINLINE const vfloat8& simd::operator*= ( vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9060 of file simd.h.

OIIO_FORCEINLINE const vfloat16& simd::operator*= ( vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9919 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator+ ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4502 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator+ ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5398 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator+ ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6195 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator+ ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7101 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::operator+ ( const vfloat3 &  a,
const vfloat3 &  b 
)

Definition at line 8152 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::operator+ ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9008 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::operator+ ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9866 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator+= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4512 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator+= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5407 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator+= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6204 of file simd.h.

OIIO_FORCEINLINE const vfloat8& simd::operator+= ( vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9016 of file simd.h.

OIIO_FORCEINLINE const vfloat16& simd::operator+= ( vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9874 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator- ( const vint4 &  a)

Definition at line 4517 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator- ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4528 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator- ( const vint8 &  a)

Definition at line 5412 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator- ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5421 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator- ( const vint16 &  a)

Definition at line 6209 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator- ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6218 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator- ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7132 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::operator- ( const vfloat3 &  a,
const vfloat3 &  b 
)

Definition at line 8164 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::operator- ( const vfloat8 &  a)

Definition at line 9020 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::operator- ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9028 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::operator- ( const vfloat16 &  a)

Definition at line 9878 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::operator- ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9886 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator-= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4539 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator-= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5430 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator-= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6227 of file simd.h.

OIIO_FORCEINLINE const vfloat8& simd::operator-= ( vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9036 of file simd.h.

OIIO_FORCEINLINE const vfloat16& simd::operator-= ( vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9894 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator/ ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4581 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator/ ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5448 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator/ ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6245 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::operator/ ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7199 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::operator/ ( const vfloat3 &  a,
const vfloat3 &  b 
)

Definition at line 8192 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::operator/ ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9064 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::operator/ ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9923 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator/= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4587 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator/= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5453 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator/= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6250 of file simd.h.

OIIO_FORCEINLINE const vfloat8& simd::operator/= ( vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9072 of file simd.h.

OIIO_FORCEINLINE const vfloat16& simd::operator/= ( vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9931 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator< ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4728 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator< ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5580 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator< ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6374 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator< ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7252 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator< ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9092 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator< ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9954 of file simd.h.

OIIO_FORCEINLINE std::ostream& simd::operator<< ( std::ostream &  cout,
const vbool4 &  a 
)

Definition at line 3277 of file simd.h.

OIIO_FORCEINLINE std::ostream& simd::operator<< ( std::ostream &  cout,
const vbool8 &  a 
)

Definition at line 3629 of file simd.h.

OIIO_FORCEINLINE std::ostream& simd::operator<< ( std::ostream &  cout,
const vbool16 &  a 
)

Definition at line 3945 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator<< ( const vint4 &  a,
unsigned int  bits 
)

Definition at line 4660 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const vint4 &  val 
)
inline

Definition at line 4746 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator<< ( const vint8 &  a,
unsigned int  bits 
)

Definition at line 5511 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const vint8 &  val 
)
inline

Definition at line 5605 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator<< ( const vint16 &  a,
const unsigned int  bits 
)

Definition at line 6308 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const vint16 &  val 
)
inline

Definition at line 6401 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const vfloat4 &  val 
)
inline

Definition at line 7316 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const vfloat3 &  val 
)
inline

Definition at line 8205 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const matrix44 &  M 
)
inline

Definition at line 8599 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const vfloat8 &  val 
)
inline

Definition at line 8654 of file simd.h.

std::ostream& simd::operator<< ( std::ostream &  cout,
const vfloat16 &  val 
)
inline

Definition at line 9532 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator<<= ( vint4 &  a,
const unsigned int  bits 
)

Definition at line 4670 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator<<= ( vint8 &  a,
const unsigned int  bits 
)

Definition at line 5522 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator<<= ( vint16 &  a,
const unsigned int  bits 
)

Definition at line 6319 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator<= ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4742 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator<= ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5599 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator<= ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6392 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator<= ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7282 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator<= ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9116 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator<= ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9981 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator== ( const vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3457 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator== ( const vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3842 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator== ( const vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4126 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator== ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4703 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator== ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5550 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator== ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6347 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator== ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7231 of file simd.h.

OIIO_FORCEINLINE bool simd::operator== ( M44fParam  a,
const matrix44 &  b 
)

Definition at line 8489 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator== ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9076 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator== ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9936 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator> ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4718 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator> ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5568 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator> ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6365 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator> ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7262 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator> ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9100 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator> ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9963 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator>= ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4738 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator>= ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5593 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator>= ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6383 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator>= ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7272 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator>= ( const vfloat8 &  a,
const vfloat8 &  b 
)

Definition at line 9108 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator>= ( const vfloat16 &  a,
const vfloat16 &  b 
)

Definition at line 9972 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator>> ( const vint4 &  a,
const unsigned int  bits 
)

Definition at line 4675 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator>> ( const vint8 &  a,
const unsigned int  bits 
)

Definition at line 5526 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator>> ( const vint16 &  a,
const unsigned int  bits 
)

Definition at line 6323 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator>>= ( vint4 &  a,
const unsigned int  bits 
)

Definition at line 4685 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator>>= ( vint8 &  a,
const unsigned int  bits 
)

Definition at line 5536 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator>>= ( vint16 &  a,
const unsigned int  bits 
)

Definition at line 6332 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator^ ( const vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3423 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator^ ( const vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3810 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator^ ( const vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4099 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator^ ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4636 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator^ ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5491 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator^ ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6288 of file simd.h.

OIIO_FORCEINLINE const vbool4& simd::operator^= ( vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3442 of file simd.h.

OIIO_FORCEINLINE const vbool8& simd::operator^= ( vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3827 of file simd.h.

OIIO_FORCEINLINE const vbool16& simd::operator^= ( vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4116 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator^= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4647 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator^= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5499 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator^= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6296 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator| ( const vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3413 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator| ( const vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3802 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator| ( const vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4091 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator| ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 4623 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator| ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5481 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator| ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6278 of file simd.h.

OIIO_FORCEINLINE const vbool4& simd::operator|= ( vbool4 &  a,
const vbool4 &  b 
)

Definition at line 3438 of file simd.h.

OIIO_FORCEINLINE const vbool8& simd::operator|= ( vbool8 &  a,
const vbool8 &  b 
)

Definition at line 3823 of file simd.h.

OIIO_FORCEINLINE const vbool16& simd::operator|= ( vbool16 &  a,
const vbool16 &  b 
)

Definition at line 4112 of file simd.h.

OIIO_FORCEINLINE const vint4& simd::operator|= ( vint4 &  a,
const vint4 &  b 
)

Definition at line 4633 of file simd.h.

OIIO_FORCEINLINE const vint8& simd::operator|= ( vint8 &  a,
const vint8 &  b 
)

Definition at line 5489 of file simd.h.

OIIO_FORCEINLINE const vint16& simd::operator|= ( vint16 &  a,
const vint16 &  b 
)

Definition at line 6286 of file simd.h.

OIIO_FORCEINLINE vbool4 simd::operator~ ( const vbool4 &  a)

Definition at line 3446 of file simd.h.

OIIO_FORCEINLINE vbool8 simd::operator~ ( const vbool8 &  a)

Definition at line 3832 of file simd.h.

OIIO_FORCEINLINE vbool16 simd::operator~ ( const vbool16 &  a)

Definition at line 4121 of file simd.h.

OIIO_FORCEINLINE vint4 simd::operator~ ( const vint4 &  a)

Definition at line 4650 of file simd.h.

OIIO_FORCEINLINE vint8 simd::operator~ ( const vint8 &  a)

Definition at line 5502 of file simd.h.

OIIO_FORCEINLINE vint16 simd::operator~ ( const vint16 &  a)

Definition at line 6299 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::rcp_fast ( const vfloat4 &  a)

Fast, approximate 1/a.

Definition at line 7675 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::rcp_fast ( const vfloat8 &  a)

Fast, approximate 1/a.

Definition at line 9358 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::rcp_fast ( const vfloat16 &  a)

Fast, approximate 1/a.

Definition at line 10222 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_add ( const vint4 &  v)

Definition at line 4915 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_add ( const vint8 &  v)

Definition at line 5737 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_add ( const vint16 &  v)

Definition at line 6545 of file simd.h.

OIIO_FORCEINLINE float simd::reduce_add ( const vfloat4 &  v)

The sum of all components, returned as a scalar.

Definition at line 7486 of file simd.h.

OIIO_FORCEINLINE float simd::reduce_add ( const vfloat8 &  v)

The sum of all components, returned as a scalar.

Definition at line 9228 of file simd.h.

OIIO_FORCEINLINE float simd::reduce_add ( const vfloat16 &  v)

The sum of all components, returned as a scalar.

Definition at line 10101 of file simd.h.

OIIO_FORCEINLINE bool simd::reduce_and ( const vbool4 &  v)

Logical reduction across all components.

Definition at line 3573 of file simd.h.

OIIO_FORCEINLINE bool simd::reduce_and ( const vbool8 &  v)

Logical reduction across all components.

Definition at line 3898 of file simd.h.

OIIO_FORCEINLINE bool simd::reduce_and ( const vbool16 &  v)

Logical reduction across all components.

Definition at line 4156 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_and ( const vint4 &  v)

Definition at line 4926 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_and ( const vint8 &  v)

Definition at line 5746 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_and ( const vint16 &  v)

Definition at line 6554 of file simd.h.

OIIO_FORCEINLINE bool simd::reduce_or ( const vbool4 &  v)

Definition at line 3586 of file simd.h.

OIIO_FORCEINLINE bool simd::reduce_or ( const vbool8 &  v)

Definition at line 3907 of file simd.h.

OIIO_FORCEINLINE bool simd::reduce_or ( const vbool16 &  v)

Definition at line 4160 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_or ( const vint4 &  v)

Definition at line 4937 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_or ( const vint8 &  v)

Definition at line 5759 of file simd.h.

OIIO_FORCEINLINE int simd::reduce_or ( const vint16 &  v)

Definition at line 6570 of file simd.h.

OIIO_FORCEINLINE vint4 simd::rint ( const vfloat4 &  a)

Per-element round to nearest integer (equivalent to vint(round(a))). CAVEAT: On SSE/AVX this uses banker's rounding, which may differ from C++ std::rint() which says to use the current rounding mode. USE WITH CAUTION, and maybe avoid this if it is critical to exactly match std::rint().

Definition at line 7669 of file simd.h.

OIIO_FORCEINLINE vint8 simd::rint ( const vfloat8 &  a)

Per-element round to nearest integer (equivalent to vint(round(a))). CAVEAT: On SSE/AVX this uses banker's rounding, which may differ from C++ std::rint() which says to use the current rounding mode. USE WITH CAUTION, and maybe avoid this if it is critical to exactly match std::rint().

Definition at line 9351 of file simd.h.

OIIO_FORCEINLINE vint16 simd::rint ( const vfloat16 &  a)

Per-element round to nearest integer (equivalent to vint(round(a))). CAVEAT: On SSE/AVX this uses banker's rounding, which may differ from C++ std::rint() which says to use the current rounding mode. USE WITH CAUTION, and maybe avoid this if it is critical to exactly match std::rint().

Definition at line 10216 of file simd.h.

OIIO_FORCEINLINE vint4 simd::rotl ( const vint4 &  x,
const int  s 
)

Circular bit rotate by s bits, for N values at once.

Definition at line 5023 of file simd.h.

OIIO_FORCEINLINE vint8 simd::rotl ( const vint8 &  x,
const int  s 
)

Circular bit rotate by s bits, for N values at once.

Definition at line 5846 of file simd.h.

OIIO_FORCEINLINE vint16 simd::rotl ( const vint16 &  x,
const int  s 
)

Circular bit rotate by s bits, for N values at once.

Definition at line 6648 of file simd.h.

OIIO_FORCEINLINE vint4 simd::rotl32 ( const vint4 &  x,
const unsigned int  k 
)

Definition at line 5036 of file simd.h.

OIIO_FORCEINLINE vint8 simd::rotl32 ( const vint8 &  x,
const unsigned int  k 
)

Definition at line 5859 of file simd.h.

OIIO_FORCEINLINE vint16 simd::rotl32 ( const vint16 &  x,
const unsigned int  k 
)

Definition at line 6661 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::round ( const vfloat4 &  a)

Per-element round to nearest integer. CAVEAT: the rounding when mid-way between integers may differ depending on hardware. Intel SSE/AVX does "banker's rounding" (to nearest even integer) but std::round() says to round away from 0 regardless of current rounding mode (but that is multiple instructions on x64). USE WITH CAUTION, and maybe avoid this if it is critical to exactly match std::round().

Definition at line 7647 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::round ( const vfloat3 &  a)

Definition at line 8251 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::round ( const vfloat8 &  a)

Per-element round to nearest integer. CAVEAT: the rounding when mid-way between integers may differ depending on hardware. Intel SSE/AVX does "banker's founding" (to nearest even integer) but std::round() says to round away from 0 regardless of current rounding mode (but that is multiple instructions on x64). USE WITH CAUTION, and maybe avoid this if it is critical to exactly match std::round().

Definition at line 9329 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::round ( const vfloat16 &  a)

Per-element round to nearest integer. CAVEAT: the rounding when mid-way between integers may differ depending on hardware. Intel SSE/AVX does "banker's founding" (to nearest even integer) but std::round() says to round away from 0 regardless of current rounding mode (but that is multiple instructions on x64). USE WITH CAUTION, and maybe avoid this if it is critical to exactly match std::round().

Definition at line 10197 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::rsqrt ( const vfloat4 &  a)

Fully accurate 1/sqrt.

Definition at line 7706 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::rsqrt ( const vfloat8 &  a)

Fully accurate 1/sqrt.

Definition at line 9383 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::rsqrt ( const vfloat16 &  a)

Fully accurate 1/sqrt.

Definition at line 10245 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::rsqrt_fast ( const vfloat4 &  a)

Fast, approximate 1/sqrt.

Definition at line 7718 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::rsqrt_fast ( const vfloat8 &  a)

Fast, approximate 1/sqrt.

Definition at line 9394 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::rsqrt_fast ( const vfloat16 &  a)

Fast, approximate 1/sqrt.

Definition at line 10255 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::safe_div ( const vfloat4 &  a,
const vfloat4 &  b 
)

"Safe" divide of vfloat4/vfloat4 – for any component of the divisor that is 0, return 0 rather than Inf.

Definition at line 7579 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::safe_div ( const vfloat8 &  a,
const vfloat8 &  b 
)

"Safe" divide of vfloat8/vfloat8 – for any component of the divisor that is 0, return 0 rather than Inf.

Definition at line 9282 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::safe_div ( const vfloat16 &  a,
const vfloat16 &  b 
)

"Safe" divide of vfloat16/vfloat16 – for any component of the divisor that is 0, return 0 rather than Inf.

Definition at line 10149 of file simd.h.

OIIO_FORCEINLINE vint4 simd::safe_mod ( const vint4 &  a,
const vint4 &  b 
)

Definition at line 5057 of file simd.h.

OIIO_FORCEINLINE vint4 simd::safe_mod ( const vint4 &  a,
int  b 
)

Definition at line 5062 of file simd.h.

OIIO_FORCEINLINE vint8 simd::safe_mod ( const vint8 &  a,
const vint8 &  b 
)

Definition at line 5882 of file simd.h.

OIIO_FORCEINLINE vint8 simd::safe_mod ( const vint8 &  a,
int  b 
)

Definition at line 5887 of file simd.h.

OIIO_FORCEINLINE vint16 simd::safe_mod ( const vint16 &  a,
const vint16 &  b 
)

Definition at line 6676 of file simd.h.

OIIO_FORCEINLINE vint16 simd::safe_mod ( const vint16 &  a,
int  b 
)

Definition at line 6681 of file simd.h.

OIIO_FORCEINLINE vint4 simd::select ( const vbool4 &  mask,
const vint4 &  a,
const vint4 &  b 
)

Select 'a' where mask is true, 'b' where mask is false. Sure, it's a synonym for blend with arguments rearranged, but this is more clear because the arguments are symmetric to scalar (cond ? a : b).

Definition at line 4983 of file simd.h.

OIIO_FORCEINLINE vint8 simd::select ( const vbool8 &  mask,
const vint8 &  a,
const vint8 &  b 
)

Select 'a' where mask is true, 'b' where mask is false. Sure, it's a synonym for blend with arguments rearranged, but this is more clear because the arguments are symmetric to scalar (cond ? a : b).

Definition at line 5812 of file simd.h.

OIIO_FORCEINLINE vint16 simd::select ( const vbool16 &  mask,
const vint16 &  a,
const vint16 &  b 
)

Select 'a' where mask is true, 'b' where mask is false. Sure, it's a synonym for blend with arguments rearranged, but this is more clear because the arguments are symmetric to scalar (cond ? a : b).

Definition at line 6616 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::select ( const vbool4 &  mask,
const vfloat4 &  a,
const vfloat4 &  b 
)

Select 'a' where mask is true, 'b' where mask is false. Sure, it's a synonym for blend with arguments rearranged, but this is more clear because the arguments are symmetric to scalar (cond ? a : b).

Definition at line 7603 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::select ( const vbool8 &  mask,
const vfloat8 &  a,
const vfloat8 &  b 
)

Select 'a' where mask is true, 'b' where mask is false. Sure, it's a synonym for blend with arguments rearranged, but this is more clear because the arguments are symmetric to scalar (cond ? a : b).

Definition at line 9276 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::select ( const vbool16 &  mask,
const vfloat16 &  a,
const vfloat16 &  b 
)

Select 'a' where mask is true, 'b' where mask is false. Sure, it's a synonym for blend with arguments rearranged, but this is more clear because the arguments are symmetric to scalar (cond ? a : b).

Definition at line 10143 of file simd.h.

bool simd::set_denorms_zero_mode ( bool  on)
inline

Definition at line 3202 of file simd.h.

bool simd::set_flush_zero_mode ( bool  on)
inline

Definition at line 3192 of file simd.h.

template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vbool4 simd::shuffle ( const vbool4 &  a)

Helper: shuffle/swizzle with constant (templated) indices. Example: shuffle<1,1,2,2>(vbool4(a,b,c,d)) returns (b,b,c,c)

Definition at line 3525 of file simd.h.

template<int i>
OIIO_FORCEINLINE vbool4 simd::shuffle ( const vbool4 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(a)

Definition at line 3534 of file simd.h.

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
OIIO_FORCEINLINE vbool8 simd::shuffle ( const vbool8 &  a)

Helper: shuffle/swizzle with constant (templated) indices. Example: shuffle<1,1,2,2>(vbool4(a,b,c,d)) returns (b,b,c,c)

Definition at line 3862 of file simd.h.

template<int i>
OIIO_FORCEINLINE vbool8 simd::shuffle ( const vbool8 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(a)

Definition at line 3871 of file simd.h.

template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vint4 simd::shuffle ( const vint4 &  a)

Helper: shuffle/swizzle with constant (templated) indices. Example: shuffle<1,1,2,2>(vbool4(a,b,c,d)) returns (b,b,c,c)

Definition at line 4820 of file simd.h.

template<int i>
OIIO_FORCEINLINE vint4 simd::shuffle ( const vint4 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(a)

Definition at line 4828 of file simd.h.

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
OIIO_FORCEINLINE vint8 simd::shuffle ( const vint8 &  a)

Helper: shuffle/swizzle with constant (templated) indices. Example: shuffle<1,1,2,2>(vbool4(a,b,c,d)) returns (b,b,c,c)

Definition at line 5663 of file simd.h.

template<int i>
OIIO_FORCEINLINE vint8 simd::shuffle ( const vint8 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(a)

Definition at line 5672 of file simd.h.

template<int i0, int i1, int i2, int i3>
vint16 simd::shuffle ( const vint16 &  a)

Shuffle within each group of 4.

Definition at line 6471 of file simd.h.

template<int i>
vint16 simd::shuffle ( const vint16 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(a)

Definition at line 6483 of file simd.h.

template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vfloat4 simd::shuffle ( const vfloat4 &  a)

Helper: shuffle/swizzle with constant (templated) indices. Example: shuffle<1,1,2,2>(vbool4(a,b,c,d)) returns (b,b,c,c)

Definition at line 7338 of file simd.h.

template<int i>
OIIO_FORCEINLINE vfloat4 simd::shuffle ( const vfloat4 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(a)

Definition at line 7346 of file simd.h.

template<int i>
OIIO_FORCEINLINE vfloat4 simd::shuffle ( const vfloat4 &  a,
const vfloat4 &  b 
)

Return { a[i0], a[i1], b[i2], b[i3] }, where i0..i3 are the extracted 2-bit indices packed into the template parameter i (going from the low 2-bit pair to the high 2-bit pair).

Definition at line 7366 of file simd.h.

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
OIIO_FORCEINLINE vfloat8 simd::shuffle ( const vfloat8 &  a)

Helper: shuffle/swizzle with constant (templated) indices. Example: shuffle<1,1,2,2>(vbool4(a,b,c,d)) returns (b,b,c,c)

Definition at line 9139 of file simd.h.

template<int i>
OIIO_FORCEINLINE vfloat8 simd::shuffle ( const vfloat8 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i,...>(a)

Definition at line 9148 of file simd.h.

template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vfloat16 simd::shuffle ( const vfloat16 &  a)

Shuffle within each group of 4.

Shuffle within each group of 4.

Definition at line 10030 of file simd.h.

template<int i>
vfloat16 simd::shuffle ( const vfloat16 &  a)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(a)

Shuffle within each group of 4.

Definition at line 10030 of file simd.h.

template<int i0, int i1, int i2, int i3>
vfloat16 simd::shuffle ( const vfloat16 &  a)

Shuffle within each group of 4.

Shuffle within each group of 4.

Definition at line 10019 of file simd.h.

template<int i0, int i1, int i2, int i3>
vint16 simd::shuffle4 ( const vint16 &  a)

Shuffle groups of 4.

Definition at line 6455 of file simd.h.

template<int i>
vint16 simd::shuffle4 ( const vint16 &  a)

shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a)

Definition at line 6466 of file simd.h.

template<int i0, int i1, int i2, int i3>
OIIO_FORCEINLINE vfloat16 simd::shuffle4 ( const vfloat16 &  a)

Shuffle groups of 4.

Definition at line 10004 of file simd.h.

template<int i>
OIIO_FORCEINLINE vfloat16 simd::shuffle4 ( const vfloat16 &  a)

shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a)

shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a)

Definition at line 10004 of file simd.h.

template<int i0, int i1, int i2, int i3>
vfloat16 simd::shuffle4 ( const vfloat16 &  a)

Shuffle groups of 4.

shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a)

Definition at line 10004 of file simd.h.

template<int i>
vfloat16 simd::shuffle4 ( const vfloat16 &  a)

Shuffle groups of 4.

shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a)

Definition at line 10014 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::sign ( const vfloat4 &  a)

1.0 when value >= 0, -1 when negative

Definition at line 7622 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::sign ( const vfloat3 &  a)

Definition at line 8226 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::sign ( const vfloat8 &  a)

1.0 when value >= 0, -1 when negative

Definition at line 9304 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::sign ( const vfloat16 &  a)

1.0 when value >= 0, -1 when negative

Definition at line 10171 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::sqrt ( const vfloat4 &  a)
OIIO_FORCEINLINE vfloat8 simd::sqrt ( const vfloat8 &  a)

Definition at line 9372 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::sqrt ( const vfloat16 &  a)

Definition at line 10235 of file simd.h.

OIIO_FORCEINLINE vint4 simd::srl ( const vint4 &  val,
const unsigned int  bits 
)

Definition at line 4690 of file simd.h.

OIIO_FORCEINLINE vint8 simd::srl ( const vint8 &  val,
const unsigned int  bits 
)

Definition at line 5541 of file simd.h.

OIIO_FORCEINLINE vint16 simd::srl ( const vint16 &  val,
const unsigned int  bits 
)

Shift right logical – unsigned shift. This differs from operator>> in how it handles the sign bit. (1<<31) >> 1 == (1<<31), but srl((1<<31),1) == 1<<30.

Definition at line 6337 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::transformp ( const matrix44 &  M,
const vfloat3 &  V 
)

Transform 3-point V by 4x4 matrix M.

Definition at line 8609 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::transformp ( M44fParam  M,
const vfloat3 &  V 
)

Definition at line 8623 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::transformv ( const matrix44 &  M,
const vfloat3 &  V 
)

Transform 3-vector V by 4x4 matrix M.

Definition at line 8613 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::transformv ( M44fParam  M,
const vfloat3 &  V 
)

Definition at line 8628 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::transformvT ( const matrix44 &  M,
const vfloat3 &  V 
)

Definition at line 8617 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::transformvT ( M44fParam  M,
const vfloat3 &  V 
)

Definition at line 8633 of file simd.h.

OIIO_FORCEINLINE void simd::transpose ( vint4 &  a,
vint4 &  b,
vint4 &  c,
vint4 &  d 
)

Definition at line 8008 of file simd.h.

OIIO_FORCEINLINE void simd::transpose ( const vint4 &  a,
const vint4 &  b,
const vint4 &  c,
const vint4 &  d,
vint4 &  r0,
vint4 &  r1,
vint4 &  r2,
vint4 &  r3 
)

Definition at line 8029 of file simd.h.

OIIO_FORCEINLINE void simd::transpose ( vfloat4 &  a,
vfloat4 &  b,
vfloat4 &  c,
vfloat4 &  d 
)

Transpose the rows and columns of the 4x4 matrix [a b c d]. In the end, a will have the original (a[0], b[0], c[0], d[0]), b will have the original (a[1], b[1], c[1], d[1]), and so on.

Definition at line 7972 of file simd.h.

OIIO_FORCEINLINE void simd::transpose ( const vfloat4 &  a,
const vfloat4 &  b,
const vfloat4 &  c,
const vfloat4 &  d,
vfloat4 &  r0,
vfloat4 &  r1,
vfloat4 &  r2,
vfloat4 &  r3 
)

Definition at line 7986 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::vdot ( const vfloat4 &  a,
const vfloat4 &  b 
)

Return the float dot (inner) product of a and b in every component.

Definition at line 7496 of file simd.h.

vfloat8 simd::vdot ( const vfloat8 &  a,
const vfloat8 &  b 
)

Return the float dot (inner) product of a and b in every component.

OIIO_FORCEINLINE vfloat3 simd::vdot ( const vfloat3 &  a,
const vfloat3 &  b 
)

Definition at line 8270 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::vdot3 ( const vfloat4 &  a,
const vfloat4 &  b 
)

Return the float 3-component dot (inner) product of a and b in all components.

Definition at line 7516 of file simd.h.

vfloat8 simd::vdot3 ( const vfloat8 &  a,
const vfloat8 &  b 
)

Return the float 3-component dot (inner) product of a and b in all components.

OIIO_FORCEINLINE vfloat3 simd::vdot3 ( const vfloat3 &  a,
const vfloat3 &  b 
)

Definition at line 8290 of file simd.h.

OIIO_FORCEINLINE vint4 simd::vreduce_add ( const vint4 &  v)

The sum of all components, returned in all components.

Definition at line 4887 of file simd.h.

OIIO_FORCEINLINE vint8 simd::vreduce_add ( const vint8 &  v)

The sum of all components, returned in all components.

Definition at line 5719 of file simd.h.

OIIO_FORCEINLINE vint16 simd::vreduce_add ( const vint16 &  v)

The sum of all components, returned in all components.

Definition at line 6529 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::vreduce_add ( const vfloat4 &  v)

The sum of all components, returned in all components.

Definition at line 7458 of file simd.h.

OIIO_FORCEINLINE vfloat8 simd::vreduce_add ( const vfloat8 &  v)

The sum of all components, returned in all components.

Definition at line 9212 of file simd.h.

OIIO_FORCEINLINE vfloat16 simd::vreduce_add ( const vfloat16 &  v)

The sum of all components, returned in all components.

Definition at line 10085 of file simd.h.

OIIO_FORCEINLINE vfloat3 simd::vreduce_add ( const vfloat3 &  v)

Definition at line 8261 of file simd.h.