\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\begin{array}{l}
\mathbf{if}\;z \le -7.686463608781792051961197037237609248513 \cdot 10^{-26}:\\
\;\;\;\;\left(x - \frac{\frac{y}{z}}{3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\\
\mathbf{elif}\;z \le 1313.663686912553885122179053723812103271:\\
\;\;\;\;\left(x - \frac{y}{z \cdot 3}\right) + \frac{\frac{1}{z}}{\frac{y}{\frac{t}{3}}}\\
\mathbf{else}:\\
\;\;\;\;\left(x - \frac{y}{z \cdot 3}\right) + \frac{\frac{t}{\sqrt{3}}}{y \cdot \left(\sqrt{3} \cdot z\right)}\\
\end{array}double f(double x, double y, double z, double t) {
double r908302 = x;
double r908303 = y;
double r908304 = z;
double r908305 = 3.0;
double r908306 = r908304 * r908305;
double r908307 = r908303 / r908306;
double r908308 = r908302 - r908307;
double r908309 = t;
double r908310 = r908306 * r908303;
double r908311 = r908309 / r908310;
double r908312 = r908308 + r908311;
return r908312;
}
double f(double x, double y, double z, double t) {
double r908313 = z;
double r908314 = -7.686463608781792e-26;
bool r908315 = r908313 <= r908314;
double r908316 = x;
double r908317 = y;
double r908318 = r908317 / r908313;
double r908319 = 3.0;
double r908320 = r908318 / r908319;
double r908321 = r908316 - r908320;
double r908322 = t;
double r908323 = r908313 * r908319;
double r908324 = r908323 * r908317;
double r908325 = r908322 / r908324;
double r908326 = r908321 + r908325;
double r908327 = 1313.6636869125539;
bool r908328 = r908313 <= r908327;
double r908329 = r908317 / r908323;
double r908330 = r908316 - r908329;
double r908331 = 1.0;
double r908332 = r908331 / r908313;
double r908333 = r908322 / r908319;
double r908334 = r908317 / r908333;
double r908335 = r908332 / r908334;
double r908336 = r908330 + r908335;
double r908337 = sqrt(r908319);
double r908338 = r908322 / r908337;
double r908339 = r908337 * r908313;
double r908340 = r908317 * r908339;
double r908341 = r908338 / r908340;
double r908342 = r908330 + r908341;
double r908343 = r908328 ? r908336 : r908342;
double r908344 = r908315 ? r908326 : r908343;
return r908344;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.6 |
|---|---|
| Target | 1.9 |
| Herbie | 0.4 |
if z < -7.686463608781792e-26Initial program 0.4
rmApplied associate-/r*0.4
if -7.686463608781792e-26 < z < 1313.6636869125539Initial program 10.6
rmApplied associate-/r*3.4
rmApplied *-un-lft-identity3.4
Applied times-frac3.4
Applied associate-/l*0.3
if 1313.6636869125539 < z Initial program 0.3
rmApplied associate-/r*1.1
rmApplied associate-/r*1.0
rmApplied add-sqr-sqrt1.1
Applied div-inv1.1
Applied times-frac1.1
Applied associate-/l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019362
(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))))