\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b
x \cdot 2 - \left(\left(\left(y \cdot 9\right) \cdot z\right) \cdot t - 27 \cdot \left(a \cdot b\right)\right)
double f(double x, double y, double z, double t, double a, double b) {
double r448798 = x;
double r448799 = 2.0;
double r448800 = r448798 * r448799;
double r448801 = y;
double r448802 = 9.0;
double r448803 = r448801 * r448802;
double r448804 = z;
double r448805 = r448803 * r448804;
double r448806 = t;
double r448807 = r448805 * r448806;
double r448808 = r448800 - r448807;
double r448809 = a;
double r448810 = 27.0;
double r448811 = r448809 * r448810;
double r448812 = b;
double r448813 = r448811 * r448812;
double r448814 = r448808 + r448813;
return r448814;
}
double f(double x, double y, double z, double t, double a, double b) {
double r448815 = x;
double r448816 = 2.0;
double r448817 = r448815 * r448816;
double r448818 = y;
double r448819 = 9.0;
double r448820 = r448818 * r448819;
double r448821 = z;
double r448822 = r448820 * r448821;
double r448823 = t;
double r448824 = r448822 * r448823;
double r448825 = 27.0;
double r448826 = a;
double r448827 = b;
double r448828 = r448826 * r448827;
double r448829 = r448825 * r448828;
double r448830 = r448824 - r448829;
double r448831 = r448817 - r448830;
return r448831;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 3.7 |
|---|---|
| Target | 2.7 |
| Herbie | 3.7 |
if (* (* y 9.0) z) < -6.081241351277884e+164 or 2.2735591035025706e+158 < (* (* y 9.0) z) Initial program 20.9
rmApplied associate-*l*1.9
rmApplied associate-*l*1.5
if -6.081241351277884e+164 < (* (* y 9.0) z) < 2.2735591035025706e+158Initial program 0.4
rmApplied pow10.4
Applied pow10.4
Applied pow10.4
Applied pow-prod-down0.4
Applied pow-prod-down0.4
Simplified0.3
Final simplification3.7
herbie shell --seed 2019294
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< y 7.590524218811189e-161) (+ (- (* x 2) (* (* (* y 9) z) t)) (* a (* 27 b))) (+ (- (* x 2) (* 9 (* y (* t z)))) (* (* a 27) b)))
(+ (- (* x 2) (* (* (* y 9) z) t)) (* (* a 27) b)))