x - \frac{y \cdot \left(z - t\right)}{a}\left(\left(t - z\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{a}}\right) \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} + xdouble f(double x, double y, double z, double t, double a) {
double r257134 = x;
double r257135 = y;
double r257136 = z;
double r257137 = t;
double r257138 = r257136 - r257137;
double r257139 = r257135 * r257138;
double r257140 = a;
double r257141 = r257139 / r257140;
double r257142 = r257134 - r257141;
return r257142;
}
double f(double x, double y, double z, double t, double a) {
double r257143 = t;
double r257144 = z;
double r257145 = r257143 - r257144;
double r257146 = y;
double r257147 = cbrt(r257146);
double r257148 = a;
double r257149 = cbrt(r257148);
double r257150 = r257147 / r257149;
double r257151 = r257145 * r257150;
double r257152 = r257147 * r257147;
double r257153 = r257149 * r257149;
double r257154 = r257152 / r257153;
double r257155 = r257151 * r257154;
double r257156 = x;
double r257157 = r257155 + r257156;
return r257157;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.4 |
|---|---|
| Target | 0.7 |
| Herbie | 0.9 |
Initial program 6.4
Simplified2.6
rmApplied add-cube-cbrt3.1
Applied add-cube-cbrt3.2
Applied times-frac3.2
Applied associate-*l*0.9
Final simplification0.9
herbie shell --seed 2019196
(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)))