From fb29310fd0a78d838c6f520d0579ca910556e949 Mon Sep 17 00:00:00 2001 From: Spencer Conlon Date: Sat, 28 Dec 2024 17:28:20 +0000 Subject: [PATCH] Add Math Library --- Math-Library.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 Math-Library.md diff --git a/Math-Library.md b/Math-Library.md new file mode 100644 index 0000000..e33053f --- /dev/null +++ b/Math-Library.md @@ -0,0 +1,91 @@ +# Math Library Wiki + +## Overview +The `math.lua` library provides a collection of math constants, basic math functions, and trigonometric utilities to simplify common mathematical operations in Lua. + +--- + +## Features +### Constants +The library includes commonly used mathematical constants: + +| Constant | Description | Value | +|----------|---------------------------|------------| +| `PI` | Ratio of a circle's circumference to its diameter | 3.14159 | +| `E` | Base of the natural logarithm | 2.71828 | +| `TAU` | Full circle in radians (2 * PI) | 6.28318 | + +--- + +### Functions + +#### Basic Math Functions +These functions are available under `Math.functions`: + +| Function | Description | Example Usage | +|----------------|--------------------------------------------------|-------------------------| +| `square(x)` | Returns the square of `x`. | `Math.functions.square(5)` → `25` | +| `cube(x)` | Returns the cube of `x`. | `Math.functions.cube(3)` → `27` | +| `max(a, b)` | Returns the maximum of `a` and `b`. | `Math.functions.max(10, 20)` → `20` | +| `min(a, b)` | Returns the minimum of `a` and `b`. | `Math.functions.min(10, 20)` → `10` | +| `clamp(value, minValue, maxValue)` | Clamps `value` between `minValue` and `maxValue`. | `Math.functions.clamp(15, 0, 10)` → `10` | + +#### Trigonometric Functions +These functions are available under `Math.trig`: + +| Function | Description | Example Usage | +|----------------|--------------------------------------------------|-------------------------| +| `deg_to_rad(degrees)` | Converts degrees to radians. | `Math.trig.deg_to_rad(180)` → `3.14159` | +| `rad_to_deg(radians)` | Converts radians to degrees. | `Math.trig.rad_to_deg(Math.constants.PI)` → `180` | + +--- + +## Installation +1. Place `math.lua` in your project directory. +2. Import the module using `require`: + +```lua +local Math = require("math") +``` + +--- + +## Example Usage +Here is an example script using the `math.lua` library: + +```lua +local Math = require("math") + +-- Access constants +print("PI:", Math.constants.PI) +print("E:", Math.constants.E) + +-- Use basic math functions +local result = Math.functions.square(5) +print("Square of 5:", result) + +local clampedValue = Math.functions.clamp(15, 0, 10) +print("Clamped value:", clampedValue) + +-- Use trigonometric functions +local radians = Math.trig.deg_to_rad(180) +print("180 degrees in radians:", radians) + +local degrees = Math.trig.rad_to_deg(Math.constants.PI) +print("PI radians in degrees:", degrees) +``` + +--- + +## Contributing +1. Fork the repository. +2. Create a new branch for your feature: `git checkout -b feature-name`. +3. Commit your changes: `git commit -m "Add feature"`. +4. Push to the branch: `git push origin feature-name`. +5. Open a pull request. + +--- + +## License +This library is released under the MIT License. See the LICENSE file for more details. +