Skip to content

Math

Auto-generated from src/stdlib/math.mcrs — do not edit manually.

API


abs v1.0.0

Return the absolute value of x.

redscript
fn abs<T>(x: T) -> T

Parameters

ParameterDescription
xThe input value (any numeric type T)

Returns: x if x >= 0, else -x

Example

redscript
let a = abs(-5)   // result: 5
let b = abs(3)    // result: 3

sign v1.0.0

Return the sign of x: 1, 0, or -1.

redscript
fn sign(x: int) -> int

Parameters

ParameterDescription
xInput integer

Returns: 1 if x > 0, -1 if x < 0, 0 if x == 0

Example

redscript
let s = sign(-42)  // result: -1

min v1.0.0

Return the smaller of two values.

redscript
fn min<T>(a: T, b: T) -> T

Parameters

ParameterDescription
aFirst value
bSecond value

Returns: a if a < b, else b

Example

redscript
let m = min(3, 7)  // result: 3

max v1.0.0

Return the larger of two values.

redscript
fn max<T>(a: T, b: T) -> T

Parameters

ParameterDescription
aFirst value
bSecond value

Returns: a if a > b, else b

Example

redscript
let m = max(3, 7)  // result: 7

clamp v1.0.0

Clamp x to the range [lo, hi].

redscript
fn clamp<T>(x: T, lo: T, hi: T) -> T

Parameters

ParameterDescription
xInput value
loLower bound (inclusive)
hiUpper bound (inclusive)

Returns: lo if x < lo; hi if x > hi; otherwise x

Example

redscript
let c = clamp(150, 0, 100)  // result: 100
let d = clamp(50, 0, 100)   // result: 50

lerp v1.0.0

Linear interpolation between a and b using fixed-point t in [0, 1000].

redscript
fn lerp(a: int, b: int, t: int) -> int

Parameters

ParameterDescription
aStart value
bEnd value
tInterpolation factor ×1000 (0 = a, 1000 = b)

Returns: a + (b - a) * t / 1000

Example

redscript
let v = lerp(0, 1000, 500)    // result: 500
let w = lerp(100, 200, 750)   // result: 175

sqrt_fixed v1.0.0

Fixed-point square root (scale = 1000).

redscript
fn sqrt_fixed(x: int) -> int

Parameters

ParameterDescription
xInput value ×1000 (i.e. 2.0 → 2000)

Returns: sqrt(x/1000) × 1000

Example

redscript
let s = sqrt_fixed(2000)  // result: ~1414  (√2 × 1000)
let t = sqrt_fixed(1000)  // result: 1000   (√1 × 1000)

Released under the MIT License.