Average Error: 16.7 → 14.0
Time: 15.4s
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 -3.123662335419235249800964328649883105942 \cdot 10^{-84}:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\ \mathbf{elif}\;t \le 9.942136300078201775973998503198271123327 \cdot 10^{-11}:\\ \;\;\;\;\frac{1}{\frac{\left(a + 1\right) + \frac{y \cdot b}{t}}{x + \frac{y \cdot z}{t}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}}{\left(a + 1\right) + \frac{y}{\frac{t}{b}}}\\ \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 -3.123662335419235249800964328649883105942 \cdot 10^{-84}:\\
\;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r522393 = x;
        double r522394 = y;
        double r522395 = z;
        double r522396 = r522394 * r522395;
        double r522397 = t;
        double r522398 = r522396 / r522397;
        double r522399 = r522393 + r522398;
        double r522400 = a;
        double r522401 = 1.0;
        double r522402 = r522400 + r522401;
        double r522403 = b;
        double r522404 = r522394 * r522403;
        double r522405 = r522404 / r522397;
        double r522406 = r522402 + r522405;
        double r522407 = r522399 / r522406;
        return r522407;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r522408 = t;
        double r522409 = -3.1236623354192352e-84;
        bool r522410 = r522408 <= r522409;
        double r522411 = x;
        double r522412 = y;
        double r522413 = z;
        double r522414 = r522408 / r522413;
        double r522415 = r522412 / r522414;
        double r522416 = r522411 + r522415;
        double r522417 = a;
        double r522418 = 1.0;
        double r522419 = r522417 + r522418;
        double r522420 = b;
        double r522421 = r522412 * r522420;
        double r522422 = r522421 / r522408;
        double r522423 = r522419 + r522422;
        double r522424 = r522416 / r522423;
        double r522425 = 9.942136300078202e-11;
        bool r522426 = r522408 <= r522425;
        double r522427 = 1.0;
        double r522428 = r522412 * r522413;
        double r522429 = r522428 / r522408;
        double r522430 = r522411 + r522429;
        double r522431 = r522423 / r522430;
        double r522432 = r522427 / r522431;
        double r522433 = cbrt(r522408);
        double r522434 = r522433 * r522433;
        double r522435 = r522412 / r522434;
        double r522436 = r522413 / r522433;
        double r522437 = r522435 * r522436;
        double r522438 = r522411 + r522437;
        double r522439 = r522408 / r522420;
        double r522440 = r522412 / r522439;
        double r522441 = r522419 + r522440;
        double r522442 = r522438 / r522441;
        double r522443 = r522426 ? r522432 : r522442;
        double r522444 = r522410 ? r522424 : r522443;
        return r522444;
}

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.7
Target13.0
Herbie14.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 < -3.1236623354192352e-84

    1. Initial program 11.1

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

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

    if -3.1236623354192352e-84 < t < 9.942136300078202e-11

    1. Initial program 24.5

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

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

    if 9.942136300078202e-11 < t

    1. Initial program 11.5

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

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

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

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

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

Reproduce

herbie shell --seed 2019306 
(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.0369671037372459e-130) (/ z b) (* 1 (* (+ x (* (/ y t) z)) (/ 1 (+ (+ a 1) (* (/ y t) b)))))))

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