use std::cmp::{PartialOrd, PartialEq}; use num::Signed; 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 { } impl + Signed> 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> { }