Speclib  0.1.2
The library for writing better CUDA libraries

Specialisation operators. More...

Classes

struct  sp::BroadcastingTensorSpecialiser
 Set the BroadcastsLastDimension flag on BroadcastingTensor, if possible. More...
 
struct  sp::PtrScalarSpecialiser< ForceLoc >
 Specialiser for coping with scalar parameters that are provided as pointers: something APIs love to do. More...
 
struct  sp::ScalarSpecialiser
 Specialises input scalar types to compile-time-constant sp::Scalar derivatives, if possible. More...
 
struct  sp::TensorSpecialiser
 Attempt to increase the strictness of the optimisation flags of all Tensor arguments. More...
 
struct  sp::TensorDescriptorSpecialiser
 Convert a TensorDescriptor into a Tensor by finding the type/rank at runtime. More...
 
struct  sp::TensorFlattenSpecialiser
 A non-default Specialiser that flattens N-dimensional packed tensors into 1-dimensional tensors that cover the same memory. More...
 
struct  sp::TensorFlatteningTrampoline< T >
 A trampoline struct you can use as a Specialiser target to easily chain TensorFlatten with the default specialisers. More...
 
struct  sp::VariantOutputPtrSpecialiser
 Convert a VariantOutputPtr to a strongly-typed pointer. More...
 
struct  sp::VariantScalarSpecialiser
 Specialise CUDA API variant scalars into proper scalars. More...
 

Detailed Description

Specialisation operators.

Each one provides a way of branching on some kind of input argument to pick different template instantiations of the target Specialisable. The interface for specialisers is defined in Specialiser.