x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}\mathsf{fma}\left(a, \frac{z}{\left(t - z\right) + 1} - \frac{y}{\left(t - z\right) + 1}, x\right)double f(double x, double y, double z, double t, double a) {
double r391570 = x;
double r391571 = y;
double r391572 = z;
double r391573 = r391571 - r391572;
double r391574 = t;
double r391575 = r391574 - r391572;
double r391576 = 1.0;
double r391577 = r391575 + r391576;
double r391578 = a;
double r391579 = r391577 / r391578;
double r391580 = r391573 / r391579;
double r391581 = r391570 - r391580;
return r391581;
}
double f(double x, double y, double z, double t, double a) {
double r391582 = a;
double r391583 = z;
double r391584 = t;
double r391585 = r391584 - r391583;
double r391586 = 1.0;
double r391587 = r391585 + r391586;
double r391588 = r391583 / r391587;
double r391589 = y;
double r391590 = r391589 / r391587;
double r391591 = r391588 - r391590;
double r391592 = x;
double r391593 = fma(r391582, r391591, r391592);
return r391593;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 2.1 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 2.1
Simplified0.2
rmApplied div-sub0.2
Final simplification0.2
herbie shell --seed 2019322 +o rules:numerics
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.SparkLine:renderSparkLine from Chart-1.5.3"
:precision binary64
:herbie-target
(- x (* (/ (- y z) (+ (- t z) 1)) a))
(- x (/ (- y z) (/ (+ (- t z) 1) a))))