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 SimpleBlade
s, 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,