x - \frac{y - z}{\frac{\left(t - z\right) + 1.0}{a}}x - a \cdot \frac{y - z}{\left(t - z\right) + 1.0}double f(double x, double y, double z, double t, double a) {
double r31301038 = x;
double r31301039 = y;
double r31301040 = z;
double r31301041 = r31301039 - r31301040;
double r31301042 = t;
double r31301043 = r31301042 - r31301040;
double r31301044 = 1.0;
double r31301045 = r31301043 + r31301044;
double r31301046 = a;
double r31301047 = r31301045 / r31301046;
double r31301048 = r31301041 / r31301047;
double r31301049 = r31301038 - r31301048;
return r31301049;
}
double f(double x, double y, double z, double t, double a) {
double r31301050 = x;
double r31301051 = a;
double r31301052 = y;
double r31301053 = z;
double r31301054 = r31301052 - r31301053;
double r31301055 = t;
double r31301056 = r31301055 - r31301053;
double r31301057 = 1.0;
double r31301058 = r31301056 + r31301057;
double r31301059 = r31301054 / r31301058;
double r31301060 = r31301051 * r31301059;
double r31301061 = r31301050 - r31301060;
return r31301061;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.8 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 1.8
rmApplied associate-/r/0.2
Final simplification0.2
herbie shell --seed 2019162
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.SparkLine:renderSparkLine from Chart-1.5.3"
:herbie-target
(- x (* (/ (- y z) (+ (- t z) 1.0)) a))
(- x (/ (- y z) (/ (+ (- t z) 1.0) a))))