\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y}\begin{array}{l}
\mathbf{if}\;a \le -7.201158076696508984152866869783675785771 \cdot 10^{177} \lor \neg \left(a \le 2.893978670696539514448294922890376187072 \cdot 10^{101}\right):\\
\;\;\;\;a - \left(\sqrt[3]{y \cdot \frac{b}{\left(x + t\right) + y}} \cdot \sqrt[3]{y \cdot \frac{b}{\left(x + t\right) + y}}\right) \cdot \sqrt[3]{y \cdot \frac{b}{\left(x + t\right) + y}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - \left(\sqrt[3]{y \cdot \frac{b}{\left(x + t\right) + y}} \cdot \sqrt[3]{y \cdot \frac{b}{\left(x + t\right) + y}}\right) \cdot \sqrt[3]{y \cdot \frac{b}{\left(x + t\right) + y}}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r909885 = x;
double r909886 = y;
double r909887 = r909885 + r909886;
double r909888 = z;
double r909889 = r909887 * r909888;
double r909890 = t;
double r909891 = r909890 + r909886;
double r909892 = a;
double r909893 = r909891 * r909892;
double r909894 = r909889 + r909893;
double r909895 = b;
double r909896 = r909886 * r909895;
double r909897 = r909894 - r909896;
double r909898 = r909885 + r909890;
double r909899 = r909898 + r909886;
double r909900 = r909897 / r909899;
return r909900;
}
double f(double x, double y, double z, double t, double a, double b) {
double r909901 = a;
double r909902 = -7.201158076696509e+177;
bool r909903 = r909901 <= r909902;
double r909904 = 2.8939786706965395e+101;
bool r909905 = r909901 <= r909904;
double r909906 = !r909905;
bool r909907 = r909903 || r909906;
double r909908 = y;
double r909909 = b;
double r909910 = x;
double r909911 = t;
double r909912 = r909910 + r909911;
double r909913 = r909912 + r909908;
double r909914 = r909909 / r909913;
double r909915 = r909908 * r909914;
double r909916 = cbrt(r909915);
double r909917 = r909916 * r909916;
double r909918 = r909917 * r909916;
double r909919 = r909901 - r909918;
double r909920 = r909910 + r909908;
double r909921 = z;
double r909922 = r909920 * r909921;
double r909923 = r909911 + r909908;
double r909924 = r909923 * r909901;
double r909925 = r909922 + r909924;
double r909926 = r909925 / r909913;
double r909927 = r909926 - r909918;
double r909928 = r909907 ? r909919 : r909927;
return r909928;
}




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 | 26.2 |
|---|---|
| Target | 10.9 |
| Herbie | 19.5 |
if a < -7.201158076696509e+177 or 2.8939786706965395e+101 < a Initial program 41.9
rmApplied div-sub41.9
rmApplied *-un-lft-identity41.9
Applied times-frac42.3
Simplified42.3
rmApplied add-cube-cbrt42.3
Taylor expanded around 0 23.4
if -7.201158076696509e+177 < a < 2.8939786706965395e+101Initial program 20.5
rmApplied div-sub20.5
rmApplied *-un-lft-identity20.5
Applied times-frac17.8
Simplified17.8
rmApplied add-cube-cbrt18.0
Final simplification19.5
herbie shell --seed 2019356
(FPCore (x y z t a b)
:name "AI.Clustering.Hierarchical.Internal:ward from clustering-0.2.1"
:precision binary64
:herbie-target
(if (< (/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)) -3.5813117084150564e+153) (- (+ z a) b) (if (< (/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)) 1.2285964308315609e+82) (/ 1 (/ (+ (+ x t) y) (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)))) (- (+ z a) b)))
(/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)))