Speclib  0.1.2
The library for writing better CUDA libraries
Modules
Here is a list of all modules:
[detail level 12345]
 API SupportTools to help implement irritating C-style APIs
 Enum ValidationA general mechanism for checking if an enum value is in range
 Automatic SpecialisationThe specialisation system
 SpecialisersSpecialisation operators
 Complex NumbersPrimitives for representing complex numbers
 DatastructuresData structures, of all kinds
 GPU LUTA system for compiling LUTs efficiently on the GPU in one of several ways
 Tensor-Like PrimitivesPrimitives that expose a Tensor-like interface, allowing them to be read and possibly written to using a uniform interface
 Tensor ExpressionsTensor expressions are TensorLikes that represent a composite operation on other TensorLikes
 TuplesStd::tuple, for GPU
 Debugging toolsStuff related to debugging
 ANSI Colour CodesANSI colour codes, because every library eventually grows to the point of needing colour logging
 Element-wise KernelThe element-wise kernel
 ExceptionsExceptions
 Kernel ToolsTools to help structure CUDA kernels
 Grid AssumptionsA system for telling the compiler about constant properties of your kernel grid
 Math Functions
 Bit TwiddlingUtilities for bit-twiddling
 Floating Point Math with Rounding ModesThese functions provide convenient access to the floating point instructions with special rounding modes
 Integer DivisionTools for doing integer division quickly on GPUS
 PolynomialsTrigonometry-related functions
 TrigonometryTrigonometry-related functions
 Mathematical PrimitivesPrimitives are objects that represent a mathematical object such as a Tensor
 Arbitrary Precision IntegersInteger types of any width
 Collapsible ScalarsRepresents a scalar value which may or may not be a compile-time constant
 Memory ManipulatorsFunctions for manipulating memory, such as less annoying versions of memset/malloc/etc
 MetaprogrammingMetaprogramming tools
 ConstexprConstexpr-level metaprogramming, such as:
 Constexpr DatastructuresDynamically-sized datastructures for use only during constexpr execution
 Integer MathConstexpr integer math, such as division that refuses to compile if the division has a remainder
 TypeType-level metaprogramming
 Type PrintingA system for printing the name of types
 Type TraitsType traits
 Type-Encoded DatastructuresDatastructures that encode their value in their type
 BitsetSets of integers represented as extremely long ints, such as __uint<4096>
 Integer Sequencessp::integer_sequence, and related free functions
 Bound Sequences
 Constants
 Make Sequences
 Multi Sequences
 Sequences
 Integer SetA set of integers
 Type SetA set of types
 Type-encoded StringStrings in the type system
 Named RequirementsSimilarly to the standard library, we define Named Requirements to specify constraints that must be satisfied by type parameters
 ReductionFacilities for reduction
 Scalar OperationsMathematical operations for scalars
 SortingThings related to sorting
 StringsTools for working with strings on the GPU
 Character EncodingsTools for converting between other character encodings
 Variable SystemTools for manipulating variables at run time that can then be bound to values at runtime