x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)x \cdot \left({\left(\frac{\sqrt[3]{y}}{\sqrt[3]{z}}\right)}^{3} - \frac{t}{1 - z}\right)double f(double x, double y, double z, double t) {
double r271472 = x;
double r271473 = y;
double r271474 = z;
double r271475 = r271473 / r271474;
double r271476 = t;
double r271477 = 1.0;
double r271478 = r271477 - r271474;
double r271479 = r271476 / r271478;
double r271480 = r271475 - r271479;
double r271481 = r271472 * r271480;
return r271481;
}
double f(double x, double y, double z, double t) {
double r271482 = x;
double r271483 = y;
double r271484 = cbrt(r271483);
double r271485 = z;
double r271486 = cbrt(r271485);
double r271487 = r271484 / r271486;
double r271488 = 3.0;
double r271489 = pow(r271487, r271488);
double r271490 = t;
double r271491 = 1.0;
double r271492 = r271491 - r271485;
double r271493 = r271490 / r271492;
double r271494 = r271489 - r271493;
double r271495 = r271482 * r271494;
return r271495;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 4.7 |
|---|---|
| Target | 4.1 |
| Herbie | 5.3 |
Initial program 4.7
rmApplied div-inv4.7
rmApplied sub-neg4.7
Applied distribute-lft-in4.7
Simplified4.7
rmApplied add-cube-cbrt5.2
Applied add-cube-cbrt5.3
Applied times-frac5.3
Applied associate-*r*1.9
Final simplification5.3
herbie shell --seed 1978988140
(FPCore (x y z t)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, C"
:precision binary64
:herbie-target
(if (< (* x (- (/ y z) (/ t (- 1 z)))) -7.62322630331204244e-196) (* x (- (/ y z) (* t (/ 1 (- 1 z))))) (if (< (* x (- (/ y z) (/ t (- 1 z)))) 1.41339449277023022e-211) (+ (/ (* y x) z) (- (/ (* t x) (- 1 z)))) (* x (- (/ y z) (* t (/ 1 (- 1 z)))))))
(* x (- (/ y z) (/ t (- 1 z)))))