\frac{x}{y} \cdot \left(z - t\right) + t\left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot \left(z - t\right)\right) \cdot \frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} + tdouble f(double x, double y, double z, double t) {
double r22814449 = x;
double r22814450 = y;
double r22814451 = r22814449 / r22814450;
double r22814452 = z;
double r22814453 = t;
double r22814454 = r22814452 - r22814453;
double r22814455 = r22814451 * r22814454;
double r22814456 = r22814455 + r22814453;
return r22814456;
}
double f(double x, double y, double z, double t) {
double r22814457 = x;
double r22814458 = cbrt(r22814457);
double r22814459 = y;
double r22814460 = cbrt(r22814459);
double r22814461 = r22814458 / r22814460;
double r22814462 = z;
double r22814463 = t;
double r22814464 = r22814462 - r22814463;
double r22814465 = r22814461 * r22814464;
double r22814466 = r22814458 * r22814458;
double r22814467 = r22814460 * r22814460;
double r22814468 = r22814466 / r22814467;
double r22814469 = r22814465 * r22814468;
double r22814470 = r22814469 + r22814463;
return r22814470;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.0 |
| Herbie | 1.0 |
Initial program 2.0
rmApplied add-cube-cbrt2.5
Applied add-cube-cbrt2.6
Applied times-frac2.6
Applied associate-*l*1.0
Final simplification1.0
herbie shell --seed 2019192
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
:herbie-target
(if (< z 2.759456554562692e-282) (+ (* (/ x y) (- z t)) t) (if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) (+ (* (/ x y) (- z t)) t)))
(+ (* (/ x y) (- z t)) t))