Java 实现快速平方根
下面的函数是C语言中的快速平方根函数,现在我想修改为在JAVA中也可以运行,请大牛帮忙修改下,小弟感激不尽!!//
// 计算参数x的平方根的倒数
//
float InvSqrt (float x) {
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df - (i >> 1); // 计算第一个近似根
x = *(float*)&i;
x = x*(1.5f - xhalf*x*x); // 牛顿迭代法
return x;
}
Java 实现快速平方根 --------------------编程问答-------------------- java 有方法
public static void main(String[] args) {--------------------编程问答-------------------- 嗯嗯,java类库中的Math类直接封装好了实现,如果更严谨一点,StrictMath更加精确,api与Math一致 --------------------编程问答--------------------
System.out.println(Math.sqrt(100));
}
--------------------编程问答-------------------- JAVA中不用自己写,Math.sqrt,楼主查一下API --------------------编程问答-------------------- 我知道Java的Math包里面已经有封装好的函数。但是我需要的是快速平方根,Math.sqrt精度很好,但是速度太慢。我现在不需要那么高的精度,需要很高的速度。 --------------------编程问答--------------------
专门给你测试了一下,jvm调用Math.sqrt计算一个20位的浮点型数平方根耗时21000纳秒,也就0.02毫秒这都满足不了你?
滚吧,java不适合你
--------------------编程问答-------------------- java的实现应该很优了。
你是到底想怎样算快速?
补充:Java , Java SE