Average Error: 0.0 → 0.0
Time: 13.5s
Precision: 64
\[\left(d1 \cdot d2 + \left(d3 + 5\right) \cdot d1\right) + d1 \cdot 32\]
\[d1 \cdot \left(\left(d3 + \left(d2 + 32\right)\right) + 5\right)\]
\left(d1 \cdot d2 + \left(d3 + 5\right) \cdot d1\right) + d1 \cdot 32
d1 \cdot \left(\left(d3 + \left(d2 + 32\right)\right) + 5\right)
double f(double d1, double d2, double d3) {
        double r8331118 = d1;
        double r8331119 = d2;
        double r8331120 = r8331118 * r8331119;
        double r8331121 = d3;
        double r8331122 = 5.0;
        double r8331123 = r8331121 + r8331122;
        double r8331124 = r8331123 * r8331118;
        double r8331125 = r8331120 + r8331124;
        double r8331126 = 32.0;
        double r8331127 = r8331118 * r8331126;
        double r8331128 = r8331125 + r8331127;
        return r8331128;
}

double f(double d1, double d2, double d3) {
        double r8331129 = d1;
        double r8331130 = d3;
        double r8331131 = d2;
        double r8331132 = 32.0;
        double r8331133 = r8331131 + r8331132;
        double r8331134 = r8331130 + r8331133;
        double r8331135 = 5.0;
        double r8331136 = r8331134 + r8331135;
        double r8331137 = r8331129 * r8331136;
        return r8331137;
}

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 + d3\right) + d2\right)\]

Derivation

  1. Initial program 0.0

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

    \[\leadsto \color{blue}{\left(d3 + \left(32 + \left(d2 + 5\right)\right)\right) \cdot d1}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity0.0

    \[\leadsto \left(d3 + \left(32 + \left(d2 + 5\right)\right)\right) \cdot \color{blue}{\left(1 \cdot d1\right)}\]
  5. Applied associate-*r*0.0

    \[\leadsto \color{blue}{\left(\left(d3 + \left(32 + \left(d2 + 5\right)\right)\right) \cdot 1\right) \cdot d1}\]
  6. Simplified0.0

    \[\leadsto \color{blue}{\left(5 + \left(d3 + \left(32 + d2\right)\right)\right)} \cdot d1\]
  7. Final simplification0.0

    \[\leadsto d1 \cdot \left(\left(d3 + \left(d2 + 32\right)\right) + 5\right)\]

Reproduce

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

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

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