Average Error: 0.0 → 0.0
Time: 24.3s
Precision: 64
\[\left(d1 \cdot d2 + \left(d3 + 5.0\right) \cdot d1\right) + d1 \cdot 32.0\]
\[d1 \cdot \left(\left(32.0 + \left(5.0 + d2\right)\right) + d3\right)\]
\left(d1 \cdot d2 + \left(d3 + 5.0\right) \cdot d1\right) + d1 \cdot 32.0
d1 \cdot \left(\left(32.0 + \left(5.0 + d2\right)\right) + d3\right)
double f(double d1, double d2, double d3) {
        double r7714474 = d1;
        double r7714475 = d2;
        double r7714476 = r7714474 * r7714475;
        double r7714477 = d3;
        double r7714478 = 5.0;
        double r7714479 = r7714477 + r7714478;
        double r7714480 = r7714479 * r7714474;
        double r7714481 = r7714476 + r7714480;
        double r7714482 = 32.0;
        double r7714483 = r7714474 * r7714482;
        double r7714484 = r7714481 + r7714483;
        return r7714484;
}

double f(double d1, double d2, double d3) {
        double r7714485 = d1;
        double r7714486 = 32.0;
        double r7714487 = 5.0;
        double r7714488 = d2;
        double r7714489 = r7714487 + r7714488;
        double r7714490 = r7714486 + r7714489;
        double r7714491 = d3;
        double r7714492 = r7714490 + r7714491;
        double r7714493 = r7714485 * r7714492;
        return r7714493;
}

Error

Bits error versus d1

Bits error versus d2

Bits error versus d3

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.0
Target0.0
Herbie0.0
\[d1 \cdot \left(\left(37.0 + d3\right) + d2\right)\]

Derivation

  1. Initial program 0.0

    \[\left(d1 \cdot d2 + \left(d3 + 5.0\right) \cdot d1\right) + d1 \cdot 32.0\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\left(d3 + \left(32.0 + \left(d2 + 5.0\right)\right)\right) \cdot d1}\]
  3. Final simplification0.0

    \[\leadsto d1 \cdot \left(\left(32.0 + \left(5.0 + d2\right)\right) + d3\right)\]

Reproduce

herbie shell --seed 2019165 
(FPCore (d1 d2 d3)
  :name "FastMath dist3"

  :herbie-target
  (* d1 (+ (+ 37.0 d3) d2))

  (+ (+ (* d1 d2) (* (+ d3 5.0) d1)) (* d1 32.0)))