|
| vfloat3 () |
| Default constructor (contents undefined) More...
|
|
| vfloat3 (float a) |
| Construct from a single value (store it in all slots) More...
|
|
| vfloat3 (float a, float b, float c) |
| Construct from 3 or 4 values. More...
|
|
| vfloat3 (const float *f) |
| Construct from a pointer to 4 values. More...
|
|
| vfloat3 (const vfloat3 &other) |
| Copy construct from another vfloat3. More...
|
|
| vfloat3 (const vfloat4 &other) |
|
| vfloat3 (const Imath::V3f &v) |
| Construct from a Imath::V3f. More...
|
|
const Imath::V3f & | V3f () const |
| Cast to a Imath::V3f. More...
|
|
| vfloat3 (const unsigned short *vals) |
| Construct from a pointer to 4 unsigned short values. More...
|
|
| vfloat3 (const short *vals) |
| Construct from a pointer to 4 short values. More...
|
|
| vfloat3 (const unsigned char *vals) |
| Construct from a pointer to 4 unsigned char values. More...
|
|
| vfloat3 (const char *vals) |
| Construct from a pointer to 4 char values. More...
|
|
const vfloat3 & | operator= (float a) |
| Assign a single value to all components. More...
|
|
void | load (float val) |
| Helper: load a single value into all components. More...
|
|
void | load (const float *values) |
| Load from an array of 4 values. More...
|
|
void | load (const float *values, int n) |
| Load from an array of 4 values. More...
|
|
void | load (const unsigned short *values) |
| Load from an array of 4 unsigned short values, convert to float. More...
|
|
void | load (const short *values) |
| Load from an array of 4 short values, convert to float. More...
|
|
void | load (const unsigned char *values) |
| Load from an array of 4 unsigned char values, convert to float. More...
|
|
void | load (const char *values) |
| Load from an array of 4 char values, convert to float. More...
|
|
void | store (float *values) const |
|
void | store (float *values, int n) const |
|
void | store (Imath::V3f &vec) const |
| Store into an Imath::V3f reference. More...
|
|
const vfloat3 & | operator+= (const vfloat3 &a) |
|
vfloat3 | operator- () const |
|
const vfloat3 & | operator-= (const vfloat3 &a) |
|
const vfloat3 & | operator*= (const vfloat3 &a) |
|
const vfloat3 & | operator*= (float a) |
|
const vfloat3 & | operator/= (const vfloat3 &a) |
|
const vfloat3 & | operator/= (float a) |
|
float | length2 () const |
| Square of the length of the vector. More...
|
|
float | length () const |
| Length of the vector. More...
|
|
vfloat3 | normalized () const |
| Return a normalized version of the vector. More...
|
|
vfloat3 | normalized_fast () const |
| Return a fast, approximate normalized version of the vector. More...
|
|
void | normalize () |
| Normalize in place. More...
|
|
| vfloat4 () |
| Default constructor (contents undefined) More...
|
|
| vfloat4 (float a) |
| Construct from a single value (store it in all slots) More...
|
|
| vfloat4 (float a, float b, float c, float d=0.0f) |
| Construct from 3 or 4 values. More...
|
|
| vfloat4 (const float *f) |
| Construct from a pointer to 4 values. More...
|
|
| vfloat4 (const vfloat4 &other) |
| Copy construct from another vfloat4. More...
|
|
| vfloat4 (const vint4 &ival) |
| Construct from an vint4 (promoting all components to float) More...
|
|
| vfloat4 (const simd_t &m) |
| Construct from the underlying SIMD type. More...
|
|
| operator simd_t () const |
| Return the raw SIMD type. More...
|
|
simd_t | simd () const |
|
simd_t & | simd () |
|
const value_t * | data () const |
| Return a pointer to the underlying scalar type. More...
|
|
value_t * | data () |
|
| vfloat4 (const Imath::V3f &v) |
| Construct from a Imath::V3f. More...
|
|
const Imath::V3f & | V3f () const |
| Cast to a Imath::V3f. More...
|
|
| vfloat4 (const Imath::V4f &v) |
| Construct from a Imath::V4f. More...
|
|
const Imath::V4f & | V4f () const |
| Cast to a Imath::V4f. More...
|
|
| vfloat4 (const unsigned short *vals) |
| Construct from a pointer to 4 unsigned short values. More...
|
|
| vfloat4 (const short *vals) |
| Construct from a pointer to 4 short values. More...
|
|
| vfloat4 (const unsigned char *vals) |
| Construct from a pointer to 4 unsigned char values. More...
|
|
| vfloat4 (const char *vals) |
| Construct from a pointer to 4 char values. More...
|
|
const vfloat4 & | operator= (float a) |
| Assign a single value to all components. More...
|
|
const vfloat4 & | operator= (vfloat4 other) |
| Assign a vfloat4. More...
|
|
void | clear () |
| Set all components to 0.0. More...
|
|
const vfloat4 & | operator= (const Imath::V4f &v) |
| Assign from a Imath::V4f. More...
|
|
const vfloat4 & | operator= (const Imath::V3f &v) |
| Assign from a Imath::V3f. More...
|
|
float | operator[] (int i) const |
| Component access (get) More...
|
|
float & | operator[] (int i) |
| Component access (set) More...
|
|
void | setcomp (int i, float value) |
| Component access (set). More...
|
|
value_t | x () const |
|
value_t | y () const |
|
value_t | z () const |
|
value_t | w () const |
|
void | set_x (value_t val) |
|
void | set_y (value_t val) |
|
void | set_z (value_t val) |
|
void | set_w (value_t val) |
|
void | load (float val) |
| Helper: load a single value into all components. More...
|
|
void | load (float a, float b, float c, float d=0.0f) |
| Helper: load 3 or 4 values. (If 3 are supplied, the 4th will be 0.) More...
|
|
void | load (const float *values) |
| Load from an array of 4 values. More...
|
|
void | load (const float *values, int n) |
|
void | load (const unsigned short *values) |
| Load from an array of 4 unsigned short values, convert to float. More...
|
|
void | load (const short *values) |
| Load from an array of 4 short values, convert to float. More...
|
|
void | load (const unsigned char *values) |
| Load from an array of 4 unsigned char values, convert to float. More...
|
|
void | load (const char *values) |
| Load from an array of 4 char values, convert to float. More...
|
|
void | store (float *values) const |
|
void | store (float *values, int n) const |
| Store the first n values into memory. More...
|
|
void | load_mask (int mask, const value_t *values) |
|
void | load_mask (const vbool_t &mask, const value_t *values) |
|
void | store_mask (int mask, value_t *values) const |
|
void | store_mask (const vbool_t &mask, value_t *values) const |
|
template<int scale = 4> |
void | gather (const value_t *baseptr, const vint_t &vindex) |
| Load values from addresses (char*)basepatr + vindex[i]*scale. More...
|
|
template<int scale = 4> |
void | gather_mask (const vbool_t &mask, const value_t *baseptr, const vint_t &vindex) |
| Gather elements defined by the mask, leave others unchanged. More...
|
|
template<int scale = 4> |
void | gather_mask (int mask, const value_t *baseptr, const vint_t &vindex) |
|
template<int scale = 4> |
void | scatter (value_t *baseptr, const vint_t &vindex) const |
| Store values at addresses (char*)basepatr + vindex[i]*scale. More...
|
|
template<int scale = 4> |
void | scatter_mask (const vbool_t &mask, value_t *baseptr, const vint_t &vindex) const |
| Scatter elements defined by the mask. More...
|
|
template<int scale = 4> |
void | scatter_mask (int mask, value_t *baseptr, const vint_t &vindex) const |
|
const vfloat4 & | operator+= (const vfloat4 &a) |
|
vfloat4 | operator- () const |
|
const vfloat4 & | operator-= (const vfloat4 &a) |
|
const vfloat4 & | operator*= (const vfloat4 &a) |
|
const vfloat4 & | operator*= (float val) |
|
const vfloat4 & | operator/= (const vfloat4 &a) |
|
const vfloat4 & | operator/= (float val) |
|
vfloat4 | xyz0 () const |
| Return xyz components, plus 0 for w. More...
|
|
vfloat4 | xyz1 () const |
| Return xyz components, plus 1 for w. More...
|
|
template<int scale> |
OIIO_FORCEINLINE void | gather (const value_t *baseptr, const vint_t &vindex) |
|
template<int scale> |
OIIO_FORCEINLINE void | gather_mask (const vbool_t &mask, const value_t *baseptr, const vint_t &vindex) |
|
template<int scale> |
OIIO_FORCEINLINE void | scatter (value_t *baseptr, const vint_t &vindex) const |
|
template<int scale> |
OIIO_FORCEINLINE void | scatter_mask (const vbool_t &mask, value_t *baseptr, const vint_t &vindex) const |
|
Floating point 3-vector, aligned to be internally identical to a vfloat4. The way it differs from vfloat4 is that all of he load functions only load three values, and all the stores only store 3 values. The vast majority of ops just fall back to the vfloat4 version, and so will operate on the 4th component, but we won't care about that results.
Definition at line 2148 of file simd.h.