Average Error: 7.2 → 3.0
Time: 5.4s
Precision: 64
\[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
\[\begin{array}{l} \mathbf{if}\;z \le -1.412584965026174356547481107780761150371 \cdot 10^{211}:\\ \;\;\;\;\frac{x + \frac{y}{t}}{x + 1}\\ \mathbf{elif}\;z \le -2.580684021360039689076100657919132626783 \cdot 10^{160}:\\ \;\;\;\;\frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \sqrt[3]{{\left(\frac{\frac{x}{t \cdot z - x}}{x + 1}\right)}^{3}}\\ \mathbf{elif}\;z \le -2.966830251509030236990636984311025104722 \cdot 10^{118}:\\ \;\;\;\;\frac{x + \frac{y}{t}}{x + 1}\\ \mathbf{elif}\;z \le 1.03829628730808273860363989281490107116 \cdot 10^{46}:\\ \;\;\;\;\left(x + \frac{y \cdot z - x}{t \cdot z - x}\right) \cdot \frac{1}{x + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \sqrt[3]{{\left(\frac{\frac{x}{t \cdot z - x}}{x + 1}\right)}^{3}}\\ \end{array}\]
\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}
\begin{array}{l}
\mathbf{if}\;z \le -1.412584965026174356547481107780761150371 \cdot 10^{211}:\\
\;\;\;\;\frac{x + \frac{y}{t}}{x + 1}\\

\mathbf{elif}\;z \le -2.580684021360039689076100657919132626783 \cdot 10^{160}:\\
\;\;\;\;\frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \sqrt[3]{{\left(\frac{\frac{x}{t \cdot z - x}}{x + 1}\right)}^{3}}\\

\mathbf{elif}\;z \le -2.966830251509030236990636984311025104722 \cdot 10^{118}:\\
\;\;\;\;\frac{x + \frac{y}{t}}{x + 1}\\

\mathbf{elif}\;z \le 1.03829628730808273860363989281490107116 \cdot 10^{46}:\\
\;\;\;\;\left(x + \frac{y \cdot z - x}{t \cdot z - x}\right) \cdot \frac{1}{x + 1}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \sqrt[3]{{\left(\frac{\frac{x}{t \cdot z - x}}{x + 1}\right)}^{3}}\\

\end{array}
double f(double x, double y, double z, double t) {
        double r626833 = x;
        double r626834 = y;
        double r626835 = z;
        double r626836 = r626834 * r626835;
        double r626837 = r626836 - r626833;
        double r626838 = t;
        double r626839 = r626838 * r626835;
        double r626840 = r626839 - r626833;
        double r626841 = r626837 / r626840;
        double r626842 = r626833 + r626841;
        double r626843 = 1.0;
        double r626844 = r626833 + r626843;
        double r626845 = r626842 / r626844;
        return r626845;
}

double f(double x, double y, double z, double t) {
        double r626846 = z;
        double r626847 = -1.4125849650261744e+211;
        bool r626848 = r626846 <= r626847;
        double r626849 = x;
        double r626850 = y;
        double r626851 = t;
        double r626852 = r626850 / r626851;
        double r626853 = r626849 + r626852;
        double r626854 = 1.0;
        double r626855 = r626849 + r626854;
        double r626856 = r626853 / r626855;
        double r626857 = -2.5806840213600397e+160;
        bool r626858 = r626846 <= r626857;
        double r626859 = r626851 * r626846;
        double r626860 = r626859 - r626849;
        double r626861 = r626850 / r626860;
        double r626862 = r626861 * r626846;
        double r626863 = r626862 + r626849;
        double r626864 = 1.0;
        double r626865 = r626855 * r626864;
        double r626866 = r626863 / r626865;
        double r626867 = r626849 / r626860;
        double r626868 = r626867 / r626855;
        double r626869 = 3.0;
        double r626870 = pow(r626868, r626869);
        double r626871 = cbrt(r626870);
        double r626872 = r626866 - r626871;
        double r626873 = -2.9668302515090302e+118;
        bool r626874 = r626846 <= r626873;
        double r626875 = 1.0382962873080827e+46;
        bool r626876 = r626846 <= r626875;
        double r626877 = r626850 * r626846;
        double r626878 = r626877 - r626849;
        double r626879 = r626878 / r626860;
        double r626880 = r626849 + r626879;
        double r626881 = r626864 / r626855;
        double r626882 = r626880 * r626881;
        double r626883 = r626876 ? r626882 : r626872;
        double r626884 = r626874 ? r626856 : r626883;
        double r626885 = r626858 ? r626872 : r626884;
        double r626886 = r626848 ? r626856 : r626885;
        return r626886;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original7.2
Target0.4
Herbie3.0
\[\frac{x + \left(\frac{y}{t - \frac{x}{z}} - \frac{x}{t \cdot z - x}\right)}{x + 1}\]

Derivation

  1. Split input into 3 regimes
  2. if z < -1.4125849650261744e+211 or -2.5806840213600397e+160 < z < -2.9668302515090302e+118

    1. Initial program 21.8

      \[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
    2. Taylor expanded around inf 7.5

      \[\leadsto \frac{x + \color{blue}{\frac{y}{t}}}{x + 1}\]

    if -1.4125849650261744e+211 < z < -2.5806840213600397e+160 or 1.0382962873080827e+46 < z

    1. Initial program 17.5

      \[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
    2. Using strategy rm
    3. Applied div-sub17.5

      \[\leadsto \frac{x + \color{blue}{\left(\frac{y \cdot z}{t \cdot z - x} - \frac{x}{t \cdot z - x}\right)}}{x + 1}\]
    4. Applied associate-+r-17.5

      \[\leadsto \frac{\color{blue}{\left(x + \frac{y \cdot z}{t \cdot z - x}\right) - \frac{x}{t \cdot z - x}}}{x + 1}\]
    5. Applied div-sub17.5

      \[\leadsto \color{blue}{\frac{x + \frac{y \cdot z}{t \cdot z - x}}{x + 1} - \frac{\frac{x}{t \cdot z - x}}{x + 1}}\]
    6. Simplified6.3

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\frac{y}{t \cdot z - x}, z, x\right)}{\left(x + 1\right) \cdot 1}} - \frac{\frac{x}{t \cdot z - x}}{x + 1}\]
    7. Using strategy rm
    8. Applied fma-udef6.3

      \[\leadsto \frac{\color{blue}{\frac{y}{t \cdot z - x} \cdot z + x}}{\left(x + 1\right) \cdot 1} - \frac{\frac{x}{t \cdot z - x}}{x + 1}\]
    9. Using strategy rm
    10. Applied add-cbrt-cube6.3

      \[\leadsto \frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \frac{\frac{x}{t \cdot z - x}}{\color{blue}{\sqrt[3]{\left(\left(x + 1\right) \cdot \left(x + 1\right)\right) \cdot \left(x + 1\right)}}}\]
    11. Applied add-cbrt-cube7.2

      \[\leadsto \frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \frac{\frac{x}{\color{blue}{\sqrt[3]{\left(\left(t \cdot z - x\right) \cdot \left(t \cdot z - x\right)\right) \cdot \left(t \cdot z - x\right)}}}}{\sqrt[3]{\left(\left(x + 1\right) \cdot \left(x + 1\right)\right) \cdot \left(x + 1\right)}}\]
    12. Applied add-cbrt-cube30.3

      \[\leadsto \frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \frac{\frac{\color{blue}{\sqrt[3]{\left(x \cdot x\right) \cdot x}}}{\sqrt[3]{\left(\left(t \cdot z - x\right) \cdot \left(t \cdot z - x\right)\right) \cdot \left(t \cdot z - x\right)}}}{\sqrt[3]{\left(\left(x + 1\right) \cdot \left(x + 1\right)\right) \cdot \left(x + 1\right)}}\]
    13. Applied cbrt-undiv30.3

      \[\leadsto \frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \frac{\color{blue}{\sqrt[3]{\frac{\left(x \cdot x\right) \cdot x}{\left(\left(t \cdot z - x\right) \cdot \left(t \cdot z - x\right)\right) \cdot \left(t \cdot z - x\right)}}}}{\sqrt[3]{\left(\left(x + 1\right) \cdot \left(x + 1\right)\right) \cdot \left(x + 1\right)}}\]
    14. Applied cbrt-undiv30.3

      \[\leadsto \frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \color{blue}{\sqrt[3]{\frac{\frac{\left(x \cdot x\right) \cdot x}{\left(\left(t \cdot z - x\right) \cdot \left(t \cdot z - x\right)\right) \cdot \left(t \cdot z - x\right)}}{\left(\left(x + 1\right) \cdot \left(x + 1\right)\right) \cdot \left(x + 1\right)}}}\]
    15. Simplified6.3

      \[\leadsto \frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \sqrt[3]{\color{blue}{{\left(\frac{\frac{x}{t \cdot z - x}}{x + 1}\right)}^{3}}}\]

    if -2.9668302515090302e+118 < z < 1.0382962873080827e+46

    1. Initial program 1.0

      \[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
    2. Using strategy rm
    3. Applied div-inv1.1

      \[\leadsto \color{blue}{\left(x + \frac{y \cdot z - x}{t \cdot z - x}\right) \cdot \frac{1}{x + 1}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification3.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -1.412584965026174356547481107780761150371 \cdot 10^{211}:\\ \;\;\;\;\frac{x + \frac{y}{t}}{x + 1}\\ \mathbf{elif}\;z \le -2.580684021360039689076100657919132626783 \cdot 10^{160}:\\ \;\;\;\;\frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \sqrt[3]{{\left(\frac{\frac{x}{t \cdot z - x}}{x + 1}\right)}^{3}}\\ \mathbf{elif}\;z \le -2.966830251509030236990636984311025104722 \cdot 10^{118}:\\ \;\;\;\;\frac{x + \frac{y}{t}}{x + 1}\\ \mathbf{elif}\;z \le 1.03829628730808273860363989281490107116 \cdot 10^{46}:\\ \;\;\;\;\left(x + \frac{y \cdot z - x}{t \cdot z - x}\right) \cdot \frac{1}{x + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{t \cdot z - x} \cdot z + x}{\left(x + 1\right) \cdot 1} - \sqrt[3]{{\left(\frac{\frac{x}{t \cdot z - x}}{x + 1}\right)}^{3}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020001 +o rules:numerics
(FPCore (x y z t)
  :name "Diagrams.Trail:splitAtParam  from diagrams-lib-1.3.0.3, A"
  :precision binary64

  :herbie-target
  (/ (+ x (- (/ y (- t (/ x z))) (/ x (- (* t z) x)))) (+ x 1))

  (/ (+ x (/ (- (* y z) x) (- (* t z) x))) (+ x 1)))