Average Error: 0.0 → 0.0
Time: 17.3s
Precision: 64
\[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1\]
\[\left(\left(d1 \cdot d2 - d3 \cdot d1\right) + d1 \cdot d4\right) - d1 \cdot d1\]
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(\left(d1 \cdot d2 - d3 \cdot d1\right) + d1 \cdot d4\right) - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
        double r12980288 = d1;
        double r12980289 = d2;
        double r12980290 = r12980288 * r12980289;
        double r12980291 = d3;
        double r12980292 = r12980288 * r12980291;
        double r12980293 = r12980290 - r12980292;
        double r12980294 = d4;
        double r12980295 = r12980294 * r12980288;
        double r12980296 = r12980293 + r12980295;
        double r12980297 = r12980288 * r12980288;
        double r12980298 = r12980296 - r12980297;
        return r12980298;
}

double f(double d1, double d2, double d3, double d4) {
        double r12980299 = d1;
        double r12980300 = d2;
        double r12980301 = r12980299 * r12980300;
        double r12980302 = d3;
        double r12980303 = r12980302 * r12980299;
        double r12980304 = r12980301 - r12980303;
        double r12980305 = d4;
        double r12980306 = r12980299 * r12980305;
        double r12980307 = r12980304 + r12980306;
        double r12980308 = r12980299 * r12980299;
        double r12980309 = r12980307 - r12980308;
        return r12980309;
}

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. Final simplification0.0

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

Reproduce

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

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

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