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

Typedef Documentation

Definition at line 268 of file simd.h.

Definition at line 269 of file simd.h.

Definition at line 272 of file simd.h.

Definition at line 273 of file simd.h.

Definition at line 274 of file simd.h.

typedef vint4 simd::int4

Definition at line 270 of file simd.h.

typedef vint8 simd::int8

Definition at line 271 of file simd.h.

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

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

Definition at line 5650 of file simd.h.

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

Definition at line 6454 of file simd.h.

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

absolute value (float)

Definition at line 7398 of file simd.h.

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

Definition at line 8000 of file simd.h.

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

absolute value (float)

Definition at line 9055 of file simd.h.

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

absolute value (float)

Definition at line 9922 of file simd.h.

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

Definition at line 3467 of file simd.h.

bool simd::all ( bool  v)
inline

Definition at line 591 of file simd.h.

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

Definition at line 3785 of file simd.h.

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

Definition at line 4033 of file simd.h.

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

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

Definition at line 4874 of file simd.h.

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

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

Definition at line 5697 of file simd.h.

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

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

Definition at line 6499 of file simd.h.

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

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

Definition at line 7540 of file simd.h.

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

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

Definition at line 9196 of file simd.h.

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

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

Definition at line 10050 of file simd.h.

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

Definition at line 3468 of file simd.h.

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

Definition at line 3786 of file simd.h.

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

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

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

Definition at line 7848 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 7835 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 7105 of file simd.h.

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

Definition at line 7233 of file simd.h.

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

Definition at line 8966 of file simd.h.

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

Definition at line 9839 of file simd.h.

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

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

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

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

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

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

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

Definition at line 9830 of file simd.h.

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

Definition at line 7244 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 4784 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 5605 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 6420 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 7322 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 9001 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 9874 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 4798 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 5618 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 6430 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 7342 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 9014 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 9885 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 4807 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 5632 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 6440 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 7355 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 9027 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 9896 of file simd.h.

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

Definition at line 7418 of file simd.h.

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

Definition at line 8020 of file simd.h.

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

Definition at line 9075 of file simd.h.

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

Definition at line 9942 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 7297 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 8066 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 7313 of file simd.h.

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

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

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

Definition at line 7633 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 3426 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 3745 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 4012 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 4673 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 5511 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 6322 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 7179 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 8922 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 9800 of file simd.h.

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

Definition at line 7427 of file simd.h.

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

Definition at line 8029 of file simd.h.

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

Definition at line 9084 of file simd.h.

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

Definition at line 9951 of file simd.h.

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

Definition at line 2094 of file simd.h.

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

Definition at line 2717 of file simd.h.

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

Definition at line 3042 of file simd.h.

bool simd::get_denorms_zero_mode ( )
inline

Definition at line 3111 of file simd.h.

bool simd::get_flush_zero_mode ( )
inline

Definition at line 3103 of file simd.h.

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

Homogeneous divide to turn a vfloat4 into a vfloat3.

Definition at line 7380 of file simd.h.

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

(int)floor

Definition at line 7445 of file simd.h.

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

(int)floor

Definition at line 9102 of file simd.h.

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

(int)floor

Definition at line 9970 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 3436 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 3754 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 4017 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 5521 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 6328 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 7196 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 8936 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 9806 of file simd.h.

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

Definition at line 4688 of file simd.h.

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

Definition at line 7688 of file simd.h.

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

Definition at line 7554 of file simd.h.

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

Definition at line 9214 of file simd.h.

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

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

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

Definition at line 5670 of file simd.h.

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

Definition at line 6472 of file simd.h.

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

Per-element max.

Definition at line 7528 of file simd.h.

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

Per-element max.

Definition at line 9186 of file simd.h.

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

Per-element max.

Definition at line 10040 of file simd.h.

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

Definition at line 4834 of file simd.h.

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

Definition at line 5661 of file simd.h.

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

Definition at line 6463 of file simd.h.

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

Per-element min.

Definition at line 7517 of file simd.h.

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

Per-element min.

Definition at line 9177 of file simd.h.

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

Per-element min.

Definition at line 10031 of file simd.h.

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

Definition at line 7574 of file simd.h.

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

Definition at line 9230 of file simd.h.

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

Definition at line 10071 of file simd.h.

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

Definition at line 7593 of file simd.h.

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

Definition at line 9247 of file simd.h.

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

Definition at line 10084 of file simd.h.

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

Definition at line 7612 of file simd.h.

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

Definition at line 9264 of file simd.h.

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

Definition at line 10097 of file simd.h.

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

Definition at line 3469 of file simd.h.

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

Definition at line 3787 of file simd.h.

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

Definition at line 4035 of file simd.h.

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

Definition at line 4720 of file simd.h.

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

Definition at line 3277 of file simd.h.

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

Definition at line 3654 of file simd.h.

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

Definition at line 3943 of file simd.h.

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

Definition at line 3351 of file simd.h.

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

Definition at line 3720 of file simd.h.

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

Definition at line 4002 of file simd.h.

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

Definition at line 4556 of file simd.h.

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

Definition at line 5395 of file simd.h.

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

Definition at line 6189 of file simd.h.

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

Definition at line 7054 of file simd.h.

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

Definition at line 8260 of file simd.h.

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

Definition at line 8848 of file simd.h.

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

Definition at line 9709 of file simd.h.

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

Definition at line 4440 of file simd.h.

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

Definition at line 4450 of file simd.h.

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

Definition at line 5289 of file simd.h.

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

Definition at line 5296 of file simd.h.

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

Definition at line 6086 of file simd.h.

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

Definition at line 6093 of file simd.h.

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

Definition at line 4447 of file simd.h.

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

Definition at line 4456 of file simd.h.

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

Definition at line 5294 of file simd.h.

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

Definition at line 5301 of file simd.h.

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

Definition at line 6091 of file simd.h.

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

Definition at line 6098 of file simd.h.

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

Definition at line 3287 of file simd.h.

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

Definition at line 3662 of file simd.h.

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

Definition at line 3951 of file simd.h.

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

Definition at line 4459 of file simd.h.

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

Definition at line 5304 of file simd.h.

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

Definition at line 6101 of file simd.h.

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

Definition at line 3318 of file simd.h.

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

Definition at line 3687 of file simd.h.

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

Definition at line 3976 of file simd.h.

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

Definition at line 4470 of file simd.h.

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

Definition at line 5312 of file simd.h.

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

Definition at line 6109 of file simd.h.

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

Definition at line 4419 of file simd.h.

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

Definition at line 5268 of file simd.h.

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

Definition at line 6065 of file simd.h.

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

Definition at line 6966 of file simd.h.

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

Definition at line 6976 of file simd.h.

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

Definition at line 6980 of file simd.h.

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

Definition at line 7959 of file simd.h.

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

Definition at line 7963 of file simd.h.

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

Definition at line 7967 of file simd.h.

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

Definition at line 8191 of file simd.h.

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

Definition at line 8201 of file simd.h.

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

Definition at line 8804 of file simd.h.

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

Definition at line 8812 of file simd.h.

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

Definition at line 8816 of file simd.h.

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

Definition at line 9663 of file simd.h.

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

Definition at line 9671 of file simd.h.

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

Definition at line 9675 of file simd.h.

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

Definition at line 4428 of file simd.h.

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

Definition at line 4429 of file simd.h.

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

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

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

Definition at line 6075 of file simd.h.

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

Definition at line 8824 of file simd.h.

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

Definition at line 9683 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,
const vint8 &  b 
)

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

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

Definition at line 7939 of file simd.h.

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

Definition at line 8772 of file simd.h.

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

Definition at line 9630 of file simd.h.

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

Definition at line 4369 of file simd.h.

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

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

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

Definition at line 9638 of file simd.h.

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

Definition at line 4374 of file simd.h.

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

Definition at line 4383 of file simd.h.

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

Definition at line 5245 of file simd.h.

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

Definition at line 5254 of file simd.h.

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

Definition at line 6042 of file simd.h.

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

Definition at line 6051 of file simd.h.

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

Definition at line 6945 of file simd.h.

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

Definition at line 7951 of file simd.h.

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

Definition at line 8784 of file simd.h.

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

Definition at line 8792 of file simd.h.

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

Definition at line 9642 of file simd.h.

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

Definition at line 9650 of file simd.h.

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

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

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

Definition at line 9658 of file simd.h.

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

Definition at line 4432 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 vfloat4 simd::operator/ ( const vfloat4 &  a,
const vfloat4 &  b 
)

Definition at line 7012 of file simd.h.

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

Definition at line 7979 of file simd.h.

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

Definition at line 8828 of file simd.h.

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

Definition at line 9687 of file simd.h.

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

Definition at line 4438 of file simd.h.

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

Definition at line 5286 of file simd.h.

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

Definition at line 6083 of file simd.h.

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

Definition at line 8836 of file simd.h.

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

Definition at line 9695 of file simd.h.

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

Definition at line 4569 of file simd.h.

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

Definition at line 5413 of file simd.h.

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

Definition at line 6207 of file simd.h.

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

Definition at line 7065 of file simd.h.

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

Definition at line 8856 of file simd.h.

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

Definition at line 9718 of file simd.h.

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

Definition at line 3169 of file simd.h.

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

Definition at line 3497 of file simd.h.

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

Definition at line 3813 of file simd.h.

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

Definition at line 4511 of file simd.h.

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

Definition at line 4585 of file simd.h.

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

Definition at line 5344 of file simd.h.

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

Definition at line 5438 of file simd.h.

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

Definition at line 6141 of file simd.h.

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

Definition at line 6234 of file simd.h.

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

Definition at line 7129 of file simd.h.

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

Definition at line 7992 of file simd.h.

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

Definition at line 8347 of file simd.h.

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

Definition at line 8418 of file simd.h.

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

Definition at line 9296 of file simd.h.

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

Definition at line 4519 of file simd.h.

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

Definition at line 5355 of file simd.h.

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

Definition at line 6152 of file simd.h.

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

Definition at line 4581 of file simd.h.

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

Definition at line 5432 of file simd.h.

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

Definition at line 6225 of file simd.h.

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

Definition at line 7095 of file simd.h.

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

Definition at line 8880 of file simd.h.

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

Definition at line 9745 of file simd.h.

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

Definition at line 3341 of file simd.h.

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

Definition at line 3710 of file simd.h.

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

Definition at line 3994 of file simd.h.

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

Definition at line 4546 of file simd.h.

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

Definition at line 5383 of file simd.h.

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

Definition at line 6180 of file simd.h.

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

Definition at line 7044 of file simd.h.

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

Definition at line 8240 of file simd.h.

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

Definition at line 8840 of file simd.h.

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

Definition at line 9700 of file simd.h.

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

Definition at line 4561 of file simd.h.

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

Definition at line 5401 of file simd.h.

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

Definition at line 6198 of file simd.h.

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

Definition at line 7075 of file simd.h.

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

Definition at line 8864 of file simd.h.

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

Definition at line 9727 of file simd.h.

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

Definition at line 4577 of file simd.h.

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

Definition at line 5426 of file simd.h.

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

Definition at line 6216 of file simd.h.

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

Definition at line 7085 of file simd.h.

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

Definition at line 8872 of file simd.h.

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

Definition at line 9736 of file simd.h.

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

Definition at line 4524 of file simd.h.

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

Definition at line 5359 of file simd.h.

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

Definition at line 6156 of file simd.h.

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

Definition at line 4532 of file simd.h.

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

Definition at line 5369 of file simd.h.

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

Definition at line 6165 of file simd.h.

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

Definition at line 3307 of file simd.h.

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

Definition at line 3678 of file simd.h.

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

Definition at line 3967 of file simd.h.

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

Definition at line 4487 of file simd.h.

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

Definition at line 5324 of file simd.h.

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

Definition at line 6121 of file simd.h.

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

Definition at line 3326 of file simd.h.

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

Definition at line 3695 of file simd.h.

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

Definition at line 3984 of file simd.h.

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

Definition at line 4498 of file simd.h.

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

Definition at line 5332 of file simd.h.

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

Definition at line 6129 of file simd.h.

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

Definition at line 3297 of file simd.h.

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

Definition at line 3670 of file simd.h.

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

Definition at line 3959 of file simd.h.

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

Definition at line 4474 of file simd.h.

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

Definition at line 5314 of file simd.h.

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

Definition at line 6111 of file simd.h.

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

Definition at line 3322 of file simd.h.

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

Definition at line 3691 of file simd.h.

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

Definition at line 3980 of file simd.h.

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

Definition at line 4484 of file simd.h.

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

Definition at line 5322 of file simd.h.

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

Definition at line 6119 of file simd.h.

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

Definition at line 3330 of file simd.h.

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

Definition at line 3700 of file simd.h.

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

Definition at line 3989 of file simd.h.

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

Definition at line 4501 of file simd.h.

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

Definition at line 5335 of file simd.h.

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

Definition at line 6132 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 7462 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 9122 of file simd.h.

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

Fast, approximate 1/a.

Definition at line 9986 of file simd.h.

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

Definition at line 4750 of file simd.h.

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

Definition at line 5570 of file simd.h.

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

Definition at line 6378 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 7275 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 8992 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 9865 of file simd.h.

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

Logical reduction across all components.

Definition at line 3447 of file simd.h.

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

Logical reduction across all components.

Definition at line 3766 of file simd.h.

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

Logical reduction across all components.

Definition at line 4024 of file simd.h.

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

Definition at line 4761 of file simd.h.

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

Definition at line 5579 of file simd.h.

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

Definition at line 6387 of file simd.h.

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

Definition at line 3457 of file simd.h.

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

Definition at line 3775 of file simd.h.

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

Definition at line 4028 of file simd.h.

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

Definition at line 4772 of file simd.h.

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

Definition at line 5592 of file simd.h.

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

Definition at line 6403 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 7456 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 9115 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 9980 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 4856 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 5679 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 6481 of file simd.h.

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

Definition at line 4869 of file simd.h.

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

Definition at line 5692 of file simd.h.

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

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

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

Definition at line 8038 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 9093 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 9961 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 7491 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 9147 of file simd.h.

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

Fully accurate 1/sqrt.

Definition at line 10009 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 7501 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 9158 of file simd.h.

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

Fast, approximate 1/sqrt.

Definition at line 10019 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 7368 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 9046 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 9913 of file simd.h.

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

Definition at line 4890 of file simd.h.

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

Definition at line 4895 of file simd.h.

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

Definition at line 5715 of file simd.h.

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

Definition at line 5720 of file simd.h.

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

Definition at line 6509 of file simd.h.

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

Definition at line 6514 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 4816 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 5645 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 6449 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 7392 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 9040 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 9907 of file simd.h.

bool simd::set_denorms_zero_mode ( bool  on)
inline

Definition at line 3094 of file simd.h.

bool simd::set_flush_zero_mode ( bool  on)
inline

Definition at line 3084 of file simd.h.

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

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

Definition at line 3409 of file simd.h.

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

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

Definition at line 3418 of file simd.h.

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

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

Definition at line 3730 of file simd.h.

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

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

Definition at line 3739 of file simd.h.

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

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

Definition at line 4661 of file simd.h.

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

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

Definition at line 4669 of file simd.h.

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

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

Definition at line 5496 of file simd.h.

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

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

Definition at line 5505 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 6304 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 6316 of file simd.h.

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

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

Definition at line 7149 of file simd.h.

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

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

Definition at line 7157 of file simd.h.

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

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

Definition at line 8903 of file simd.h.

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

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

Definition at line 8912 of file simd.h.

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

Shuffle within each group of 4.

Shuffle within each group of 4.

Definition at line 9794 of file simd.h.

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

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

Shuffle within each group of 4.

Definition at line 9794 of file simd.h.

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

Shuffle within each group of 4.

Shuffle within each group of 4.

Definition at line 9783 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 6288 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 6299 of file simd.h.

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

Shuffle groups of 4.

Definition at line 9768 of file simd.h.

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

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

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

Definition at line 9768 of file simd.h.

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

Shuffle groups of 4.

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

Definition at line 9768 of file simd.h.

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

Shuffle groups of 4.

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

Definition at line 9778 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 7411 of file simd.h.

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

Definition at line 8013 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 9068 of file simd.h.

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

1.0 when value >= 0, -1 when negative

Definition at line 9935 of file simd.h.

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

Definition at line 9136 of file simd.h.

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

Definition at line 9999 of file simd.h.

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

Definition at line 4537 of file simd.h.

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

Definition at line 5374 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 6170 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 8357 of file simd.h.

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

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

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

Definition at line 8377 of file simd.h.

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

Definition at line 8388 of file simd.h.

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

Definition at line 8393 of file simd.h.

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

Definition at line 7791 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 7812 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 7755 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 7769 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 7285 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 8057 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 7305 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 8077 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 4724 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 5552 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 6362 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 7249 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 8976 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 9849 of file simd.h.

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

Definition at line 8048 of file simd.h.