x - \frac{y - z}{\frac{\left(t - z\right) + 1}{a}}\mathsf{fma}\left(\frac{1}{\frac{\left(1 + t\right) - z}{z - y}}, a, x\right)double f(double x, double y, double z, double t, double a) {
double r29876020 = x;
double r29876021 = y;
double r29876022 = z;
double r29876023 = r29876021 - r29876022;
double r29876024 = t;
double r29876025 = r29876024 - r29876022;
double r29876026 = 1.0;
double r29876027 = r29876025 + r29876026;
double r29876028 = a;
double r29876029 = r29876027 / r29876028;
double r29876030 = r29876023 / r29876029;
double r29876031 = r29876020 - r29876030;
return r29876031;
}
double f(double x, double y, double z, double t, double a) {
double r29876032 = 1.0;
double r29876033 = 1.0;
double r29876034 = t;
double r29876035 = r29876033 + r29876034;
double r29876036 = z;
double r29876037 = r29876035 - r29876036;
double r29876038 = y;
double r29876039 = r29876036 - r29876038;
double r29876040 = r29876037 / r29876039;
double r29876041 = r29876032 / r29876040;
double r29876042 = a;
double r29876043 = x;
double r29876044 = fma(r29876041, r29876042, r29876043);
return r29876044;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 1.9 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 1.9
Simplified0.3
rmApplied clear-num0.3
Final simplification0.3
herbie shell --seed 2019170 +o rules:numerics
(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))))