更快的数学运算

Ham*_*aya 5 java math performance

可能重复:
极性快速算法 - >笛卡尔转换

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

r = Math.sqrt((x * x) + (y * y));
t = Math.atan2(y,x);
Run Code Online (Sandbox Code Playgroud)

有没有旧学校的技巧会让我有更多的表现?

mas*_*oud 7

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

主要问题是"你把这两条线称为多少次?"

您应该调查您的路径查找算法.

无论如何,如果你想减少这些线路的延迟,也可能使预先计算表sqrt和atan2每个x和y.甚至是一个直接映射每个(x,y)到(r,t)的表.