\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 r9685042 = d1;
double r9685043 = d2;
double r9685044 = r9685042 * r9685043;
double r9685045 = d3;
double r9685046 = r9685042 * r9685045;
double r9685047 = r9685044 - r9685046;
double r9685048 = d4;
double r9685049 = r9685048 * r9685042;
double r9685050 = r9685047 + r9685049;
double r9685051 = r9685042 * r9685042;
double r9685052 = r9685050 - r9685051;
return r9685052;
}
double f(double d1, double d2, double d3, double d4) {
double r9685053 = d1;
double r9685054 = d2;
double r9685055 = r9685053 * r9685054;
double r9685056 = d3;
double r9685057 = r9685056 * r9685053;
double r9685058 = r9685055 - r9685057;
double r9685059 = d4;
double r9685060 = r9685053 * r9685059;
double r9685061 = r9685058 + r9685060;
double r9685062 = r9685053 * r9685053;
double r9685063 = r9685061 - r9685062;
return r9685063;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3




Bits error versus d4
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
Final simplification0.0
herbie shell --seed 2019171 +o rules:numerics
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))