Blender V5.0
math_float4.h File Reference
#include "util/math_base.h"
#include "util/types_float4.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline float4 zero_float4 ()
ccl_device_inline float4 one_float4 ()
ccl_device_template_spec float4 make_zero ()
ccl_device_inline int4 cast (const float4 a)
ccl_device_inline float4 operator- (const float4 &a)
ccl_device_inline float4 operator* (const float4 a, const float4 b)
ccl_device_inline float4 operator* (const float4 a, const float f)
ccl_device_inline float4 operator* (float f, const float4 a)
ccl_device_inline float4 operator/ (const float4 a, const float f)
ccl_device_inline float4 operator/ (const float4 a, const float4 b)
ccl_device_inline float4 operator+ (const float4 a, const float4 b)
ccl_device_inline float4 operator+ (const float4 a, const float f)
ccl_device_inline float4 operator- (const float4 a, const float4 b)
ccl_device_inline float4 operator- (const float4 a, const float f)
ccl_device_inline float4 operator+= (float4 &a, const float4 b)
ccl_device_inline float4 operator-= (float4 &a, const float4 b)
ccl_device_inline float4 operator*= (float4 &a, const float4 b)
ccl_device_inline float4 operator*= (float4 &a, const float f)
ccl_device_inline float4 operator/= (float4 &a, const float4 b)
ccl_device_inline float4 operator/= (float4 &a, const float f)
ccl_device_inline int4 operator< (const float4 a, const float4 b)
ccl_device_inline int4 operator>= (const float4 a, const float4 b)
ccl_device_inline int4 operator<= (const float4 a, const float4 b)
ccl_device_inline bool operator== (const float4 a, const float4 b)
ccl_device_inline float4 operator^ (const float4 a, const float4 b)
ccl_device_inline float4 min (const float4 a, const float4 b)
ccl_device_inline float4 max (const float4 a, const float4 b)
ccl_device_inline float4 clamp (const float4 a, const float4 mn, const float4 mx)
ccl_device_inline float4 madd (const float4 a, const float4 b, const float4 c)
ccl_device_inline float4 msub (const float4 a, const float4 b, const float4 c)
ccl_device_inline float reduce_add (const float4 a)
ccl_device_inline float reduce_min (const float4 a)
ccl_device_inline float reduce_max (const float4 a)
ccl_device_inline float dot (const float4 a, const float4 b)
ccl_device_inline float len (const float4 a)
ccl_device_inline float len_squared (const float4 a)
ccl_device_inline float4 sqr (const float4 a)
ccl_device_inline float distance (const float4 a, const float4 b)
ccl_device_inline float4 sqrt (const float4 a)
ccl_device_inline float4 cross (const float4 a, const float4 b)
ccl_device_inline bool is_zero (const float4 a)
ccl_device_inline float average (const float4 a)
ccl_device_inline float4 normalize (const float4 a)
ccl_device_inline float4 safe_normalize (const float4 a)
ccl_device_inline float4 fabs (const float4 a)
ccl_device_inline float4 fmod (const float4 a, const float b)
ccl_device_inline float4 floor (const float4 a)
ccl_device_inline float4 floorfrac (const float4 x, ccl_private int4 *i)
ccl_device_inline float4 mix (const float4 a, const float4 b, const float t)
ccl_device_inline float4 mix (const float4 a, const float4 b, const float4 t)
ccl_device_inline float4 saturate (const float4 a)
ccl_device_inline float4 exp (const float4 v)
ccl_device_inline float4 log (const float4 v)
ccl_device_inline bool isequal (const float4 a, const float4 b)
template<class MaskType>
ccl_device_inline float4 select (const MaskType mask, const float4 a, const float4 b)
template<class MaskType>
ccl_device_inline float4 mask (const MaskType mask, const float4 a)
ccl_device_inline float4 load_float4 (const ccl_private float *v)
ccl_device_inline float4 safe_divide (const float4 a, const float b)
ccl_device_inline float4 safe_divide (const float4 a, const float4 b)
ccl_device_inline bool isfinite_safe (const float4 v)
ccl_device_inline float4 ensure_finite (const float4 v)
ccl_device_inline float4 power (const float4 v, const float e)
ccl_device_inline float4 interp (float4 a, float4 b, float t)
ccl_device_inline int4 __float4_as_int4 (const float4 f)
ccl_device_inline float4 __int4_as_float4 (const int4 i)
ccl_device_inline void copy_v4_v4 (ccl_private float *r, const float4 val)

Function Documentation

◆ __float4_as_int4()

ccl_device_inline int4 __float4_as_int4 ( const float4 f)

◆ __int4_as_float4()

ccl_device_inline float4 __int4_as_float4 ( const int4 i)

Definition at line 647 of file math_float4.h.

References __int_as_float, ccl_device_inline, i, and make_float4.

Referenced by fast_exp2f4().

◆ average()

ccl_device_inline float average ( const float4 a)

Definition at line 437 of file math_float4.h.

References ccl_device_inline, and reduce_add().

◆ cast()

◆ clamp()

ccl_device_inline float4 clamp ( const float4 a,
const float4 mn,
const float4 mx )

Definition at line 214 of file math_float4.h.

References ccl_device_inline, max, and min.

◆ copy_v4_v4()

ccl_device_inline void copy_v4_v4 ( ccl_private float * r,
const float4 val )

Definition at line 658 of file math_float4.h.

References ccl_device_inline, ccl_private, float4::w, float4::x, float4::y, and float4::z.

◆ cross()

ccl_device_inline float4 cross ( const float4 a,
const float4 b )

Definition at line 418 of file math_float4.h.

References b, ccl_device_inline, make_float4, float4::x, float4::y, and float4::z.

◆ distance()

ccl_device_inline float distance ( const float4 a,
const float4 b )

Definition at line 404 of file math_float4.h.

References b, ccl_device_inline, and len.

◆ dot()

ccl_device_inline float dot ( const float4 a,
const float4 b )

Definition at line 373 of file math_float4.h.

References b, ccl_device_inline, float4::w, float4::x, float4::y, and float4::z.

Referenced by len(), and len_squared().

◆ ensure_finite()

ccl_device_inline float4 ensure_finite ( const float4 v)

Definition at line 606 of file math_float4.h.

References ccl_device_inline, isfinite_safe(), v, float4::w, float4::x, float4::y, and float4::z.

◆ exp()

Definition at line 530 of file math_float4.h.

References ccl_device_inline, expf, make_float4, and v.

◆ fabs()

ccl_device_inline float4 fabs ( const float4 a)

Definition at line 453 of file math_float4.h.

References ccl_device_inline, fabsf, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ floor()

ccl_device_inline float4 floor ( const float4 a)

Definition at line 486 of file math_float4.h.

References ccl_device_inline, floorf, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ floorfrac()

ccl_device_inline float4 floorfrac ( const float4 x,
ccl_private int4 * i )

Definition at line 499 of file math_float4.h.

References ccl_device_inline, ccl_private, floor, floorfrac(), i, float4::w, float4::x, x, float4::y, and float4::z.

Referenced by floorfrac().

◆ fmod()

ccl_device_inline float4 fmod ( const float4 a,
const float b )

Definition at line 470 of file math_float4.h.

References b, ccl_device_inline, fmodf, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ interp()

Definition at line 630 of file math_float4.h.

References b, and ccl_device_inline.

◆ is_zero()

ccl_device_inline bool is_zero ( const float4 a)

Definition at line 428 of file math_float4.h.

References ccl_device_inline, float4::w, float4::x, float4::y, float4::z, and zero_float4().

◆ isequal()

ccl_device_inline bool isequal ( const float4 a,
const float4 b )

Definition at line 542 of file math_float4.h.

References all(), b, and ccl_device_inline.

◆ isfinite_safe()

ccl_device_inline bool isfinite_safe ( const float4 v)

Definition at line 601 of file math_float4.h.

References ccl_device_inline, isfinite_safe(), and v.

Referenced by ensure_finite(), and isfinite_safe().

◆ len()

ccl_device_inline float len ( const float4 a)

Definition at line 388 of file math_float4.h.

References ccl_device_inline, dot(), and sqrtf.

◆ len_squared()

ccl_device_inline float len_squared ( const float4 a)

Definition at line 393 of file math_float4.h.

References ccl_device_inline, and dot().

◆ load_float4()

ccl_device_inline float4 load_float4 ( const ccl_private float * v)

Definition at line 577 of file math_float4.h.

References ccl_device_inline, ccl_private, make_float4, and v.

◆ log()

Definition at line 535 of file math_float4.h.

References ccl_device_inline, logf, make_float4, and v.

◆ madd()

ccl_device_inline float4 madd ( const float4 a,
const float4 b,
const float4 c )

Definition at line 220 of file math_float4.h.

References b, and ccl_device_inline.

◆ make_zero()

Definition at line 27 of file math_float4.h.

References ccl_device_template_spec, and zero_float4().

◆ mask()

template<class MaskType>
ccl_device_inline float4 mask ( const MaskType mask,
const float4 a )

Definition at line 569 of file math_float4.h.

References ccl_device_inline, mask(), select, and zero_float4().

◆ max()

ccl_device_inline float4 max ( const float4 a,
const float4 b )

Definition at line 205 of file math_float4.h.

References b, ccl_device_inline, make_float4, max, float4::w, float4::x, float4::y, and float4::z.

◆ min()

ccl_device_inline float4 min ( const float4 a,
const float4 b )

Definition at line 196 of file math_float4.h.

References b, ccl_device_inline, make_float4, min, float4::w, float4::x, float4::y, and float4::z.

◆ mix() [1/2]

ccl_device_inline float4 mix ( const float4 a,
const float4 b,
const float t )

Definition at line 515 of file math_float4.h.

References b, and ccl_device_inline.

◆ mix() [2/2]

ccl_device_inline float4 mix ( const float4 a,
const float4 b,
const float4 t )

Definition at line 520 of file math_float4.h.

References b, and ccl_device_inline.

◆ msub()

ccl_device_inline float4 msub ( const float4 a,
const float4 b,
const float4 c )

Definition at line 235 of file math_float4.h.

References b, and ccl_device_inline.

Referenced by cross(), and ray_triangle_cross().

◆ normalize()

ccl_device_inline float4 normalize ( const float4 a)

Definition at line 442 of file math_float4.h.

References ccl_device_inline, and len.

◆ one_float4()

ccl_device_inline float4 one_float4 ( )

Definition at line 22 of file math_float4.h.

References ccl_device_inline, and make_float4.

Referenced by snoise_4d().

◆ operator*() [1/3]

ccl_device_inline float4 operator* ( const float4 a,
const float f )

Definition at line 62 of file math_float4.h.

References ccl_device_inline, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ operator*() [2/3]

ccl_device_inline float4 operator* ( const float4 a,
const float4 b )

Definition at line 53 of file math_float4.h.

References b, ccl_device_inline, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ operator*() [3/3]

ccl_device_inline float4 operator* ( float f,
const float4 a )

Definition at line 71 of file math_float4.h.

References ccl_device_inline.

◆ operator*=() [1/2]

ccl_device_inline float4 operator*= ( float4 & a,
const float f )

Definition at line 133 of file math_float4.h.

References ccl_device_inline.

◆ operator*=() [2/2]

ccl_device_inline float4 operator*= ( float4 & a,
const float4 b )

Definition at line 128 of file math_float4.h.

References b, and ccl_device_inline.

◆ operator+() [1/2]

ccl_device_inline float4 operator+ ( const float4 a,
const float f )

Definition at line 99 of file math_float4.h.

References ccl_device_inline, and make_float4.

◆ operator+() [2/2]

ccl_device_inline float4 operator+ ( const float4 a,
const float4 b )

Definition at line 90 of file math_float4.h.

References b, ccl_device_inline, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ operator+=()

ccl_device_inline float4 operator+= ( float4 & a,
const float4 b )

Definition at line 118 of file math_float4.h.

References b, and ccl_device_inline.

◆ operator-() [1/3]

ccl_device_inline float4 operator- ( const float4 & a)

Definition at line 43 of file math_float4.h.

References ccl_device_inline, make_float4, mask(), float4::w, float4::x, float4::y, and float4::z.

◆ operator-() [2/3]

ccl_device_inline float4 operator- ( const float4 a,
const float f )

Definition at line 113 of file math_float4.h.

References ccl_device_inline, and make_float4.

◆ operator-() [3/3]

ccl_device_inline float4 operator- ( const float4 a,
const float4 b )

Definition at line 104 of file math_float4.h.

References b, ccl_device_inline, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ operator-=()

ccl_device_inline float4 operator-= ( float4 & a,
const float4 b )

Definition at line 123 of file math_float4.h.

References b, and ccl_device_inline.

◆ operator/() [1/2]

ccl_device_inline float4 operator/ ( const float4 a,
const float f )

Definition at line 76 of file math_float4.h.

References ccl_device_inline.

◆ operator/() [2/2]

ccl_device_inline float4 operator/ ( const float4 a,
const float4 b )

Definition at line 81 of file math_float4.h.

References b, ccl_device_inline, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ operator/=() [1/2]

ccl_device_inline float4 operator/= ( float4 & a,
const float f )

Definition at line 143 of file math_float4.h.

References ccl_device_inline.

◆ operator/=() [2/2]

ccl_device_inline float4 operator/= ( float4 & a,
const float4 b )

Definition at line 138 of file math_float4.h.

References b, and ccl_device_inline.

◆ operator<()

ccl_device_inline int4 operator< ( const float4 a,
const float4 b )

Definition at line 148 of file math_float4.h.

References b, ccl_device_inline, make_int4(), float4::w, float4::x, float4::y, and float4::z.

◆ operator<=()

ccl_device_inline int4 operator<= ( const float4 a,
const float4 b )

Definition at line 166 of file math_float4.h.

References b, ccl_device_inline, make_int4(), float4::w, float4::x, float4::y, and float4::z.

◆ operator==()

ccl_device_inline bool operator== ( const float4 a,
const float4 b )

Definition at line 175 of file math_float4.h.

References b, ccl_device_inline, float4::w, float4::x, float4::y, and float4::z.

◆ operator>=()

ccl_device_inline int4 operator>= ( const float4 a,
const float4 b )

Definition at line 157 of file math_float4.h.

References b, ccl_device_inline, make_int4(), float4::w, float4::x, float4::y, and float4::z.

◆ operator^()

ccl_device_inline float4 operator^ ( const float4 a,
const float4 b )

◆ power()

ccl_device_inline float4 power ( const float4 v,
const float e )

Definition at line 625 of file math_float4.h.

References ccl_device_inline, e, make_float4, powf, and v.

◆ reduce_add()

ccl_device_inline float reduce_add ( const float4 a)

Definition at line 327 of file math_float4.h.

References ccl_device_inline, float4::w, float4::x, float4::y, and float4::z.

Referenced by average().

◆ reduce_max()

ccl_device_inline float reduce_max ( const float4 a)

Definition at line 358 of file math_float4.h.

References ccl_device_inline, max, float4::w, float4::x, float4::y, and float4::z.

◆ reduce_min()

ccl_device_inline float reduce_min ( const float4 a)

Definition at line 344 of file math_float4.h.

References ccl_device_inline, min, float4::w, float4::x, float4::y, and float4::z.

◆ safe_divide() [1/2]

ccl_device_inline float4 safe_divide ( const float4 a,
const float b )

Definition at line 588 of file math_float4.h.

References b, ccl_device_inline, and zero_float4().

◆ safe_divide() [2/2]

ccl_device_inline float4 safe_divide ( const float4 a,
const float4 b )

Definition at line 593 of file math_float4.h.

References b, ccl_device_inline, make_float4, float4::w, float4::x, float4::y, and float4::z.

◆ safe_normalize()

ccl_device_inline float4 safe_normalize ( const float4 a)

Definition at line 447 of file math_float4.h.

References ccl_device_inline, and len.

◆ saturate()

ccl_device_inline float4 saturate ( const float4 a)

Definition at line 525 of file math_float4.h.

References ccl_device_inline, make_float4, saturatef, float4::w, float4::x, float4::y, and float4::z.

◆ select()

template<class MaskType>
ccl_device_inline float4 select ( const MaskType mask,
const float4 a,
const float4 b )

Definition at line 552 of file math_float4.h.

References b, ccl_device_inline, make_float4, mask(), float4::w, float4::x, float4::y, and float4::z.

◆ sqr()

Definition at line 398 of file math_float4.h.

References ccl_device_inline.

◆ sqrt()

ccl_device_inline float4 sqrt ( const float4 a)

Definition at line 409 of file math_float4.h.

References ccl_device_inline, make_float4, sqrtf, float4::w, float4::x, float4::y, and float4::z.

◆ zero_float4()