Typical trignometric and other basic math routines.

Collection Info

View Source
Collection
core
Path
math
Entries
581

Source Files

Constants

74

F64_DIG #

Source
F64_DIG :: 15

Number of representable decimal digits.

F64_EPSILON #

Source
F64_EPSILON :: 2.2204460492503131e-016

Smallest number such that `1.0 + F64_EPSILON != 1.0`.

F64_MANT_DIG #

Source
F64_MANT_DIG :: 53

Number of bits in the mantissa.

F64_MAX #

Source
F64_MAX :: 1.7976931348623158e+308

Maximum representable value.

F64_MAX_10_EXP #

Source
F64_MAX_10_EXP :: 308

Maximum base-10 exponent yielding normalized value.

F64_MAX_EXP #

Source
F64_MAX_EXP :: 1024

One greater than the maximum possible base-2 exponent yielding normalized value.

F64_MIN #

Source
F64_MIN :: 2.2250738585072014e-308

Minimum positive normalized value.

F64_MIN_10_EXP #

Source
F64_MIN_10_EXP :: -307

Minimum base-10 exponent yielding normalized value.

F64_MIN_EXP #

Source
F64_MIN_EXP :: -1021

One greater than the minimum possible base-2 exponent yielding normalized value.

MAX_F16_PRECISION #

Source
MAX_F16_PRECISION :: 4

Maximum number of meaningful digits after the decimal point for 'f16'

MAX_F32_PRECISION #

Source
MAX_F32_PRECISION :: 8

Maximum number of meaningful digits after the decimal point for 'f32'

MAX_F64_PRECISION #

Source
MAX_F64_PRECISION :: 16

Maximum number of meaningful digits after the decimal point for 'f64'

SQRT_FIVE #

Source
SQRT_FIVE :: 2.23606797749978969640917366873127623

SQRT_THREE #

Source
SQRT_THREE :: 1.73205080756887729352744634150587236

Types

1

Procedures

462

acosh #

Source
@(require_results)
acosh :: proc "contextless" (y: $T) -> $$deferred_return {…}

angle_diff #

Source
@(require_results)
angle_diff :: proc "contextless" (a, b: $T) -> $$deferred_return {…}

angle_lerp #

Source
@(require_results)
angle_lerp :: proc "contextless" (a, b, t: $T) -> $$deferred_return {…}

asinh #

Source
@(require_results)
asinh :: proc "contextless" (y: $T) -> $$deferred_return {…}

atan #

Source
@(require_results)
atan :: proc "contextless" (x: $T) -> $$deferred_return {…}

Return the arc tangent of x, in radians. Defined on the domain of [-∞, ∞] with a range of [-π/2, π/2]

atanh #

Source
@(require_results)
atanh :: proc "contextless" (y: $T) -> $$deferred_return {…}

bias #

Source
@(require_results)
bias :: proc "contextless" (t, b: $T) -> $$deferred_return {…}

copy_sign_f16 #

Source
@(require_results)
copy_sign_f16 :: proc "contextless" (x, y: f16) -> f16 {…}

copy_sign_f32 #

Source
@(require_results)
copy_sign_f32 :: proc "contextless" (x, y: f32) -> f32 {…}

copy_sign_f64 #

Source
@(require_results)
copy_sign_f64 :: proc "contextless" (x, y: f64) -> f64 {…}

cosh #

Source
@(require_results)
cosh :: proc "contextless" (x: $T) -> $$deferred_return {…}

count_digits_of_base #

Source
@(require_results)
count_digits_of_base :: proc "contextless" (value: $T, $base: int) -> (digits: int) {…}

cumsum #

Source
@(require_results)
cumsum :: proc "contextless" (dst, src: $T/[]$E) -> $$deferred_return {…}

cumsum_inplace #

Source
cumsum_inplace :: proc "contextless" (x: $T/[]$E) {…}

divmod #

Source
@(require_results)
divmod :: proc "contextless" (x, y: $T) -> (div, mod: $$deferred_return) {…}

floor_div #

Source
@(require_results)
floor_div :: proc "contextless" (x, y: $T) -> $$deferred_return {…}

floor_divmod #

Source
@(require_results)
floor_divmod :: proc "contextless" (x, y: $T) -> (div, mod: $$deferred_return) {…}

floor_mod #

Source
@(require_results)
floor_mod :: proc "contextless" (x, y: $T) -> $$deferred_return {…}

fmuladd_f16 #

Source
@(require_results)
fmuladd_f16 :: proc "contextless" (a, b, c: f16) -> f16 {…}

fmuladd_f32 #

Source
@(require_results)
fmuladd_f32 :: proc "contextless" (a, b, c: f32) -> f32 {…}

fmuladd_f64 #

Source
@(require_results)
fmuladd_f64 :: proc "contextless" (a, b, c: f64) -> f64 {…}

frexp_f16 #

Source
@(require_results)
frexp_f16 :: proc "contextless" (x: f16) -> (significand: f16, exponent: int) {…}

frexp_f32 #

Source
@(require_results)
frexp_f32 :: proc "contextless" (x: f32) -> (significand: f32, exponent: int) {…}

frexp_f64 #

Source
@(require_results)
frexp_f64 :: proc "contextless" (f: f64) -> (significand: f64, exponent: int) {…}

gain #

Source
@(require_results)
gain :: proc "contextless" (t, g: $T) -> $$deferred_return {…}

gcd #

Source
@(require_results)
gcd :: proc "contextless" (x, y: $T) -> $$deferred_return {…}

hypot_f16 #

Source
@(require_results)
hypot_f16 :: proc "contextless" (x, y: f16) -> (r: f16) {…}

hypot_f32 #

Source
@(require_results)
hypot_f32 :: proc "contextless" (x, y: f32) -> (r: f32) {…}

hypot_f64 #

Source
@(require_results)
hypot_f64 :: proc "contextless" (x, y: f64) -> (r: f64) {…}

is_inf_f16 #

Source
@(require_results)
is_inf_f16 :: proc "contextless" (x: f16, sign: int = 0) -> bool {…}

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.

is_power_of_two #

Source
@(require_results)
is_power_of_two :: proc "contextless" (x: int) -> bool {…}

lcm #

Source
@(require_results)
lcm :: proc "contextless" (x, y: $T) -> $$deferred_return {…}

lerp #

Source
@(require_results)
lerp :: proc "contextless" (a, b: $T, t: $E) -> (x: $$deferred_return) {…}

lgamma_f16 #

Source
@(require_results)
lgamma_f16 :: proc "contextless" (x: f16) -> (lgamma: f16, sign: int) {…}

lgamma_f32 #

Source
@(require_results)
lgamma_f32 :: proc "contextless" (x: f32) -> (lgamma: f32, sign: int) {…}

lgamma_f64 #

Source
@(require_results)
lgamma_f64 :: proc "contextless" (x: f64) -> (lgamma: f64, sign: int) {…}

next_power_of_two #

Source
@(require_results)
next_power_of_two :: proc "contextless" (x: int) -> int {…}

nextafter_f16 #

Source
@(require_results)
nextafter_f16 :: proc "contextless" (x, y: f16) -> (r: f16) {…}

nextafter_f32 #

Source
@(require_results)
nextafter_f32 :: proc "contextless" (x, y: f32) -> (r: f32) {…}

nextafter_f64 #

Source
@(require_results)
nextafter_f64 :: proc "contextless" (x, y: f64) -> (r: f64) {…}

normalize_f16 #

Source
@(require_results)
normalize_f16 :: proc "contextless" (x: f16) -> (y: f16, exponent: int) {…}

normalize_f32 #

Source
@(require_results)
normalize_f32 :: proc "contextless" (x: f32) -> (y: f32, exponent: int) {…}

normalize_f64 #

Source
@(require_results)
normalize_f64 :: proc "contextless" (x: f64) -> (y: f64, exponent: int) {…}

pow2_f16 #

Source
@(require_results)
pow2_f16 :: proc "contextless" (#any_int exp: int) -> (res: f16) {…}

pow2_f32 #

Source
@(require_results)
pow2_f32 :: proc "contextless" (#any_int exp: int) -> (res: f32) {…}

pow2_f64 #

Source
@(require_results)
pow2_f64 :: proc "contextless" (#any_int exp: int) -> (res: f64) {…}

prod #

Source
@(require_results)
prod :: proc "contextless" (x: $T/[]$E) -> (res: $$deferred_return) {…}

remainder_f16 #

Source
@(require_results)
remainder_f16 :: proc "contextless" (x, y: f16) -> f16 {…}

remainder_f32 #

Source
@(require_results)
remainder_f32 :: proc "contextless" (x, y: f32) -> f32 {…}

remainder_f64 #

Source
@(require_results)
remainder_f64 :: proc "contextless" (x, y: f64) -> f64 {…}

remap #

Source
@(require_results)
remap :: proc "contextless" (old_value, old_min, old_max, new_min, new_max: $T) -> (x: $$deferred_return) {…}

remap_clamped #

Source
@(require_results)
remap_clamped :: proc "contextless" (old_value, old_min, old_max, new_min, new_max: $T) -> (x: $$deferred_return) {…}

saturate #

Source
@(require_results)
saturate :: proc "contextless" (a: $T) -> (x: $$deferred_return) {…}

sinh #

Source
@(require_results)
sinh :: proc "contextless" (x: $T) -> $$deferred_return {…}

smoothstep #

Source
@(require_results)
smoothstep :: proc "contextless" (edge0, edge1, x: $T) -> $$deferred_return {…}

step #

Source
@(require_results)
step :: proc "contextless" (edge, x: $T) -> $$deferred_return {…}

sum #

Source
@(require_results)
sum :: proc "contextless" (x: $T/[]$E) -> (res: $$deferred_return) {…}

tanh #

Source
@(require_results)
tanh :: proc "contextless" (y: $T) -> $$deferred_return {…}

to_degrees_f16 #

Source
@(require_results)
to_degrees_f16 :: proc "contextless" (radians: f16) -> f16 {…}

to_degrees_f32 #

Source
@(require_results)
to_degrees_f32 :: proc "contextless" (radians: f32) -> f32 {…}

to_degrees_f64 #

Source
@(require_results)
to_degrees_f64 :: proc "contextless" (radians: f64) -> f64 {…}

to_radians_f16 #

Source
@(require_results)
to_radians_f16 :: proc "contextless" (degrees: f16) -> f16 {…}

to_radians_f32 #

Source
@(require_results)
to_radians_f32 :: proc "contextless" (degrees: f32) -> f32 {…}

to_radians_f64 #

Source
@(require_results)
to_radians_f64 :: proc "contextless" (degrees: f64) -> f64 {…}

unlerp #

Source
@(require_results)
unlerp :: proc "contextless" (a, b, x: $T) -> (t: $$deferred_return) {…}

wrap #

Source
@(require_results)
wrap :: proc "contextless" (x, y: $T) -> $$deferred_return {…}

Procedure Groups

44

atan2 #

Source
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