x + \frac{y \cdot \left(z - t\right)}{a}x + \frac{\frac{y}{\frac{\sqrt[3]{a}}{\sqrt[3]{z - t}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{z - t}}}}{\frac{\sqrt[3]{a}}{\sqrt[3]{z - t}}}double f(double x, double y, double z, double t, double a) {
double r26693082 = x;
double r26693083 = y;
double r26693084 = z;
double r26693085 = t;
double r26693086 = r26693084 - r26693085;
double r26693087 = r26693083 * r26693086;
double r26693088 = a;
double r26693089 = r26693087 / r26693088;
double r26693090 = r26693082 + r26693089;
return r26693090;
}
double f(double x, double y, double z, double t, double a) {
double r26693091 = x;
double r26693092 = y;
double r26693093 = a;
double r26693094 = cbrt(r26693093);
double r26693095 = z;
double r26693096 = t;
double r26693097 = r26693095 - r26693096;
double r26693098 = cbrt(r26693097);
double r26693099 = r26693094 / r26693098;
double r26693100 = r26693099 * r26693099;
double r26693101 = r26693092 / r26693100;
double r26693102 = r26693101 / r26693099;
double r26693103 = r26693091 + r26693102;
return r26693103;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.3 |
|---|---|
| Target | 0.6 |
| Herbie | 1.5 |
Initial program 6.3
rmApplied associate-/l*5.8
rmApplied add-cube-cbrt6.2
Applied add-cube-cbrt6.4
Applied times-frac6.3
Applied associate-/r*1.5
Simplified1.5
Final simplification1.5
herbie shell --seed 2019174
(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)))