| ▼API Support | Tools to help implement irritating C-style APIs |
| Enum Validation | A general mechanism for checking if an enum value is in range |
| ▼Automatic Specialisation | The specialisation system |
| Specialisers | Specialisation operators |
| Complex Numbers | Primitives for representing complex numbers |
| ▼Datastructures | Data structures, of all kinds |
| GPU LUT | A system for compiling LUTs efficiently on the GPU in one of several ways |
| ▼Tensor-Like Primitives | Primitives that expose a Tensor-like interface, allowing them to be read and possibly written to using a uniform interface |
| Tensor Expressions | Tensor expressions are TensorLikes that represent a composite operation on other TensorLikes |
| Tuples | Std::tuple, for GPU |
| ▼Debugging tools | Stuff related to debugging |
| ANSI Colour Codes | ANSI colour codes, because every library eventually grows to the point of needing colour logging |
| Element-wise Kernel | The element-wise kernel |
| Exceptions | Exceptions |
| ▼Kernel Tools | Tools to help structure CUDA kernels |
| Grid Assumptions | A system for telling the compiler about constant properties of your kernel grid |
| ▼Math Functions | |
| Bit Twiddling | Utilities for bit-twiddling |
| Floating Point Math with Rounding Modes | These functions provide convenient access to the floating point instructions with special rounding modes |
| Integer Division | Tools for doing integer division quickly on GPUS |
| Polynomials | Trigonometry-related functions |
| Trigonometry | Trigonometry-related functions |
| ▼Mathematical Primitives | Primitives are objects that represent a mathematical object such as a Tensor |
| Arbitrary Precision Integers | Integer types of any width |
| Collapsible Scalars | Represents a scalar value which may or may not be a compile-time constant |
| Memory Manipulators | Functions for manipulating memory, such as less annoying versions of memset/malloc/etc |
| ▼Metaprogramming | Metaprogramming tools |
| ▼Constexpr | Constexpr-level metaprogramming, such as: |
| Constexpr Datastructures | Dynamically-sized datastructures for use only during constexpr execution |
| Integer Math | Constexpr integer math, such as division that refuses to compile if the division has a remainder |
| ▼Type | Type-level metaprogramming |
| Type Printing | A system for printing the name of types |
| Type Traits | Type traits |
| ▼Type-Encoded Datastructures | Datastructures that encode their value in their type |
| Bitset | Sets of integers represented as extremely long ints, such as __uint<4096> |
| ▼Integer Sequences | sp::integer_sequence, and related free functions |
| Bound Sequences | |
| Constants | |
| Make Sequences | |
| Multi Sequences | |
| Sequences | |
| Integer Set | A set of integers |
| Type Set | A set of types |
| Type-encoded String | Strings in the type system |
| Named Requirements | Similarly to the standard library, we define Named Requirements to specify constraints that must be satisfied by type parameters |
| Reduction | Facilities for reduction |
| Scalar Operations | Mathematical operations for scalars |
| Sorting | Things related to sorting |
| ▼Strings | Tools for working with strings on the GPU |
| Character Encodings | Tools for converting between other character encodings |
| Variable System | Tools for manipulating variables at run time that can then be bound to values at runtime |