Mitsuba Renderer  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mitsuba::math::SSEVector4f Struct Reference

#include <mitsuba/core/ssevector.h>

Public Member Functions

 SSEVector4f ()
 
 SSEVector4f (const SSEVector4f &other)
 
 SSEVector4f (__m128 val)
 
 SSEVector4f (float val)
 
 SSEVector4f (float f3, float f2, float f1, float f0)
 
SSEVector4foperator= (float val)
 
 operator __m128 () const
 
SSEVector4foperator&= (const SSEVector4f &a)
 
SSEVector4foperator|= (const SSEVector4f &a)
 
SSEVector4foperator^= (const SSEVector4f &a)
 
SSEVector4foperator+= (const SSEVector4f &a)
 
SSEVector4foperator-= (const SSEVector4f &a)
 
SSEVector4foperator*= (const SSEVector4f &a)
 
SSEVector4foperator/= (const SSEVector4f &a)
 

Static Public Member Functions

static SSEVector4f zero ()
 

Friends

SSEVector4f operator& (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator| (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator^ (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f andnot (const SSEVector4f &a, const SSEVector4f &b)
 ~a & b More...
 
SSEVector4f operator+ (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator- (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator* (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator/ (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f rcp_nr (const SSEVector4f &v)
 Newton-Rhapson Reciprocal:

\[ 2 * rcp(x) - (x * rcp(x) * rcp(x)) \]

. More...

 
SSEVector4f rcp (const SSEVector4f &v)
 
SSEVector4f min (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f max (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f isnan (const SSEVector4f &a)
 
SSEVector4f isnan (const SSEVector4f &a, const SSEVector4f &b)
 
template<int idx3, int idx2, int idx1, int idx0>
SSEVector4f shuffle (const SSEVector4f &low, const SSEVector4f &hi)
 Moves either of the values of low into the low 64-bits of the result, and either of the values of high into the high 64-bits of the result. Each index in the template is a index in the range [0,3] to choose a value from the source, 0 being the lowest and 3 the highest. More...
 
template<int idx3, int idx2, int idx1, int idx0>
SSEVector4f shuffle (const SSEVector4f &a)
 Shuffles the elements of the given vector using the indices [0,3]. More...
 
SSEVector4f cmpeq (const SSEVector4f &a, const SSEVector4f &b)
 a == b More...
 
SSEVector4f cmplt (const SSEVector4f &a, const SSEVector4f &b)
 a < b More...
 
SSEVector4f cmple (const SSEVector4f &a, const SSEVector4f &b)
 a <= b More...
 
SSEVector4f cmpgt (const SSEVector4f &a, const SSEVector4f &b)
 a > b More...
 
SSEVector4f cmpge (const SSEVector4f &a, const SSEVector4f &b)
 a >= b More...
 
SSEVector4f cmpneq (const SSEVector4f &a, const SSEVector4f &b)
 a != b More...
 
SSEVector4f cmpnlt (const SSEVector4f &a, const SSEVector4f &b)
 !(a < b) More...
 
SSEVector4f cmpnle (const SSEVector4f &a, const SSEVector4f &b)
 !(a <= b) More...
 
SSEVector4f cmpngt (const SSEVector4f &a, const SSEVector4f &b)
 !(a > b) More...
 
SSEVector4f cmpnge (const SSEVector4f &a, const SSEVector4f &b)
 !(a >= b) More...
 
SSEVector4f operator== (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator!= (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator< (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator<= (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator> (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f operator>= (const SSEVector4f &a, const SSEVector4f &b)
 
SSEVector4f select (const SSEVector4f &mask, const SSEVector4f &a, const SSEVector4f &b)
 Select/blend operation (mask) ? a : b More...
 
SSEVector4f roundTruncate (const SSEVector4f &a)
 Round a towards zero. More...
 
void stream (SSEVector4f *dest, const SSEVector4f &value)
 Save to dest without polluting the cache. More...
 
void stream (__m128 *dest, const SSEVector4f &value)
 Save to dest without polluting the cache. More...
 
void stream (float *dest, const SSEVector4f &value)
 Save to dest without polluting the cache. More...
 

Constructor & Destructor Documentation

mitsuba::math::SSEVector4f::SSEVector4f ( )
inline
mitsuba::math::SSEVector4f::SSEVector4f ( const SSEVector4f other)
inline
mitsuba::math::SSEVector4f::SSEVector4f ( __m128  val)
inline
mitsuba::math::SSEVector4f::SSEVector4f ( float  val)
inlineexplicit
mitsuba::math::SSEVector4f::SSEVector4f ( float  f3,
float  f2,
float  f1,
float  f0 
)
inline

Member Function Documentation

mitsuba::math::SSEVector4f::operator __m128 ( ) const
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator&= ( const SSEVector4f a)
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator*= ( const SSEVector4f a)
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator+= ( const SSEVector4f a)
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator-= ( const SSEVector4f a)
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator/= ( const SSEVector4f a)
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator= ( float  val)
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator^= ( const SSEVector4f a)
inline
SSEVector4f& mitsuba::math::SSEVector4f::operator|= ( const SSEVector4f a)
inline
static SSEVector4f mitsuba::math::SSEVector4f::zero ( )
inlinestatic

Friends And Related Function Documentation

SSEVector4f andnot ( const SSEVector4f a,
const SSEVector4f b 
)
friend

~a & b

SSEVector4f cmpeq ( const SSEVector4f a,
const SSEVector4f b 
)
friend

a == b

SSEVector4f cmpge ( const SSEVector4f a,
const SSEVector4f b 
)
friend

a >= b

SSEVector4f cmpgt ( const SSEVector4f a,
const SSEVector4f b 
)
friend

a > b

SSEVector4f cmple ( const SSEVector4f a,
const SSEVector4f b 
)
friend

a <= b

SSEVector4f cmplt ( const SSEVector4f a,
const SSEVector4f b 
)
friend

a < b

SSEVector4f cmpneq ( const SSEVector4f a,
const SSEVector4f b 
)
friend

a != b

SSEVector4f cmpnge ( const SSEVector4f a,
const SSEVector4f b 
)
friend

!(a >= b)

SSEVector4f cmpngt ( const SSEVector4f a,
const SSEVector4f b 
)
friend

!(a > b)

SSEVector4f cmpnle ( const SSEVector4f a,
const SSEVector4f b 
)
friend

!(a <= b)

SSEVector4f cmpnlt ( const SSEVector4f a,
const SSEVector4f b 
)
friend

!(a < b)

SSEVector4f isnan ( const SSEVector4f a)
friend
SSEVector4f isnan ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f max ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f min ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator!= ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator& ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator* ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator+ ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator- ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator/ ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator< ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator<= ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator== ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator> ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator>= ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator^ ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f operator| ( const SSEVector4f a,
const SSEVector4f b 
)
friend
SSEVector4f rcp ( const SSEVector4f v)
friend
SSEVector4f rcp_nr ( const SSEVector4f v)
friend

Newton-Rhapson Reciprocal:

\[ 2 * rcp(x) - (x * rcp(x) * rcp(x)) \]

.

SSEVector4f roundTruncate ( const SSEVector4f a)
friend

Round a towards zero.

SSEVector4f select ( const SSEVector4f mask,
const SSEVector4f a,
const SSEVector4f b 
)
friend

Select/blend operation (mask) ? a : b

template<int idx3, int idx2, int idx1, int idx0>
SSEVector4f shuffle ( const SSEVector4f low,
const SSEVector4f hi 
)
friend

Moves either of the values of low into the low 64-bits of the result, and either of the values of high into the high 64-bits of the result. Each index in the template is a index in the range [0,3] to choose a value from the source, 0 being the lowest and 3 the highest.

template<int idx3, int idx2, int idx1, int idx0>
SSEVector4f shuffle ( const SSEVector4f a)
friend

Shuffles the elements of the given vector using the indices [0,3].

void stream ( SSEVector4f dest,
const SSEVector4f value 
)
friend

Save to dest without polluting the cache.

void stream ( __m128 *  dest,
const SSEVector4f value 
)
friend

Save to dest without polluting the cache.

void stream ( float *  dest,
const SSEVector4f value 
)
friend

Save to dest without polluting the cache.


The documentation for this struct was generated from the following file: