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 r13637965 = x;
double r13637966 = y;
double r13637967 = z;
double r13637968 = t;
double r13637969 = r13637967 - r13637968;
double r13637970 = r13637966 * r13637969;
double r13637971 = a;
double r13637972 = r13637970 / r13637971;
double r13637973 = r13637965 + r13637972;
return r13637973;
}
double f(double x, double y, double z, double t, double a) {
double r13637974 = x;
double r13637975 = z;
double r13637976 = t;
double r13637977 = r13637975 - r13637976;
double r13637978 = y;
double r13637979 = cbrt(r13637978);
double r13637980 = a;
double r13637981 = cbrt(r13637980);
double r13637982 = r13637979 / r13637981;
double r13637983 = r13637977 * r13637982;
double r13637984 = r13637982 * r13637982;
double r13637985 = r13637983 * r13637984;
double r13637986 = r13637974 + r13637985;
return r13637986;
}




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, E"
: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)))