Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Lua MathExtra

From Fightorder
Revision as of 21:52, 23 February 2026 by Qrow (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Development < Lua Scripting < Lua MathExtra

Additional math functions

New in Engine Version 0.95 and up.

math.clamp ( number x, number min, number max )
return: number clamped

Returns x clamped to min and max boundaries.

math.diag ( number x1, number x2, number x3, ... )
return: number diagonal

Returns the length of the diagonal of an n-dimensional box (or the length of an n-component vector). Rather quick method that does not handle intermediate overflows/underflows nor is made for numerical stability.

math.erf ( number x )
return: number erf

Returns erf(x).

math.hypot ( number x, number y )
return: number sqrt(x*x+y*y)

Returns the length of hypotenuse of right angle triangle with sides x and y, equivalent to sqrt(x*x + y*y), but has better numerical stability and internally handles intermediate overflows/underflows, but is also slower.

math.mix ( number x, number y, number a )
return: number (x+(y-x)*a)

Returns linear interpolation between x and y with ratio a (x+(y-x)*a).

math.round ( number x, number decimals )
return: number rounded

Returns x rounded to n decimals, if n is omitted or <=0, rounds to nearest integer. Note that Spring's Lua interpreter uses 32-bit floats for all numbers so max. precision is ~7 decimal digits.

math.sgn ( number x )
return: number sign

Returns 0 if x ==0, 1 if x > 0, -1 if x < 0 sgn(x).

math.smoothstep ( number edge0, number edge1, number x )
return: number smoothstep

Returns smoothstep(edge0, edge1, v).