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