\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 -1.329351671379600395696054258455065074018 \cdot 10^{162}:\\
\;\;\;\;a - y \cdot \frac{b}{\left(x + t\right) + y}\\
\mathbf{elif}\;a \le 5.325165846082585887271445202627113987297 \cdot 10^{-212}:\\
\;\;\;\;\frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - \frac{y}{\sqrt[3]{\left(x + t\right) + y} \cdot \sqrt[3]{\left(x + t\right) + y}} \cdot \frac{b}{\sqrt[3]{\left(x + t\right) + y}}\\
\mathbf{elif}\;a \le 1.908584443905937974655168865478710611307 \cdot 10^{-45}:\\
\;\;\;\;z - y \cdot \frac{b}{\left(x + t\right) + y}\\
\mathbf{elif}\;a \le 1.978965818958528848241507275261864808485 \cdot 10^{164}:\\
\;\;\;\;\frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - \frac{y}{\frac{\left(x + t\right) + y}{b}}\\
\mathbf{else}:\\
\;\;\;\;a - 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 r716999 = x;
double r717000 = y;
double r717001 = r716999 + r717000;
double r717002 = z;
double r717003 = r717001 * r717002;
double r717004 = t;
double r717005 = r717004 + r717000;
double r717006 = a;
double r717007 = r717005 * r717006;
double r717008 = r717003 + r717007;
double r717009 = b;
double r717010 = r717000 * r717009;
double r717011 = r717008 - r717010;
double r717012 = r716999 + r717004;
double r717013 = r717012 + r717000;
double r717014 = r717011 / r717013;
return r717014;
}
double f(double x, double y, double z, double t, double a, double b) {
double r717015 = a;
double r717016 = -1.3293516713796004e+162;
bool r717017 = r717015 <= r717016;
double r717018 = y;
double r717019 = b;
double r717020 = x;
double r717021 = t;
double r717022 = r717020 + r717021;
double r717023 = r717022 + r717018;
double r717024 = r717019 / r717023;
double r717025 = r717018 * r717024;
double r717026 = r717015 - r717025;
double r717027 = 5.325165846082586e-212;
bool r717028 = r717015 <= r717027;
double r717029 = r717020 + r717018;
double r717030 = z;
double r717031 = r717029 * r717030;
double r717032 = r717021 + r717018;
double r717033 = r717032 * r717015;
double r717034 = r717031 + r717033;
double r717035 = r717034 / r717023;
double r717036 = cbrt(r717023);
double r717037 = r717036 * r717036;
double r717038 = r717018 / r717037;
double r717039 = r717019 / r717036;
double r717040 = r717038 * r717039;
double r717041 = r717035 - r717040;
double r717042 = 1.908584443905938e-45;
bool r717043 = r717015 <= r717042;
double r717044 = r717030 - r717025;
double r717045 = 1.9789658189585288e+164;
bool r717046 = r717015 <= r717045;
double r717047 = r717023 / r717019;
double r717048 = r717018 / r717047;
double r717049 = r717035 - r717048;
double r717050 = r717046 ? r717049 : r717026;
double r717051 = r717043 ? r717044 : r717050;
double r717052 = r717028 ? r717041 : r717051;
double r717053 = r717017 ? r717026 : r717052;
return r717053;
}




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.3 |
|---|---|
| Target | 11.6 |
| Herbie | 20.6 |
if a < -1.3293516713796004e+162 or 1.9789658189585288e+164 < a Initial program 42.9
rmApplied div-sub42.9
rmApplied *-un-lft-identity42.9
Applied times-frac43.6
Simplified43.6
Taylor expanded around 0 25.0
if -1.3293516713796004e+162 < a < 5.325165846082586e-212Initial program 20.3
rmApplied div-sub20.3
rmApplied *-un-lft-identity20.3
Applied times-frac17.5
Simplified17.5
rmApplied add-cube-cbrt17.7
Applied *-un-lft-identity17.7
Applied times-frac17.7
Applied associate-*r*16.9
Simplified16.9
if 5.325165846082586e-212 < a < 1.908584443905938e-45Initial program 18.8
rmApplied div-sub18.8
rmApplied *-un-lft-identity18.8
Applied times-frac15.4
Simplified15.4
Taylor expanded around inf 22.0
if 1.908584443905938e-45 < a < 1.9789658189585288e+164Initial program 26.4
rmApplied div-sub26.4
rmApplied associate-/l*23.7
Final simplification20.6
herbie shell --seed 2019303
(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.5813117084150564e153) (- (+ z a) b) (if (< (/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)) 1.2285964308315609e82) (/ 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)))