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.