Average Error: 0.0 → 0.0
Time: 8.1s
Precision: 64
\[\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1\]
\[\left(\left(d2 - d1\right) - d3\right) \cdot d1 + d4 \cdot d1\]
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(\left(d2 - d1\right) - d3\right) \cdot d1 + d4 \cdot d1
double f(double d1, double d2, double d3, double d4) {
        double r223854 = d1;
        double r223855 = d2;
        double r223856 = r223854 * r223855;
        double r223857 = d3;
        double r223858 = r223854 * r223857;
        double r223859 = r223856 - r223858;
        double r223860 = d4;
        double r223861 = r223860 * r223854;
        double r223862 = r223859 + r223861;
        double r223863 = r223854 * r223854;
        double r223864 = r223862 - r223863;
        return r223864;
}

double f(double d1, double d2, double d3, double d4) {
        double r223865 = d2;
        double r223866 = d1;
        double r223867 = r223865 - r223866;
        double r223868 = d3;
        double r223869 = r223867 - r223868;
        double r223870 = r223869 * r223866;
        double r223871 = d4;
        double r223872 = r223871 * r223866;
        double r223873 = r223870 + r223872;
        return r223873;
}

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. Simplified0.0

    \[\leadsto \color{blue}{d1 \cdot \left(d4 + \left(\left(d2 - d1\right) - d3\right)\right)}\]
  3. Using strategy rm
  4. Applied distribute-lft-in0.0

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

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

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

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

Reproduce

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

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

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