x + \frac{y \cdot \left(z - x\right)}{t}x + \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \left(\frac{\sqrt[3]{y}}{\sqrt[3]{t}} \cdot \left(z - x\right)\right)double f(double x, double y, double z, double t) {
double r305464 = x;
double r305465 = y;
double r305466 = z;
double r305467 = r305466 - r305464;
double r305468 = r305465 * r305467;
double r305469 = t;
double r305470 = r305468 / r305469;
double r305471 = r305464 + r305470;
return r305471;
}
double f(double x, double y, double z, double t) {
double r305472 = x;
double r305473 = y;
double r305474 = cbrt(r305473);
double r305475 = r305474 * r305474;
double r305476 = t;
double r305477 = cbrt(r305476);
double r305478 = r305477 * r305477;
double r305479 = r305475 / r305478;
double r305480 = r305474 / r305477;
double r305481 = z;
double r305482 = r305481 - r305472;
double r305483 = r305480 * r305482;
double r305484 = r305479 * r305483;
double r305485 = r305472 + r305484;
return r305485;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.8 |
|---|---|
| Target | 2.1 |
| Herbie | 0.9 |
Initial program 6.8
rmApplied add-cube-cbrt7.3
Applied times-frac3.2
Taylor expanded around 0 6.8
Simplified6.2
rmApplied div-inv6.2
Applied div-inv6.2
Applied distribute-rgt-out--6.2
Applied associate-*r*2.1
Simplified2.1
rmApplied add-cube-cbrt2.6
Applied add-cube-cbrt2.7
Applied times-frac2.7
Applied associate-*l*0.9
Final simplification0.9
herbie shell --seed 2019303
(FPCore (x y z t)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, D"
:precision binary64
:herbie-target
(- x (+ (* x (/ y t)) (* (- z) (/ y t))))
(+ x (/ (* y (- z x)) t)))