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 >
 
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
 

Typedefs

typedef vbool4 mask4
 
typedef vbool4 bool4
 
typedef vbool8 bool8
 
typedef vint4 int4
 
typedef vint8 int8
 
typedef vfloat3 float3
 
typedef vfloat4 float4
 
typedef vfloat8 float8
 

Functions

template<int i0, int i1, int i2, int i3>
vbool4 shuffle (const vbool4 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
vbool4 shuffle (const vbool4 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
bool extract (const vbool4 &a)
 
template<int i>
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>
vbool8 shuffle (const vbool8 &a)
 
template<int i>
vbool8 shuffle (const vbool8 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
bool extract (const vbool8 &a)
 
template<int i>
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>
bool extract (const vbool16 &a)
 
template<int i>
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>
vint4 shuffle (const vint4 &a)
 
template<int i>
vint4 shuffle (const vint4 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
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 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>
vint8 shuffle (const vint8 &a)
 
template<int i>
vint8 shuffle (const vint8 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
int extract (const vint8 &v)
 
template<int i>
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 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>
int extract (const vint16 &v)
 
template<int i>
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 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>
vfloat4 shuffle (const vfloat4 &a)
 
template<int i>
vfloat4 shuffle (const vfloat4 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
float extract (const vfloat4 &a)
 
template<int i>
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 >
exp (const T &v)
 
template<typename T >
log (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 transformp (const matrix44 &M, const vfloat3 &V)
 Transform 3-point V by 4x4 matrix M. More...
 
vfloat3 transformp (const Imath::M44f &M, const vfloat3 &V)
 
vfloat3 transformv (const matrix44 &M, const vfloat3 &V)
 Transform 3-vector V by 4x4 matrix M. More...
 
vfloat3 transformv (const Imath::M44f &M, const vfloat3 &V)
 
vfloat3 transformvT (const matrix44 &M, const vfloat3 &V)
 
vfloat3 transformvT (const Imath::M44f &M, const vfloat3 &V)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
vfloat8 shuffle (const vfloat8 &a)
 
template<int i>
vfloat8 shuffle (const vfloat8 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i,...>(a) More...
 
template<int i>
float extract (const vfloat8 &a)
 
template<int i>
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>
vfloat16 shuffle4 (const vfloat16 &a)
 Shuffle groups of 4. More...
 
template<int i>
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>
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>
float extract (const vfloat16 &a)
 
template<int i>
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)
 
template<int i0, int i1, int i2, int i3>
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 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...
 
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)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
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 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...
 
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)
 
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...
 
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 i0, int i1, int i2, int i3>
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 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)
 
template<int i>
OIIO_FORCEINLINE vint4 insert (const vint4 &a, int val)
 
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)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
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 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...
 
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)
 
template<int i>
OIIO_FORCEINLINE int extract (const vint16 &a)
 
template<int i>
OIIO_FORCEINLINE vint16 insert (const vint16 &a, int val)
 Helper: substitute val for a[i]. More...
 
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, 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)
 
template<int i0, int i1, int i2, int i3>
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)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
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...
 
vint4 bitcast_to_int4 (const vfloat4 &x)
 
vfloat4 bitcast_to_float4 (const vint4 &x)
 
template<typename T >
OIIO_FORCEINLINEexp (const T &v)
 
template<typename T >
OIIO_FORCEINLINElog (const T &v)
 
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, 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== (const Imath::M44f &a, const matrix44 &b)
 
OIIO_FORCEINLINE bool operator!= (const Imath::M44f &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, 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)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
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 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 &v)
 
template<int i>
OIIO_FORCEINLINE vfloat8 insert (const vfloat8 &a, float val)
 Helper: substitute val for a[i]. More...
 
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, 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 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...
 
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)
 

Typedef Documentation

Definition at line 286 of file simd.h.

Definition at line 287 of file simd.h.

Definition at line 290 of file simd.h.

Definition at line 291 of file simd.h.

Definition at line 292 of file simd.h.

typedef vint4 simd::int4

Definition at line 288 of file simd.h.

typedef vint8 simd::int8

Definition at line 289 of file simd.h.

Definition at line 282 of file simd.h.

Function Documentation

float simd::abs ( float  x)
inline

Definition at line 47 of file unittest.h.

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

Definition at line 4684 of file simd.h.

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

Definition at line 5469 of file simd.h.

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

Definition at line 6258 of file simd.h.

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

absolute value (float)

Definition at line 7150 of file simd.h.

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

absolute value (float)

Definition at line 8690 of file simd.h.

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

absolute value (float)

Definition at line 9531 of file simd.h.

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

Definition at line 3371 of file simd.h.

bool simd::all ( bool  v)
inline

Definition at line 602 of file simd.h.

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

Definition at line 3677 of file simd.h.

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

Definition at line 3915 of file simd.h.

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

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

Definition at line 4717 of file simd.h.

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

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

Definition at line 5501 of file simd.h.

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

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

Definition at line 6290 of file simd.h.

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

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

Definition at line 7286 of file simd.h.

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

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

Definition at line 8829 of file simd.h.

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

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

Definition at line 9659 of file simd.h.

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

Definition at line 3372 of file simd.h.

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

Definition at line 3678 of file simd.h.

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

Definition at line 3916 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 6869 of file simd.h.

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

Definition at line 7592 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 7579 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 6861 of file simd.h.

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

Definition at line 6989 of file simd.h.

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

Definition at line 8601 of file simd.h.

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

Definition at line 9448 of file simd.h.

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

Definition at line 7001 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 4577 of file simd.h.

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

Definition at line 6980 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 5361 of file simd.h.

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

Definition at line 8592 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 6156 of file simd.h.

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

Definition at line 9439 of file simd.h.

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

Definition at line 4587 of file simd.h.

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

Definition at line 7000 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 4648 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 5424 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 6224 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 7076 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 8636 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 9483 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 4660 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 5437 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 6234 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 7094 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 8649 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 9494 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 4669 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 5451 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 6244 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 7107 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 8662 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 9505 of file simd.h.

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

Definition at line 7168 of file simd.h.

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

Definition at line 8708 of file simd.h.

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

Definition at line 9551 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 7051 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 7754 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 7067 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 >
T simd::exp ( const T &  v)

Definition at line 7377 of file simd.h.

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

Definition at line 7377 of file simd.h.

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

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

Definition at line 3330 of file simd.h.

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

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

Definition at line 3637 of file simd.h.

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

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

Definition at line 3894 of file simd.h.

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

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

Definition at line 4540 of file simd.h.

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

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

Definition at line 5330 of file simd.h.

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

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

Definition at line 6126 of file simd.h.

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

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

Definition at line 6935 of file simd.h.

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

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

Definition at line 8557 of file simd.h.

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

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

Definition at line 9409 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 3330 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 3637 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 3894 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 4540 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 5330 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 6126 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 6935 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 8557 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 9409 of file simd.h.

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

Definition at line 7177 of file simd.h.

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

Definition at line 8717 of file simd.h.

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

Definition at line 9560 of file simd.h.

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

Definition at line 2073 of file simd.h.

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

Definition at line 2659 of file simd.h.

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

Definition at line 2970 of file simd.h.

bool simd::get_denorms_zero_mode ( )
inline

Definition at line 3033 of file simd.h.

bool simd::get_flush_zero_mode ( )
inline

Definition at line 3025 of file simd.h.

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

Homogeneous divide to turn a vfloat4 into a vfloat3.

Definition at line 7132 of file simd.h.

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

(int)floor

Definition at line 7195 of file simd.h.

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

(int)floor

Definition at line 8735 of file simd.h.

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

(int)floor

Definition at line 9579 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 3340 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 3646 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 3899 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 5340 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 6132 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 6952 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 8571 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 9415 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 3340 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 3646 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 3899 of file simd.h.

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

Definition at line 4555 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 5340 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 6132 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 6952 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 8571 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 9415 of file simd.h.

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

Definition at line 7432 of file simd.h.

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

Definition at line 7432 of file simd.h.

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

Definition at line 7300 of file simd.h.

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

Definition at line 8847 of file simd.h.

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

Definition at line 9668 of file simd.h.

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

Definition at line 52 of file unittest.h.

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

Definition at line 5487 of file simd.h.

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

Definition at line 6276 of file simd.h.

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

Per-element max.

Definition at line 7276 of file simd.h.

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

Per-element max.

Definition at line 8819 of file simd.h.

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

Per-element max.

Definition at line 9649 of file simd.h.

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

Definition at line 5478 of file simd.h.

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

Definition at line 6267 of file simd.h.

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

Per-element min.

Definition at line 7267 of file simd.h.

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

Per-element min.

Definition at line 8810 of file simd.h.

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

Per-element min.

Definition at line 9640 of file simd.h.

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

Definition at line 7318 of file simd.h.

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

Definition at line 8860 of file simd.h.

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

Definition at line 9680 of file simd.h.

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

Definition at line 7337 of file simd.h.

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

Definition at line 8874 of file simd.h.

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

Definition at line 9693 of file simd.h.

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

Definition at line 7356 of file simd.h.

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

Definition at line 8888 of file simd.h.

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

Definition at line 9706 of file simd.h.

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

Definition at line 3373 of file simd.h.

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

Definition at line 3679 of file simd.h.

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

Definition at line 3917 of file simd.h.

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

Definition at line 3195 of file simd.h.

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

Definition at line 3546 of file simd.h.

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

Definition at line 3825 of file simd.h.

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

Definition at line 3257 of file simd.h.

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

Definition at line 3612 of file simd.h.

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

Definition at line 3884 of file simd.h.

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

Definition at line 4423 of file simd.h.

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

Definition at line 5214 of file simd.h.

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

Definition at line 5993 of file simd.h.

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

Definition at line 6821 of file simd.h.

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

Definition at line 7933 of file simd.h.

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

Definition at line 8485 of file simd.h.

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

Definition at line 9318 of file simd.h.

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

Definition at line 4317 of file simd.h.

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

Definition at line 4327 of file simd.h.

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

Definition at line 5108 of file simd.h.

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

Definition at line 5115 of file simd.h.

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

Definition at line 5890 of file simd.h.

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

Definition at line 5897 of file simd.h.

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

Definition at line 4324 of file simd.h.

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

Definition at line 4333 of file simd.h.

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

Definition at line 5113 of file simd.h.

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

Definition at line 5120 of file simd.h.

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

Definition at line 5895 of file simd.h.

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

Definition at line 5902 of file simd.h.

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

Definition at line 3203 of file simd.h.

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

Definition at line 3554 of file simd.h.

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

Definition at line 3833 of file simd.h.

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

Definition at line 4336 of file simd.h.

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

Definition at line 5123 of file simd.h.

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

Definition at line 5905 of file simd.h.

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

Definition at line 3228 of file simd.h.

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

Definition at line 3579 of file simd.h.

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

Definition at line 3858 of file simd.h.

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

Definition at line 4345 of file simd.h.

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

Definition at line 5131 of file simd.h.

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

Definition at line 5913 of file simd.h.

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

Definition at line 4296 of file simd.h.

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

Definition at line 5087 of file simd.h.

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

Definition at line 5869 of file simd.h.

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

Definition at line 6755 of file simd.h.

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

Definition at line 7703 of file simd.h.

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

Definition at line 7864 of file simd.h.

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

Definition at line 7874 of file simd.h.

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

Definition at line 8453 of file simd.h.

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

Definition at line 9284 of file simd.h.

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

Definition at line 4305 of file simd.h.

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

Definition at line 4306 of file simd.h.

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

Definition at line 5096 of file simd.h.

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

Definition at line 5097 of file simd.h.

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

Definition at line 5878 of file simd.h.

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

Definition at line 5879 of file simd.h.

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

Definition at line 8461 of file simd.h.

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

Definition at line 9292 of file simd.h.

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

Definition at line 4238 of file simd.h.

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

Definition at line 5050 of file simd.h.

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

Definition at line 5832 of file simd.h.

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

Definition at line 6703 of file simd.h.

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

Definition at line 7683 of file simd.h.

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

Definition at line 8421 of file simd.h.

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

Definition at line 9251 of file simd.h.

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

Definition at line 4246 of file simd.h.

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

Definition at line 5059 of file simd.h.

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

Definition at line 5841 of file simd.h.

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

Definition at line 8429 of file simd.h.

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

Definition at line 9259 of file simd.h.

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

Definition at line 4251 of file simd.h.

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

Definition at line 4260 of file simd.h.

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

Definition at line 5064 of file simd.h.

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

Definition at line 5073 of file simd.h.

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

Definition at line 5846 of file simd.h.

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

Definition at line 5855 of file simd.h.

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

Definition at line 6734 of file simd.h.

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

Definition at line 7695 of file simd.h.

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

Definition at line 8433 of file simd.h.

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

Definition at line 8441 of file simd.h.

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

Definition at line 9263 of file simd.h.

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

Definition at line 9271 of file simd.h.

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

Definition at line 4269 of file simd.h.

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

Definition at line 5082 of file simd.h.

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

Definition at line 5864 of file simd.h.

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

Definition at line 8449 of file simd.h.

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

Definition at line 9279 of file simd.h.

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

Definition at line 4309 of file simd.h.

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

Definition at line 5100 of file simd.h.

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

Definition at line 5882 of file simd.h.

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

Definition at line 6787 of file simd.h.

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

Definition at line 7715 of file simd.h.

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

Definition at line 8465 of file simd.h.

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

Definition at line 9296 of file simd.h.

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

Definition at line 4315 of file simd.h.

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

Definition at line 5105 of file simd.h.

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

Definition at line 5887 of file simd.h.

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

Definition at line 8473 of file simd.h.

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

Definition at line 9304 of file simd.h.

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

Definition at line 4436 of file simd.h.

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

Definition at line 5232 of file simd.h.

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

Definition at line 6011 of file simd.h.

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

Definition at line 6829 of file simd.h.

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

Definition at line 8493 of file simd.h.

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

Definition at line 9327 of file simd.h.

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

Definition at line 3091 of file simd.h.

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

Definition at line 3401 of file simd.h.

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

Definition at line 3705 of file simd.h.

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

Definition at line 4380 of file simd.h.

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

Definition at line 4452 of file simd.h.

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

Definition at line 5163 of file simd.h.

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

Definition at line 5257 of file simd.h.

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

Definition at line 5945 of file simd.h.

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

Definition at line 6038 of file simd.h.

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

Definition at line 6885 of file simd.h.

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

Definition at line 7728 of file simd.h.

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

Definition at line 8020 of file simd.h.

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

Definition at line 8091 of file simd.h.

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

Definition at line 8917 of file simd.h.

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

Definition at line 4388 of file simd.h.

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

Definition at line 5174 of file simd.h.

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

Definition at line 5956 of file simd.h.

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

Definition at line 4448 of file simd.h.

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

Definition at line 5251 of file simd.h.

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

Definition at line 6029 of file simd.h.

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

Definition at line 6853 of file simd.h.

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

Definition at line 8517 of file simd.h.

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

Definition at line 9354 of file simd.h.

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

Definition at line 3249 of file simd.h.

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

Definition at line 3602 of file simd.h.

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

Definition at line 3876 of file simd.h.

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

Definition at line 4415 of file simd.h.

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

Definition at line 5202 of file simd.h.

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

Definition at line 5984 of file simd.h.

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

Definition at line 6813 of file simd.h.

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

Definition at line 7913 of file simd.h.

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

Definition at line 8477 of file simd.h.

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

Definition at line 9309 of file simd.h.

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

Definition at line 4428 of file simd.h.

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

Definition at line 5220 of file simd.h.

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

Definition at line 6002 of file simd.h.

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

Definition at line 6837 of file simd.h.

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

Definition at line 8501 of file simd.h.

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

Definition at line 9336 of file simd.h.

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

Definition at line 4444 of file simd.h.

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

Definition at line 5245 of file simd.h.

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

Definition at line 6020 of file simd.h.

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

Definition at line 6845 of file simd.h.

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

Definition at line 8509 of file simd.h.

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

Definition at line 9345 of file simd.h.

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

Definition at line 4393 of file simd.h.

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

Definition at line 5178 of file simd.h.

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

Definition at line 5960 of file simd.h.

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

Definition at line 4401 of file simd.h.

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

Definition at line 5188 of file simd.h.

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

Definition at line 5969 of file simd.h.

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

Definition at line 3219 of file simd.h.

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

Definition at line 3570 of file simd.h.

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

Definition at line 3849 of file simd.h.

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

Definition at line 4360 of file simd.h.

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

Definition at line 5143 of file simd.h.

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

Definition at line 5925 of file simd.h.

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

Definition at line 3236 of file simd.h.

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

Definition at line 3587 of file simd.h.

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

Definition at line 3866 of file simd.h.

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

Definition at line 4369 of file simd.h.

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

Definition at line 5151 of file simd.h.

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

Definition at line 5933 of file simd.h.

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

Definition at line 3211 of file simd.h.

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

Definition at line 3562 of file simd.h.

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

Definition at line 3841 of file simd.h.

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

Definition at line 4349 of file simd.h.

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

Definition at line 5133 of file simd.h.

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

Definition at line 5915 of file simd.h.

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

Definition at line 3232 of file simd.h.

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

Definition at line 3583 of file simd.h.

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

Definition at line 3862 of file simd.h.

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

Definition at line 4357 of file simd.h.

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

Definition at line 5141 of file simd.h.

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

Definition at line 5923 of file simd.h.

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

Definition at line 3240 of file simd.h.

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

Definition at line 3592 of file simd.h.

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

Definition at line 3871 of file simd.h.

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

Definition at line 4372 of file simd.h.

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

Definition at line 5154 of file simd.h.

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

Definition at line 5936 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 7212 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 8755 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 9595 of file simd.h.

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

Definition at line 4616 of file simd.h.

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

Definition at line 5389 of file simd.h.

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

Definition at line 6182 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 7031 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 8627 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 9474 of file simd.h.

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

Logical reduction across all components.

Definition at line 3351 of file simd.h.

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

Logical reduction across all components.

Definition at line 3658 of file simd.h.

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

Logical reduction across all components.

Definition at line 3906 of file simd.h.

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

Definition at line 4625 of file simd.h.

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

Definition at line 5398 of file simd.h.

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

Definition at line 6191 of file simd.h.

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

Definition at line 3361 of file simd.h.

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

Definition at line 3667 of file simd.h.

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

Definition at line 3910 of file simd.h.

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

Definition at line 4636 of file simd.h.

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

Definition at line 5411 of file simd.h.

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

Definition at line 6207 of file simd.h.

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

Per-element round to nearest integer (rounding away from 0 in cases that are exactly half way).

Definition at line 7206 of file simd.h.

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

Per-element round to nearest integer (rounding away from 0 in cases that are exactly half way).

Definition at line 8748 of file simd.h.

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

Per-element round to nearest integer (rounding away from 0 in cases that are exactly half way).

Definition at line 9589 of file simd.h.

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

Definition at line 4712 of file simd.h.

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

Definition at line 5496 of file simd.h.

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

Definition at line 6285 of file simd.h.

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

Per-element round to nearest integer (rounding away from 0 in cases that are exactly half way).

Definition at line 7186 of file simd.h.

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

Per-element round to nearest integer (rounding away from 0 in cases that are exactly half way).

Definition at line 8726 of file simd.h.

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

Per-element round to nearest integer (rounding away from 0 in cases that are exactly half way).

Definition at line 9570 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 7241 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 8780 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 9618 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 7251 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 8791 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 9628 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 7120 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 8681 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 9522 of file simd.h.

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

Definition at line 4733 of file simd.h.

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

Definition at line 4738 of file simd.h.

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

Definition at line 5519 of file simd.h.

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

Definition at line 5524 of file simd.h.

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

Definition at line 6300 of file simd.h.

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

Definition at line 6305 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 4678 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 5464 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 6253 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 7144 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 8675 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 9516 of file simd.h.

bool simd::set_denorms_zero_mode ( bool  on)
inline

Definition at line 3016 of file simd.h.

bool simd::set_flush_zero_mode ( bool  on)
inline

Definition at line 3005 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 3313 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 3313 of file simd.h.

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
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 3622 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 3622 of file simd.h.

template<int i0, int i1, int i2, int i3>
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 4528 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 4528 of file simd.h.

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
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 5315 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 5315 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 6108 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 6120 of file simd.h.

template<int i0, int i1, int i2, int i3>
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 6905 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 6905 of file simd.h.

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
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 8538 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i,...>(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 8538 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.

Definition at line 9392 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)

Definition at line 9403 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 3313 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)

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 3322 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)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 3622 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)

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 3631 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 4528 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)

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 4536 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)

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 5315 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)

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 5324 of file simd.h.

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

shuffle<i>(a) is the same as shuffle<i,i,i,i>(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 6905 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)

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 6913 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)

shuffle<i>(a) is the same as shuffle<i,i,i,i,...>(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 8538 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)

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 8547 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 6092 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 6103 of file simd.h.

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

Shuffle groups of 4.

Definition at line 9377 of file simd.h.

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

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

Definition at line 9387 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 7161 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 8701 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 9544 of file simd.h.

OIIO_FORCEINLINE vfloat4 simd::sqrt ( const vfloat4 &  a)
Examples:
alligator/alligator.C, and TS/TS_cosKernel.C.

Definition at line 7231 of file simd.h.

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

Definition at line 8769 of file simd.h.

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

Definition at line 9608 of file simd.h.

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

Definition at line 4406 of file simd.h.

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

Definition at line 5193 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 5974 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 8030 of file simd.h.

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

Definition at line 8034 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 8046 of file simd.h.

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

Definition at line 8050 of file simd.h.

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

Definition at line 8061 of file simd.h.

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

Definition at line 8066 of file simd.h.

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

Definition at line 7535 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 7556 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 7499 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 7513 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 7039 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 7745 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 7059 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 7763 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 4590 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 5371 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 6166 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 7005 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 8611 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 9458 of file simd.h.

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

Definition at line 7736 of file simd.h.