java - 更快的数学运算

标签 java performance math

<分区>

Possible Duplicate:
Fast algorithm for polar -> cartesian conversion

我正在通过 jvisualvm 运行一些寻路代码(有点慢),我发现 80% 的时间花在了我的 vector 实现上,更具体地说是将笛卡尔坐标转换为极坐标的部分,

r = Math.sqrt((x * x) + (y * y));
t = Math.atan2(y,x);

有什么老派的技巧可以让我的表现更好吗?

最佳答案

根据我在寻路算法方面的经验,问题不在于那些线。

主要问题是“这两行你调用了多少次?”

您应该研究您的寻路算法。

无论如何,如果你想减少这些线路的延迟,可以为每个 x< 为 sqrtatan2 制作一个预先计算的表格y。甚至是将每个 (x, y) 直接映射到 (r, t) 的表格。

关于java - 更快的数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703718/

相关文章:

java - 反序列化 Google Web Kit 响应 (Java) 和 Java Servlet

java - JNI 绑定(bind) - undefined symbol : gcj_personality_v0

java - Spring Security 中 PreAuthenticatedAuthenticationToken 的用途?

java - quartz spring集成调度,是否可以动态设置cron触发器

performance - 你会为了性能而违背 REST 的幂等性原则吗?

android - 渐变色动画

performance - 一种使用 Gamma 函数实现嵌套循环的更快方法

actionscript-3 - AS3 数学 : nearest neighbour in array

math - 如何在 3d 空间中的平面上投影平面多边形

C++数学函数生成