x - \frac{y \cdot \left(z - t\right)}{a}x - \left(\left(z - t\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{a}}\right) \cdot \left(\frac{\sqrt[3]{y}}{\sqrt[3]{a}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{a}}\right)double f(double x, double y, double z, double t, double a) {
double r13494714 = x;
double r13494715 = y;
double r13494716 = z;
double r13494717 = t;
double r13494718 = r13494716 - r13494717;
double r13494719 = r13494715 * r13494718;
double r13494720 = a;
double r13494721 = r13494719 / r13494720;
double r13494722 = r13494714 - r13494721;
return r13494722;
}
double f(double x, double y, double z, double t, double a) {
double r13494723 = x;
double r13494724 = z;
double r13494725 = t;
double r13494726 = r13494724 - r13494725;
double r13494727 = y;
double r13494728 = cbrt(r13494727);
double r13494729 = a;
double r13494730 = cbrt(r13494729);
double r13494731 = r13494728 / r13494730;
double r13494732 = r13494726 * r13494731;
double r13494733 = r13494731 * r13494731;
double r13494734 = r13494732 * r13494733;
double r13494735 = r13494723 - r13494734;
return r13494735;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 5.9 |
|---|---|
| Target | 0.8 |
| Herbie | 1.0 |
Initial program 5.9
rmApplied associate-/l*5.7
rmApplied *-un-lft-identity5.7
Applied add-cube-cbrt6.2
Applied times-frac6.2
Applied add-cube-cbrt6.3
Applied times-frac2.1
Simplified2.1
Simplified1.0
Final simplification1.0
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, F"
:herbie-target
(if (< y -1.0761266216389975e-10) (- x (/ 1.0 (/ (/ a (- z t)) y))) (if (< y 2.894426862792089e-49) (- x (/ (* y (- z t)) a)) (- x (/ y (/ a (- z t))))))
(- x (/ (* y (- z t)) a)))