Average Error: 11.5 → 2.4
Time: 4.7s
Precision: 64
\[x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}\]
\[\begin{array}{l} \mathbf{if}\;y \le -1662637735122736681347178207859907550511000:\\ \;\;\;\;\left(x - \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right) + \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \left(\left(-\frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right) + \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right)\\ \mathbf{else}:\\ \;\;\;\;x - \frac{y \cdot 2}{2 \cdot z - t \cdot \frac{y}{z}}\\ \end{array}\]
x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}
\begin{array}{l}
\mathbf{if}\;y \le -1662637735122736681347178207859907550511000:\\
\;\;\;\;\left(x - \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right) + \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \left(\left(-\frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right) + \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right)\\

\mathbf{else}:\\
\;\;\;\;x - \frac{y \cdot 2}{2 \cdot z - t \cdot \frac{y}{z}}\\

\end{array}
double f(double x, double y, double z, double t) {
        double r515660 = x;
        double r515661 = y;
        double r515662 = 2.0;
        double r515663 = r515661 * r515662;
        double r515664 = z;
        double r515665 = r515663 * r515664;
        double r515666 = r515664 * r515662;
        double r515667 = r515666 * r515664;
        double r515668 = t;
        double r515669 = r515661 * r515668;
        double r515670 = r515667 - r515669;
        double r515671 = r515665 / r515670;
        double r515672 = r515660 - r515671;
        return r515672;
}

double f(double x, double y, double z, double t) {
        double r515673 = y;
        double r515674 = -1.6626377351227367e+42;
        bool r515675 = r515673 <= r515674;
        double r515676 = x;
        double r515677 = 2.0;
        double r515678 = z;
        double r515679 = r515677 * r515678;
        double r515680 = t;
        double r515681 = r515680 * r515673;
        double r515682 = r515681 / r515678;
        double r515683 = r515679 - r515682;
        double r515684 = cbrt(r515683);
        double r515685 = r515677 / r515684;
        double r515686 = r515684 * r515684;
        double r515687 = r515673 / r515686;
        double r515688 = r515685 * r515687;
        double r515689 = r515676 - r515688;
        double r515690 = -r515685;
        double r515691 = r515690 + r515685;
        double r515692 = r515687 * r515691;
        double r515693 = r515689 + r515692;
        double r515694 = r515673 * r515677;
        double r515695 = r515673 / r515678;
        double r515696 = r515680 * r515695;
        double r515697 = r515679 - r515696;
        double r515698 = r515694 / r515697;
        double r515699 = r515676 - r515698;
        double r515700 = r515675 ? r515693 : r515699;
        return r515700;
}

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

Original11.5
Target0.1
Herbie2.4
\[x - \frac{1}{\frac{z}{y} - \frac{\frac{t}{2}}{z}}\]

Derivation

  1. Split input into 2 regimes
  2. if y < -1.6626377351227367e+42

    1. Initial program 19.9

      \[x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}\]
    2. Using strategy rm
    3. Applied associate-/l*11.0

      \[\leadsto x - \color{blue}{\frac{y \cdot 2}{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}}\]
    4. Taylor expanded around 0 5.3

      \[\leadsto x - \frac{y \cdot 2}{\color{blue}{2 \cdot z - \frac{t \cdot y}{z}}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt5.6

      \[\leadsto x - \frac{y \cdot 2}{\color{blue}{\left(\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}\right) \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}}\]
    7. Applied times-frac5.5

      \[\leadsto x - \color{blue}{\frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}}\]
    8. Applied add-sqr-sqrt34.0

      \[\leadsto \color{blue}{\sqrt{x} \cdot \sqrt{x}} - \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\]
    9. Applied prod-diff34.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt{x}, \sqrt{x}, -\frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right) + \mathsf{fma}\left(-\frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}, \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}, \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right)}\]
    10. Simplified5.5

      \[\leadsto \color{blue}{\left(x - \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right)} + \mathsf{fma}\left(-\frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}, \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}, \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right)\]
    11. Simplified5.5

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

    if -1.6626377351227367e+42 < y

    1. Initial program 9.1

      \[x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}\]
    2. Using strategy rm
    3. Applied associate-/l*5.6

      \[\leadsto x - \color{blue}{\frac{y \cdot 2}{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}}\]
    4. Taylor expanded around 0 2.3

      \[\leadsto x - \frac{y \cdot 2}{\color{blue}{2 \cdot z - \frac{t \cdot y}{z}}}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity2.3

      \[\leadsto x - \frac{y \cdot 2}{2 \cdot z - \frac{t \cdot y}{\color{blue}{1 \cdot z}}}\]
    7. Applied times-frac1.6

      \[\leadsto x - \frac{y \cdot 2}{2 \cdot z - \color{blue}{\frac{t}{1} \cdot \frac{y}{z}}}\]
    8. Simplified1.6

      \[\leadsto x - \frac{y \cdot 2}{2 \cdot z - \color{blue}{t} \cdot \frac{y}{z}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -1662637735122736681347178207859907550511000:\\ \;\;\;\;\left(x - \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right) + \frac{y}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}} \cdot \sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}} \cdot \left(\left(-\frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right) + \frac{2}{\sqrt[3]{2 \cdot z - \frac{t \cdot y}{z}}}\right)\\ \mathbf{else}:\\ \;\;\;\;x - \frac{y \cdot 2}{2 \cdot z - t \cdot \frac{y}{z}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020002 +o rules:numerics
(FPCore (x y z t)
  :name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
  :precision binary64

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

  (- x (/ (* (* y 2) z) (- (* (* z 2) z) (* y t)))))