public static float SafeAcos(float x)
 {
     return((float)Math.Acos(BasicMath.Clip(x, -1, 1)));
 }
 public static float ClipUnit(float x)
 {
     return(BasicMath.Clip(x, 0, 1));
 }