\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\left(x - \frac{\frac{y}{z}}{3}\right) + \left(0.333333333333333315 \cdot \frac{t}{z}\right) \cdot \frac{1}{y}double f(double x, double y, double z, double t) {
double r759325 = x;
double r759326 = y;
double r759327 = z;
double r759328 = 3.0;
double r759329 = r759327 * r759328;
double r759330 = r759326 / r759329;
double r759331 = r759325 - r759330;
double r759332 = t;
double r759333 = r759329 * r759326;
double r759334 = r759332 / r759333;
double r759335 = r759331 + r759334;
return r759335;
}
double f(double x, double y, double z, double t) {
double r759336 = x;
double r759337 = y;
double r759338 = z;
double r759339 = r759337 / r759338;
double r759340 = 3.0;
double r759341 = r759339 / r759340;
double r759342 = r759336 - r759341;
double r759343 = 0.3333333333333333;
double r759344 = t;
double r759345 = r759344 / r759338;
double r759346 = r759343 * r759345;
double r759347 = 1.0;
double r759348 = r759347 / r759337;
double r759349 = r759346 * r759348;
double r759350 = r759342 + r759349;
return r759350;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.6 |
|---|---|
| Target | 1.6 |
| Herbie | 1.6 |
Initial program 3.6
rmApplied associate-/r*1.6
rmApplied associate-/r*1.6
Taylor expanded around 0 1.6
rmApplied div-inv1.6
Final simplification1.6
herbie shell --seed 2020049
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, H"
:precision binary64
:herbie-target
(+ (- x (/ y (* z 3))) (/ (/ t (* z 3)) y))
(+ (- x (/ y (* z 3))) (/ t (* (* z 3) y))))