Average Error: 11.4 → 1.9
Time: 3.9s
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}\;t \le -2.17270890305481004 \cdot 10^{-126}:\\ \;\;\;\;x - \frac{y}{\frac{2 \cdot z - \frac{t}{\frac{z}{y}}}{2}}\\ \mathbf{elif}\;t \le 2.57260176742525899 \cdot 10^{-247}:\\ \;\;\;\;x - \frac{y}{\frac{2 \cdot z - \left(\sqrt[3]{\frac{t \cdot y}{z}} \cdot \sqrt[3]{\frac{t \cdot y}{z}}\right) \cdot \sqrt[3]{\frac{t \cdot y}{z}}}{2}}\\ \mathbf{else}:\\ \;\;\;\;x - \frac{y}{\frac{2 \cdot z - t \cdot \frac{y}{z}}{2}}\\ \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}\;t \le -2.17270890305481004 \cdot 10^{-126}:\\
\;\;\;\;x - \frac{y}{\frac{2 \cdot z - \frac{t}{\frac{z}{y}}}{2}}\\

\mathbf{elif}\;t \le 2.57260176742525899 \cdot 10^{-247}:\\
\;\;\;\;x - \frac{y}{\frac{2 \cdot z - \left(\sqrt[3]{\frac{t \cdot y}{z}} \cdot \sqrt[3]{\frac{t \cdot y}{z}}\right) \cdot \sqrt[3]{\frac{t \cdot y}{z}}}{2}}\\

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

\end{array}
double f(double x, double y, double z, double t) {
        double r481737 = x;
        double r481738 = y;
        double r481739 = 2.0;
        double r481740 = r481738 * r481739;
        double r481741 = z;
        double r481742 = r481740 * r481741;
        double r481743 = r481741 * r481739;
        double r481744 = r481743 * r481741;
        double r481745 = t;
        double r481746 = r481738 * r481745;
        double r481747 = r481744 - r481746;
        double r481748 = r481742 / r481747;
        double r481749 = r481737 - r481748;
        return r481749;
}

double f(double x, double y, double z, double t) {
        double r481750 = t;
        double r481751 = -2.17270890305481e-126;
        bool r481752 = r481750 <= r481751;
        double r481753 = x;
        double r481754 = y;
        double r481755 = 2.0;
        double r481756 = z;
        double r481757 = r481755 * r481756;
        double r481758 = r481756 / r481754;
        double r481759 = r481750 / r481758;
        double r481760 = r481757 - r481759;
        double r481761 = r481760 / r481755;
        double r481762 = r481754 / r481761;
        double r481763 = r481753 - r481762;
        double r481764 = 2.572601767425259e-247;
        bool r481765 = r481750 <= r481764;
        double r481766 = r481750 * r481754;
        double r481767 = r481766 / r481756;
        double r481768 = cbrt(r481767);
        double r481769 = r481768 * r481768;
        double r481770 = r481769 * r481768;
        double r481771 = r481757 - r481770;
        double r481772 = r481771 / r481755;
        double r481773 = r481754 / r481772;
        double r481774 = r481753 - r481773;
        double r481775 = r481754 / r481756;
        double r481776 = r481750 * r481775;
        double r481777 = r481757 - r481776;
        double r481778 = r481777 / r481755;
        double r481779 = r481754 / r481778;
        double r481780 = r481753 - r481779;
        double r481781 = r481765 ? r481774 : r481780;
        double r481782 = r481752 ? r481763 : r481781;
        return r481782;
}

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.4
Target0.1
Herbie1.9
\[x - \frac{1}{\frac{z}{y} - \frac{\frac{t}{2}}{z}}\]

Derivation

  1. Split input into 3 regimes
  2. if t < -2.17270890305481e-126

    1. Initial program 10.0

      \[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.5

      \[\leadsto x - \color{blue}{\frac{y \cdot 2}{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}}\]
    4. Using strategy rm
    5. Applied associate-/l*5.4

      \[\leadsto x - \color{blue}{\frac{y}{\frac{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}{2}}}\]
    6. Simplified2.8

      \[\leadsto x - \frac{y}{\color{blue}{\frac{2 \cdot z - \frac{t \cdot y}{z}}{2}}}\]
    7. Using strategy rm
    8. Applied associate-/l*1.5

      \[\leadsto x - \frac{y}{\frac{2 \cdot z - \color{blue}{\frac{t}{\frac{z}{y}}}}{2}}\]

    if -2.17270890305481e-126 < t < 2.572601767425259e-247

    1. Initial program 15.3

      \[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*9.6

      \[\leadsto x - \color{blue}{\frac{y \cdot 2}{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}}\]
    4. Using strategy rm
    5. Applied associate-/l*9.6

      \[\leadsto x - \color{blue}{\frac{y}{\frac{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}{2}}}\]
    6. Simplified2.2

      \[\leadsto x - \frac{y}{\color{blue}{\frac{2 \cdot z - \frac{t \cdot y}{z}}{2}}}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt2.4

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

    if 2.572601767425259e-247 < t

    1. Initial program 10.8

      \[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*6.3

      \[\leadsto x - \color{blue}{\frac{y \cdot 2}{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}}\]
    4. Using strategy rm
    5. Applied associate-/l*6.3

      \[\leadsto x - \color{blue}{\frac{y}{\frac{\frac{\left(z \cdot 2\right) \cdot z - y \cdot t}{z}}{2}}}\]
    6. Simplified2.7

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

      \[\leadsto x - \frac{y}{\frac{2 \cdot z - \frac{t \cdot y}{\color{blue}{1 \cdot z}}}{2}}\]
    9. Applied times-frac2.0

      \[\leadsto x - \frac{y}{\frac{2 \cdot z - \color{blue}{\frac{t}{1} \cdot \frac{y}{z}}}{2}}\]
    10. Simplified2.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2.17270890305481004 \cdot 10^{-126}:\\ \;\;\;\;x - \frac{y}{\frac{2 \cdot z - \frac{t}{\frac{z}{y}}}{2}}\\ \mathbf{elif}\;t \le 2.57260176742525899 \cdot 10^{-247}:\\ \;\;\;\;x - \frac{y}{\frac{2 \cdot z - \left(\sqrt[3]{\frac{t \cdot y}{z}} \cdot \sqrt[3]{\frac{t \cdot y}{z}}\right) \cdot \sqrt[3]{\frac{t \cdot y}{z}}}{2}}\\ \mathbf{else}:\\ \;\;\;\;x - \frac{y}{\frac{2 \cdot z - t \cdot \frac{y}{z}}{2}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 +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)))))