|
TDLS 0.2.0
Tiny Device-callable Linear Solvers
|
Shared vocabulary and conventions of the solver families. More...
Go to the source code of this file.
Macros | |
| #define | TDLS_LAYOUT_INDEX(r, c, dim) |
| Flat index of matrix element (r, c) under the configured layout: r * dim + c row-major, c * dim + r column-major. | |
Enumerations | |
| enum class | tdls::Schedule { RightLooking , LeftLooking } |
| Elimination schedule of a factorization. More... | |
| enum class | tdls::MatrixLayout { RowMajor , ColMajor } |
| Memory layout of a dense matrix. More... | |
Shared vocabulary and conventions of the solver families.
Knob types shared by the configuration of every solver family: the elimination schedule of a factorization and the memory layout of a dense matrix. Each family configuration carries its own members of these types.
The families also share one calling convention. Every operand is a raw pointer pre-offset by the caller plus one runtime element stride, which covers the AoS, SoA and AoSoA batch layouts alike. Offsets are computed in 32-bit arithmetic: the flat element index of an object (N*N for a matrix) must stay below 2^31 and every element offset, index times stride, below 2^32. Residency template booleans, where a solver offers them, describe what the passed buffers are and carry no default. Factorizing entry points come in counting and diagnostics-free overloads, the latter compiling the diagnostics out entirely.
| #define TDLS_LAYOUT_INDEX | ( | r, | |
| c, | |||
| dim ) |
Flat index of matrix element (r, c) under the configured layout: r * dim + c row-major, c * dim + r column-major.
Expands inside solver member functions, where a constexpr Config value carrying a layout member is in scope.
|
strong |
|
strong |