public static int Acos(int x) { // Compute Atan2(Sqrt((1+x) * (1-x)), x), using s32.32. Debug.Assert(x >= -One && x <= One); long xx = (long)(One + x) * (long)(One - x); long y = Fixed64.Sqrt(xx); return((int)(Fixed64.Atan2(y, (long)x << 16) >> 16)); }
public static F64 Atan2(F64 y, F64 x) { return(FromRaw(Fixed64.Atan2(y.raw, x.raw))); }