Average Error: 16.8 → 14.3
Time: 7.5s
Precision: 64
\[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
\[\begin{array}{l} \mathbf{if}\;y \le -5.309289604935398694661904518216916342979 \cdot 10^{121}:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \left(\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt[3]{b} \cdot \sqrt[3]{b}}{\sqrt[3]{1}}\right) \cdot \frac{\sqrt[3]{b}}{\sqrt[3]{t}}}\\ \mathbf{elif}\;y \le 7.19042889409541425182067272563551310774 \cdot 10^{107}:\\ \;\;\;\;\frac{x + \frac{y}{t} \cdot z}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\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}\;y \le -5.309289604935398694661904518216916342979 \cdot 10^{121}:\\
\;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \left(\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt[3]{b} \cdot \sqrt[3]{b}}{\sqrt[3]{1}}\right) \cdot \frac{\sqrt[3]{b}}{\sqrt[3]{t}}}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\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 r732604 = x;
        double r732605 = y;
        double r732606 = z;
        double r732607 = r732605 * r732606;
        double r732608 = t;
        double r732609 = r732607 / r732608;
        double r732610 = r732604 + r732609;
        double r732611 = a;
        double r732612 = 1.0;
        double r732613 = r732611 + r732612;
        double r732614 = b;
        double r732615 = r732605 * r732614;
        double r732616 = r732615 / r732608;
        double r732617 = r732613 + r732616;
        double r732618 = r732610 / r732617;
        return r732618;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r732619 = y;
        double r732620 = -5.309289604935399e+121;
        bool r732621 = r732619 <= r732620;
        double r732622 = x;
        double r732623 = t;
        double r732624 = z;
        double r732625 = r732623 / r732624;
        double r732626 = r732619 / r732625;
        double r732627 = r732622 + r732626;
        double r732628 = a;
        double r732629 = 1.0;
        double r732630 = r732628 + r732629;
        double r732631 = cbrt(r732623);
        double r732632 = r732631 * r732631;
        double r732633 = r732619 / r732632;
        double r732634 = b;
        double r732635 = cbrt(r732634);
        double r732636 = r732635 * r732635;
        double r732637 = 1.0;
        double r732638 = cbrt(r732637);
        double r732639 = r732636 / r732638;
        double r732640 = r732633 * r732639;
        double r732641 = r732635 / r732631;
        double r732642 = r732640 * r732641;
        double r732643 = r732630 + r732642;
        double r732644 = r732627 / r732643;
        double r732645 = 7.190428894095414e+107;
        bool r732646 = r732619 <= r732645;
        double r732647 = r732619 / r732623;
        double r732648 = r732647 * r732624;
        double r732649 = r732622 + r732648;
        double r732650 = r732619 * r732634;
        double r732651 = r732650 / r732623;
        double r732652 = r732630 + r732651;
        double r732653 = r732649 / r732652;
        double r732654 = r732634 / r732631;
        double r732655 = r732633 * r732654;
        double r732656 = r732630 + r732655;
        double r732657 = r732627 / r732656;
        double r732658 = r732646 ? r732653 : r732657;
        double r732659 = r732621 ? r732644 : r732658;
        return r732659;
}

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.8
Target13.4
Herbie14.3
\[\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 y < -5.309289604935399e+121

    1. Initial program 38.0

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

      \[\leadsto \frac{x + \color{blue}{\frac{y}{\frac{t}{z}}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt34.0

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

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

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

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

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

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

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

    if -5.309289604935399e+121 < y < 7.190428894095414e+107

    1. Initial program 7.6

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

      \[\leadsto \frac{x + \color{blue}{\frac{y}{\frac{t}{z}}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
    4. Using strategy rm
    5. Applied associate-/r/7.6

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

    if 7.190428894095414e+107 < y

    1. Initial program 37.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*33.2

      \[\leadsto \frac{x + \color{blue}{\frac{y}{\frac{t}{z}}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt33.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -5.309289604935398694661904518216916342979 \cdot 10^{121}:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \left(\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt[3]{b} \cdot \sqrt[3]{b}}{\sqrt[3]{1}}\right) \cdot \frac{\sqrt[3]{b}}{\sqrt[3]{t}}}\\ \mathbf{elif}\;y \le 7.19042889409541425182067272563551310774 \cdot 10^{107}:\\ \;\;\;\;\frac{x + \frac{y}{t} \cdot z}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\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 2019353 
(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))))