API Reference#
These pages are generated directly from the Doxygen doc-comments in the GLASS
headers via Breathe. Only the public,
documented entry points appear here — internal *_impl helpers are
intentionally excluded.
The reference is organized by BLAS level and by backend:
L1 — vector operations (axpy, copy, dot, reduce, norms, elementwise, …).
L2 — matrix-vector operations (gemv, ger, trsv, trmv, strided/segmented gemv).
L3 — matrix operations (gemm and variants, inverse, Cholesky, trsm, syrk/syr2k, ldlt, posv/potrs).
NVIDIA backend — the
glass::nvidia::block::CUB / cuBLASDx / cuSOLVERDx paths and their host-side query/size helpers, plus theglass::nvidia::warp::CUBWarpReducereductions (one full 32-lane warp per problem).Warp-scoped — the
glass::warp::single-warp SIMT variants for warp-per-problem kernels.Thread-scoped — the
glass::thread::sequential variants for thread-per-problem low-DOF packing.Block-tridiagonal solvers — the
glass::bdmvmatvec and theglass::pcgpreconditioned conjugate-gradient solver for the block-tridiagonal SPD systems of trajectory optimization / MPC.Robotics operators — the spatial 6-D, Lie/quaternion, projection/cone, geometry-distance, and sampling-reduction families (all three SIMT tiers; see Robotics operators & conventions).
Backend picker —
glass-defaults.cuhconstexprhelpers (suggested_backend/suggested_block_threads/suggested_warps_per_block/suggested_threads_per_block) that pick a backend + launch config from the measured ladder.
Note
Every operation typically ships several overloads — runtime-sized and
compile-time-sized (<T, N, ...>), with and without a beta term, and
pure-SIMT vs cooperative-groups (glass::cgrps::) variants. The pages
below list them per header.
Note
The block-scope SIMT entries on these pages are the glass::block::
contract tier (bit-exact, thread-count invariant, never re-dispatched);
the bare glass:: spellings are the measured-default face — in
Phase 1 the same entities, re-exported (likewise glass::nvidia::block::
vs bare glass::nvidia::). See
Namespaces, suffixes, and flags.
- L1 — Vector Operations
- L2 — Matrix-Vector Operations
- L3 — Matrix Operations
- gemm
- Contraction-parallel gemm (
gemm_reduced) - Tensor ⊗ vector contractions (
tensor_vec_contract/vec_tensor_vec) - Congruence / bilinear forms (
congruence_sym/bilinear) - Contraction-parallel syrk (
syrk_reduced) - Riccati feedback gain (
riccati_gain) - Strided gemm
- Indexed / batched gemm
- Matrix inverse
- Cholesky
- LU with partial pivoting (getrf / getrs / gesv / laswp)
- Triangular solve (trsm)
- Symmetric rank-k / rank-2k update (syrk / syr2k)
- Symmetric / triangular matrix-matrix multiply (symm / trmm)
- Diagonal-matrix multiply (dimm)
- LDLᵀ factorization (ldlt / ldlt_solve)
- SPD solve (posv / potrs)
- Symmetric eigenvalues (syev / eig_clamp)
- Cooperative-groups variants (
glass::cgrps::)
- NVIDIA Backend (
glass::nvidia::) - Warp-scoped operations (
glass::warp::) - Thread-scoped operations (
glass::thread::) - Block-tridiagonal Ops (
glass::bdmv/glass::bdsv) - Preconditioned Conjugate Gradient (
glass::pcg) - Robotics operators
- Spatial 6-D cross products
- Spatial coordinate transforms
- Spatial inertia (10 parameters)
- Quaternions
- Pose errors
- SO(3): exp / log / Jacobians
- SE(3): retract + derivatives
- Planar angles
- Cones & projections
- Interval / AL / barrier scalars
- Geometry distances
- 3x3 estimation kit
- Fused Gauss-Newton / LM step
- Sampling reductions (L1)
- Backend Picker (
glass-defaults.cuh)