use std::cmp::{PartialOrd, PartialEq}; use num::{Signed, FromPrimitive, Bounded}; use approx::AbsDiffEq; use alga::general::{Ring, Lattice}; use na::{Scalar, DimName, DimMin, U1}; use na::allocator::Allocator; pub trait Dimension: DimName + DimMin {} impl> Dimension for D {} pub trait Number: Scalar + Ring + Lattice + AbsDiffEq + Signed + FromPrimitive + Bounded { } impl + Signed + FromPrimitive + Bounded> Number for T { } #[doc(hidden)] pub trait Alloc: Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator<(usize, usize), R> + Allocator<(usize, usize), C> { } impl Alloc for T where T: Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator + Allocator<(usize, usize), R> + Allocator<(usize, usize), C> { }