元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

平方根

固定小数点の性能試験をしてるときに作った、小数部が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/
こちらを参考にしました。