Average Error: 16.4 → 17.0
Time: 7.3s
Precision: 64
\[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
\[\begin{array}{l} \mathbf{if}\;t \le -1.604748353162188047247957506517549319946 \cdot 10^{-152}:\\ \;\;\;\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + y \cdot \frac{b}{t}}\\ \mathbf{elif}\;t \le 6.968434408856251116710259046152933189024 \cdot 10^{-278}:\\ \;\;\;\;\frac{x + \frac{y \cdot z}{t}}{\left(a \cdot a - 1 \cdot 1\right) \cdot \left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right) + \left(a - 1\right) \cdot \left(y \cdot b\right)} \cdot \left(\left(a - 1\right) \cdot \left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}} \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}} \cdot \frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}}\\ \end{array}\]
\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}
\begin{array}{l}
\mathbf{if}\;t \le -1.604748353162188047247957506517549319946 \cdot 10^{-152}:\\
\;\;\;\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + y \cdot \frac{b}{t}}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}} \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}} \cdot \frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r695740 = x;
        double r695741 = y;
        double r695742 = z;
        double r695743 = r695741 * r695742;
        double r695744 = t;
        double r695745 = r695743 / r695744;
        double r695746 = r695740 + r695745;
        double r695747 = a;
        double r695748 = 1.0;
        double r695749 = r695747 + r695748;
        double r695750 = b;
        double r695751 = r695741 * r695750;
        double r695752 = r695751 / r695744;
        double r695753 = r695749 + r695752;
        double r695754 = r695746 / r695753;
        return r695754;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r695755 = t;
        double r695756 = -1.604748353162188e-152;
        bool r695757 = r695755 <= r695756;
        double r695758 = x;
        double r695759 = y;
        double r695760 = z;
        double r695761 = r695759 * r695760;
        double r695762 = r695761 / r695755;
        double r695763 = r695758 + r695762;
        double r695764 = a;
        double r695765 = 1.0;
        double r695766 = r695764 + r695765;
        double r695767 = b;
        double r695768 = r695767 / r695755;
        double r695769 = r695759 * r695768;
        double r695770 = r695766 + r695769;
        double r695771 = r695763 / r695770;
        double r695772 = 6.968434408856251e-278;
        bool r695773 = r695755 <= r695772;
        double r695774 = r695764 * r695764;
        double r695775 = r695765 * r695765;
        double r695776 = r695774 - r695775;
        double r695777 = cbrt(r695755);
        double r695778 = r695777 * r695777;
        double r695779 = r695778 * r695777;
        double r695780 = r695776 * r695779;
        double r695781 = r695764 - r695765;
        double r695782 = r695759 * r695767;
        double r695783 = r695781 * r695782;
        double r695784 = r695780 + r695783;
        double r695785 = r695763 / r695784;
        double r695786 = r695781 * r695779;
        double r695787 = r695785 * r695786;
        double r695788 = r695759 / r695755;
        double r695789 = fma(r695788, r695760, r695758);
        double r695790 = cbrt(r695789);
        double r695791 = r695790 * r695790;
        double r695792 = r695759 / r695778;
        double r695793 = r695767 / r695777;
        double r695794 = r695792 * r695793;
        double r695795 = r695766 + r695794;
        double r695796 = cbrt(r695795);
        double r695797 = r695796 * r695796;
        double r695798 = r695791 / r695797;
        double r695799 = r695790 / r695796;
        double r695800 = r695798 * r695799;
        double r695801 = r695773 ? r695787 : r695800;
        double r695802 = r695757 ? r695771 : r695801;
        return r695802;
}

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

Target

Original16.4
Target12.7
Herbie17.0
\[\begin{array}{l} \mathbf{if}\;t \lt -1.365908536631008841640163147697088508132 \cdot 10^{-271}:\\ \;\;\;\;1 \cdot \left(\left(x + \frac{y}{t} \cdot z\right) \cdot \frac{1}{\left(a + 1\right) + \frac{y}{t} \cdot b}\right)\\ \mathbf{elif}\;t \lt 3.036967103737245906066829435890093573122 \cdot 10^{-130}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;1 \cdot \left(\left(x + \frac{y}{t} \cdot z\right) \cdot \frac{1}{\left(a + 1\right) + \frac{y}{t} \cdot b}\right)\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if t < -1.604748353162188e-152

    1. Initial program 12.9

      \[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity12.9

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

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

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

    if -1.604748353162188e-152 < t < 6.968434408856251e-278

    1. Initial program 29.7

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

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

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

      \[\leadsto \frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \color{blue}{\frac{y \cdot b}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}}\]
    7. Applied flip-+37.0

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

      \[\leadsto \frac{x + \frac{y \cdot z}{t}}{\color{blue}{\frac{\left(a \cdot a - 1 \cdot 1\right) \cdot \left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right) + \left(a - 1\right) \cdot \left(y \cdot b\right)}{\left(a - 1\right) \cdot \left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right)}}}\]
    9. Applied associate-/r/40.7

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

    if 6.968434408856251e-278 < t

    1. Initial program 15.2

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

      \[\leadsto \frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{\color{blue}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}}\]
    4. Applied times-frac14.8

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

      \[\leadsto \frac{x + \frac{y \cdot z}{t}}{\color{blue}{1 \cdot \left(\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}\right)}}\]
    7. Applied associate-/r*14.8

      \[\leadsto \color{blue}{\frac{\frac{x + \frac{y \cdot z}{t}}{1}}{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}}\]
    8. Simplified13.4

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}\]
    9. Using strategy rm
    10. Applied add-cube-cbrt13.8

      \[\leadsto \frac{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}{\color{blue}{\left(\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}} \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}\right) \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}}}\]
    11. Applied add-cube-cbrt14.2

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}}{\left(\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}} \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}\right) \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}}\]
    12. Applied times-frac14.2

      \[\leadsto \color{blue}{\frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}} \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}} \cdot \frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification17.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.604748353162188047247957506517549319946 \cdot 10^{-152}:\\ \;\;\;\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + y \cdot \frac{b}{t}}\\ \mathbf{elif}\;t \le 6.968434408856251116710259046152933189024 \cdot 10^{-278}:\\ \;\;\;\;\frac{x + \frac{y \cdot z}{t}}{\left(a \cdot a - 1 \cdot 1\right) \cdot \left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right) + \left(a - 1\right) \cdot \left(y \cdot b\right)} \cdot \left(\left(a - 1\right) \cdot \left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}} \cdot \sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}} \cdot \frac{\sqrt[3]{\mathsf{fma}\left(\frac{y}{t}, z, x\right)}}{\sqrt[3]{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019354 +o rules:numerics
(FPCore (x y z t a b)
  :name "Diagrams.Solve.Tridiagonal:solveCyclicTriDiagonal from diagrams-solve-0.1, B"
  :precision binary64

  :herbie-target
  (if (< t -1.3659085366310088e-271) (* 1 (* (+ x (* (/ y t) z)) (/ 1 (+ (+ a 1) (* (/ y t) b))))) (if (< t 3.036967103737246e-130) (/ z b) (* 1 (* (+ x (* (/ y t) z)) (/ 1 (+ (+ a 1) (* (/ y t) b)))))))

  (/ (+ x (/ (* y z) t)) (+ (+ a 1) (/ (* y b) t))))