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 r12335115 = x;
double r12335116 = y;
double r12335117 = z;
double r12335118 = t;
double r12335119 = r12335117 - r12335118;
double r12335120 = r12335116 * r12335119;
double r12335121 = a;
double r12335122 = r12335120 / r12335121;
double r12335123 = r12335115 - r12335122;
return r12335123;
}
double f(double x, double y, double z, double t, double a) {
double r12335124 = x;
double r12335125 = z;
double r12335126 = t;
double r12335127 = r12335125 - r12335126;
double r12335128 = y;
double r12335129 = cbrt(r12335128);
double r12335130 = a;
double r12335131 = cbrt(r12335130);
double r12335132 = r12335129 / r12335131;
double r12335133 = r12335127 * r12335132;
double r12335134 = r12335132 * r12335132;
double r12335135 = r12335133 * r12335134;
double r12335136 = r12335124 - r12335135;
return r12335136;
}




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)))