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... | |
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.