Files

484 lines
5.7 KiB
Markdown

---
tags: api/lua
references:
- client/space_lua/stdlib/math.ts
---
The `math` namespace contains Lua-compatible numeric functions plus Space Lua's `cosineSimilarity` helper.
<!--#lua spacelua.renderApiDocumentation("math") -->
## math.abs
`math.abs(x)`
Returns the absolute value of `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.acos
`math.acos(x)`
Returns the arc cosine of `x` in radians.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.asin
`math.asin(x)`
Returns the arc sine of `x` in radians.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.atan
`math.atan(y, x?)`
Returns the arc tangent of `y/x` in radians, using `1` for omitted `x`.
**Parameters:**
- `y` (`number`)
- `x?` (`number`)
**Returns:**
- `number`
## math.ceil
`math.ceil(x)`
Returns the smallest integer greater than or equal to `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `integer`
## math.cos
`math.cos(x)`
Returns the cosine of `x` radians.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.cosh
`math.cosh(x)`
> **Deprecated:** Retained for compatibility with older Lua versions.
Returns the hyperbolic cosine of `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.cosineSimilarity
`math.cosineSimilarity(vecA, vecB)`
Returns the cosine similarity between two equal-length numeric vectors.
**Parameters:**
- `vecA` (`table`)
- `vecB` (`table`)
**Returns:**
- `number` — Cosine similarity.
**Example:**
```lua
print(math.cosineSimilarity({1, 2, 3}, {4, 5, 6}))
```
## math.deg
`math.deg(x)`
Converts an angle from radians to degrees.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
**Example:**
```lua
print(math.deg(math.pi)) -- 180
```
## math.exp
`math.exp(x)`
Returns `e` raised to `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.floor
`math.floor(x)`
Returns the largest integer less than or equal to `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `integer`
## math.fmod
`math.fmod(x, y)`
Returns the remainder of `x / y` with the quotient rounded toward zero.
**Parameters:**
- `x` (`number`)
- `y` (`number`)
**Returns:**
- `number`
## math.frexp
`math.frexp(x)`
Decomposes `x` into a normalized fraction and a power-of-two exponent.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number` — Fraction.
- `integer` — Exponent.
## math.ldexp
`math.ldexp(m, e)`
Returns `m * 2^e`, the inverse of `math.frexp`.
**Parameters:**
- `m` (`number`)
- `e` (`integer`)
**Returns:**
- `number`
## math.log
`math.log(x, base?)`
Returns the logarithm of `x`, using the natural base unless another base is supplied.
**Parameters:**
- `x` (`number`)
- `base?` (`number`)
**Returns:**
- `number`
**Example:**
```lua
print(math.log(100, 10)) -- 2
```
## math.max
`math.max(x, ...): number`
Returns the greatest of its arguments.
**Returns:**
- `number`
## math.min
`math.min(x, ...): number`
Returns the least of its arguments.
**Returns:**
- `number`
## math.modf
`math.modf(x)`
Splits `x` into its integral and fractional parts.
**Parameters:**
- `x` (`number`)
**Returns:**
- `integer` — Integral part.
- `float` — Fractional part.
**Example:**
```lua
local integer, fraction = math.modf(3.14)
```
## math.pow
`math.pow(x, y)`
> **Deprecated:** Use the `^` operator instead.
Returns `x` raised to the power `y`.
**Parameters:**
- `x` (`number`)
- `y` (`number`)
**Returns:**
- `number`
## math.rad
`math.rad(x)`
Converts an angle from degrees to radians.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.random
`math.random(): number`
`math.random(n): integer`
`math.random(m, n): integer`
Returns a pseudo-random float or an integer in a requested inclusive range.
**Parameters:**
- `m?` (`integer`)
- `n?` (`integer`)
**Returns:**
- `number` — Pseudo-random result.
**Example:**
```lua
print(math.random())
print(math.random(10))
print(math.random(5, 10))
```
## math.randomseed
`math.randomseed(): integer, integer`
`math.randomseed(x, y): integer, integer`
Seeds the pseudo-random generator and returns the two seeds used.
**Parameters:**
- `x?` (`integer`)
- `y?` (`integer`)
**Returns:**
- `integer` — First seed.
- `integer` — Second seed.
## math.sin
`math.sin(x)`
Returns the sine of `x` radians.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.sinh
`math.sinh(x)`
> **Deprecated:** Retained for compatibility with older Lua versions.
Returns the hyperbolic sine of `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.sqrt
`math.sqrt(x)`
Returns the square root of `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.tan
`math.tan(x)`
Returns the tangent of `x` radians.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.tanh
`math.tanh(x)`
> **Deprecated:** Retained for compatibility with older Lua versions.
Returns the hyperbolic tangent of `x`.
**Parameters:**
- `x` (`number`)
**Returns:**
- `number`
## math.tointeger
`math.tointeger(x)`
Converts a value to an integer when it has an exact finite integral representation.
**Parameters:**
- `x` — Value to convert.
**Returns:**
- `integer|nil` — Converted integer or `nil`.
## math.type
`math.type(x)`
Returns `integer` or `float` for a number, or `nil` for other values.
**Parameters:**
- `x` — Value to inspect.
**Returns:**
- `string|nil` — Numeric subtype or `nil`.
## math.ult
`math.ult(m, n)`
Compares two integers as unsigned 32-bit values.
**Parameters:**
- `m` (`integer`)
- `n` (`integer`)
**Returns:**
- `boolean`
**Example:**
```lua
print(math.ult(2, 3)) -- true
```
<!--/lua-->