Average Error: 0.1 → 0
Time: 2.4s
Precision: 64
\[\left(x \cdot x\right) \cdot x\]
\[{x}^{3}\]
double f(double x) {
        double r27058039 = x;
        double r27058040 = r27058039 * r27058039;
        double r27058041 = r27058040 * r27058039;
        return r27058041;
}

double f(double x) {
        double r27058042 = x;
        double r27058043 = 3.0;
        double r27058044 = pow(r27058042, r27058043);
        return r27058044;
}

\left(x \cdot x\right) \cdot x
{x}^{3}

Error

Bits error versus x

Target

Original0.1
Target0
Herbie0
\[{x}^{3}\]

Derivation

  1. Initial program 0.1

    \[\left(x \cdot x\right) \cdot x\]
  2. Using strategy rm
  3. Applied pow30

    \[\leadsto \color{blue}{{x}^{3}}\]
  4. Final simplification0

    \[\leadsto {x}^{3}\]

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(FPCore (x)
  :name "math.cube on real"

  :herbie-target
  (pow x 3)

  (* (* x x) x))