intpower.java

来自「一个一元曲线多项式数值演示例子」· Java 代码 · 共 35 行

JAVA
35
字号
package numbercruncher.mathutils;

/**
 * Raise a double value to an integer power.
 */
public final class IntPower {
  /**
   * Compute and return x^power.
   * @param x
   * @param power the integer power
   * @return x^power
   */
  public static double raise(double x, int exponent) {
    if (exponent < 0) {
      return 1 / raise(x, -exponent);
    }

    double power = 1;

    // Loop to compute x^exponent.
    while (exponent > 0) {

      // Is the rightmost exponent bit a 1?
      if ( (exponent & 1) == 1) {
        power *= x;

        // Square x and shift the exponent 1 bit to the right.
      }
      x *= x;
      exponent >>= 1;
    }

    return power;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?