pub trait WideMul<Rhs=Self>{
	type Output;
	fn wide_mul(self,rhs:Rhs)->Self::Output;
}
pub trait WideDiv<Rhs=Self>{
	type Output;
	fn wide_div(self,rhs:Rhs)->Self::Output;
}
pub trait WideDot<Rhs=Self>{
	type Output;
	fn wide_dot(self,rhs:Rhs)->Self::Output;
}
pub trait WideCross<Rhs=Self>{
	type Output;
	fn wide_cross(self,rhs:Rhs)->Self::Output;
}