# tinymath **Repository Path**: mirrors_chai2010/tinymath ## Basic Information - **Project Name**: tinymath - **Description**: 📐 The fastest and smallest Go math library for constrained environments, like microcontrollers or WebAssembly. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-20 - **Last Updated**: 2026-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🧮 tinymath [ [📚 docs](https://pkg.go.dev/github.com/orsinium-labs/tinymath) ] [ [🐙 github](https://github.com/orsinium-labs/tinymath) ] The fastest Go math library for constrained environments, like microcontrollers or WebAssembly. * Optimizes for performance and small code size at the cost of precision. * Uses float32 because most microcontrollers (like [ESP32](https://en.wikipedia.org/wiki/ESP32)) have much faster computation for float32 than for float64. * Designed and tested to work with both Go and [TinyGo](https://tinygo.org/), hence the name. * Most algorithms are ported from [micromath](https://github.com/tarcieri/micromath) Rust library. * Zero dependency. ## 📦 Installation ```bash go get github.com/orsinium-labs/tinymath ``` ## 🔧 Usage ```go fmt.Println(tinymath.Sin(tinymath.Pi)) ``` ## 🔬 Size Here is a comparison of WebAssembly binary size (built with TinyGo) when using tinymath vs stdlib math: | function | tinymath | stdlib | ratio | | ------------ | --------:| ------:| -----:| | atan | 106 | 367 | 28% | | atan2 | 167 | 782 | 21% | | exp | 463 | 2722 | 17% | | fract | 166 | 154 | 107% | | hypot | 67 | 203 | 33% | | ln | 196 | 4892 | 4% | | powf | 701 | 9167 | 7% | | round | 129 | 171 | 75% | | sin | 125 | 1237 | 10% | | sqrt | 57 | 57 | 100% | | tan | 138 | 1137 | 12% | | trunc | 57 | 57 | 100% | To reproduce: `python3 size_bench.py`