Add README.md for each library module documenting API, platform backends, and usage. Add .gitignore for build artifacts. Remove pre-built binaries from version control. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
libsst-math
Type-generic linear algebra library in C, covering vectors, matrices, transforms, and geometric queries.
Vectors
2D, 3D, and 4D vectors in four numeric types each:
SST_Vec{2,3,4}{f,d,i,u}-- float, double, int, unsigned
Operations: add, subtract, multiply, divide, scale, dot, cross, magnitude,
normalize, project, lerp, weighted sum, negate, abs, reciprocal, sqrt, rotate,
min/max component, equality. Most have both output and in-place (Local)
variants.
A generic SST_VectorNf_* API handles arbitrary-dimension float vectors.
Matrices
2x2, 3x3, and 4x4 matrices (column-major):
SST_Mat{22,33,44}{f,d,i,u}
Operations: add, subtract, element-wise multiply, scalar multiply, matrix-matrix multiply, matrix-vector multiply, transpose, determinant, invert, LU decomposition and solve, orthonormality check.
Transforms (SST_Transform)
4x4 float transform construction:
- Translation, scale, shear
- Euler rotation (X/Y/Z), quaternion rotation
- LookAt / LookDir view matrices
- Perspective and orthographic projection
- Chained variants (
*C) for composing onto existing matrices
Geometry (SST_Geo)
- 2D/3D line segment intersection
- Point-to-segment closest point and distance
- Ray-triangle intersection with barycentric coordinates
Code generation
VectorN.py and MatrixNxN.py generate the type-specialized .c files
from templates.