Average Error: 0.0 → 0.0
Time: 13.1s
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 r12657136 = d1;
        double r12657137 = d2;
        double r12657138 = r12657136 * r12657137;
        double r12657139 = d3;
        double r12657140 = r12657136 * r12657139;
        double r12657141 = r12657138 - r12657140;
        double r12657142 = d4;
        double r12657143 = r12657142 * r12657136;
        double r12657144 = r12657141 + r12657143;
        double r12657145 = r12657136 * r12657136;
        double r12657146 = r12657144 - r12657145;
        return r12657146;
}

double f(double d1, double d2, double d3, double d4) {
        double r12657147 = d1;
        double r12657148 = d2;
        double r12657149 = r12657147 * r12657148;
        double r12657150 = d3;
        double r12657151 = r12657150 * r12657147;
        double r12657152 = r12657149 - r12657151;
        double r12657153 = d4;
        double r12657154 = r12657147 * r12657153;
        double r12657155 = r12657152 + r12657154;
        double r12657156 = r12657147 * r12657147;
        double r12657157 = r12657155 - r12657156;
        return r12657157;
}

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

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

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