Average Error: 16.9 → 13.0
Time: 49.6s
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 -902502022872164864:\\ \;\;\;\;\frac{x + \frac{z}{t} \cdot y}{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}} + \left(1 + a\right)}\\ \mathbf{elif}\;t \le 1.271889293578493398262974690376538205057 \cdot 10^{-21}:\\ \;\;\;\;\frac{1}{\frac{\frac{y \cdot b}{t} + \left(1 + a\right)}{\frac{y \cdot z}{t} + x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + \frac{z}{t} \cdot y}{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}} + \left(1 + a\right)}\\ \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 -902502022872164864:\\
\;\;\;\;\frac{x + \frac{z}{t} \cdot y}{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}} + \left(1 + a\right)}\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r35065174 = x;
        double r35065175 = y;
        double r35065176 = z;
        double r35065177 = r35065175 * r35065176;
        double r35065178 = t;
        double r35065179 = r35065177 / r35065178;
        double r35065180 = r35065174 + r35065179;
        double r35065181 = a;
        double r35065182 = 1.0;
        double r35065183 = r35065181 + r35065182;
        double r35065184 = b;
        double r35065185 = r35065175 * r35065184;
        double r35065186 = r35065185 / r35065178;
        double r35065187 = r35065183 + r35065186;
        double r35065188 = r35065180 / r35065187;
        return r35065188;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r35065189 = t;
        double r35065190 = -9.025020228721649e+17;
        bool r35065191 = r35065189 <= r35065190;
        double r35065192 = x;
        double r35065193 = z;
        double r35065194 = r35065193 / r35065189;
        double r35065195 = y;
        double r35065196 = r35065194 * r35065195;
        double r35065197 = r35065192 + r35065196;
        double r35065198 = cbrt(r35065189);
        double r35065199 = r35065198 * r35065198;
        double r35065200 = r35065195 / r35065199;
        double r35065201 = b;
        double r35065202 = r35065201 / r35065198;
        double r35065203 = r35065200 * r35065202;
        double r35065204 = 1.0;
        double r35065205 = a;
        double r35065206 = r35065204 + r35065205;
        double r35065207 = r35065203 + r35065206;
        double r35065208 = r35065197 / r35065207;
        double r35065209 = 1.2718892935784934e-21;
        bool r35065210 = r35065189 <= r35065209;
        double r35065211 = 1.0;
        double r35065212 = r35065195 * r35065201;
        double r35065213 = r35065212 / r35065189;
        double r35065214 = r35065213 + r35065206;
        double r35065215 = r35065195 * r35065193;
        double r35065216 = r35065215 / r35065189;
        double r35065217 = r35065216 + r35065192;
        double r35065218 = r35065214 / r35065217;
        double r35065219 = r35065211 / r35065218;
        double r35065220 = r35065210 ? r35065219 : r35065208;
        double r35065221 = r35065191 ? r35065208 : r35065220;
        return r35065221;
}

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

Original16.9
Target13.6
Herbie13.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 2 regimes
  2. if t < -9.025020228721649e+17 or 1.2718892935784934e-21 < t

    1. Initial program 12.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-cbrt12.2

      \[\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-frac9.2

      \[\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-identity9.2

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

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

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

    if -9.025020228721649e+17 < t < 1.2718892935784934e-21

    1. Initial program 21.9

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -902502022872164864:\\ \;\;\;\;\frac{x + \frac{z}{t} \cdot y}{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}} + \left(1 + a\right)}\\ \mathbf{elif}\;t \le 1.271889293578493398262974690376538205057 \cdot 10^{-21}:\\ \;\;\;\;\frac{1}{\frac{\frac{y \cdot b}{t} + \left(1 + a\right)}{\frac{y \cdot z}{t} + x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + \frac{z}{t} \cdot y}{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}} + \left(1 + a\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019168 
(FPCore (x y z t a b)
  :name "Diagrams.Solve.Tridiagonal:solveCyclicTriDiagonal from diagrams-solve-0.1, B"

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

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