Average Error: 26.4 → 20.7
Time: 22.4s
Precision: 64
\[\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}\;z \le -1.061610428241891645480708199708681011513 \cdot 10^{213}:\\ \;\;\;\;z\\ \mathbf{elif}\;z \le 1.719219137598275093556354895685157553131 \cdot 10^{166}:\\ \;\;\;\;\frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - y \cdot \frac{b}{\left(x + t\right) + y}\\ \mathbf{else}:\\ \;\;\;\;z\\ \end{array}\]
\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}\;z \le -1.061610428241891645480708199708681011513 \cdot 10^{213}:\\
\;\;\;\;z\\

\mathbf{elif}\;z \le 1.719219137598275093556354895685157553131 \cdot 10^{166}:\\
\;\;\;\;\frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - y \cdot \frac{b}{\left(x + t\right) + y}\\

\mathbf{else}:\\
\;\;\;\;z\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r577976 = x;
        double r577977 = y;
        double r577978 = r577976 + r577977;
        double r577979 = z;
        double r577980 = r577978 * r577979;
        double r577981 = t;
        double r577982 = r577981 + r577977;
        double r577983 = a;
        double r577984 = r577982 * r577983;
        double r577985 = r577980 + r577984;
        double r577986 = b;
        double r577987 = r577977 * r577986;
        double r577988 = r577985 - r577987;
        double r577989 = r577976 + r577981;
        double r577990 = r577989 + r577977;
        double r577991 = r577988 / r577990;
        return r577991;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r577992 = z;
        double r577993 = -1.0616104282418916e+213;
        bool r577994 = r577992 <= r577993;
        double r577995 = 1.719219137598275e+166;
        bool r577996 = r577992 <= r577995;
        double r577997 = x;
        double r577998 = y;
        double r577999 = r577997 + r577998;
        double r578000 = r577999 * r577992;
        double r578001 = t;
        double r578002 = r578001 + r577998;
        double r578003 = a;
        double r578004 = r578002 * r578003;
        double r578005 = r578000 + r578004;
        double r578006 = r577997 + r578001;
        double r578007 = r578006 + r577998;
        double r578008 = r578005 / r578007;
        double r578009 = b;
        double r578010 = r578009 / r578007;
        double r578011 = r577998 * r578010;
        double r578012 = r578008 - r578011;
        double r578013 = r577996 ? r578012 : r577992;
        double r578014 = r577994 ? r577992 : r578013;
        return r578014;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original26.4
Target11.2
Herbie20.7
\[\begin{array}{l} \mathbf{if}\;\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} \lt -3.581311708415056427521064305370896655752 \cdot 10^{153}:\\ \;\;\;\;\left(z + a\right) - b\\ \mathbf{elif}\;\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} \lt 1.228596430831560895857110658734089400289 \cdot 10^{82}:\\ \;\;\;\;\frac{1}{\frac{\left(x + t\right) + y}{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}}\\ \mathbf{else}:\\ \;\;\;\;\left(z + a\right) - b\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if z < -1.0616104282418916e+213 or 1.719219137598275e+166 < z

    1. Initial program 43.8

      \[\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y}\]
    2. Taylor expanded around inf 25.6

      \[\leadsto \color{blue}{z}\]

    if -1.0616104282418916e+213 < z < 1.719219137598275e+166

    1. Initial program 22.3

      \[\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt22.9

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a} \cdot \sqrt[3]{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}\right) \cdot \sqrt[3]{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}} - y \cdot b}{\left(x + t\right) + y}\]
    4. Using strategy rm
    5. Applied div-sub22.9

      \[\leadsto \color{blue}{\frac{\left(\sqrt[3]{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a} \cdot \sqrt[3]{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}\right) \cdot \sqrt[3]{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}}{\left(x + t\right) + y} - \frac{y \cdot b}{\left(x + t\right) + y}}\]
    6. Simplified22.3

      \[\leadsto \color{blue}{\frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y}} - \frac{y \cdot b}{\left(x + t\right) + y}\]
    7. Using strategy rm
    8. Applied *-un-lft-identity22.3

      \[\leadsto \frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - \frac{y \cdot b}{\color{blue}{1 \cdot \left(\left(x + t\right) + y\right)}}\]
    9. Applied times-frac19.6

      \[\leadsto \frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - \color{blue}{\frac{y}{1} \cdot \frac{b}{\left(x + t\right) + y}}\]
    10. Simplified19.6

      \[\leadsto \frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - \color{blue}{y} \cdot \frac{b}{\left(x + t\right) + y}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification20.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -1.061610428241891645480708199708681011513 \cdot 10^{213}:\\ \;\;\;\;z\\ \mathbf{elif}\;z \le 1.719219137598275093556354895685157553131 \cdot 10^{166}:\\ \;\;\;\;\frac{\left(x + y\right) \cdot z + \left(t + y\right) \cdot a}{\left(x + t\right) + y} - y \cdot \frac{b}{\left(x + t\right) + y}\\ \mathbf{else}:\\ \;\;\;\;z\\ \end{array}\]

Reproduce

herbie shell --seed 2019325 
(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)))