starlight-numera
v1.0.0
Published
A performance-focused numerical computing library for JavaScript inspired by NumPy
Maintainers
Readme
starlight-numera
A fast, lightweight numerical computing library for JavaScript inspired by NumPy.
Built for performance using TypedArrays and optimized loops.
Features
- Fast ndarray implementation (TypedArray-based)
- Vectorized operations (add, sub, mul, div)
- Matrix operations (matmul, transpose, dot)
- Broadcasting (NumPy-style)
- Math functions (sqrt, exp, log, trig)
- Modular and tree-shakeable
Installation
npm install starlight-numeraQuick Start
import { array, add, matmul, sqrt } from 'starlight-numera';
// Create arrays
const a = array([[1, 2], [3, 4]]);
const b = array([[5, 6], [7, 8]]);
// Element-wise operations
const c = add(a, b);
// Matrix multiplication
const d = matmul(a, b);
// Math functions
const e = sqrt(a);
console.log(c);
console.log(d);
console.log(e);ndarray Structure
Each array is stored as:
{
data: Float32Array,
shape: number[],
stride: number[],
size: number
}Operations
Element-wise
add(a, b)
sub(a, b)
mul(a, b)
div(a, b)Broadcasting
const a = array([[1, 2, 3]]);
const b = array([[10], [20]]);
add(a, b);
// [
// [11,12,13],
// [21,22,23]
// ]Linear Algebra
transpose(a)
dot(a, b)
matmul(a, b)Math Functions
sqrt(a)
exp(a)
log(a)
sin(a)
cos(a)
tan(a)Performance
- Uses Float32Array for fast memory access
- Avoids unnecessary allocations
- Optimized loops for numerical operations
Roadmap
- Advanced broadcasting optimizations
- Slicing and indexing
- GPU acceleration (WebGL / WebGPU)
- SIMD optimizations
- Higher-dimensional tensors
Contributing
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Submit a pull request
License
MIT License
