| Public API | Everything reachable from #include <batchlas.hh>, plus the two opt-in SYCL headers |
| Queues, devices and events | Batchlas::Queue, batchlas::Device, batchlas::Event and SYCL interop |
| Queues, devices and events: helpers | String conversions and device predicates |
| Matrices, views and vectors | Column-major batched containers and the non-owning views every entry point takes |
| Matrices, views and vectors: helpers | Free functions over matrices, views and vectors |
| Enumerations and scalar concepts | Transpose, Uplo, Side, Diag, Backend and the scalar concepts that constrain every template |
| Enumerations: helpers | String conversions and shape helpers for the enumerations |
| Option structs | Designated-initialiser option structs accepted by the entry points |
| BLAS level 2 | Batched matrix-vector operations |
| BLAS level 3 | Batched matrix-matrix operations: gemm, trsm, trmm, symm/hemm, syrk/herk, syr2k/her2k |
| BLAS level 3: lower-level API | Argument validation and workspace queries behind the level-3 entry points |
| Factorizations and linear solvers | Cholesky and LU factorizations, their solves and inverses |
| Factorizations: lower-level API | Workspace queries and argument validation behind potrf, getrf, getrs, getri, gesv and posv |
| QR and orthogonal transforms | Householder QR, forming and applying Q, and batched orthogonalisation |
| QR: lower-level API | Workspace queries, argument validation and the CTA ormqr kernel behind the QR entry points |
| Symmetric and Hermitian eigensolvers | Syev and its tiers, selected-range syevx, and the iterative eigensolvers |
| Eigensolvers: lower-level API | Algorithm-specific entry points (CTA, blocked, two-stage, Jacobi, direct, LOBPCG, filtered), algorithm and range selection, and workspace queries behind syev, syevx, lanczos and ritz_values |
| Tridiagonal and band reduction | Reduction to tridiagonal form and the tridiagonal eigensolvers (steqr, stedc, stebz, stein) |
| Tridiagonal and band reduction: lower-level API | Kernel-level reductions and solvers (CTA, single-step band reduction, latrd panel, Francis sweep) and workspace queries |
| Singular value decomposition | Gesvd and the bidiagonal pipeline stages |
| SVD: lower-level API | The stages and algorithm-specific entry points behind gesvd (gebrd, bdsqr, bdsdc, ormbr, blocked, CTA and Jacobi SVD) and their workspace queries |
| Sparse (CSR) operations | Sparse-dense products, ILU(k) and CSR test-matrix generators |
| Sparse: lower-level API | ILU(k) level scheduling, test-matrix generation and workspace queries |
| Norms, condition numbers and utilities | Matrix norms, condition estimates, inversion and scaling helpers |
| Utilities: lower-level API | Workspace queries and the explicit-inverse helper |
| Convenience layer (batchlas::linalg) | Value-returning, NumPy-like wrappers over the entry points |
| Backend dispatch and vendor seams | How a call reaches a backend: the Queue's backend, owning arguments, and the backend::*_vendor declarations the vendor families call |
| Workspace and memory | The per-Queue workspace arena, leases and BumpAllocator sizing |
| Errors and convergence status | The exception hierarchy and per-item info reporting |
| Configuration, environment and tuning | Runtime settings captured from the environment and the tuning constants |
| Configuration: lower-level API | Per-size tuning lookups, environment parsers and internal hooks behind settings() and configure() |
| Device-side group BLAS | In-kernel work-group and sub-group BLAS templates (#include <batchlas/blas/device.hh>, needs -fsycl) |
| Device-side group BLAS: lower-level API | Launch-description and operand builders, and workspace sizes |
| Kernel helpers (installed, not API) | Headers installed because public headers include them |
| Kernel selection (developer) | How an op picks the kernel that runs: kernel families, per-device tuned tables, select::choose, pins, the trace, the coverage instrument and the vendor seam |
| Per-op choices | The vocabulary header of every op under src/ops/<op>/: its families, candidates<T>(), OpSpec, table keys and tuner grid |