Average Error: 16.6 → 12.7
Time: 5.7s
Precision: 64
\[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\]
\[\begin{array}{l} \mathbf{if}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} = -\infty:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\ \mathbf{elif}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \le -1.012489944537932781807564396681603429538 \cdot 10^{-295}:\\ \;\;\;\;\frac{1}{\left(\left(a + 1\right) + \frac{y \cdot b}{t}\right) \cdot \frac{1}{x + \frac{y \cdot z}{t}}}\\ \mathbf{elif}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \le 2.845435520623810037674439039060317050339 \cdot 10^{-128}:\\ \;\;\;\;\frac{x + y \cdot \frac{z}{t}}{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}\\ \mathbf{elif}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \le 1.841828696613736561812265055822149130983 \cdot 10^{293}:\\ \;\;\;\;\frac{1}{\left(\left(a + 1\right) + \frac{y \cdot b}{t}\right) \cdot \frac{1}{x + \frac{y \cdot z}{t}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + y \cdot \frac{z}{t}}{\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}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} = -\infty:\\
\;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\

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

\mathbf{elif}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \le 2.845435520623810037674439039060317050339 \cdot 10^{-128}:\\
\;\;\;\;\frac{x + y \cdot \frac{z}{t}}{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{x + y \cdot \frac{z}{t}}{\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 r773159 = x;
        double r773160 = y;
        double r773161 = z;
        double r773162 = r773160 * r773161;
        double r773163 = t;
        double r773164 = r773162 / r773163;
        double r773165 = r773159 + r773164;
        double r773166 = a;
        double r773167 = 1.0;
        double r773168 = r773166 + r773167;
        double r773169 = b;
        double r773170 = r773160 * r773169;
        double r773171 = r773170 / r773163;
        double r773172 = r773168 + r773171;
        double r773173 = r773165 / r773172;
        return r773173;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r773174 = x;
        double r773175 = y;
        double r773176 = z;
        double r773177 = r773175 * r773176;
        double r773178 = t;
        double r773179 = r773177 / r773178;
        double r773180 = r773174 + r773179;
        double r773181 = a;
        double r773182 = 1.0;
        double r773183 = r773181 + r773182;
        double r773184 = b;
        double r773185 = r773175 * r773184;
        double r773186 = r773185 / r773178;
        double r773187 = r773183 + r773186;
        double r773188 = r773180 / r773187;
        double r773189 = -inf.0;
        bool r773190 = r773188 <= r773189;
        double r773191 = r773178 / r773176;
        double r773192 = r773175 / r773191;
        double r773193 = r773174 + r773192;
        double r773194 = r773193 / r773187;
        double r773195 = -1.0124899445379328e-295;
        bool r773196 = r773188 <= r773195;
        double r773197 = 1.0;
        double r773198 = r773197 / r773180;
        double r773199 = r773187 * r773198;
        double r773200 = r773197 / r773199;
        double r773201 = 2.84543552062381e-128;
        bool r773202 = r773188 <= r773201;
        double r773203 = r773176 / r773178;
        double r773204 = r773175 * r773203;
        double r773205 = r773174 + r773204;
        double r773206 = cbrt(r773178);
        double r773207 = r773206 * r773206;
        double r773208 = r773175 / r773207;
        double r773209 = r773184 / r773206;
        double r773210 = r773208 * r773209;
        double r773211 = r773183 + r773210;
        double r773212 = r773205 / r773211;
        double r773213 = 1.8418286966137366e+293;
        bool r773214 = r773188 <= r773213;
        double r773215 = r773214 ? r773200 : r773212;
        double r773216 = r773202 ? r773212 : r773215;
        double r773217 = r773196 ? r773200 : r773216;
        double r773218 = r773190 ? r773194 : r773217;
        return r773218;
}

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.6
Target13.2
Herbie12.7
\[\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 (/ (+ x (/ (* y z) t)) (+ (+ a 1.0) (/ (* y b) t))) < -inf.0

    1. Initial program 64.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*39.7

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

    if -inf.0 < (/ (+ x (/ (* y z) t)) (+ (+ a 1.0) (/ (* y b) t))) < -1.0124899445379328e-295 or 2.84543552062381e-128 < (/ (+ x (/ (* y z) t)) (+ (+ a 1.0) (/ (* y b) t))) < 1.8418286966137366e+293

    1. Initial program 0.2

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

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

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

    if -1.0124899445379328e-295 < (/ (+ x (/ (* y z) t)) (+ (+ a 1.0) (/ (* y b) t))) < 2.84543552062381e-128 or 1.8418286966137366e+293 < (/ (+ x (/ (* y z) t)) (+ (+ a 1.0) (/ (* y b) t)))

    1. Initial program 34.6

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

      \[\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-frac31.0

      \[\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-identity31.0

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

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

      \[\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}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification12.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} = -\infty:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\ \mathbf{elif}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \le -1.012489944537932781807564396681603429538 \cdot 10^{-295}:\\ \;\;\;\;\frac{1}{\left(\left(a + 1\right) + \frac{y \cdot b}{t}\right) \cdot \frac{1}{x + \frac{y \cdot z}{t}}}\\ \mathbf{elif}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \le 2.845435520623810037674439039060317050339 \cdot 10^{-128}:\\ \;\;\;\;\frac{x + y \cdot \frac{z}{t}}{\left(a + 1\right) + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{b}{\sqrt[3]{t}}}\\ \mathbf{elif}\;\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \le 1.841828696613736561812265055822149130983 \cdot 10^{293}:\\ \;\;\;\;\frac{1}{\left(\left(a + 1\right) + \frac{y \cdot b}{t}\right) \cdot \frac{1}{x + \frac{y \cdot z}{t}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x + y \cdot \frac{z}{t}}{\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 2019356 
(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))))