Write some amount of documentation

This commit is contained in:
2026-01-31 01:46:18 +01:00
parent e1c4987db5
commit 8cd0ec92c0
57 changed files with 2096 additions and 198 deletions

84
docs/arithmetic.md Normal file
View File

@@ -0,0 +1,84 @@
# Arithmetic
Basic math operations. All arithmetic words pop their operands and push the result.
## Basic Operations
```
3 4 + ( 7 )
10 3 - ( 7 )
3 4 * ( 12 )
10 3 / ( 3.333... )
10 3 mod ( 1 )
```
Division always produces a float. Use `floor` if you need an integer result.
## Negative Numbers
```
5 neg ( -5 )
-3 abs ( 3 )
```
## Rounding
```
3.7 floor ( 3 )
3.2 ceil ( 4 )
3.5 round ( 4 )
```
## Min and Max
```
3 7 min ( 3 )
3 7 max ( 7 )
```
## Power and Root
```
2 3 pow ( 8 )
9 sqrt ( 3 )
```
## Examples
Calculate a frequency ratio:
```
440 2 12 / pow * ( 440 * 2^(1/12) ≈ 466.16 )
```
Clamp a value between 0 and 1:
```
1.5 0 max 1 min ( 1 )
-0.5 0 max 1 min ( 0 )
```
Scale a 0-1 range to 200-800:
```
0.5 600 * 200 + ( 500 )
```
## Words
| Word | Stack | Description |
|------|-------|-------------|
| `+` | (a b -- sum) | Add |
| `-` | (a b -- diff) | Subtract |
| `*` | (a b -- prod) | Multiply |
| `/` | (a b -- quot) | Divide |
| `mod` | (a b -- rem) | Modulo |
| `neg` | (a -- -a) | Negate |
| `abs` | (a -- \|a\|) | Absolute value |
| `floor` | (a -- n) | Round down |
| `ceil` | (a -- n) | Round up |
| `round` | (a -- n) | Round to nearest |
| `min` | (a b -- min) | Minimum |
| `max` | (a b -- max) | Maximum |
| `pow` | (a b -- a^b) | Power |
| `sqrt` | (a -- √a) | Square root |