Average Error: 0.0 → 0.0
Time: 14.8s
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 r10871204 = d1;
        double r10871205 = d2;
        double r10871206 = r10871204 * r10871205;
        double r10871207 = d3;
        double r10871208 = r10871204 * r10871207;
        double r10871209 = r10871206 - r10871208;
        double r10871210 = d4;
        double r10871211 = r10871210 * r10871204;
        double r10871212 = r10871209 + r10871211;
        double r10871213 = r10871204 * r10871204;
        double r10871214 = r10871212 - r10871213;
        return r10871214;
}

double f(double d1, double d2, double d3, double d4) {
        double r10871215 = d1;
        double r10871216 = d2;
        double r10871217 = r10871215 * r10871216;
        double r10871218 = d3;
        double r10871219 = r10871218 * r10871215;
        double r10871220 = r10871217 - r10871219;
        double r10871221 = d4;
        double r10871222 = r10871215 * r10871221;
        double r10871223 = r10871220 + r10871222;
        double r10871224 = r10871215 * r10871215;
        double r10871225 = r10871223 - r10871224;
        return r10871225;
}

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 2019137 
(FPCore (d1 d2 d3 d4)
  :name "FastMath dist4"

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

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