▼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 TensorLike s that represent a composite operation on other TensorLike s |
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 |