pub trait AllocSimpleBlade<N: Dim, G: Dim>: AllocBlade<N, G> { }
Expand description

Marks if a Blade of a given dimension and grade is guaranteed to always be simple

This trait is implemented for scalars, vectors, psuedovectors, and psuedoscalars by bounding the grade to be 0, 1, N, or N-1.

It is used in a number of locations to allow for certain operations that are only possible with simple blades, ie mutating SimpleBlades, projecting onto a Blade, etc.

At the moment, the implementation uses typenum expressions to determine type eligibility, which may be lead to some provability issues when using generic types, especially for psuedoscalars and psuedovectors. However, this will be simplified dramatically once the #[feature(marker_trait_attr)] is stabilized,

Implementors