小编use*_*333的帖子

math.abs的Java性能问题

我正在使用Jama矩阵来执行SVD操作.我有几个关于表现的问题.

我并不担心这么多的准确性,我认为double比Float更准确,对吗?如果我使用浮动而不是双倍,它会提高多少性能并降低精度?

在Jama矩阵中,它使用了一个它调用很多的函数,它使用了double和Math.abs函数,这需要大量的Heap和CPU.如果我将其更改为double并删除Math.abs,它会对性能产生多大影响并导致准确性?

这是Jama数学函数:

   public static double hypot(double a, double b) {
      double r;
      if (Math.abs(a) > Math.abs(b)) {
         r = b/a;
         r = Math.abs(a)*Math.sqrt(1+r*r);
      } else if (b != 0) {
         r = a/b;
         r = Math.abs(b)*Math.sqrt(1+r*r);
      } else {
         r = 0.0;
      }
      return r;
   }
Run Code Online (Sandbox Code Playgroud)

这是我想用这个功能做的事情

   public static float hypot(float a, float b) {
      float r;
      if (a > b) {
         r = b/a;
         r = (float) (a*Math.sqrt(1+r*r));
      } else if (b != 0) { …
Run Code Online (Sandbox Code Playgroud)

java math performance matrix data-structures

2
推荐指数
1
解决办法
3955
查看次数

标签 统计

data-structures ×1

java ×1

math ×1

matrix ×1

performance ×1