Average Error: 16.5 → 13.4
Time: 6.2s
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 -2.701512089379426 \cdot 10^{-122} \lor \neg \left(y \le 3.481409033698228 \cdot 10^{-31}\right):\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + y \cdot \frac{b}{t}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + \frac{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}}}{\frac{\sqrt[3]{t}}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{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 -2.701512089379426 \cdot 10^{-122} \lor \neg \left(y \le 3.481409033698228 \cdot 10^{-31}\right):\\
\;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + y \cdot \frac{b}{t}}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r715005 = x;
        double r715006 = y;
        double r715007 = z;
        double r715008 = r715006 * r715007;
        double r715009 = t;
        double r715010 = r715008 / r715009;
        double r715011 = r715005 + r715010;
        double r715012 = a;
        double r715013 = 1.0;
        double r715014 = r715012 + r715013;
        double r715015 = b;
        double r715016 = r715006 * r715015;
        double r715017 = r715016 / r715009;
        double r715018 = r715014 + r715017;
        double r715019 = r715011 / r715018;
        return r715019;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r715020 = y;
        double r715021 = -2.701512089379426e-122;
        bool r715022 = r715020 <= r715021;
        double r715023 = 3.481409033698228e-31;
        bool r715024 = r715020 <= r715023;
        double r715025 = !r715024;
        bool r715026 = r715022 || r715025;
        double r715027 = x;
        double r715028 = t;
        double r715029 = z;
        double r715030 = r715028 / r715029;
        double r715031 = r715020 / r715030;
        double r715032 = r715027 + r715031;
        double r715033 = a;
        double r715034 = 1.0;
        double r715035 = r715033 + r715034;
        double r715036 = b;
        double r715037 = r715036 / r715028;
        double r715038 = r715020 * r715037;
        double r715039 = r715035 + r715038;
        double r715040 = r715032 / r715039;
        double r715041 = cbrt(r715028);
        double r715042 = r715041 * r715041;
        double r715043 = r715020 / r715042;
        double r715044 = r715041 / r715029;
        double r715045 = r715043 / r715044;
        double r715046 = r715027 + r715045;
        double r715047 = r715020 * r715036;
        double r715048 = r715047 / r715028;
        double r715049 = r715035 + r715048;
        double r715050 = r715046 / r715049;
        double r715051 = r715026 ? r715040 : r715050;
        return r715051;
}

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.5
Target13.3
Herbie13.4
\[\begin{array}{l} \mathbf{if}\;t \lt -1.3659085366310088 \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.0369671037372459 \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 y < -2.701512089379426e-122 or 3.481409033698228e-31 < y

    1. Initial program 25.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*22.7

      \[\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 *-un-lft-identity22.7

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

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

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

    if -2.701512089379426e-122 < y < 3.481409033698228e-31

    1. Initial program 3.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*8.1

      \[\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 *-un-lft-identity8.1

      \[\leadsto \frac{x + \frac{y}{\frac{t}{\color{blue}{1 \cdot z}}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
    6. Applied add-cube-cbrt8.2

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -2.701512089379426 \cdot 10^{-122} \lor \neg \left(y \le 3.481409033698228 \cdot 10^{-31}\right):\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + y \cdot \frac{b}{t}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + \frac{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}}}{\frac{\sqrt[3]{t}}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\ \end{array}\]

Reproduce

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