Blender V5.0
math_fast.h File Reference
#include "util/math_base.h"
#include "util/math_float3.h"
#include "util/math_float4.h"
#include "util/math_int4.h"
#include "util/types_float3.h"
#include "util/types_float4.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline float madd (const float a, const float b, const float c)
ccl_device_inline float4 madd4 (const float4 a, const float4 b, const float4 c)
ccl_device_inline int fast_rint (const float x)
ccl_device float fast_sinf (float x)
ccl_device float fast_cosf (float x)
ccl_device void fast_sincosf (float x, ccl_private float *sine, ccl_private float *cosine)
ccl_device float fast_tanf (float x)
ccl_device float fast_sinpif (const float x)
ccl_device_inline float fast_cospif (const float x)
ccl_device float fast_acosf (const float x)
ccl_device float fast_asinf (const float x)
ccl_device float fast_atanf (const float x)
ccl_device float fast_atan2f (const float y, const float x)
ccl_device_inline float vector_angle (const float3 a, const float3 b)
ccl_device_inline int floor_log2f (const float x)
ccl_device float fast_log2f (float x)
ccl_device_inline float fast_logf (const float x)
ccl_device_inline float fast_log10 (const float x)
ccl_device float fast_logb (float x)
ccl_device float fast_exp2f (float x)
ccl_device_inline float fast_expf (const float x)
ccl_device float4 fast_exp2f4 (float4 x)
ccl_device_inline float4 fast_expf4 (const float4 x)
ccl_device_inline float fast_exp10 (const float x)
ccl_device_inline float fast_expm1f (float x)
ccl_device float fast_sinhf (const float x)
ccl_device_inline float fast_coshf (const float x)
ccl_device_inline float fast_tanhf (const float x)
ccl_device float fast_safe_powf (const float x, const float y)
ccl_device_inline float fast_erff (const float x)
ccl_device_inline float fast_erfcf (const float x)
ccl_device_inline float fast_ierff (const float x)
ccl_device_inline float fast_inv_cbrtf (const float x)

Function Documentation

◆ fast_acosf()

◆ fast_asinf()

ccl_device float fast_asinf ( const float x)

Definition at line 276 of file math_fast.h.

References ccl_device, copysignf, fabsf, M_PI_2_F, sqrtf, and x.

◆ fast_atan2f()

◆ fast_atanf()

ccl_device float fast_atanf ( const float x)

Definition at line 290 of file math_fast.h.

References ccl_device, copysignf, fabsf, M_PI_2_F, madd(), and x.

Referenced by LightTreeEmitter::LightTreeEmitter().

◆ fast_cosf()

◆ fast_coshf()

ccl_device_inline float fast_coshf ( const float x)

Definition at line 507 of file math_fast.h.

References ccl_device_inline, e, fabsf, fast_expf(), and x.

◆ fast_cospif()

ccl_device_inline float fast_cospif ( const float x)

Definition at line 254 of file math_fast.h.

References ccl_device_inline, fast_sinpif(), and x.

◆ fast_erfcf()

ccl_device_inline float fast_erfcf ( const float x)

Definition at line 592 of file math_fast.h.

References ccl_device_inline, fast_erff(), and x.

◆ fast_erff()

ccl_device_inline float fast_erff ( const float x)

Definition at line 568 of file math_fast.h.

References b, ccl_device_inline, copysignf, fabsf, madd(), v, and x.

Referenced by fast_erfcf(), and microfacet_beckmann_sample_vndf().

◆ fast_exp10()

ccl_device_inline float fast_exp10 ( const float x)

Definition at line 470 of file math_fast.h.

References ccl_device_inline, fast_exp2f(), M_LN10_F, M_LN2_F, and x.

◆ fast_exp2f()

ccl_device float fast_exp2f ( float x)

Definition at line 404 of file math_fast.h.

References __float_as_uint, __uint_as_float, ccl_device, clamp(), madd(), and x.

Referenced by fast_exp10(), fast_expf(), and fast_safe_powf().

◆ fast_exp2f4()

ccl_device float4 fast_exp2f4 ( float4 x)

Definition at line 443 of file math_fast.h.

References __float4_as_int4(), __int4_as_float4(), ccl_device, clamp(), madd4(), make_float4, make_int4(), and x.

Referenced by fast_expf4().

◆ fast_expf()

ccl_device_inline float fast_expf ( const float x)

◆ fast_expf4()

ccl_device_inline float4 fast_expf4 ( const float4 x)

Definition at line 459 of file math_fast.h.

References ccl_device_inline, fast_exp2f4(), M_LN2_F, and x.

◆ fast_expm1f()

ccl_device_inline float fast_expm1f ( float x)

Definition at line 478 of file math_fast.h.

References ccl_device_inline, fabsf, fast_expf(), madd(), and x.

◆ fast_ierff()

ccl_device_inline float fast_ierff ( const float x)

Definition at line 603 of file math_fast.h.

References ccl_device_inline, fabsf, fast_logf(), madd(), min, sqrtf, w(), and x.

Referenced by microfacet_beckmann_sample_vndf().

◆ fast_inv_cbrtf()

ccl_device_inline float fast_inv_cbrtf ( const float x)

Definition at line 638 of file math_fast.h.

References __float_as_int, __int_as_float, ccl_device_inline, util_assert, x, and y.

Referenced by phase_draine_sample_cos(), and phase_rayleigh_sample().

◆ fast_log10()

ccl_device_inline float fast_log10 ( const float x)

Definition at line 387 of file math_fast.h.

References ccl_device_inline, fast_log2f(), M_LN10_F, M_LN2_F, and x.

◆ fast_log2f()

ccl_device float fast_log2f ( float x)

Definition at line 353 of file math_fast.h.

References __float_as_uint, __uint_as_float, ccl_device, clamp(), floor_log2f(), FLT_MAX, madd(), and x.

Referenced by fast_log10(), fast_logf(), and fast_safe_powf().

◆ fast_logb()

ccl_device float fast_logb ( float x)

Definition at line 395 of file math_fast.h.

References __float_as_uint, ccl_device, clamp(), fabsf, FLT_MAX, and x.

◆ fast_logf()

ccl_device_inline float fast_logf ( const float x)

Definition at line 379 of file math_fast.h.

References ccl_device_inline, fast_log2f(), M_LN2_F, and x.

Referenced by fast_ierff(), and phase_mie_fitted_parameters().

◆ fast_rint()

ccl_device_inline int fast_rint ( const float x)

Definition at line 68 of file math_fast.h.

References ccl_device_inline, copysignf, float_to_int(), and x.

Referenced by fast_cosf(), fast_sincosf(), fast_sinf(), and fast_tanf().

◆ fast_safe_powf()

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

Definition at line 526 of file math_fast.h.

References __float_as_int, __int_as_float, ccl_device, fabsf, fast_exp2f(), fast_log2f(), sign(), x, and y.

◆ fast_sincosf()

◆ fast_sinf()

ccl_device float fast_sinf ( float x)

Definition at line 83 of file math_fast.h.

References ccl_device, clamp(), fast_rint(), float, M_1_PI_F, M_PI_2_F, madd(), and x.

Referenced by phase_mie_fitted_parameters(), phi_to_h(), and TEST().

◆ fast_sinhf()

ccl_device float fast_sinhf ( const float x)

Definition at line 487 of file math_fast.h.

References ccl_device, copysignf, e, fabsf, fast_expf(), madd(), and x.

◆ fast_sinpif()

ccl_device float fast_sinpif ( const float x)

Definition at line 218 of file math_fast.h.

References ccl_device, fabsf, P, x, y, and z().

Referenced by fast_cospif().

◆ fast_tanf()

ccl_device float fast_tanf ( float x)

◆ fast_tanhf()

ccl_device_inline float fast_tanhf ( const float x)

Definition at line 516 of file math_fast.h.

References ccl_device_inline, copysignf, e, fabsf, fast_expf(), and x.

◆ floor_log2f()

ccl_device_inline int floor_log2f ( const float x)

Definition at line 344 of file math_fast.h.

References __float_as_uint, ccl_device_inline, and x.

Referenced by fast_log2f(), and rgb_to_rgbe().

◆ madd()

◆ madd4()

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

Definition at line 46 of file math_fast.h.

References b, and ccl_device_inline.

Referenced by fast_exp2f4().

◆ vector_angle()

ccl_device_inline float vector_angle ( const float3 a,
const float3 b )

Definition at line 339 of file math_fast.h.

References b, ccl_device_inline, fast_atan2f(), and len.

Referenced by distant_light_intersect(), and distant_light_sample_from_intersection().