package core:math
Overview
Typical trignometric and other basic math routines.
Index
Types (1)
Constants (74)
- DEG_PER_RAD
- E
- F16_BIAS
- F16_DIG
- F16_EPSILON
- F16_GUARD
- F16_MANT_DIG
- F16_MASK
- F16_MAX
- F16_MAX_10_EXP
- F16_MAX_EXP
- F16_MIN
- F16_MIN_10_EXP
- F16_MIN_EXP
- F16_NORMALIZE
- F16_RADIX
- F16_ROUNDS
- F16_SHIFT
- F32_BIAS
- F32_DIG
- F32_EPSILON
- F32_GUARD
- F32_MANT_DIG
- F32_MASK
- F32_MAX
- F32_MAX_10_EXP
- F32_MAX_EXP
- F32_MIN
- F32_MIN_10_EXP
- F32_MIN_EXP
- F32_NORMALIZE
- F32_RADIX
- F32_ROUNDS
- F32_SHIFT
- F64_BIAS
- F64_DIG
- F64_EPSILON
- F64_MANT_DIG
- F64_MASK
- F64_MAX
- F64_MAX_10_EXP
- F64_MAX_EXP
- F64_MIN
- F64_MIN_10_EXP
- F64_MIN_EXP
- F64_RADIX
- F64_ROUNDS
- F64_SHIFT
- INF_F16
- INF_F32
- INF_F64
- LN10
- LN2
- MAX_F16_PRECISION
- MAX_F32_PRECISION
- MAX_F64_PRECISION
- NEG_INF_F16
- NEG_INF_F32
- NEG_INF_F64
- PI
- QNAN_F16
- QNAN_F32
- QNAN_F64
- RAD_PER_DEG
- SNAN_F16
- SNAN_F32
- SNAN_F64
- SQRT_FIVE
- SQRT_THREE
- SQRT_TWO
- TAU
- e
- π
- τ
Variables (0)
This section is empty.
Procedures (442)
- abs
- acos_f16
- acos_f16be
- acos_f16le
- acos_f32
- acos_f32be
- acos_f32le
- acos_f64
- acos_f64be
- acos_f64le
- acosh
- angle_diff
- angle_lerp
- asin_f16
- asin_f16be
- asin_f16le
- asin_f32
- asin_f32be
- asin_f32le
- asin_f64
- asin_f64be
- asin_f64le
- asinh
- atan
- atan2_f16
- atan2_f16be
- atan2_f16le
- atan2_f32
- atan2_f32be
- atan2_f32le
- atan2_f64
- atan2_f64be
- atan2_f64le
- atanh
- bias
- binomial
- ceil_f16
- ceil_f16be
- ceil_f16le
- ceil_f32
- ceil_f32be
- ceil_f32le
- ceil_f64
- ceil_f64be
- ceil_f64le
- clamp
- classify_f16
- classify_f16be
- classify_f16le
- classify_f32
- classify_f32be
- classify_f32le
- classify_f64
- classify_f64be
- classify_f64le
- copy_sign_f16
- copy_sign_f16be
- copy_sign_f16le
- copy_sign_f32
- copy_sign_f32be
- copy_sign_f32le
- copy_sign_f64
- copy_sign_f64be
- copy_sign_f64le
- cos_f16
- cos_f16be
- cos_f16le
- cos_f32
- cos_f32be
- cos_f32le
- cos_f64
- cos_f64be
- cos_f64le
- cosh
- count_digits_of_base
- cumsum
- cumsum_inplace
- divmod
- erf_f16
- erf_f16be
- erf_f16le
- erf_f32
- erf_f32be
- erf_f32le
- erf_f64
- erfc_f16
- erfc_f16be
- erfc_f16le
- erfc_f32
- erfc_f32be
- erfc_f32le
- erfc_f64
- exp_f16
- exp_f16be
- exp_f16le
- exp_f32
- exp_f32be
- exp_f32le
- exp_f64
- exp_f64be
- exp_f64le
- factorial
- floor_div
- floor_divmod
- floor_f16
- floor_f16be
- floor_f16le
- floor_f32
- floor_f32be
- floor_f32le
- floor_f64
- floor_f64be
- floor_f64le
- floor_mod
- fmuladd_f16
- fmuladd_f16be
- fmuladd_f16le
- fmuladd_f32
- fmuladd_f32be
- fmuladd_f32le
- fmuladd_f64
- fmuladd_f64be
- fmuladd_f64le
- frexp_f16
- frexp_f16be
- frexp_f16le
- frexp_f32
- frexp_f32be
- frexp_f32le
- frexp_f64
- frexp_f64be
- frexp_f64le
- gain
- gamma_f16
- gamma_f16be
- gamma_f16le
- gamma_f32
- gamma_f32be
- gamma_f32le
- gamma_f64
- gamma_f64be
- gamma_f64le
- gcd
- hypot_f16
- hypot_f16be
- hypot_f16le
- hypot_f32
- hypot_f32be
- hypot_f32le
- hypot_f64
- hypot_f64be
- hypot_f64le
- ilogb_f16
- ilogb_f16be
- ilogb_f16le
- ilogb_f32
- ilogb_f32be
- ilogb_f32le
- ilogb_f64
- ilogb_f64be
- ilogb_f64le
- inf_f16
- inf_f16be
- inf_f16le
- inf_f32
- inf_f32be
- inf_f32le
- inf_f64
- inf_f64be
- inf_f64le
- is_inf_f16
- is_inf_f16be
- is_inf_f16le
- is_inf_f32
- is_inf_f32be
- is_inf_f32le
- is_inf_f64
- is_inf_f64be
- is_inf_f64le
- is_nan_f16
- is_nan_f16be
- is_nan_f16le
- is_nan_f32
- is_nan_f32be
- is_nan_f32le
- is_nan_f64
- is_nan_f64be
- is_nan_f64le
- is_power_of_two
- lcm
- ldexp_f16
- ldexp_f16be
- ldexp_f16le
- ldexp_f32
- ldexp_f32be
- ldexp_f32le
- ldexp_f64
- ldexp_f64be
- ldexp_f64le
- lerp
- lgamma_f16
- lgamma_f16be
- lgamma_f16le
- lgamma_f32
- lgamma_f32be
- lgamma_f32le
- lgamma_f64
- lgamma_f64be
- lgamma_f64le
- ln_f16
- ln_f16be
- ln_f16le
- ln_f32
- ln_f32be
- ln_f32le
- ln_f64
- ln_f64be
- ln_f64le
- log10_f16
- log10_f16be
- log10_f16le
- log10_f32
- log10_f32be
- log10_f32le
- log10_f64
- log10_f64be
- log10_f64le
- log1p_f16
- log1p_f16be
- log1p_f16le
- log1p_f32
- log1p_f32be
- log1p_f32le
- log1p_f64
- log1p_f64be
- log1p_f64le
- log2_f16
- log2_f16be
- log2_f16le
- log2_f32
- log2_f32be
- log2_f32le
- log2_f64
- log2_f64be
- log2_f64le
- log_f16
- log_f16be
- log_f16le
- log_f32
- log_f32be
- log_f32le
- log_f64
- log_f64be
- log_f64le
- logb_f16
- logb_f16be
- logb_f16le
- logb_f32
- logb_f32be
- logb_f32le
- logb_f64
- logb_f64be
- logb_f64le
- max
- min
- mod_f16
- mod_f16be
- mod_f16le
- mod_f32
- mod_f32be
- mod_f32le
- mod_f64
- mod_f64be
- mod_f64le
- modf_f16
- modf_f16be
- modf_f16le
- modf_f32
- modf_f32be
- modf_f32le
- modf_f64
- modf_f64be
- modf_f64le
- nan_f16
- nan_f16be
- nan_f16le
- nan_f32
- nan_f32be
- nan_f32le
- nan_f64
- nan_f64be
- nan_f64le
- next_power_of_two
- nextafter_f16
- nextafter_f16be
- nextafter_f16le
- nextafter_f32
- nextafter_f32be
- nextafter_f32le
- nextafter_f64
- nextafter_f64be
- nextafter_f64le
- normalize_f16
- normalize_f16be
- normalize_f16le
- normalize_f32
- normalize_f32be
- normalize_f32le
- normalize_f64
- normalize_f64be
- normalize_f64le
- pow10_f16
- pow10_f16be
- pow10_f16le
- pow10_f32
- pow10_f32be
- pow10_f32le
- pow10_f64
- pow10_f64be
- pow10_f64le
- pow2_f16
- pow2_f32
- pow2_f64
- pow_f16
- pow_f16be
- pow_f16le
- pow_f32
- pow_f32be
- pow_f32le
- pow_f64
- pow_f64be
- pow_f64le
- prod
- remainder_f16
- remainder_f16be
- remainder_f16le
- remainder_f32
- remainder_f32be
- remainder_f32le
- remainder_f64
- remainder_f64be
- remainder_f64le
- remap
- remap_clamped
- round_f16
- round_f16be
- round_f16le
- round_f32
- round_f32be
- round_f32le
- round_f64
- round_f64be
- round_f64le
- saturate
- sign_bit_f16
- sign_bit_f16be
- sign_bit_f16le
- sign_bit_f32
- sign_bit_f32be
- sign_bit_f32le
- sign_bit_f64
- sign_bit_f64be
- sign_bit_f64le
- sign_f16
- sign_f16be
- sign_f16le
- sign_f32
- sign_f32be
- sign_f32le
- sign_f64
- sign_f64be
- sign_f64le
- sin_f16
- sin_f16be
- sin_f16le
- sin_f32
- sin_f32be
- sin_f32le
- sin_f64
- sin_f64be
- sin_f64le
- sincos_f16
- sincos_f16be
- sincos_f16le
- sincos_f32
- sincos_f32be
- sincos_f32le
- sincos_f64
- sincos_f64be
- sincos_f64le
- sinh
- smoothstep
- sqrt_f16
- sqrt_f16be
- sqrt_f16le
- sqrt_f32
- sqrt_f32be
- sqrt_f32le
- sqrt_f64
- sqrt_f64be
- sqrt_f64le
- step
- sum
- tan_f16
- tan_f16be
- tan_f16le
- tan_f32
- tan_f32be
- tan_f32le
- tan_f64
- tan_f64be
- tan_f64le
- tanh
- to_degrees_f16
- to_degrees_f16be
- to_degrees_f16le
- to_degrees_f32
- to_degrees_f32be
- to_degrees_f32le
- to_degrees_f64
- to_degrees_f64be
- to_degrees_f64le
- to_radians_f16
- to_radians_f16be
- to_radians_f16le
- to_radians_f32
- to_radians_f32be
- to_radians_f32le
- to_radians_f64
- to_radians_f64be
- to_radians_f64le
- trunc_f16
- trunc_f16be
- trunc_f16le
- trunc_f32
- trunc_f32be
- trunc_f32le
- trunc_f64
- trunc_f64be
- trunc_f64le
- unlerp
- wrap
Procedure Groups (44)
Types
Float_Class ¶
Float_Class :: enum int { Normal, // an ordinary nonzero floating point value Subnormal, // a subnormal floating point value Zero, // zero Neg_Zero, // the negative zero NaN, // Not-A-Number (NaN) Inf, // positive infinity Neg_Inf, // negative infinity }
Related Procedures With Returns
Constants
DEG_PER_RAD ¶
DEG_PER_RAD: f64 : 360.0 / TAU
F16_BIAS ¶
F16_BIAS: int : 0xf
F16_EPSILON ¶
F16_EPSILON: f64 : 0.00097656
F16_GUARD ¶
F16_GUARD: int : 0
F16_MANT_DIG ¶
F16_MANT_DIG: int : 11
F16_MASK ¶
F16_MASK: int : 0x1f
F16_MAX_10_EXP ¶
F16_MAX_10_EXP: int : 4
F16_MAX_EXP ¶
F16_MAX_EXP: int : 15
F16_MIN_10_EXP ¶
F16_MIN_10_EXP: int : -4
F16_MIN_EXP ¶
F16_MIN_EXP: int : -14
F16_NORMALIZE ¶
F16_NORMALIZE: int : 0
F16_RADIX ¶
F16_RADIX: int : 2
F16_ROUNDS ¶
F16_ROUNDS: int : 1
F16_SHIFT ¶
F16_SHIFT: int : 16 - 6
F32_BIAS ¶
F32_BIAS: int : 0x7f
F32_EPSILON ¶
F32_EPSILON: f64 : 1.192092896e-07
F32_GUARD ¶
F32_GUARD: int : 0
F32_MANT_DIG ¶
F32_MANT_DIG: int : 24
F32_MASK ¶
F32_MASK: int : 0xff
F32_MAX_10_EXP ¶
F32_MAX_10_EXP: int : 38
F32_MAX_EXP ¶
F32_MAX_EXP: int : 128
F32_MIN_10_EXP ¶
F32_MIN_10_EXP: int : -37
F32_MIN_EXP ¶
F32_MIN_EXP: int : -125
F32_NORMALIZE ¶
F32_NORMALIZE: int : 0
F32_RADIX ¶
F32_RADIX: int : 2
F32_ROUNDS ¶
F32_ROUNDS: int : 1
F32_SHIFT ¶
F32_SHIFT: int : 32 - 9
F64_BIAS ¶
F64_BIAS: int : 0x3ff
F64_EPSILON ¶
F64_EPSILON: f64 : 2.2204460492503131e-016
Smallest number such that 1.0 + F64_EPSILON != 1.0.
F64_MASK ¶
F64_MASK: int : 0x7ff
F64_MAX_EXP ¶
F64_MAX_EXP: int : 1024
One greater than the maximum possible base-2 exponent yielding normalized value.
F64_MIN_EXP ¶
F64_MIN_EXP: int : -1021
One greater than the minimum possible base-2 exponent yielding normalized value.
F64_SHIFT ¶
F64_SHIFT: int : 64 - 12
MAX_F16_PRECISION ¶
MAX_F16_PRECISION: int : 4
Maximum number of meaningful digits after the decimal point for 'f16'
MAX_F32_PRECISION ¶
MAX_F32_PRECISION: int : 8
Maximum number of meaningful digits after the decimal point for 'f32'
MAX_F64_PRECISION ¶
MAX_F64_PRECISION: int : 16
Maximum number of meaningful digits after the decimal point for 'f64'
NEG_INF_F16 ¶
NEG_INF_F16 :: f16(0hFC00)
NEG_INF_F32 ¶
NEG_INF_F32 :: f32(0hFF80_0000)
NEG_INF_F64 ¶
NEG_INF_F64 :: f64(0hFFF0_0000_0000_0000)
QNAN_F16 ¶
QNAN_F16 :: f16(0h7E01)
QNAN_F32 ¶
QNAN_F32 :: f32(0hFFC0_0001)
QNAN_F64 ¶
QNAN_F64 :: f64(0h7FF8_0000_0000_0001)
RAD_PER_DEG ¶
RAD_PER_DEG: f64 : TAU / 360.0
SNAN_F16 ¶
SNAN_F16 :: f16(0h7C01)
SNAN_F32 ¶
SNAN_F32 :: f32(0hFF80_0001)
SNAN_F64 ¶
SNAN_F64 :: f64(0h7FF0_0000_0000_0001)
SQRT_FIVE ¶
SQRT_FIVE: f64 : 2.23606797749978969640917366873127623
SQRT_THREE ¶
SQRT_THREE: f64 : 1.73205080756887729352744634150587236
SQRT_TWO ¶
SQRT_TWO: f64 : 1.41421356237309504880168872420969808
Variables
This section is empty.
Procedures
abs ¶
abs returns the absolute value of passed argument.
If the argument is a complex or quaternion, this is equivalent to real(conj(value) * value).
acos_f16be ¶
Related Procedure Groups
acos_f16le ¶
Related Procedure Groups
acos_f32be ¶
Related Procedure Groups
acos_f32le ¶
Related Procedure Groups
acos_f64be ¶
Related Procedure Groups
acos_f64le ¶
Related Procedure Groups
angle_diff ¶
angle_diff :: proc "contextless" (a, b: $T) -> $T {…}
angle_lerp ¶
angle_lerp :: proc "contextless" (a, b, t: $T) -> $T {…}
asin_f16be ¶
Related Procedure Groups
asin_f16le ¶
Related Procedure Groups
asin_f32be ¶
Related Procedure Groups
asin_f32le ¶
Related Procedure Groups
asin_f64be ¶
Related Procedure Groups
asin_f64le ¶
Related Procedure Groups
atan ¶
atan :: proc "contextless" (x: $T) -> $T {…}
Return the arc tangent of x, in radians. Defined on the domain of [-∞, ∞] with a range of [-π/2, π/2]
atan2_f16 ¶
Related Procedure Groups
atan2_f16be ¶
Related Procedure Groups
atan2_f16le ¶
Related Procedure Groups
atan2_f32 ¶
Related Procedure Groups
atan2_f32be ¶
Related Procedure Groups
atan2_f32le ¶
Related Procedure Groups
atan2_f64 ¶
Related Procedure Groups
atan2_f64be ¶
Related Procedure Groups
atan2_f64le ¶
Related Procedure Groups
ceil_f16be ¶
Related Procedure Groups
ceil_f16le ¶
Related Procedure Groups
ceil_f32be ¶
Related Procedure Groups
ceil_f32le ¶
Related Procedure Groups
ceil_f64be ¶
Related Procedure Groups
ceil_f64le ¶
Related Procedure Groups
clamp ¶
clamp returns a value v clamped between minimum and maximum.
This is calculated as follows: minimum if v < minimum else maximum if v > maximum else v.
classify_f16 ¶
classify_f16 :: proc "contextless" (x: f16) -> Float_Class {…}
Related Procedure Groups
classify_f16be ¶
classify_f16be :: proc "contextless" (x: f16be) -> Float_Class {…}
Related Procedure Groups
classify_f16le ¶
classify_f16le :: proc "contextless" (x: f16le) -> Float_Class {…}
Related Procedure Groups
classify_f32 ¶
classify_f32 :: proc "contextless" (x: f32) -> Float_Class {…}
Related Procedure Groups
classify_f32be ¶
classify_f32be :: proc "contextless" (x: f32be) -> Float_Class {…}
Related Procedure Groups
classify_f32le ¶
classify_f32le :: proc "contextless" (x: f32le) -> Float_Class {…}
Related Procedure Groups
classify_f64 ¶
classify_f64 :: proc "contextless" (x: f64) -> Float_Class {…}
Related Procedure Groups
classify_f64be ¶
classify_f64be :: proc "contextless" (x: f64be) -> Float_Class {…}
Related Procedure Groups
classify_f64le ¶
classify_f64le :: proc "contextless" (x: f64le) -> Float_Class {…}
Related Procedure Groups
copy_sign_f16 ¶
Related Procedure Groups
copy_sign_f16be ¶
Related Procedure Groups
copy_sign_f16le ¶
Related Procedure Groups
copy_sign_f32 ¶
Related Procedure Groups
copy_sign_f32be ¶
Related Procedure Groups
copy_sign_f32le ¶
Related Procedure Groups
copy_sign_f64 ¶
Related Procedure Groups
copy_sign_f64be ¶
Related Procedure Groups
copy_sign_f64le ¶
Related Procedure Groups
cos_f16be ¶
Related Procedure Groups
cos_f16le ¶
Related Procedure Groups
cos_f32be ¶
Related Procedure Groups
cos_f32le ¶
Related Procedure Groups
cos_f64be ¶
Related Procedure Groups
cos_f64le ¶
Related Procedure Groups
cumsum_inplace ¶
cumsum_inplace :: proc "contextless" (x: $T/[]$E) {…}
erf_f16be ¶
Related Procedure Groups
erf_f16le ¶
Related Procedure Groups
erf_f32be ¶
Related Procedure Groups
erf_f32le ¶
Related Procedure Groups
erfc_f16be ¶
Related Procedure Groups
erfc_f16le ¶
Related Procedure Groups
erfc_f32be ¶
Related Procedure Groups
erfc_f32le ¶
Related Procedure Groups
exp_f16be ¶
Related Procedure Groups
exp_f16le ¶
Related Procedure Groups
exp_f32be ¶
Related Procedure Groups
exp_f32le ¶
Related Procedure Groups
exp_f64be ¶
Related Procedure Groups
exp_f64le ¶
Related Procedure Groups
floor_div ¶
floor_div :: proc "contextless" (x, y: $T) -> $T {…}
floor_divmod ¶
floor_divmod :: proc "contextless" (x, y: $T) -> (div, mod: $T) {…}
floor_f16 ¶
Related Procedure Groups
floor_f16be ¶
Related Procedure Groups
floor_f16le ¶
Related Procedure Groups
floor_f32 ¶
Related Procedure Groups
floor_f32be ¶
Related Procedure Groups
floor_f32le ¶
Related Procedure Groups
floor_f64 ¶
Related Procedure Groups
floor_f64be ¶
Related Procedure Groups
floor_f64le ¶
Related Procedure Groups
floor_mod ¶
floor_mod :: proc "contextless" (x, y: $T) -> $T {…}
fmuladd_f16 ¶
Related Procedure Groups
fmuladd_f16be ¶
Related Procedure Groups
fmuladd_f16le ¶
Related Procedure Groups
fmuladd_f32 ¶
Related Procedure Groups
fmuladd_f32be ¶
Related Procedure Groups
fmuladd_f32le ¶
Related Procedure Groups
fmuladd_f64 ¶
Related Procedure Groups
fmuladd_f64be ¶
Related Procedure Groups
fmuladd_f64le ¶
Related Procedure Groups
frexp_f16 ¶
Related Procedure Groups
frexp_f16be ¶
Related Procedure Groups
frexp_f16le ¶
Related Procedure Groups
frexp_f32 ¶
Related Procedure Groups
frexp_f32be ¶
Related Procedure Groups
frexp_f32le ¶
Related Procedure Groups
frexp_f64 ¶
Related Procedure Groups
frexp_f64be ¶
Related Procedure Groups
frexp_f64le ¶
Related Procedure Groups
gamma_f16 ¶
Related Procedure Groups
gamma_f16be ¶
Related Procedure Groups
gamma_f16le ¶
Related Procedure Groups
gamma_f32 ¶
Related Procedure Groups
gamma_f32be ¶
Related Procedure Groups
gamma_f32le ¶
Related Procedure Groups
gamma_f64 ¶
Related Procedure Groups
gamma_f64be ¶
Related Procedure Groups
gamma_f64le ¶
Related Procedure Groups
hypot_f16 ¶
Related Procedure Groups
hypot_f16be ¶
Related Procedure Groups
hypot_f16le ¶
Related Procedure Groups
hypot_f32 ¶
Related Procedure Groups
hypot_f32be ¶
Related Procedure Groups
hypot_f32le ¶
Related Procedure Groups
hypot_f64 ¶
Related Procedure Groups
hypot_f64be ¶
Related Procedure Groups
hypot_f64le ¶
Related Procedure Groups
ilogb_f16 ¶
Related Procedure Groups
ilogb_f16be ¶
Related Procedure Groups
ilogb_f16le ¶
Related Procedure Groups
ilogb_f32 ¶
Related Procedure Groups
ilogb_f32be ¶
Related Procedure Groups
ilogb_f32le ¶
Related Procedure Groups
ilogb_f64 ¶
Related Procedure Groups
ilogb_f64be ¶
Related Procedure Groups
ilogb_f64le ¶
Related Procedure Groups
is_inf_f16 ¶
is_inf reports whether f is an infinity, according to sign. If sign > 0, is_inf reports whether f is positive infinity. If sign < 0, is_inf reports whether f is negative infinity. If sign == 0, is_inf reports whether f is either infinity.
Related Procedure Groups
is_inf_f16be ¶
Related Procedure Groups
is_inf_f16le ¶
Related Procedure Groups
is_inf_f32 ¶
Related Procedure Groups
is_inf_f32be ¶
Related Procedure Groups
is_inf_f32le ¶
Related Procedure Groups
is_inf_f64 ¶
Related Procedure Groups
is_inf_f64be ¶
Related Procedure Groups
is_inf_f64le ¶
Related Procedure Groups
is_nan_f16 ¶
Related Procedure Groups
is_nan_f16be ¶
Related Procedure Groups
is_nan_f16le ¶
Related Procedure Groups
is_nan_f32 ¶
Related Procedure Groups
is_nan_f32be ¶
Related Procedure Groups
is_nan_f32le ¶
Related Procedure Groups
is_nan_f64 ¶
Related Procedure Groups
is_nan_f64be ¶
Related Procedure Groups
is_nan_f64le ¶
Related Procedure Groups
ldexp_f16 ¶
Related Procedure Groups
ldexp_f16be ¶
Related Procedure Groups
ldexp_f16le ¶
Related Procedure Groups
ldexp_f32 ¶
Related Procedure Groups
ldexp_f32be ¶
Related Procedure Groups
ldexp_f32le ¶
Related Procedure Groups
ldexp_f64 ¶
Related Procedure Groups
ldexp_f64be ¶
Related Procedure Groups
ldexp_f64le ¶
Related Procedure Groups
lgamma_f16 ¶
Related Procedure Groups
lgamma_f16be ¶
Related Procedure Groups
lgamma_f16le ¶
Related Procedure Groups
lgamma_f32 ¶
Related Procedure Groups
lgamma_f32be ¶
Related Procedure Groups
lgamma_f32le ¶
Related Procedure Groups
lgamma_f64 ¶
Related Procedure Groups
lgamma_f64be ¶
Related Procedure Groups
lgamma_f64le ¶
Related Procedure Groups
log10_f16 ¶
Related Procedure Groups
log10_f16be ¶
Related Procedure Groups
log10_f16le ¶
Related Procedure Groups
log10_f32 ¶
Related Procedure Groups
log10_f32be ¶
Related Procedure Groups
log10_f32le ¶
Related Procedure Groups
log10_f64 ¶
Related Procedure Groups
log10_f64be ¶
Related Procedure Groups
log10_f64le ¶
Related Procedure Groups
log1p_f16 ¶
Related Procedure Groups
log1p_f16be ¶
Related Procedure Groups
log1p_f16le ¶
Related Procedure Groups
log1p_f32 ¶
Related Procedure Groups
log1p_f32be ¶
Related Procedure Groups
log1p_f32le ¶
Related Procedure Groups
log1p_f64 ¶
Related Procedure Groups
log1p_f64be ¶
Related Procedure Groups
log1p_f64le ¶
Related Procedure Groups
log2_f16be ¶
Related Procedure Groups
log2_f16le ¶
Related Procedure Groups
log2_f32be ¶
Related Procedure Groups
log2_f32le ¶
Related Procedure Groups
log2_f64be ¶
Related Procedure Groups
log2_f64le ¶
Related Procedure Groups
log_f16 ¶
Related Procedure Groups
log_f16be ¶
Related Procedure Groups
log_f16le ¶
Related Procedure Groups
log_f32 ¶
Related Procedure Groups
log_f32be ¶
Related Procedure Groups
log_f32le ¶
Related Procedure Groups
log_f64 ¶
Related Procedure Groups
log_f64be ¶
Related Procedure Groups
log_f64le ¶
Related Procedure Groups
logb_f16be ¶
Related Procedure Groups
logb_f16le ¶
Related Procedure Groups
logb_f32be ¶
Related Procedure Groups
logb_f32le ¶
Related Procedure Groups
logb_f64be ¶
Related Procedure Groups
logb_f64le ¶
Related Procedure Groups
max ¶
max returns the maximum value of passed arguments of all the same type.
If one argument is passed and it is an enum or numeric type, then max returns the maximum value of the enum type's fields or its maximum numeric value respectively.
min ¶
min returns the minimum value of passed arguments of all the same type.
If one argument is passed and it is an enum or numeric type, then min returns the minimum value of the enum type's fields or its minimum / most negative numeric value respectively.
mod_f16 ¶
Related Procedure Groups
mod_f16be ¶
Related Procedure Groups
mod_f16le ¶
Related Procedure Groups
mod_f32 ¶
Related Procedure Groups
mod_f32be ¶
Related Procedure Groups
mod_f32le ¶
Related Procedure Groups
mod_f64 ¶
Related Procedure Groups
mod_f64be ¶
Related Procedure Groups
mod_f64le ¶
Related Procedure Groups
modf_f16 ¶
Related Procedure Groups
modf_f16be ¶
Related Procedure Groups
modf_f16le ¶
Related Procedure Groups
modf_f32 ¶
Related Procedure Groups
modf_f32be ¶
Related Procedure Groups
modf_f32le ¶
Related Procedure Groups
modf_f64 ¶
Related Procedure Groups
modf_f64be ¶
Related Procedure Groups
modf_f64le ¶
Related Procedure Groups
nan_f16be ¶
nan_f16be :: proc "contextless" () -> f16be {…}
nan_f16le ¶
nan_f16le :: proc "contextless" () -> f16le {…}
nan_f32be ¶
nan_f32be :: proc "contextless" () -> f32be {…}
nan_f32le ¶
nan_f32le :: proc "contextless" () -> f32le {…}
nan_f64be ¶
nan_f64be :: proc "contextless" () -> f64be {…}
nan_f64le ¶
nan_f64le :: proc "contextless" () -> f64le {…}
nextafter_f16 ¶
Related Procedure Groups
nextafter_f16be ¶
Related Procedure Groups
nextafter_f16le ¶
Related Procedure Groups
nextafter_f32 ¶
Related Procedure Groups
nextafter_f32be ¶
Related Procedure Groups
nextafter_f32le ¶
Related Procedure Groups
nextafter_f64 ¶
Related Procedure Groups
nextafter_f64be ¶
Related Procedure Groups
nextafter_f64le ¶
Related Procedure Groups
normalize_f16 ¶
Related Procedure Groups
normalize_f16be ¶
Related Procedure Groups
normalize_f16le ¶
Related Procedure Groups
normalize_f32 ¶
Related Procedure Groups
normalize_f32be ¶
Related Procedure Groups
normalize_f32le ¶
Related Procedure Groups
normalize_f64 ¶
Related Procedure Groups
normalize_f64be ¶
Related Procedure Groups
normalize_f64le ¶
Related Procedure Groups
pow10_f16 ¶
Related Procedure Groups
pow10_f16be ¶
Related Procedure Groups
pow10_f16le ¶
Related Procedure Groups
pow10_f32 ¶
Related Procedure Groups
pow10_f32be ¶
Related Procedure Groups
pow10_f32le ¶
Related Procedure Groups
pow10_f64 ¶
Related Procedure Groups
pow10_f64be ¶
Related Procedure Groups
pow10_f64le ¶
Related Procedure Groups
pow_f16 ¶
Related Procedure Groups
pow_f16be ¶
Related Procedure Groups
pow_f16le ¶
Related Procedure Groups
pow_f32 ¶
Related Procedure Groups
pow_f32be ¶
Related Procedure Groups
pow_f32le ¶
Related Procedure Groups
pow_f64 ¶
Related Procedure Groups
pow_f64be ¶
Related Procedure Groups
pow_f64le ¶
Related Procedure Groups
remainder_f16 ¶
Related Procedure Groups
remainder_f16be ¶
Related Procedure Groups
remainder_f16le ¶
Related Procedure Groups
remainder_f32 ¶
Related Procedure Groups
remainder_f32be ¶
Related Procedure Groups
remainder_f32le ¶
Related Procedure Groups
remainder_f64 ¶
Related Procedure Groups
remainder_f64be ¶
Related Procedure Groups
remainder_f64le ¶
Related Procedure Groups
remap ¶
remap :: proc "contextless" (old_value, old_min, old_max, new_min, new_max: $T) -> (x: $T) {…}
remap_clamped ¶
remap_clamped :: proc "contextless" (old_value, old_min, old_max, new_min, new_max: $T) -> (x: $T) {…}
round_f16 ¶
Related Procedure Groups
round_f16be ¶
Related Procedure Groups
round_f16le ¶
Related Procedure Groups
round_f32 ¶
Related Procedure Groups
round_f32be ¶
Related Procedure Groups
round_f32le ¶
Related Procedure Groups
round_f64 ¶
Related Procedure Groups
round_f64be ¶
Related Procedure Groups
round_f64le ¶
Related Procedure Groups
saturate ¶
saturate :: proc "contextless" (a: $T) -> (x: $T) {…}
sign_bit_f16 ¶
Related Procedure Groups
sign_bit_f16be ¶
Related Procedure Groups
sign_bit_f16le ¶
Related Procedure Groups
sign_bit_f32 ¶
Related Procedure Groups
sign_bit_f32be ¶
Related Procedure Groups
sign_bit_f32le ¶
Related Procedure Groups
sign_bit_f64 ¶
Related Procedure Groups
sign_bit_f64be ¶
Related Procedure Groups
sign_bit_f64le ¶
Related Procedure Groups
sign_f16be ¶
Related Procedure Groups
sign_f16le ¶
Related Procedure Groups
sign_f32be ¶
Related Procedure Groups
sign_f32le ¶
Related Procedure Groups
sign_f64be ¶
Related Procedure Groups
sign_f64le ¶
Related Procedure Groups
sin_f16be ¶
Related Procedure Groups
sin_f16le ¶
Related Procedure Groups
sin_f32be ¶
Related Procedure Groups
sin_f32le ¶
Related Procedure Groups
sin_f64be ¶
Related Procedure Groups
sin_f64le ¶
Related Procedure Groups
sincos_f16 ¶
Related Procedure Groups
sincos_f16be ¶
Related Procedure Groups
sincos_f16le ¶
Related Procedure Groups
sincos_f32 ¶
Related Procedure Groups
sincos_f32be ¶
Related Procedure Groups
sincos_f32le ¶
Related Procedure Groups
sincos_f64 ¶
Related Procedure Groups
sincos_f64be ¶
Related Procedure Groups
sincos_f64le ¶
Related Procedure Groups
smoothstep ¶
smoothstep :: proc "contextless" (edge0, edge1, x: $T) -> $T {…}
sqrt_f16be ¶
Related Procedure Groups
sqrt_f16le ¶
Related Procedure Groups
sqrt_f32be ¶
Related Procedure Groups
sqrt_f32le ¶
Related Procedure Groups
sqrt_f64be ¶
Related Procedure Groups
sqrt_f64le ¶
Related Procedure Groups
tan_f16be ¶
Related Procedure Groups
tan_f16le ¶
Related Procedure Groups
tan_f32be ¶
Related Procedure Groups
tan_f32le ¶
Related Procedure Groups
tan_f64be ¶
Related Procedure Groups
tan_f64le ¶
Related Procedure Groups
to_degrees_f16 ¶
Related Procedure Groups
to_degrees_f16be ¶
Related Procedure Groups
to_degrees_f16le ¶
Related Procedure Groups
to_degrees_f32 ¶
Related Procedure Groups
to_degrees_f32be ¶
Related Procedure Groups
to_degrees_f32le ¶
Related Procedure Groups
to_degrees_f64 ¶
Related Procedure Groups
to_degrees_f64be ¶
Related Procedure Groups
to_degrees_f64le ¶
Related Procedure Groups
to_radians_f16 ¶
Related Procedure Groups
to_radians_f16be ¶
Related Procedure Groups
to_radians_f16le ¶
Related Procedure Groups
to_radians_f32 ¶
Related Procedure Groups
to_radians_f32be ¶
Related Procedure Groups
to_radians_f32le ¶
Related Procedure Groups
to_radians_f64 ¶
Related Procedure Groups
to_radians_f64be ¶
Related Procedure Groups
to_radians_f64le ¶
Related Procedure Groups
trunc_f16 ¶
Related Procedure Groups
trunc_f16be ¶
Related Procedure Groups
trunc_f16le ¶
Related Procedure Groups
trunc_f32 ¶
Related Procedure Groups
trunc_f32be ¶
Related Procedure Groups
trunc_f32le ¶
Related Procedure Groups
trunc_f64 ¶
Related Procedure Groups
trunc_f64be ¶
Related Procedure Groups
trunc_f64le ¶
Related Procedure Groups
Procedure Groups
acos ¶
acos :: proc{ acos_f64, acos_f32, acos_f16, acos_f64le, acos_f64be, acos_f32le, acos_f32be, acos_f16le, acos_f16be, }
Return the arc cosine of x, in radians. Defined on the domain of [-1, 1] with a range of [0, π].
asin ¶
asin :: proc{ asin_f64, asin_f32, asin_f16, asin_f64le, asin_f64be, asin_f32le, asin_f32be, asin_f16le, asin_f16be, }
Return the arc sine of x, in radians. Defined on the domain of [-1, 1] with a range of [-π/2, π/2]
atan2 ¶
atan2 :: proc{ atan2_f64, atan2_f32, atan2_f16, atan2_f64le, atan2_f64be, atan2_f32le, atan2_f32be, atan2_f16le, atan2_f16be, }
Return the arc tangent of y/x in radians. Defined on the domain [-∞, ∞] for x and y with a range of [-π, π]
Special cases:
atan2(y, NaN) = NaN atan2(NaN, x) = NaN atan2(+0, x>=0) = + 0 atan2(-0, x>=0) = - 0 atan2(+0, x<=-0) = + π atan2(-0, x<=-0) = - π atan2(y>0, 0) = + π/2 atan2(y<0, 0) = - π/2 atan2(+∞, +∞) = + π/4 atan2(-∞, +∞) = - π/4 atan2(+∞, -∞) = 3π/4 atan2(-∞, -∞) = - 3π/4 atan2(y, +∞) = 0 atan2(y>0, -∞) = + π atan2(y<0, -∞) = - π atan2(+∞, x) = + π/2 atan2(-∞, x) = - π/2
ceil ¶
ceil :: proc{ ceil_f16, ceil_f16le, ceil_f16be, ceil_f32, ceil_f32le, ceil_f32be, ceil_f64, ceil_f64le, ceil_f64be, }
classify ¶
classify :: proc{ classify_f16, classify_f16le, classify_f16be, classify_f32, classify_f32le, classify_f32be, classify_f64, classify_f64le, classify_f64be, }
Returns the Float_Class of the value, i.e. whether normal, subnormal, zero, negative zero, NaN, infinity or
negative infinity.
copy_sign ¶
copy_sign :: proc{ copy_sign_f16, copy_sign_f16le, copy_sign_f16be, copy_sign_f32, copy_sign_f32le, copy_sign_f32be, copy_sign_f64, copy_sign_f64le, copy_sign_f64be, }
cos ¶
cos :: proc{ cos_f16, cos_f16le, cos_f16be, cos_f32, cos_f32le, cos_f32be, cos_f64, cos_f64le, cos_f64be, }
Return the cosine of θ in radians.
erfc ¶
erfc :: proc{ erfc_f16, erfc_f16le, erfc_f16be, erfc_f32, erfc_f32le, erfc_f32be, erfc_f64, }
floor ¶
floor :: proc{ floor_f16, floor_f16le, floor_f16be, floor_f32, floor_f32le, floor_f32be, floor_f64, floor_f64le, floor_f64be, }
fmuladd ¶
fmuladd :: proc{ fmuladd_f16, fmuladd_f16le, fmuladd_f16be, fmuladd_f32, fmuladd_f32le, fmuladd_f32be, fmuladd_f64, fmuladd_f64le, fmuladd_f64be, }
frexp ¶
frexp :: proc{ frexp_f16, frexp_f16le, frexp_f16be, frexp_f32, frexp_f32le, frexp_f32be, frexp_f64, frexp_f64le, frexp_f64be, }
frexp breaks the value into a normalized fraction, and an integral power of two It returns a significand and exponent satisfying x == significand 2*exponent with the absolute value of significand in the intervalue of [0.5, 1).
Special cases:
frexp(+0) = +0, 0 frexp(-0) = -0, 0 frexp(+inf) = +inf, 0 frexp(-inf) = -inf, 0 frexp(NaN) = NaN, 0
gamma ¶
gamma :: proc{ gamma_f16, gamma_f16le, gamma_f16be, gamma_f32, gamma_f32le, gamma_f32be, gamma_f64, gamma_f64le, gamma_f64be, }
hypot ¶
hypot :: proc{ hypot_f16, hypot_f16le, hypot_f16be, hypot_f32, hypot_f32le, hypot_f32be, hypot_f64, hypot_f64le, hypot_f64be, }
hypot returns Sqrt(pp + qq), taking care to avoid unnecessary overflow and underflow.
Special cases:
hypot(±Inf, q) = +Inf hypot(p, ±Inf) = +Inf hypot(NaN, q) = NaN hypot(p, NaN) = NaN
ilogb ¶
ilogb :: proc{ ilogb_f16, ilogb_f32, ilogb_f64, ilogb_f16le, ilogb_f16be, ilogb_f32le, ilogb_f32be, ilogb_f64le, ilogb_f64be, }
is_inf ¶
is_inf :: proc{ is_inf_f16, is_inf_f16le, is_inf_f16be, is_inf_f32, is_inf_f32le, is_inf_f32be, is_inf_f64, is_inf_f64le, is_inf_f64be, }
is_nan ¶
is_nan :: proc{ is_nan_f16, is_nan_f16le, is_nan_f16be, is_nan_f32, is_nan_f32le, is_nan_f32be, is_nan_f64, is_nan_f64le, is_nan_f64be, }
ldexp ¶
ldexp :: proc{ ldexp_f16, ldexp_f16le, ldexp_f16be, ldexp_f32, ldexp_f32le, ldexp_f32be, ldexp_f64, ldexp_f64le, ldexp_f64be, }
ldexp is the inverse of frexp it returns val 2*exp.
Special cases:
ldexp(+0, exp) = +0 ldexp(-0, exp) = -0 ldexp(+inf, exp) = +inf ldexp(-inf, exp) = -inf ldexp(NaN, exp) = NaN
lgamma ¶
lgamma :: proc{ lgamma_f16, lgamma_f16le, lgamma_f16be, lgamma_f32, lgamma_f32le, lgamma_f32be, lgamma_f64, lgamma_f64le, lgamma_f64be, }
log10 ¶
log10 :: proc{ log10_f16, log10_f16le, log10_f16be, log10_f32, log10_f32le, log10_f32be, log10_f64, log10_f64le, log10_f64be, }
log1p ¶
log1p :: proc{ log1p_f16, log1p_f32, log1p_f64, log1p_f16le, log1p_f16be, log1p_f32le, log1p_f32be, log1p_f64le, log1p_f64be, }
log2 ¶
log2 :: proc{ log2_f16, log2_f16le, log2_f16be, log2_f32, log2_f32le, log2_f32be, log2_f64, log2_f64le, log2_f64be, }
logb ¶
logb :: proc{ logb_f16, logb_f32, logb_f64, logb_f16le, logb_f16be, logb_f32le, logb_f32be, logb_f64le, logb_f64be, }
modf ¶
modf :: proc{ modf_f16, modf_f16le, modf_f16be, modf_f32, modf_f32le, modf_f32be, modf_f64, modf_f64le, modf_f64be, }
nextafter ¶
nextafter :: proc{ nextafter_f16, nextafter_f16le, nextafter_f16be, nextafter_f32, nextafter_f32le, nextafter_f32be, nextafter_f64, nextafter_f64le, nextafter_f64be, }
normalize ¶
normalize :: proc{ normalize_f16, normalize_f32, normalize_f64, normalize_f16le, normalize_f16be, normalize_f32le, normalize_f32be, normalize_f64le, normalize_f64be, }
pow10 ¶
pow10 :: proc{ pow10_f16, pow10_f16le, pow10_f16be, pow10_f32, pow10_f32le, pow10_f32be, pow10_f64, pow10_f64le, pow10_f64be, }
remainder ¶
remainder :: proc{ remainder_f16, remainder_f16le, remainder_f16be, remainder_f32, remainder_f32le, remainder_f32be, remainder_f64, remainder_f64le, remainder_f64be, }
round ¶
round :: proc{ round_f16, round_f16le, round_f16be, round_f32, round_f32le, round_f32be, round_f64, round_f64le, round_f64be, }
sign ¶
sign :: proc{ sign_f16, sign_f16le, sign_f16be, sign_f32, sign_f32le, sign_f32be, sign_f64, sign_f64le, sign_f64be, }
sign_bit ¶
sign_bit :: proc{ sign_bit_f16, sign_bit_f16le, sign_bit_f16be, sign_bit_f32, sign_bit_f32le, sign_bit_f32be, sign_bit_f64, sign_bit_f64le, sign_bit_f64be, }
sin ¶
sin :: proc{ sin_f16, sin_f16le, sin_f16be, sin_f32, sin_f32le, sin_f32be, sin_f64, sin_f64le, sin_f64be, }
Return the sine of θ in radians.
sincos ¶
sincos :: proc{ sincos_f16, sincos_f16le, sincos_f16be, sincos_f32, sincos_f32le, sincos_f32be, sincos_f64, sincos_f64le, sincos_f64be, }
split_decimal ¶
split_decimal :: proc{ modf_f16, modf_f16le, modf_f16be, modf_f32, modf_f32le, modf_f32be, modf_f64, modf_f64le, modf_f64be, }
sqrt ¶
sqrt :: proc{ sqrt_f16, sqrt_f16le, sqrt_f16be, sqrt_f32, sqrt_f32le, sqrt_f32be, sqrt_f64, sqrt_f64le, sqrt_f64be, }
tan ¶
tan :: proc{ tan_f16, tan_f16le, tan_f16be, tan_f32, tan_f32le, tan_f32be, tan_f64, tan_f64le, tan_f64be, }
Return the tangent of θ in radians.
to_degrees ¶
to_degrees :: proc{ to_degrees_f16, to_degrees_f16le, to_degrees_f16be, to_degrees_f32, to_degrees_f32le, to_degrees_f32be, to_degrees_f64, to_degrees_f64le, to_degrees_f64be, }
to_radians ¶
to_radians :: proc{ to_radians_f16, to_radians_f16le, to_radians_f16be, to_radians_f32, to_radians_f32le, to_radians_f32be, to_radians_f64, to_radians_f64le, to_radians_f64be, }
trunc ¶
trunc :: proc{ trunc_f16, trunc_f16le, trunc_f16be, trunc_f32, trunc_f32le, trunc_f32be, trunc_f64, trunc_f64le, trunc_f64be, }
Removes the fractional part of the value, i.e. rounds towards zero.
Source Files
- math.odin
- math_basic.odin
- math_erf.odin
- math_gamma.odin
- math_lgamma.odin
- math_log1p.odin
- math_sincos.odin
Generation Information
Generated with odin version dev-2025-10 (vendor "odin") Windows_amd64 @ 2025-10-28 21:13:04.344787300 +0000 UTC