Average Error: 16.9 → 16.5
Time: 50.8s
Precision: 64
\[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1.0\right) + \frac{y \cdot b}{t}}\]
\[\begin{array}{l} \mathbf{if}\;t \le -1.1737891160443873 \cdot 10^{-106}:\\ \;\;\;\;\left(\frac{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot z}{\sqrt[3]{t}} + x\right) \cdot \frac{1}{y \cdot \frac{b}{t} + \left(a + 1.0\right)}\\ \mathbf{elif}\;t \le 2.2341029313449467 \cdot 10^{-122}:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(b \cdot y + \left(a + 1.0\right) \cdot t\right) \cdot \left(a - 1.0\right)} \cdot \left(\left(a - 1.0\right) \cdot t\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}} + x}{y \cdot \frac{b}{t} + \left(a + 1.0\right)}} \cdot \left(\sqrt[3]{\frac{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}} + x}{y \cdot \frac{b}{t} + \left(a + 1.0\right)}} \cdot \sqrt[3]{\frac{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}} + x}{y \cdot \frac{b}{t} + \left(a + 1.0\right)}}\right)\\ \end{array}\]
\frac{x + \frac{y \cdot z}{t}}{\left(a + 1.0\right) + \frac{y \cdot b}{t}}
\begin{array}{l}
\mathbf{if}\;t \le -1.1737891160443873 \cdot 10^{-106}:\\
\;\;\;\;\left(\frac{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot z}{\sqrt[3]{t}} + x\right) \cdot \frac{1}{y \cdot \frac{b}{t} + \left(a + 1.0\right)}\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r33310597 = x;
        double r33310598 = y;
        double r33310599 = z;
        double r33310600 = r33310598 * r33310599;
        double r33310601 = t;
        double r33310602 = r33310600 / r33310601;
        double r33310603 = r33310597 + r33310602;
        double r33310604 = a;
        double r33310605 = 1.0;
        double r33310606 = r33310604 + r33310605;
        double r33310607 = b;
        double r33310608 = r33310598 * r33310607;
        double r33310609 = r33310608 / r33310601;
        double r33310610 = r33310606 + r33310609;
        double r33310611 = r33310603 / r33310610;
        return r33310611;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r33310612 = t;
        double r33310613 = -1.1737891160443873e-106;
        bool r33310614 = r33310612 <= r33310613;
        double r33310615 = y;
        double r33310616 = cbrt(r33310612);
        double r33310617 = r33310616 * r33310616;
        double r33310618 = r33310615 / r33310617;
        double r33310619 = z;
        double r33310620 = r33310618 * r33310619;
        double r33310621 = r33310620 / r33310616;
        double r33310622 = x;
        double r33310623 = r33310621 + r33310622;
        double r33310624 = 1.0;
        double r33310625 = b;
        double r33310626 = r33310625 / r33310612;
        double r33310627 = r33310615 * r33310626;
        double r33310628 = a;
        double r33310629 = 1.0;
        double r33310630 = r33310628 + r33310629;
        double r33310631 = r33310627 + r33310630;
        double r33310632 = r33310624 / r33310631;
        double r33310633 = r33310623 * r33310632;
        double r33310634 = 2.2341029313449467e-122;
        bool r33310635 = r33310612 <= r33310634;
        double r33310636 = r33310612 / r33310619;
        double r33310637 = r33310615 / r33310636;
        double r33310638 = r33310622 + r33310637;
        double r33310639 = r33310625 * r33310615;
        double r33310640 = r33310630 * r33310612;
        double r33310641 = r33310639 + r33310640;
        double r33310642 = r33310628 - r33310629;
        double r33310643 = r33310641 * r33310642;
        double r33310644 = r33310638 / r33310643;
        double r33310645 = r33310642 * r33310612;
        double r33310646 = r33310644 * r33310645;
        double r33310647 = r33310619 / r33310616;
        double r33310648 = r33310618 * r33310647;
        double r33310649 = r33310648 + r33310622;
        double r33310650 = r33310649 / r33310631;
        double r33310651 = cbrt(r33310650);
        double r33310652 = r33310651 * r33310651;
        double r33310653 = r33310651 * r33310652;
        double r33310654 = r33310635 ? r33310646 : r33310653;
        double r33310655 = r33310614 ? r33310633 : r33310654;
        return r33310655;
}

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.3
Herbie16.5
\[\begin{array}{l} \mathbf{if}\;t \lt -1.3659085366310088 \cdot 10^{-271}:\\ \;\;\;\;1.0 \cdot \left(\left(x + \frac{y}{t} \cdot z\right) \cdot \frac{1.0}{\left(a + 1.0\right) + \frac{y}{t} \cdot b}\right)\\ \mathbf{elif}\;t \lt 3.036967103737246 \cdot 10^{-130}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;1.0 \cdot \left(\left(x + \frac{y}{t} \cdot z\right) \cdot \frac{1.0}{\left(a + 1.0\right) + \frac{y}{t} \cdot b}\right)\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if t < -1.1737891160443873e-106

    1. Initial program 12.0

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

      \[\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.0\right) + \frac{y \cdot b}{t}}\]
    4. Applied times-frac9.9

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

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

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

      \[\leadsto \frac{x + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}}{\left(a + 1.0\right) + \color{blue}{y} \cdot \frac{b}{t}}\]
    9. Using strategy rm
    10. Applied div-inv7.2

      \[\leadsto \color{blue}{\left(x + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}\right) \cdot \frac{1}{\left(a + 1.0\right) + y \cdot \frac{b}{t}}}\]
    11. Using strategy rm
    12. Applied associate-*r/7.9

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

    if -1.1737891160443873e-106 < t < 2.2341029313449467e-122

    1. Initial program 27.4

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

      \[\leadsto \frac{x + \frac{y \cdot z}{t}}{\color{blue}{\frac{a \cdot a - 1.0 \cdot 1.0}{a - 1.0}} + \frac{y \cdot b}{t}}\]
    4. Applied frac-add35.3

      \[\leadsto \frac{x + \frac{y \cdot z}{t}}{\color{blue}{\frac{\left(a \cdot a - 1.0 \cdot 1.0\right) \cdot t + \left(a - 1.0\right) \cdot \left(y \cdot b\right)}{\left(a - 1.0\right) \cdot t}}}\]
    5. Applied associate-/r/38.1

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

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

    if 2.2341029313449467e-122 < t

    1. Initial program 12.8

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

      \[\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.0\right) + \frac{y \cdot b}{t}}\]
    4. Applied times-frac10.9

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019165 
(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))))