Blender V5.0
math_base.h File Reference
#include "util/defines.h"
#include "util/types_base.h"
#include <cfloat>
#include <cmath>

Go to the source code of this file.

Classes

struct  Interval< T >
struct  Extrema< T >

Macros

#define M_PI_F   (3.1415926535897932f) /* `pi` */
#define M_PI_2_F   (1.5707963267948966f) /* `pi/2` */
#define M_PI_4_F   (0.7853981633974830f) /* `pi/4` */
#define M_1_PI_F   (0.3183098861837067f) /* `1/pi` */
#define M_2_PI_F   (0.6366197723675813f) /* `2/pi` */
#define M_1_2PI_F   (0.1591549430918953f) /* `1/(2*pi)` */
#define M_1_4PI_F   (0.0795774715459476f) /* `1/(4*pi)` */
#define M_SQRT_PI_8_F   (0.6266570686577501f) /* `sqrt(pi/8)` */
#define M_LN_2PI_F   (1.8378770664093454f) /* `ln(2*pi)` */
#define M_2PI_F   (6.2831853071795864f) /* `2*pi` */
#define M_4PI_F   (12.566370614359172f) /* `4*pi` */
#define M_PI_4F   0.78539816339744830962f /* `pi/4` */
#define M_SQRT2_F   (1.4142135623730950f) /* `sqrt(2)` */
#define M_CBRT2_F   1.2599210498948732f /* `cbrt(2)` */
#define M_SQRT1_2F   0.70710678118654752440f /* `sqrt(1/2)` */
#define M_SQRT3_F   (1.7320508075688772f) /* `sqrt(3)` */
#define M_LN2_F   (0.6931471805599453f) /* `ln(2)` */
#define M_LN10_F   (2.3025850929940457f) /* `ln(10)` */
#define __has_builtin(v)

Functions

ccl_device_inline int abs (const int x)
ccl_device_inline int max (const int a, const int b)
ccl_device_inline int min (const int a, const int b)
ccl_device_inline uint32_t max (const uint32_t a, const uint32_t b)
ccl_device_inline uint32_t min (const uint32_t a, const uint32_t b)
ccl_device_inline uint64_t max (const uint64_t a, const uint64_t b)
ccl_device_inline uint64_t min (const uint64_t a, const uint64_t b)
template<class T>
ccl_device_inline std::enable_if_t< std::is_same_v< T, size_t >, Tmax (T a, T b)
template<class T>
ccl_device_inline std::enable_if_t< std::is_same_v< T, size_t >, Tmin (T a, T b)
ccl_device_inline float max (const float a, const float b)
ccl_device_inline float min (const float a, const float b)
ccl_device_inline double max (const double a, const double b)
ccl_device_inline double min (const double a, const double b)
template<typename T>
ccl_device_inline T min4 (const T &a, const T &b, const T &c, const T &d)
template<typename T>
ccl_device_inline T max4 (const T &a, const T &b, const T &c, const T &d)
ccl_device_inline float min4 (const float a, const float b, float c, const float d)
ccl_device_inline float max4 (const float a, const float b, float c, const float d)
template<typename T>
ccl_device_inline T make_zero ()
ccl_device_template_spec float make_zero ()
ccl_device_inline int as_int (const uint i)
ccl_device_inline uint as_uint (const int i)
ccl_device_inline uint as_uint (const float f)
ccl_device_inline int __float_as_int (const float f)
ccl_device_inline float __int_as_float (const int i)
ccl_device_inline uint __float_as_uint (const float f)
ccl_device_inline float __uint_as_float (const uint i)
template<typename T>
ccl_device_inline uint pointer_pack_to_uint_0 (T *ptr)
template<typename T>
ccl_device_inline uint pointer_pack_to_uint_1 (T *ptr)
template<typename T>
ccl_device_inline Tpointer_unpack_from_uint (const uint a, const uint b)
ccl_device_inline uint uint16_pack_to_uint (const uint a, const uint b)
ccl_device_inline uint uint16_unpack_from_uint_0 (const uint i)
ccl_device_inline uint uint16_unpack_from_uint_1 (const uint i)
ccl_device_inline bool isnan_safe (const float f)
ccl_device_inline bool isfinite_safe (const float f)
ccl_device_inline float ensure_finite (const float v)
ccl_device_inline int clamp (const int a, const int mn, const int mx)
ccl_device_inline float clamp (const float a, const float mn, const float mx)
ccl_device_inline float mix (const float a, const float b, float t)
ccl_device_inline float smoothstep (const float edge0, const float edge1, const float x)
ccl_device_inline float saturatef (const float a)
ccl_device_inline int float_to_int (const float f)
ccl_device_inline int floor_to_int (const float f)
ccl_device_inline float floorfrac (const float x, ccl_private int *i)
ccl_device_inline int ceil_to_int (const float f)
ccl_device_inline float fractf (const float x)
ccl_device_inline float wrapf (const float value, const float max, const float min)
ccl_device_inline float pingpongf (const float a, const float b)
ccl_device_inline float smoothminf (const float a, const float b, float k)
ccl_device_inline float signf (const float f)
ccl_device_inline float nonzerof (const float f, const float eps)
ccl_device_inline float compatible_atan2 (const float y, const float x)
ccl_device_inline float compatible_signf (const float f)
ccl_device_inline float smoothstepf (const float f)
ccl_device_inline int mod (const int x, const int m)
ccl_device_inline float interp (const float a, const float b, const float t)
ccl_device_inline float inverse_lerp (const float a, const float b, const float x)
ccl_device_inline float cubic_interp (const float a, const float b, float c, const float d, float x)
ccl_device_inline float safe_sqrtf (const float f)
ccl_device_inline float inversesqrtf (const float f)
ccl_device float safe_asinf (const float a)
ccl_device float safe_acosf (const float a)
ccl_device float compatible_powf (const float x, const float y)
ccl_device float safe_powf (const float a, const float b)
ccl_device float safe_divide (const float a, const float b)
ccl_device float safe_logf (const float a, const float b)
ccl_device float safe_modulo (const float a, const float b)
ccl_device float safe_floored_modulo (const float a, const float b)
ccl_device_inline float sqr (const float a)
ccl_device_inline float sin_from_cos (const float c)
ccl_device_inline float cos_from_sin (const float s)
ccl_device_inline float sin_sqr_to_one_minus_cos (const float s_sq)
ccl_device_inline float one_minus_cos (const float angle)
ccl_device_inline int power_of_2 (const int a)
ccl_device_inline float pow20 (const float a)
ccl_device_inline float pow22 (const float a)
ccl_device_inline float beta (const float x, const float y)
ccl_device_inline float xor_mask (const float x, const uint y)
ccl_device_inline float or_mask (const float x, const uint y)
ccl_device float bits_to_01 (const uint bits)
ccl_device_inline uint popcount (const uint x)
ccl_device_inline uint count_leading_zeros (const uint x)
ccl_device_inline uint count_trailing_zeros (const uint x)
ccl_device_inline uint find_first_set (const uint x)
ccl_device_inline bool compare_floats (const float a, const float b, float abs_diff, const int ulp_diff)
ccl_device_inline uint next_power_of_two (const uint x)
ccl_device_inline uint prev_power_of_two (const uint x)
ccl_device_inline uint32_t reverse_integer_bits (uint32_t x)
ccl_device_inline bool solve_quadratic (const float a, const float b, const float c, ccl_private float &x1, ccl_private float &x2)
template<typename T1, typename T2>
ccl_device_inline Interval< T1operator/= (ccl_private Interval< T1 > &interval, const T2 f)
template<typename T>
ccl_device_inline Interval< Tintervals_intersection (const ccl_private Interval< T > &first, const ccl_private Interval< T > &second)
template<typename T>
ccl_device_inline Extrema< Toperator* (const Extrema< T > a, const T b)
template<typename T>
ccl_device_inline Extrema< Toperator+ (const ccl_private Extrema< T > &a, const ccl_private Extrema< T > &b)
template<typename T>
ccl_device_inline Extrema< Toperator+= (ccl_private Extrema< T > &a, const ccl_private Extrema< T > &b)
template<typename T>
ccl_device_inline Extrema< Tmerge (const ccl_private Extrema< T > &a, const ccl_private Extrema< T > &b)
template<typename T>
ccl_device_inline Extrema< Tmerge (const ccl_private Extrema< T > &a, const ccl_private T &v)

Macro Definition Documentation

◆ __has_builtin

#define __has_builtin ( v)
Value:
0

Definition at line 798 of file device/cpu/globals.h.

◆ M_1_2PI_F

#define M_1_2PI_F   (0.1591549430918953f) /* `1/(2*pi)` */

Definition at line 45 of file device/cpu/globals.h.

◆ M_1_4PI_F

#define M_1_4PI_F   (0.0795774715459476f) /* `1/(4*pi)` */

Definition at line 48 of file device/cpu/globals.h.

◆ M_1_PI_F

#define M_1_PI_F   (0.3183098861837067f) /* `1/pi` */

Definition at line 39 of file device/cpu/globals.h.

◆ M_2_PI_F

#define M_2_PI_F   (0.6366197723675813f) /* `2/pi` */

Definition at line 42 of file device/cpu/globals.h.

◆ M_2PI_F

#define M_2PI_F   (6.2831853071795864f) /* `2*pi` */

Definition at line 59 of file device/cpu/globals.h.

◆ M_4PI_F

#define M_4PI_F   (12.566370614359172f) /* `4*pi` */

Definition at line 62 of file device/cpu/globals.h.

◆ M_CBRT2_F

#define M_CBRT2_F   1.2599210498948732f /* `cbrt(2)` */

Definition at line 73 of file device/cpu/globals.h.

◆ M_LN10_F

#define M_LN10_F   (2.3025850929940457f) /* `ln(10)` */

Definition at line 85 of file device/cpu/globals.h.

◆ M_LN2_F

#define M_LN2_F   (0.6931471805599453f) /* `ln(2)` */

Definition at line 82 of file device/cpu/globals.h.

◆ M_LN_2PI_F

#define M_LN_2PI_F   (1.8378770664093454f) /* `ln(2*pi)` */

Definition at line 54 of file device/cpu/globals.h.

◆ M_PI_2_F

#define M_PI_2_F   (1.5707963267948966f) /* `pi/2` */

Definition at line 33 of file device/cpu/globals.h.

◆ M_PI_4_F

#define M_PI_4_F   (0.7853981633974830f) /* `pi/4` */

Definition at line 36 of file device/cpu/globals.h.

◆ M_PI_4F

#define M_PI_4F   0.78539816339744830962f /* `pi/4` */

Definition at line 65 of file device/cpu/globals.h.

◆ M_PI_F

#define M_PI_F   (3.1415926535897932f) /* `pi` */

Definition at line 30 of file device/cpu/globals.h.

◆ M_SQRT1_2F

#define M_SQRT1_2F   0.70710678118654752440f /* `sqrt(1/2)` */

Definition at line 76 of file device/cpu/globals.h.

◆ M_SQRT2_F

#define M_SQRT2_F   (1.4142135623730950f) /* `sqrt(2)` */

Definition at line 70 of file device/cpu/globals.h.

◆ M_SQRT3_F

#define M_SQRT3_F   (1.7320508075688772f) /* `sqrt(3)` */

Definition at line 79 of file device/cpu/globals.h.

◆ M_SQRT_PI_8_F

#define M_SQRT_PI_8_F   (0.6266570686577501f) /* `sqrt(pi/8)` */

Definition at line 51 of file device/cpu/globals.h.

Function Documentation

◆ __float_as_int()

ccl_device_inline int __float_as_int ( const float f)

Definition at line 257 of file math_base.h.

References ccl_device_inline, and i.

◆ __float_as_uint()

ccl_device_inline uint __float_as_uint ( const float f)

Definition at line 277 of file math_base.h.

References ccl_device_inline, and i.

◆ __int_as_float()

ccl_device_inline float __int_as_float ( const int i)

Definition at line 267 of file math_base.h.

References ccl_device_inline, and i.

◆ __uint_as_float()

ccl_device_inline float __uint_as_float ( const uint i)

Definition at line 287 of file math_base.h.

References ccl_device_inline, and i.

◆ abs()

ccl_device_inline int abs ( const int x)

Definition at line 115 of file math_base.h.

References ccl_device_inline, and x.

◆ as_int()

ccl_device_inline int as_int ( const uint i)

Definition at line 226 of file math_base.h.

References ccl_device_inline, and i.

Referenced by ANIM_channel_debug_print_info(), and BM_mesh_intersect_edges().

◆ as_uint() [1/2]

ccl_device_inline uint as_uint ( const float f)

Definition at line 246 of file math_base.h.

References ccl_device_inline, and i.

◆ as_uint() [2/2]

ccl_device_inline uint as_uint ( const int i)

Definition at line 236 of file math_base.h.

References ccl_device_inline, and i.

Referenced by emit_attribute_map_entry().

◆ beta()

◆ bits_to_01()

ccl_device float bits_to_01 ( const uint bits)

Definition at line 676 of file math_base.h.

References ccl_device, and float.

◆ ceil_to_int()

ccl_device_inline int ceil_to_int ( const float f)

◆ clamp() [1/2]

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

Definition at line 367 of file math_base.h.

References ccl_device_inline, max, and min.

◆ clamp() [2/2]

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

Definition at line 362 of file math_base.h.

References ccl_device_inline, max, and min.

Referenced by safe_acosf(), safe_asinf(), and saturatef().

◆ compare_floats()

ccl_device_inline bool compare_floats ( const float a,
const float b,
float abs_diff,
const int ulp_diff )

Definition at line 769 of file math_base.h.

References __float_as_int, abs, b, ccl_device_inline, and fabsf.

◆ compatible_atan2()

ccl_device_inline float compatible_atan2 ( const float y,
const float x )

Definition at line 471 of file math_base.h.

References atan2f, ccl_device_inline, x, and y.

Referenced by svm_math().

◆ compatible_powf()

ccl_device float compatible_powf ( const float x,
const float y )

Definition at line 548 of file math_base.h.

References ccl_device, fmodf, powf, x, and y.

Referenced by safe_powf().

◆ compatible_signf()

ccl_device_inline float compatible_signf ( const float f)

Definition at line 477 of file math_base.h.

References ccl_device_inline, and signf().

◆ cos_from_sin()

◆ count_leading_zeros()

ccl_device_inline uint count_leading_zeros ( const uint x)

◆ count_trailing_zeros()

ccl_device_inline uint count_trailing_zeros ( const uint x)

Definition at line 727 of file math_base.h.

References assert, ccl_device_inline, and x.

◆ cubic_interp()

ccl_device_inline float cubic_interp ( const float a,
const float b,
float c,
const float d,
float x )

Definition at line 513 of file math_base.h.

References b, ccl_device_inline, and x.

Referenced by interpolate_ies_vertical(), and kernel_ies_interp().

◆ ensure_finite()

◆ find_first_set()

ccl_device_inline uint find_first_set ( const uint x)

Definition at line 747 of file math_base.h.

References ccl_device_inline, count_leading_zeros(), and x.

◆ float_to_int()

◆ floor_to_int()

ccl_device_inline int floor_to_int ( const float f)

Definition at line 412 of file math_base.h.

References ccl_device_inline, float_to_int(), and floorf.

Referenced by HdCyclesDelegate::GetRenderStats(), and svm_brick().

◆ floorfrac()

ccl_device_inline float floorfrac ( const float x,
ccl_private int * i )

Definition at line 417 of file math_base.h.

References ccl_device_inline, ccl_private, float_to_int(), floorf, i, and x.

Referenced by perlin_1d(), perlin_2d(), perlin_3d(), and perlin_4d().

◆ fractf()

ccl_device_inline float fractf ( const float x)

Definition at line 429 of file math_base.h.

References ccl_device_inline, floorf, and x.

◆ interp()

◆ intervals_intersection()

template<typename T>
ccl_device_inline Interval< T > intervals_intersection ( const ccl_private Interval< T > & first,
const ccl_private Interval< T > & second )

◆ inverse_lerp()

◆ inversesqrtf()

◆ isfinite_safe()

◆ isnan_safe()

ccl_device_inline bool isnan_safe ( const float f)

Definition at line 342 of file math_base.h.

References __float_as_uint, ccl_device_inline, and x.

Referenced by bsdf_hair_huang_eval(), and fresnel_dielectric_polarized().

◆ make_zero() [1/2]

Definition at line 218 of file math_base.h.

References ccl_device_template_spec.

◆ make_zero() [2/2]

template<typename T>
ccl_device_template_spec dual4 make_zero ( )

◆ max() [1/6]

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

Definition at line 179 of file math_base.h.

References b, and ccl_device_inline.

◆ max() [2/6]

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

Definition at line 169 of file math_base.h.

References b, and ccl_device_inline.

◆ max() [3/6]

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

Definition at line 120 of file math_base.h.

References b, and ccl_device_inline.

◆ max() [4/6]

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

Definition at line 130 of file math_base.h.

References b, and ccl_device_inline.

◆ max() [5/6]

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

Definition at line 140 of file math_base.h.

References b, and ccl_device_inline.

◆ max() [6/6]

template<class T>
ccl_device_inline std::enable_if_t< std::is_same_v< T, size_t >, T > max ( T a,
T b )
constexpr

Definition at line 158 of file math_base.h.

References b, ccl_device_inline, and T.

◆ max4() [1/2]

ccl_device_inline float max4 ( const float a,
const float b,
float c,
const float d )

Definition at line 211 of file math_base.h.

References b, ccl_device_inline, and max.

◆ max4() [2/2]

template<typename T>
ccl_device_inline T max4 ( const T & a,
const T & b,
const T & c,
const T & d )

Definition at line 200 of file math_base.h.

References b, ccl_device_inline, max, and T.

Referenced by bvh_aligned_node_intersect(), and bvh_unaligned_node_intersect_child().

◆ merge() [1/2]

template<typename T>
ccl_device_inline Extrema< T > merge ( const ccl_private Extrema< T > & a,
const ccl_private Extrema< T > & b )

Definition at line 941 of file math_base.h.

References b, ccl_device_inline, ccl_private, max, and min.

◆ merge() [2/2]

template<typename T>
ccl_device_inline Extrema< T > merge ( const ccl_private Extrema< T > & a,
const ccl_private T & v )

Definition at line 948 of file math_base.h.

References ccl_device_inline, ccl_private, max, min, T, and v.

◆ min() [1/6]

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

Definition at line 184 of file math_base.h.

References b, and ccl_device_inline.

◆ min() [2/6]

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

Definition at line 174 of file math_base.h.

References b, and ccl_device_inline.

◆ min() [3/6]

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

Definition at line 125 of file math_base.h.

References b, and ccl_device_inline.

◆ min() [4/6]

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

Definition at line 135 of file math_base.h.

References b, and ccl_device_inline.

◆ min() [5/6]

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

Definition at line 145 of file math_base.h.

References b, and ccl_device_inline.

◆ min() [6/6]

template<class T>
ccl_device_inline std::enable_if_t< std::is_same_v< T, size_t >, T > min ( T a,
T b )
constexpr

Definition at line 164 of file math_base.h.

References b, ccl_device_inline, and T.

◆ min4() [1/2]

ccl_device_inline float min4 ( const float a,
const float b,
float c,
const float d )

Definition at line 206 of file math_base.h.

References b, ccl_device_inline, and min.

◆ min4() [2/2]

template<typename T>
ccl_device_inline T min4 ( const T & a,
const T & b,
const T & c,
const T & d )

Definition at line 195 of file math_base.h.

References b, ccl_device_inline, min, and T.

Referenced by bvh_aligned_node_intersect(), and bvh_unaligned_node_intersect_child().

◆ mix()

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

Definition at line 372 of file math_base.h.

References b, and ccl_device_inline.

◆ mod()

ccl_device_inline int mod ( const int x,
const int m )

Definition at line 497 of file math_base.h.

References ccl_device_inline, and x.

◆ next_power_of_two()

◆ nonzerof()

ccl_device_inline float nonzerof ( const float f,
const float eps )

Definition at line 460 of file math_base.h.

References ccl_device_inline, eps, fabsf, and signf().

◆ one_minus_cos()

◆ operator*()

template<typename T>
ccl_device_inline Extrema< T > operator* ( const Extrema< T > a,
const T b )

Definition at line 921 of file math_base.h.

References b, ccl_device_inline, Extrema< T >::max, Extrema< T >::min, and T.

◆ operator+()

template<typename T>
ccl_device_inline Extrema< T > operator+ ( const ccl_private Extrema< T > & a,
const ccl_private Extrema< T > & b )

Definition at line 927 of file math_base.h.

References b, ccl_device_inline, and ccl_private.

◆ operator+=()

template<typename T>
ccl_device_inline Extrema< T > operator+= ( ccl_private Extrema< T > & a,
const ccl_private Extrema< T > & b )

Definition at line 934 of file math_base.h.

References b, ccl_device_inline, and ccl_private.

◆ operator/=()

template<typename T1, typename T2>
ccl_device_inline Interval< T1 > operator/= ( ccl_private Interval< T1 > & interval,
const T2 f )

Definition at line 892 of file math_base.h.

References ccl_device_inline, ccl_private, Interval< T >::min, and T2.

◆ or_mask()

ccl_device_inline float or_mask ( const float x,
const uint y )

Definition at line 671 of file math_base.h.

References __float_as_uint, __uint_as_float, ccl_device_inline, x, and y.

Referenced by rgbe_to_rgb().

◆ pingpongf()

ccl_device_inline float pingpongf ( const float a,
const float b )

Definition at line 441 of file math_base.h.

References b, ccl_device_inline, fabsf, and fractf.

◆ pointer_pack_to_uint_0()

template<typename T>
ccl_device_inline uint pointer_pack_to_uint_0 ( T * ptr)

Definition at line 311 of file math_base.h.

References ccl_device_inline, ptr, and T.

Referenced by scene_intersect(), and scene_intersect_shadow().

◆ pointer_pack_to_uint_1()

template<typename T>
ccl_device_inline uint pointer_pack_to_uint_1 ( T * ptr)

Definition at line 316 of file math_base.h.

References ccl_device_inline, ptr, and T.

Referenced by scene_intersect(), and scene_intersect_shadow().

◆ pointer_unpack_from_uint()

template<typename T>
ccl_device_inline T * pointer_unpack_from_uint ( const uint a,
const uint b )

Definition at line 321 of file math_base.h.

References b, ccl_device_inline, and T.

Referenced by get_payload_ptr_0(), and get_payload_ptr_2().

◆ popcount()

◆ pow20()

ccl_device_inline float pow20 ( const float a)

Definition at line 637 of file math_base.h.

References ccl_device_inline, and sqr.

◆ pow22()

ccl_device_inline float pow22 ( const float a)

Definition at line 642 of file math_base.h.

References ccl_device_inline, and sqr.

◆ power_of_2()

ccl_device_inline int power_of_2 ( const int a)

Definition at line 632 of file math_base.h.

References ccl_device_inline.

◆ prev_power_of_two()

ccl_device_inline uint prev_power_of_two ( const uint x)

Definition at line 792 of file math_base.h.

References ccl_device_inline, count_leading_zeros(), and x.

Referenced by round_down_to_power_of_two(), and TEST().

◆ reverse_integer_bits()

◆ safe_acosf()

◆ safe_asinf()

◆ safe_divide()

◆ safe_floored_modulo()

ccl_device float safe_floored_modulo ( const float a,
const float b )

Definition at line 599 of file math_base.h.

References b, ccl_device, and floorf.

◆ safe_logf()

ccl_device float safe_logf ( const float a,
const float b )

◆ safe_modulo()

ccl_device float safe_modulo ( const float a,
const float b )

Definition at line 594 of file math_base.h.

References b, ccl_device, and fmodf.

◆ safe_powf()

◆ safe_sqrtf()

ccl_device_inline float safe_sqrtf ( const float f)

Definition at line 524 of file math_base.h.

References ccl_device_inline, max, and sqrtf.

Referenced by cos_from_sin(), sin_from_cos(), sin_sqr_to_one_minus_cos(), and solve_quadratic().

◆ saturatef()

ccl_device_inline float saturatef ( const float a)

Definition at line 401 of file math_base.h.

References ccl_device_inline, and clamp().

◆ signf()

◆ sin_from_cos()

◆ sin_sqr_to_one_minus_cos()

ccl_device_inline float sin_sqr_to_one_minus_cos ( const float s_sq)

◆ smoothminf()

ccl_device_inline float smoothminf ( const float a,
const float b,
float k )

Definition at line 446 of file math_base.h.

References b, ccl_device_inline, fabsf, fmaxf, and fminf.

◆ smoothstep()

ccl_device_inline float smoothstep ( const float edge0,
const float edge1,
const float x )

Definition at line 377 of file math_base.h.

References ccl_device_inline, result, and x.

◆ smoothstepf()

ccl_device_inline float smoothstepf ( const float f)

Definition at line 485 of file math_base.h.

References ccl_device_inline.

Referenced by spot_light_attenuation(), spot_light_tree_parameters(), and svm_brick().

◆ solve_quadratic()

ccl_device_inline bool solve_quadratic ( const float a,
const float b,
const float c,
ccl_private float & x1,
ccl_private float & x2 )

◆ sqr()

ccl_device_inline float sqr ( const float a)

Definition at line 604 of file math_base.h.

References ccl_device_inline.

◆ uint16_pack_to_uint()

ccl_device_inline uint uint16_pack_to_uint ( const uint a,
const uint b )

Definition at line 326 of file math_base.h.

References b, and ccl_device_inline.

Referenced by __anyhit__kernel_optix_shadow_all_hit().

◆ uint16_unpack_from_uint_0()

ccl_device_inline uint uint16_unpack_from_uint_0 ( const uint i)

Definition at line 331 of file math_base.h.

References ccl_device_inline, and i.

Referenced by __anyhit__kernel_optix_shadow_all_hit().

◆ uint16_unpack_from_uint_1()

ccl_device_inline uint uint16_unpack_from_uint_1 ( const uint i)

Definition at line 336 of file math_base.h.

References ccl_device_inline, and i.

Referenced by __anyhit__kernel_optix_shadow_all_hit().

◆ wrapf()

ccl_device_inline float wrapf ( const float value,
const float max,
const float min )

Definition at line 435 of file math_base.h.

References ccl_device_inline, floorf, max, and min.

◆ xor_mask()

ccl_device_inline float xor_mask ( const float x,
const uint y )

Definition at line 666 of file math_base.h.

References __float_as_uint, __uint_as_float, ccl_device_inline, x, and y.