固定小数点の性能試験をしてるときに作った、小数部が16bitの平方根を求める関数。
public static long sqrtFixdFloat16(long i_v) { long t = 0, s; s = i_v > 0 ? i_v : -i_v; if (i_v == 0) { return 0; } for (int i = SQRT_LOOP; i > 0; i--) { t = s; s = (t + ((i_v << 16) / t)) >> 1; if (s == t) { break; } }; return t; }
http://www.geocities.co.jp/SiliconValley-PaloAlto/5438/
こちらを参考にしました。