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 rotl (const vint4 &x, const int s)
 Circular bit rotate by s bits, for N values at once. More...
 
vint4 rotl32 (const vint4 &x, const unsigned int k)
 
vint4 andnot (const vint4 &a, const vint4 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vint4 bitcast_to_int (const vbool4 &x)
 Bitcast back and forth to intN (not a convert – move the bits!) More...
 
vint4 bitcast_to_int (const vfloat4 &x)
 
vfloat4 bitcast_to_float (const vint4 &x)
 
void transpose (vint4 &a, vint4 &b, vint4 &c, vint4 &d)
 
void transpose (const vint4 &a, const vint4 &b, const vint4 &c, const vint4 &d, vint4 &r0, vint4 &r1, vint4 &r2, vint4 &r3)
 
vint4 AxBxCxDx (const vint4 &a, const vint4 &b, const vint4 &c, const vint4 &d)
 
vint4 safe_mod (const vint4 &a, const vint4 &b)
 
vint4 safe_mod (const vint4 &a, int b)
 
vint8 srl (const vint8 &val, const unsigned int bits)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
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 rotl (const vint8 &x, const int s)
 Circular bit rotate by s bits, for N values at once. More...
 
vint8 rotl32 (const vint8 &x, const unsigned int k)
 
vint8 andnot (const vint8 &a, const vint8 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vint8 bitcast_to_int (const vbool8 &x)
 Bitcast back and forth to intN (not a convert – move the bits!) More...
 
vint8 bitcast_to_int (const vfloat8 &x)
 
vfloat8 bitcast_to_float (const vint8 &x)
 
vint8 safe_mod (const vint8 &a, const vint8 &b)
 
vint8 safe_mod (const vint8 &a, int b)
 
vint16 srl (const vint16 &val, const unsigned int bits)
 
template<int i0, int i1, int i2, int i3>
vint16 shuffle4 (const vint16 &a)
 Shuffle groups of 4. More...
 
template<int i>
vint16 shuffle4 (const vint16 &a)
 shuffle4<i>(a) is the same as shuffle4<i,i,i,i>(a) More...
 
template<int i0, int i1, int i2, int i3>
vint16 shuffle (const vint16 &a)
 Shuffle within each group of 4. More...
 
template<int i>
vint16 shuffle (const vint16 &a)
 shuffle<i>(a) is the same as shuffle<i,i,i,i>(a) More...
 
template<int i>
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 rotl (const vint16 &x, const int s)
 Circular bit rotate by s bits, for N values at once. More...
 
vint16 rotl32 (const vint16 &x, const unsigned int k)
 
vint16 andnot (const vint16 &a, const vint16 &b)
 andnot(a,b) returns ((~a) & b) More...
 
vint16 bitcast_to_int (const vbool16 &x)
 Bitcast back and forth to intN (not a convert – move the bits!) More...
 
vint16 bitcast_to_int (const vfloat16 &x)
 
vfloat16 bitcast_to_float (const vint16 &x)
 
vint16 safe_mod (const vint16 &a, const vint16 &b)
 
vint16 safe_mod (const vint16 &a, int b)
 
template<int i0, int i1, int i2, int i3>
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 abs (const vfloat3 &a)
 
vfloat3 sign (const vfloat3 &a)
 
vfloat3 ceil (const vfloat3 &a)
 
vfloat3 floor (const vfloat3 &a)
 
vfloat3 round (const vfloat3 &a)
 
vfloat3 transformp (const matrix44 &M, const vfloat3 &V)
 Transform 3-point V by 4x4 matrix M. More...
 
vfloat3 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, float b)
 
OIIO_FORCEINLINE vfloat4 operator* (float a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 operator* (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 operator/ (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator== (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator!= (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator< (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator> (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator>= (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vbool4 operator<= (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 AxyBxy (const vfloat4 &a, const vfloat4 &b)
 
OIIO_FORCEINLINE vfloat4 AxBxAyBy (const vfloat4 &a, const vfloat4 &b)
 
std::ostream & operator<< (std::ostream &cout, const vfloat4 &val)
 
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, float b)
 
OIIO_FORCEINLINE vfloat3 operator* (float a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat3 operator/ (const vfloat3 &a, const vfloat3 &b)
 
std::ostream & operator<< (std::ostream &cout, const vfloat3 &val)
 
OIIO_FORCEINLINE vfloat3 vreduce_add (const vfloat3 &v)
 
OIIO_FORCEINLINE vfloat3 vdot (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE float dot (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat3 vdot3 (const vfloat3 &a, const vfloat3 &b)
 
OIIO_FORCEINLINE vfloat4 operator* (const vfloat4 &V, const matrix44 &M)
 
OIIO_FORCEINLINE vfloat4 operator* (const matrix44 &M, const vfloat4 &V)
 
OIIO_FORCEINLINE bool operator== (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, float b)
 
OIIO_FORCEINLINE vfloat8 operator* (float a, const vfloat8 &b)
 
OIIO_FORCEINLINE vfloat8 operator* (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE const vfloat8operator*= (vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vfloat8 operator/ (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE const vfloat8operator/= (vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator== (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator!= (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator< (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator> (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator>= (const vfloat8 &a, const vfloat8 &b)
 
OIIO_FORCEINLINE vbool8 operator<= (const vfloat8 &a, const vfloat8 &b)
 
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, float b)
 
OIIO_FORCEINLINE vfloat16 operator* (float a, const vfloat16 &b)
 
OIIO_FORCEINLINE vfloat16 operator* (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE const vfloat16operator*= (vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vfloat16 operator/ (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE const vfloat16operator/= (vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator== (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator!= (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator< (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator> (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator>= (const vfloat16 &a, const vfloat16 &b)
 
OIIO_FORCEINLINE vbool16 operator<= (const vfloat16 &a, const vfloat16 &b)
 
template<int 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 261 of file simd.h.

Definition at line 262 of file simd.h.

Definition at line 265 of file simd.h.

Definition at line 266 of file simd.h.

Definition at line 267 of file simd.h.

typedef vint4 simd::int4

Definition at line 263 of file simd.h.

typedef vint8 simd::int8

Definition at line 264 of file simd.h.

Definition at line 257 of file simd.h.

Function Documentation

float simd::abs ( float  x)
inline

Definition at line 22 of file unittest.h.

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

Definition at line 4799 of file simd.h.

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

Definition at line 5627 of file simd.h.

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

Definition at line 6431 of file simd.h.

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

absolute value (float)

Definition at line 7375 of file simd.h.

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

Definition at line 7977 of file simd.h.

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

absolute value (float)

Definition at line 9032 of file simd.h.

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

absolute value (float)

Definition at line 9899 of file simd.h.

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

Definition at line 3445 of file simd.h.

bool simd::all ( bool  v)
inline

Definition at line 583 of file simd.h.

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

Definition at line 3763 of file simd.h.

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

Definition at line 4011 of file simd.h.

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

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

Definition at line 4851 of file simd.h.

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

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

Definition at line 5674 of file simd.h.

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

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

Definition at line 6476 of file simd.h.

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

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

Definition at line 7517 of file simd.h.

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

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

Definition at line 9173 of file simd.h.

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

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

Definition at line 10027 of file simd.h.

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

Definition at line 3446 of file simd.h.

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

Definition at line 3764 of file simd.h.

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

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

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

Definition at line 7825 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 7812 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 7082 of file simd.h.

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

Definition at line 7210 of file simd.h.

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

Definition at line 8943 of file simd.h.

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

Definition at line 9816 of file simd.h.

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

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

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

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

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

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

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

Definition at line 9807 of file simd.h.

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

Definition at line 4698 of file simd.h.

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

Definition at line 7221 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 4761 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 5582 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 6397 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 7299 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 8978 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 9851 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 4775 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 5595 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 6407 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 7319 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 8991 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 9862 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 4784 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 5609 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 6417 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 7332 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 9004 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 9873 of file simd.h.

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

Definition at line 7395 of file simd.h.

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

Definition at line 7997 of file simd.h.

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

Definition at line 9052 of file simd.h.

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

Definition at line 9919 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 7274 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 8043 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 7290 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 7610 of file simd.h.

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

Definition at line 7610 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 3404 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 3723 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 3990 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 4651 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 5488 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 6299 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 7156 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 8899 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 9777 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 3404 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 3723 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 3990 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 4651 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 5488 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 6299 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 7156 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 8899 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 9777 of file simd.h.

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

Definition at line 7404 of file simd.h.

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

Definition at line 8006 of file simd.h.

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

Definition at line 9061 of file simd.h.

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

Definition at line 9928 of file simd.h.

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

Definition at line 2075 of file simd.h.

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

Definition at line 2696 of file simd.h.

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

Definition at line 3018 of file simd.h.

bool simd::get_denorms_zero_mode ( )
inline

Definition at line 3089 of file simd.h.

bool simd::get_flush_zero_mode ( )
inline

Definition at line 3081 of file simd.h.

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

Homogeneous divide to turn a vfloat4 into a vfloat3.

Definition at line 7357 of file simd.h.

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

(int)floor

Definition at line 7422 of file simd.h.

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

(int)floor

Definition at line 9079 of file simd.h.

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

(int)floor

Definition at line 9947 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 3414 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 3732 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 3995 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 5498 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 6305 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 7173 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 8913 of file simd.h.

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

Helper: substitute val for a[i].

Definition at line 9783 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 3414 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 3732 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 3995 of file simd.h.

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

Definition at line 4666 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 5498 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 6305 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 7173 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 8913 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 9783 of file simd.h.

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

Definition at line 7665 of file simd.h.

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

Definition at line 7665 of file simd.h.

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

Definition at line 7531 of file simd.h.

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

Definition at line 9191 of file simd.h.

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

Definition at line 10036 of file simd.h.

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

Definition at line 27 of file unittest.h.

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

Definition at line 4822 of file simd.h.

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

Definition at line 5647 of file simd.h.

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

Definition at line 6449 of file simd.h.

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

Per-element max.

Definition at line 7505 of file simd.h.

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

Per-element max.

Definition at line 9163 of file simd.h.

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

Per-element max.

Definition at line 10017 of file simd.h.

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

Definition at line 4811 of file simd.h.

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

Definition at line 5638 of file simd.h.

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

Definition at line 6440 of file simd.h.

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

Per-element min.

Definition at line 7494 of file simd.h.

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

Per-element min.

Definition at line 9154 of file simd.h.

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

Per-element min.

Definition at line 10008 of file simd.h.

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

Definition at line 7551 of file simd.h.

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

Definition at line 9207 of file simd.h.

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

Definition at line 10048 of file simd.h.

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

Definition at line 7570 of file simd.h.

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

Definition at line 9224 of file simd.h.

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

Definition at line 10061 of file simd.h.

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

Definition at line 7589 of file simd.h.

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

Definition at line 9241 of file simd.h.

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

Definition at line 10074 of file simd.h.

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

Definition at line 3447 of file simd.h.

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

Definition at line 3765 of file simd.h.

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

Definition at line 4013 of file simd.h.

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

Definition at line 3255 of file simd.h.

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

Definition at line 3632 of file simd.h.

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

Definition at line 3921 of file simd.h.

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

Definition at line 3329 of file simd.h.

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

Definition at line 3698 of file simd.h.

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

Definition at line 3980 of file simd.h.

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

Definition at line 4534 of file simd.h.

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

Definition at line 5372 of file simd.h.

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

Definition at line 6166 of file simd.h.

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

Definition at line 7031 of file simd.h.

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

Definition at line 8237 of file simd.h.

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

Definition at line 8825 of file simd.h.

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

Definition at line 9686 of file simd.h.

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

Definition at line 4418 of file simd.h.

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

Definition at line 4428 of file simd.h.

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

Definition at line 5266 of file simd.h.

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

Definition at line 5273 of file simd.h.

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

Definition at line 6063 of file simd.h.

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

Definition at line 6070 of file simd.h.

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

Definition at line 4425 of file simd.h.

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

Definition at line 4434 of file simd.h.

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

Definition at line 5271 of file simd.h.

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

Definition at line 5278 of file simd.h.

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

Definition at line 6068 of file simd.h.

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

Definition at line 6075 of file simd.h.

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

Definition at line 3265 of file simd.h.

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

Definition at line 3640 of file simd.h.

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

Definition at line 3929 of file simd.h.

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

Definition at line 4437 of file simd.h.

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

Definition at line 5281 of file simd.h.

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

Definition at line 6078 of file simd.h.

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

Definition at line 3296 of file simd.h.

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

Definition at line 3665 of file simd.h.

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

Definition at line 3954 of file simd.h.

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

Definition at line 4448 of file simd.h.

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

Definition at line 5289 of file simd.h.

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

Definition at line 6086 of file simd.h.

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

Definition at line 4397 of file simd.h.

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

Definition at line 5245 of file simd.h.

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

Definition at line 6042 of file simd.h.

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

Definition at line 6943 of file simd.h.

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

Definition at line 6953 of file simd.h.

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

Definition at line 6957 of file simd.h.

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

Definition at line 7936 of file simd.h.

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

Definition at line 7940 of file simd.h.

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

Definition at line 7944 of file simd.h.

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

Definition at line 8168 of file simd.h.

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

Definition at line 8178 of file simd.h.

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

Definition at line 8781 of file simd.h.

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

Definition at line 8789 of file simd.h.

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

Definition at line 8793 of file simd.h.

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

Definition at line 9640 of file simd.h.

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

Definition at line 9648 of file simd.h.

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

Definition at line 9652 of file simd.h.

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

Definition at line 4406 of file simd.h.

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

Definition at line 4407 of file simd.h.

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

Definition at line 5254 of file simd.h.

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

Definition at line 5255 of file simd.h.

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

Definition at line 6051 of file simd.h.

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

Definition at line 6052 of file simd.h.

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

Definition at line 8801 of file simd.h.

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

Definition at line 9660 of file simd.h.

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

Definition at line 4339 of file simd.h.

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

Definition at line 5208 of file simd.h.

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

Definition at line 6005 of file simd.h.

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

Definition at line 6891 of file simd.h.

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

Definition at line 7916 of file simd.h.

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

Definition at line 8749 of file simd.h.

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

Definition at line 9607 of file simd.h.

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

Definition at line 4347 of file simd.h.

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

Definition at line 5217 of file simd.h.

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

Definition at line 6014 of file simd.h.

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

Definition at line 8757 of file simd.h.

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

Definition at line 9615 of file simd.h.

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

Definition at line 4352 of file simd.h.

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

Definition at line 4361 of file simd.h.

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

Definition at line 5222 of file simd.h.

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

Definition at line 5231 of file simd.h.

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

Definition at line 6019 of file simd.h.

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

Definition at line 6028 of file simd.h.

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

Definition at line 6922 of file simd.h.

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

Definition at line 7928 of file simd.h.

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

Definition at line 8761 of file simd.h.

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

Definition at line 8769 of file simd.h.

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

Definition at line 9619 of file simd.h.

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

Definition at line 9627 of file simd.h.

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

Definition at line 4370 of file simd.h.

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

Definition at line 5240 of file simd.h.

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

Definition at line 6037 of file simd.h.

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

Definition at line 8777 of file simd.h.

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

Definition at line 9635 of file simd.h.

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

Definition at line 4410 of file simd.h.

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

Definition at line 5258 of file simd.h.

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

Definition at line 6055 of file simd.h.

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

Definition at line 6989 of file simd.h.

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

Definition at line 7956 of file simd.h.

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

Definition at line 8805 of file simd.h.

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

Definition at line 9664 of file simd.h.

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

Definition at line 4416 of file simd.h.

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

Definition at line 5263 of file simd.h.

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

Definition at line 6060 of file simd.h.

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

Definition at line 8813 of file simd.h.

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

Definition at line 9672 of file simd.h.

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

Definition at line 4547 of file simd.h.

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

Definition at line 5390 of file simd.h.

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

Definition at line 6184 of file simd.h.

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

Definition at line 7042 of file simd.h.

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

Definition at line 8833 of file simd.h.

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

Definition at line 9695 of file simd.h.

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

Definition at line 3147 of file simd.h.

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

Definition at line 3475 of file simd.h.

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

Definition at line 3791 of file simd.h.

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

Definition at line 4489 of file simd.h.

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

Definition at line 4563 of file simd.h.

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

Definition at line 5321 of file simd.h.

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

Definition at line 5415 of file simd.h.

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

Definition at line 6118 of file simd.h.

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

Definition at line 6211 of file simd.h.

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

Definition at line 7106 of file simd.h.

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

Definition at line 7969 of file simd.h.

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

Definition at line 8324 of file simd.h.

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

Definition at line 8395 of file simd.h.

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

Definition at line 9273 of file simd.h.

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

Definition at line 4497 of file simd.h.

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

Definition at line 5332 of file simd.h.

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

Definition at line 6129 of file simd.h.

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

Definition at line 4559 of file simd.h.

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

Definition at line 5409 of file simd.h.

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

Definition at line 6202 of file simd.h.

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

Definition at line 7072 of file simd.h.

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

Definition at line 8857 of file simd.h.

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

Definition at line 9722 of file simd.h.

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

Definition at line 3319 of file simd.h.

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

Definition at line 3688 of file simd.h.

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

Definition at line 3972 of file simd.h.

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

Definition at line 4524 of file simd.h.

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

Definition at line 5360 of file simd.h.

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

Definition at line 6157 of file simd.h.

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

Definition at line 7021 of file simd.h.

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

Definition at line 8217 of file simd.h.

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

Definition at line 8817 of file simd.h.

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

Definition at line 9677 of file simd.h.

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

Definition at line 4539 of file simd.h.

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

Definition at line 5378 of file simd.h.

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

Definition at line 6175 of file simd.h.

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

Definition at line 7052 of file simd.h.

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

Definition at line 8841 of file simd.h.

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

Definition at line 9704 of file simd.h.

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

Definition at line 4555 of file simd.h.

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

Definition at line 5403 of file simd.h.

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

Definition at line 6193 of file simd.h.

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

Definition at line 7062 of file simd.h.

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

Definition at line 8849 of file simd.h.

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

Definition at line 9713 of file simd.h.

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

Definition at line 4502 of file simd.h.

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

Definition at line 5336 of file simd.h.

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

Definition at line 6133 of file simd.h.

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

Definition at line 4510 of file simd.h.

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

Definition at line 5346 of file simd.h.

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

Definition at line 6142 of file simd.h.

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

Definition at line 3285 of file simd.h.

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

Definition at line 3656 of file simd.h.

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

Definition at line 3945 of file simd.h.

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

Definition at line 4465 of file simd.h.

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

Definition at line 5301 of file simd.h.

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

Definition at line 6098 of file simd.h.

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

Definition at line 3304 of file simd.h.

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

Definition at line 3673 of file simd.h.

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

Definition at line 3962 of file simd.h.

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

Definition at line 4476 of file simd.h.

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

Definition at line 5309 of file simd.h.

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

Definition at line 6106 of file simd.h.

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

Definition at line 3275 of file simd.h.

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

Definition at line 3648 of file simd.h.

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

Definition at line 3937 of file simd.h.

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

Definition at line 4452 of file simd.h.

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

Definition at line 5291 of file simd.h.

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

Definition at line 6088 of file simd.h.

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

Definition at line 3300 of file simd.h.

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

Definition at line 3669 of file simd.h.

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

Definition at line 3958 of file simd.h.

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

Definition at line 4462 of file simd.h.

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

Definition at line 5299 of file simd.h.

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

Definition at line 6096 of file simd.h.

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

Definition at line 3308 of file simd.h.

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

Definition at line 3678 of file simd.h.

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

Definition at line 3967 of file simd.h.

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

Definition at line 4479 of file simd.h.

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

Definition at line 5312 of file simd.h.

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

Definition at line 6109 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 7439 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 9099 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 9963 of file simd.h.

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

Definition at line 4727 of file simd.h.

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

Definition at line 5547 of file simd.h.

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

Definition at line 6355 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 7252 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 8969 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 9842 of file simd.h.

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

Logical reduction across all components.

Definition at line 3425 of file simd.h.

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

Logical reduction across all components.

Definition at line 3744 of file simd.h.

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

Logical reduction across all components.

Definition at line 4002 of file simd.h.

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

Definition at line 4738 of file simd.h.

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

Definition at line 5556 of file simd.h.

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

Definition at line 6364 of file simd.h.

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

Definition at line 3435 of file simd.h.

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

Definition at line 3753 of file simd.h.

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

Definition at line 4006 of file simd.h.

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

Definition at line 4749 of file simd.h.

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

Definition at line 5569 of file simd.h.

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

Definition at line 6380 of file simd.h.

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

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

Definition at line 7433 of file simd.h.

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

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

Definition at line 9092 of file simd.h.

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

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

Definition at line 9957 of file simd.h.

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

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

Definition at line 4833 of file simd.h.

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

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

Definition at line 5656 of file simd.h.

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

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

Definition at line 6458 of file simd.h.

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

Definition at line 4846 of file simd.h.

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

Definition at line 5669 of file simd.h.

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

Definition at line 6471 of file simd.h.

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

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

Definition at line 7413 of file simd.h.

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

Definition at line 8015 of file simd.h.

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

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

Definition at line 9070 of file simd.h.

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

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

Definition at line 9938 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 7468 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 9124 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 9986 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 7478 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 9135 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 9996 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 7345 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 9023 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 9890 of file simd.h.

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

Definition at line 4867 of file simd.h.

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

Definition at line 4872 of file simd.h.

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

Definition at line 5692 of file simd.h.

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

Definition at line 5697 of file simd.h.

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

Definition at line 6486 of file simd.h.

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

Definition at line 6491 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 4793 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 5622 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 6426 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 7369 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 9017 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 9884 of file simd.h.

bool simd::set_denorms_zero_mode ( bool  on)
inline

Definition at line 3072 of file simd.h.

bool simd::set_flush_zero_mode ( bool  on)
inline

Definition at line 3061 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 3387 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 3387 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 3708 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 3708 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 4639 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 4639 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 5473 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 5473 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 6281 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 6293 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 7126 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 7126 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 8880 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 8880 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 9760 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 9771 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 3387 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 3396 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 3708 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 3717 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 4639 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 4647 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 5473 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 5482 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 7126 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 7134 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 8880 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 8889 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 6265 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 6276 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 9745 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 9755 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 7388 of file simd.h.

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

Definition at line 7990 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 9045 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 9912 of file simd.h.

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

Definition at line 9113 of file simd.h.

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

Definition at line 9976 of file simd.h.

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

Definition at line 4515 of file simd.h.

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

Definition at line 5351 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 6147 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 8334 of file simd.h.

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

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

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

Definition at line 8354 of file simd.h.

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

Definition at line 8365 of file simd.h.

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

Definition at line 8370 of file simd.h.

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

Definition at line 7768 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 7789 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 7732 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 7746 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 7262 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 8034 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 7282 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 8054 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 4701 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 5529 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 6339 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 7226 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 8953 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 9826 of file simd.h.

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

Definition at line 8025 of file simd.h.