Average Error: 0.0 → 0.0
Time: 38.0s
Precision: 64
\[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1\]
\[\left(d4 + \left(d2 - d3\right)\right) \cdot d1 - d1 \cdot d1\]
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(d4 + \left(d2 - d3\right)\right) \cdot d1 - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
        double r35586448 = d1;
        double r35586449 = d2;
        double r35586450 = r35586448 * r35586449;
        double r35586451 = d3;
        double r35586452 = r35586448 * r35586451;
        double r35586453 = r35586450 - r35586452;
        double r35586454 = d4;
        double r35586455 = r35586454 * r35586448;
        double r35586456 = r35586453 + r35586455;
        double r35586457 = r35586448 * r35586448;
        double r35586458 = r35586456 - r35586457;
        return r35586458;
}

double f(double d1, double d2, double d3, double d4) {
        double r35586459 = d4;
        double r35586460 = d2;
        double r35586461 = d3;
        double r35586462 = r35586460 - r35586461;
        double r35586463 = r35586459 + r35586462;
        double r35586464 = d1;
        double r35586465 = r35586463 * r35586464;
        double r35586466 = r35586464 * r35586464;
        double r35586467 = r35586465 - r35586466;
        return r35586467;
}

Error

Bits error versus d1

Bits error versus d2

Bits error versus d3

Bits error versus d4

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(\left(d2 - d3\right) + d4\right) - d1\right)\]

Derivation

  1. Initial program 0.0

    \[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1\]
  2. Taylor expanded around inf 0.0

    \[\leadsto \color{blue}{\left(\left(d4 \cdot d1 + d2 \cdot d1\right) - d3 \cdot d1\right)} - d1 \cdot d1\]
  3. Simplified0.0

    \[\leadsto \color{blue}{\left(\left(d2 - d3\right) + d4\right) \cdot d1} - d1 \cdot d1\]
  4. Final simplification0.0

    \[\leadsto \left(d4 + \left(d2 - d3\right)\right) \cdot d1 - d1 \cdot d1\]

Reproduce

herbie shell --seed 2019119 
(FPCore (d1 d2 d3 d4)
  :name "FastMath dist4"

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

  (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))