User:Doomguy0505
Jump to navigation
Jump to search
ACS Functions
// fixed: fixed x, int y function int ipow(int x, int y) { int r = 1.0; while(y > 0) { if (y & 1) r = FixedMul(r, x); y >>= 1; x = FixedMul(x, x); } return r; } // fixed: int n, fixed k function int nthrt(int n, int k) { if (k == 1.0) return 1.0; if (k <= 0) return 0; int x = k / n; for(int i = 0; i < 15; i++) x = ((n-1)*x + FixedDiv(k, ipow(x, n-1))) / n; return x; } // fixed: fixed k function int cbrt(int k) { if (k == 1.0) return 1.0; if (k <= 0) return 0; int x = k / 3; for(int i = 0; i < 15; i++) x = (x<<1 + FixedDiv(k, FixedMul(x, x))) / 3; return x; } // fixed: fixed k function int sqrt(int k) { if (k == 1.0) return 1.0; if (k <= 0) return 0; int x = k >> 1; for(int i = 0; i < 15; i++) x = (x + FixedDiv(k, x)) >> 1; return x; }