/// <summary> /// Normalize a vector. /// </summary> public static tv3 Norm3(ev3 v3) => EEx.ResolveV3(v3, xyz => { var mag = VFloat(); return(Ex.Block(new[] { mag }, mag.Is(v3Mag(xyz)), Ex.Condition(mag.GT(ExC(M.MAG_ERR)), xyz.Mul(E1.Div(mag)), xyz ) )); });
/// <summary> /// Normalize a vector. /// </summary> public static tv2 Norm(ev2 v2) => EEx.ResolveV2(v2, xy => { var mag = VFloat(); return(Ex.Block(new[] { mag }, mag.Is(Mag(xy)), Ex.Condition(mag.GT(ExC(M.MAG_ERR)), xy.Mul(E1.Div(mag)), xy ) )); });