Files
James Russell 71230f918f Add module READMEs, .gitignore, and remove Bin/ from tracking
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>
2026-04-03 00:27:55 -05:00
..
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00

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.