mirror of
https://github.com/luxfi/math.git
synced 2026-07-27 03:38:49 +00:00
- Create math/big for big.Int utilities (HexOrDecimal256, U256, parsing) - Create math/safe for overflow-safe arithmetic (SafeAdd, SafeMul, etc.) - Move averager files to root package level - Add re-exports in root package for backwards compatibility - Update README with new package structure documentation - Remove old math/meter directory (consolidated elsewhere) - Remove redundant math/ subdirectory structure
1.8 KiB
1.8 KiB
Lux Math Library
A comprehensive mathematical utilities library for the Lux ecosystem.
Features
- Big integer utilities:
HexOrDecimal256,ParseBig256,U256,BigPowetc. - Safe arithmetic: Overflow-checked
SafeAdd,SafeSub,SafeMul - Bit operations: XOR, AND, compression utilities
- Set operations: Efficient set implementations including bit sets
- Data structures: Linked lists, hash maps, heaps
- Averagers: Time-windowed averaging utilities
Installation
go get github.com/luxfi/math
Package Structure
| Package | Description |
|---|---|
github.com/luxfi/math |
Root package with re-exports for backwards compatibility |
github.com/luxfi/math/big |
Big integer utilities (HexOrDecimal256, U256, parsing) |
github.com/luxfi/math/safe |
Overflow-safe arithmetic operations |
github.com/luxfi/math/bit |
Bit manipulation utilities |
github.com/luxfi/math/set |
Set data structures |
github.com/luxfi/math/linked |
Linked data structures |
github.com/luxfi/math/heap |
Heap implementations |
Usage
// Import root package (re-exports from subpackages)
import "github.com/luxfi/math"
// Or import specific subpackages directly
import (
"github.com/luxfi/math/big"
"github.com/luxfi/math/safe"
"github.com/luxfi/math/set"
)
Big Integer Operations
import "github.com/luxfi/math/big"
// Parse hex or decimal
val, _ := big.ParseBig256("0x1234")
// 256-bit unsigned operations
result := big.U256(someInt)
// Power operation
power := big.BigPow(2, 256)
Safe Arithmetic
import "github.com/luxfi/math/safe"
// Returns (result, overflow bool)
sum, overflow := safe.SafeAdd(a, b)
product, overflow := safe.SafeMul(x, y)
// Returns (result, error)
sum, err := safe.Add64(a, b)
License
See the LICENSE file for licensing terms.