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: Difference between revisions

From FIGHTORDER
imported>Deadnight warrior
imported>Beherith
→Additional math functions: move to luacallout format
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Engine_Development|Development]] < [[Lua_Scripting|Lua Scripting]] < {{FULLPAGENAME}}
[[Engine_Development|Development]] < [[Lua_Scripting|Lua Scripting]] < {{FULLPAGENAME}}


== Additional math functions {{HeaderNotice|(added in: 94.1.1311)}}==
= Additional math functions=
'''math.hypot'''
  ( number x, number y ) -> number
  <span class="note">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 internaly handles intermediate
  overflows/underflows, but is also slower.</span>


'''math.diag'''
New in Engine Version 0.95 and up.
  ( number x1 [, ... ] ] ) -> number
 
  <span class="note">Returns the length of diagonal of an n-dimensional box. Rather quick method that does not
{{LuaCallout
  handle intermediate overflows/underflows nor is made for numerical stability.</span>
|prefix = math.
|name = clamp
|arg1 = {{type|number}} x
|arg2 = {{type|number}} min
|arg3 = {{type|number}} max
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} clamped
|info = Returns x clamped to min and max boundaries.
}}
 
{{LuaCallout
|prefix = math.
|name = diag
|arg1 = {{type|number}} x1
|arg2 = {{type|number}} x2
|arg3 = {{type|number}} x3, ...
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} diagonal
|info = 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.
}}
 
{{LuaCallout
|prefix = math.
|name = erf
|arg1 = {{type|number}} x
|arg2 =
|arg3 =
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} erf
|info = Returns [http://en.wikipedia.org/wiki/Error_function erf](x).
}}
 
{{LuaCallout
|prefix = math.
|name = hypot
|arg1 = {{type|number}} x
|arg2 = {{type|number}} y
|arg3 =
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} sqrt(x*x+y*y)
|info = 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.
}}
 
{{LuaCallout
|prefix = math.
|name = mix
|arg1 = {{type|number}} x
|arg2 = {{type|number}} y
|arg3 = {{type|number}} a
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} (x+(y-x)*a)
|info = Returns linear interpolation between x and y with ratio a (x+(y-x)*a).
}}
 
{{LuaCallout
|prefix = math.
|name = round
|arg1 = {{type|number}} x
|arg2 = {{type|number}} decimals
|arg3 =
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} rounded
|info = 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.
}}
 
{{LuaCallout
|prefix = math.
|name = sgn
|arg1 = {{type|number}} x
|arg2 =
|arg3 =
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} sign
|info = Returns 0 if x ==0, 1 if x > 0, -1 if x < 0 [http://en.wikipedia.org/wiki/Sign_function sgn](x).
}}
 
{{LuaCallout
|prefix = math.
|name = smoothstep
|arg1 = {{type|number}} edge0
|arg2 = {{type|number}} edge1
|arg3 = {{type|number}} x
|arg4 =
|arg5 =
|arg6 =
|arg7 =
|arg8 =
|arg9 =
|return = {{type|number}} smoothstep
|info = Returns [http://en.wikipedia.org/wiki/Smoothstep smoothstep](edge0, edge1, v).
}}


'''math.clamp'''
  ( number x, number min, number max ) -> number
  <span class="note">Returns x clamped to min and max boundaries.</span>
[[category: Lua]]
[[category: Lua]]

Latest revision as of 11:42, 1 August 2022

Development < Lua Scripting < Lua MathExtra

Additional math functions

New in Engine Version 0.95 and up.

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}clamp ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number min, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number max )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number clamped

Returns x clamped to min and max boundaries.

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}diag ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x1, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x2, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x3, ... )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}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.

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}erf ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number erf

Returns erf(x).

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}hypot ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number y )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}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.

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}mix ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number y, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number a )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number (x+(y-x)*a)

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

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}round ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number decimals )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}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.

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}sgn ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number sign

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

{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}math.{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}smoothstep ( {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number edge0, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number edge1, {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number x )
return: {{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}{{#css:

 span.value {
   color:#e65c00;
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.type {
   color:#0099cc; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }
 span.prefix {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
 }   
 span.name {
   color:#105289; 
   font-family: ‘Lucida Console’, Monaco, monospace;
   font-weight:bold;
 }
 span.var {
   font-family: ‘Lucida Console’, Monaco, monospace;
 }

}}number smoothstep

Returns smoothstep(edge0, edge1, v).