x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}x - \left(\left(y - z\right) \cdot \frac{1}{\left(t - z\right) + 1}\right) \cdot adouble f(double x, double y, double z, double t, double a) {
double r685099 = x;
double r685100 = y;
double r685101 = z;
double r685102 = r685100 - r685101;
double r685103 = t;
double r685104 = r685103 - r685101;
double r685105 = 1.0;
double r685106 = r685104 + r685105;
double r685107 = a;
double r685108 = r685106 / r685107;
double r685109 = r685102 / r685108;
double r685110 = r685099 - r685109;
return r685110;
}
double f(double x, double y, double z, double t, double a) {
double r685111 = x;
double r685112 = y;
double r685113 = z;
double r685114 = r685112 - r685113;
double r685115 = 1.0;
double r685116 = t;
double r685117 = r685116 - r685113;
double r685118 = 1.0;
double r685119 = r685117 + r685118;
double r685120 = r685115 / r685119;
double r685121 = r685114 * r685120;
double r685122 = a;
double r685123 = r685121 * r685122;
double r685124 = r685111 - r685123;
return r685124;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 2.1 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 2.1
rmApplied associate-/r/0.3
rmApplied div-inv0.3
Final simplification0.3
herbie shell --seed 2019353
(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))))