math⚓︎
This library is an interface to the standard C math library. This library has been further extended by MWSE. The functions implemented by MWSE are listed here. It provides all its functions inside the table math.
Properties⚓︎
math.epsilon
⚓︎
The machine epsilon available for double-precision numbers. This is the difference between 1.0 and the next representable value using lua numbers.
Returns:
result
(number)
math.fepsilon
⚓︎
The machine epsilon available for single-precision numbers. This is the difference between 1.0 and the next representable value for many Morrowind structures.
Returns:
result
(number)
math.fhuge
⚓︎
The machine maximum available value for single-precision numbers. This is the maximum representable value for any floating-point Morrowind structures.
Returns:
result
(number)
math.nfhuge
⚓︎
The machine minimum available value for single-precision numbers. This is the minimum representable value for any floating-point Morrowind structures.
Returns:
result
(number)
Functions⚓︎
math.clamp
⚓︎
Returns a value, limited by upper and lower bounds.
local result = math.clamp(value, min, max)
Parameters:
value
(number)min
(number)max
(number)
Returns:
result
(number)
math.isclose
⚓︎
This function compares a
and b
and returns true if they are close together. This can be useful when comparing floating-point numbers with some degree of tolerance.
local result = math.isclose(a, b, absoluteTolerance, relativeTolerance)
Parameters:
a
(number): First value.b
(number): Second value.absoluteTolerance
(number): Default:math.epsilon
. The absolute difference allowed between the two numbers. A value of 0.01 will only allow the values to differ by 0.01.relativeTolerance
(number): Default:1e-09
. The relative difference allowed between the two numbers. A value of 0.01 will only allow the values to differ by 1%.
Returns:
result
(number)
math.lerp
⚓︎
Performs linear interpolation between values v0 and v1. Returns a value that is t percent between them.
local result = math.lerp(v0, v1, t)
Parameters:
v0
(number): First value.v1
(number): Second value.t
(number): The decimal percentage used to calculate a point between v0 and v1.
Returns:
result
(number)
math.nextPowerOfTwo
⚓︎
Returns the next power of 2 that is equal to, or greater than, value.
local result = math.nextPowerOfTwo(value)
Parameters:
value
(number)
Returns:
result
(integer)
math.remap
⚓︎
Returns a value, scaled from expected values [lowIn, highIn] to [lowOut, highOut].
For example, a value of 7 remapped from [0,10] to [0,100] would be 70.
local result = math.remap(value, lowIn, highIn, lowOut, highOut)
Parameters:
value
(number)lowIn
(number)highIn
(number)lowOut
(number)highOut
(number)
Returns:
result
(number)
math.round
⚓︎
Rounds a number to a given count of digits.
local result = math.round(value, digits)
Parameters:
value
(number)digits
(number): Default:0
.
Returns:
result
(number)