Average Error: 16.5 → 22.9
Time: 10.8s
Precision: binary64
Cost: 7624
\[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \]
\[\begin{array}{l} t_1 := \frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\ \mathbf{if}\;t \leq -3.0480885783865963 \cdot 10^{+78}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -1.620056114074213 \cdot 10^{+64}:\\ \;\;\;\;\frac{y}{\frac{t}{z}} \cdot \frac{1}{1 + \mathsf{fma}\left(b, \frac{y}{t}, a\right)}\\ \mathbf{elif}\;t \leq -4.632033258405814 \cdot 10^{+52}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -1.860492384241181 \cdot 10^{-34}:\\ \;\;\;\;\frac{z}{t} \cdot \frac{y}{1 + \left(a + \frac{y}{\frac{t}{b}}\right)}\\ \mathbf{elif}\;t \leq -1.2023237781605671 \cdot 10^{-65}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -3.3863880501280103 \cdot 10^{-84}:\\ \;\;\;\;\frac{\frac{y \cdot z}{t}}{1 + a}\\ \mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\ \;\;\;\;\frac{t \cdot x}{b \cdot y} + \frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (/ (+ x (/ (* y z) t)) (+ (+ a 1.0) (/ (* y b) t))))
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (/ x (+ 1.0 (+ (/ b (/ t y)) a)))))
   (if (<= t -3.0480885783865963e+78)
     t_1
     (if (<= t -1.620056114074213e+64)
       (* (/ y (/ t z)) (/ 1.0 (+ 1.0 (fma b (/ y t) a))))
       (if (<= t -4.632033258405814e+52)
         t_1
         (if (<= t -1.860492384241181e-34)
           (* (/ z t) (/ y (+ 1.0 (+ a (/ y (/ t b))))))
           (if (<= t -1.2023237781605671e-65)
             t_1
             (if (<= t -3.3863880501280103e-84)
               (/ (/ (* y z) t) (+ 1.0 a))
               (if (<= t 8.876187271044955e-67)
                 (+ (/ (* t x) (* b y)) (/ z b))
                 t_1)))))))))
double code(double x, double y, double z, double t, double a, double b) {
	return (x + ((y * z) / t)) / ((a + 1.0) + ((y * b) / t));
}
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = x / (1.0 + ((b / (t / y)) + a));
	double tmp;
	if (t <= -3.0480885783865963e+78) {
		tmp = t_1;
	} else if (t <= -1.620056114074213e+64) {
		tmp = (y / (t / z)) * (1.0 / (1.0 + fma(b, (y / t), a)));
	} else if (t <= -4.632033258405814e+52) {
		tmp = t_1;
	} else if (t <= -1.860492384241181e-34) {
		tmp = (z / t) * (y / (1.0 + (a + (y / (t / b)))));
	} else if (t <= -1.2023237781605671e-65) {
		tmp = t_1;
	} else if (t <= -3.3863880501280103e-84) {
		tmp = ((y * z) / t) / (1.0 + a);
	} else if (t <= 8.876187271044955e-67) {
		tmp = ((t * x) / (b * y)) + (z / b);
	} else {
		tmp = t_1;
	}
	return tmp;
}
function code(x, y, z, t, a, b)
	return Float64(Float64(x + Float64(Float64(y * z) / t)) / Float64(Float64(a + 1.0) + Float64(Float64(y * b) / t)))
end
function code(x, y, z, t, a, b)
	t_1 = Float64(x / Float64(1.0 + Float64(Float64(b / Float64(t / y)) + a)))
	tmp = 0.0
	if (t <= -3.0480885783865963e+78)
		tmp = t_1;
	elseif (t <= -1.620056114074213e+64)
		tmp = Float64(Float64(y / Float64(t / z)) * Float64(1.0 / Float64(1.0 + fma(b, Float64(y / t), a))));
	elseif (t <= -4.632033258405814e+52)
		tmp = t_1;
	elseif (t <= -1.860492384241181e-34)
		tmp = Float64(Float64(z / t) * Float64(y / Float64(1.0 + Float64(a + Float64(y / Float64(t / b))))));
	elseif (t <= -1.2023237781605671e-65)
		tmp = t_1;
	elseif (t <= -3.3863880501280103e-84)
		tmp = Float64(Float64(Float64(y * z) / t) / Float64(1.0 + a));
	elseif (t <= 8.876187271044955e-67)
		tmp = Float64(Float64(Float64(t * x) / Float64(b * y)) + Float64(z / b));
	else
		tmp = t_1;
	end
	return tmp
end
code[x_, y_, z_, t_, a_, b_] := N[(N[(x + N[(N[(y * z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision] / N[(N[(a + 1.0), $MachinePrecision] + N[(N[(y * b), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(x / N[(1.0 + N[(N[(b / N[(t / y), $MachinePrecision]), $MachinePrecision] + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -3.0480885783865963e+78], t$95$1, If[LessEqual[t, -1.620056114074213e+64], N[(N[(y / N[(t / z), $MachinePrecision]), $MachinePrecision] * N[(1.0 / N[(1.0 + N[(b * N[(y / t), $MachinePrecision] + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -4.632033258405814e+52], t$95$1, If[LessEqual[t, -1.860492384241181e-34], N[(N[(z / t), $MachinePrecision] * N[(y / N[(1.0 + N[(a + N[(y / N[(t / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, -1.2023237781605671e-65], t$95$1, If[LessEqual[t, -3.3863880501280103e-84], N[(N[(N[(y * z), $MachinePrecision] / t), $MachinePrecision] / N[(1.0 + a), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 8.876187271044955e-67], N[(N[(N[(t * x), $MachinePrecision] / N[(b * y), $MachinePrecision]), $MachinePrecision] + N[(z / b), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]]]
\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}
\begin{array}{l}
t_1 := \frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\
\mathbf{if}\;t \leq -3.0480885783865963 \cdot 10^{+78}:\\
\;\;\;\;t_1\\

\mathbf{elif}\;t \leq -1.620056114074213 \cdot 10^{+64}:\\
\;\;\;\;\frac{y}{\frac{t}{z}} \cdot \frac{1}{1 + \mathsf{fma}\left(b, \frac{y}{t}, a\right)}\\

\mathbf{elif}\;t \leq -4.632033258405814 \cdot 10^{+52}:\\
\;\;\;\;t_1\\

\mathbf{elif}\;t \leq -1.860492384241181 \cdot 10^{-34}:\\
\;\;\;\;\frac{z}{t} \cdot \frac{y}{1 + \left(a + \frac{y}{\frac{t}{b}}\right)}\\

\mathbf{elif}\;t \leq -1.2023237781605671 \cdot 10^{-65}:\\
\;\;\;\;t_1\\

\mathbf{elif}\;t \leq -3.3863880501280103 \cdot 10^{-84}:\\
\;\;\;\;\frac{\frac{y \cdot z}{t}}{1 + a}\\

\mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\
\;\;\;\;\frac{t \cdot x}{b \cdot y} + \frac{z}{b}\\

\mathbf{else}:\\
\;\;\;\;t_1\\


\end{array}

Error

Target

Original16.5
Target12.9
Herbie22.9
\[\begin{array}{l} \mathbf{if}\;t < -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 < 3.036967103737246 \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 5 regimes
  2. if t < -3.0480885783865963e78 or -1.6200561140742131e64 < t < -4.632033258405814e52 or -1.8604923842411809e-34 < t < -1.20232377816056714e-65 or 8.87618727104495512e-67 < t

    1. Initial program 12.0

      \[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \]
    2. Taylor expanded in x around inf 22.5

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

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

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

    if -3.0480885783865963e78 < t < -1.6200561140742131e64

    1. Initial program 13.8

      \[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \]
    2. Taylor expanded in x around 0 48.8

      \[\leadsto \color{blue}{\frac{y \cdot z}{t \cdot \left(1 + \left(\frac{y \cdot b}{t} + a\right)\right)}} \]
    3. Applied egg-rr42.6

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

    if -4.632033258405814e52 < t < -1.8604923842411809e-34

    1. Initial program 10.6

      \[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \]
    2. Simplified10.2

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(y, \frac{z}{t}, x\right)}{a + \mathsf{fma}\left(y, \frac{b}{t}, 1\right)}} \]
    3. Taylor expanded in z around inf 40.0

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

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

    if -1.20232377816056714e-65 < t < -3.38638805012801028e-84

    1. Initial program 13.9

      \[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \]
    2. Taylor expanded in b around 0 31.6

      \[\leadsto \color{blue}{\frac{\frac{y \cdot z}{t} + x}{1 + a}} \]
    3. Taylor expanded in y around inf 48.7

      \[\leadsto \frac{\color{blue}{\frac{y \cdot z}{t}}}{1 + a} \]

    if -3.38638805012801028e-84 < t < 8.87618727104495512e-67

    1. Initial program 24.6

      \[\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}} \]
    2. Taylor expanded in b around inf 39.0

      \[\leadsto \color{blue}{\frac{t \cdot \left(\frac{y \cdot z}{t} + x\right)}{y \cdot b}} \]
    3. Simplified45.6

      \[\leadsto \color{blue}{\frac{t}{y} \cdot \frac{x + \frac{y}{\frac{t}{z}}}{b}} \]
    4. Taylor expanded in t around 0 22.4

      \[\leadsto \color{blue}{\frac{t \cdot x}{y \cdot b} + \frac{z}{b}} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification22.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -3.0480885783865963 \cdot 10^{+78}:\\ \;\;\;\;\frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\ \mathbf{elif}\;t \leq -1.620056114074213 \cdot 10^{+64}:\\ \;\;\;\;\frac{y}{\frac{t}{z}} \cdot \frac{1}{1 + \mathsf{fma}\left(b, \frac{y}{t}, a\right)}\\ \mathbf{elif}\;t \leq -4.632033258405814 \cdot 10^{+52}:\\ \;\;\;\;\frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\ \mathbf{elif}\;t \leq -1.860492384241181 \cdot 10^{-34}:\\ \;\;\;\;\frac{z}{t} \cdot \frac{y}{1 + \left(a + \frac{y}{\frac{t}{b}}\right)}\\ \mathbf{elif}\;t \leq -1.2023237781605671 \cdot 10^{-65}:\\ \;\;\;\;\frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\ \mathbf{elif}\;t \leq -3.3863880501280103 \cdot 10^{-84}:\\ \;\;\;\;\frac{\frac{y \cdot z}{t}}{1 + a}\\ \mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\ \;\;\;\;\frac{t \cdot x}{b \cdot y} + \frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\ \end{array} \]

Alternatives

Alternative 1
Error22.9
Cost1628
\[\begin{array}{l} t_1 := \frac{z}{t} \cdot \frac{y}{1 + \left(a + \frac{y}{\frac{t}{b}}\right)}\\ t_2 := \frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\ \mathbf{if}\;t \leq -3.0480885783865963 \cdot 10^{+78}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;t \leq -1.620056114074213 \cdot 10^{+64}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -4.632033258405814 \cdot 10^{+52}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;t \leq -1.860492384241181 \cdot 10^{-34}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -1.2023237781605671 \cdot 10^{-65}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;t \leq -3.3863880501280103 \cdot 10^{-84}:\\ \;\;\;\;\frac{\frac{y \cdot z}{t}}{1 + a}\\ \mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\ \;\;\;\;\frac{t \cdot x}{b \cdot y} + \frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 2
Error30.7
Cost1236
\[\begin{array}{l} t_1 := \frac{x + \frac{y}{\frac{t}{z}}}{a}\\ t_2 := \frac{x}{1 + a}\\ \mathbf{if}\;t \leq -2.516399535361732 \cdot 10^{+85}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;t \leq -5.052632521096853 \cdot 10^{-76}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{elif}\;t \leq 1598.5898379704852:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq 1.6653531527551074 \cdot 10^{+125}:\\ \;\;\;\;\frac{x}{1 + b \cdot \frac{y}{t}}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 3
Error30.3
Cost1236
\[\begin{array}{l} t_1 := \frac{x}{1 + a}\\ \mathbf{if}\;y \leq -2.8879146085391617 \cdot 10^{+60}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{elif}\;y \leq -6.64388064934482 \cdot 10^{-20}:\\ \;\;\;\;\frac{x}{1 + b \cdot \frac{y}{t}}\\ \mathbf{elif}\;y \leq -9.659275296900071 \cdot 10^{-49}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{elif}\;y \leq 5.8665602393624284 \cdot 10^{-105}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq 1.6478354402215972 \cdot 10^{-49}:\\ \;\;\;\;\frac{\frac{y \cdot z}{t}}{1 + a}\\ \mathbf{elif}\;y \leq 4.3430254644180896 \cdot 10^{+120}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\frac{z}{b}\\ \end{array} \]
Alternative 4
Error28.9
Cost1236
\[\begin{array}{l} t_1 := \frac{x}{1 + a}\\ \mathbf{if}\;t \leq -3.0480885783865963 \cdot 10^{+78}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -3.3863880501280103 \cdot 10^{-84}:\\ \;\;\;\;\frac{\frac{y \cdot z}{t}}{1 + a}\\ \mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\ \;\;\;\;\frac{t \cdot x}{b \cdot y} + \frac{z}{b}\\ \mathbf{elif}\;t \leq 1598.5898379704852:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{a}\\ \mathbf{elif}\;t \leq 1.6653531527551074 \cdot 10^{+125}:\\ \;\;\;\;\frac{x}{1 + b \cdot \frac{y}{t}}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 5
Error23.2
Cost1232
\[\begin{array}{l} t_1 := \frac{x}{1 + \left(\frac{b}{\frac{t}{y}} + a\right)}\\ \mathbf{if}\;t \leq -4.632033258405814 \cdot 10^{+52}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -2.2586830939279765 \cdot 10^{-35}:\\ \;\;\;\;\frac{z \cdot \frac{y}{t}}{1 + a}\\ \mathbf{elif}\;t \leq -2.5483592508643453 \cdot 10^{-106}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\ \;\;\;\;\frac{t \cdot x}{b \cdot y} + \frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 6
Error37.7
Cost984
\[\begin{array}{l} \mathbf{if}\;a \leq -5.539479330798269 \cdot 10^{+129}:\\ \;\;\;\;\frac{x}{a}\\ \mathbf{elif}\;a \leq -7.353886682763771 \cdot 10^{+33}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{elif}\;a \leq -175472661.96999392:\\ \;\;\;\;\frac{x}{a}\\ \mathbf{elif}\;a \leq 1.3649293705926093 \cdot 10^{-196}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{elif}\;a \leq 5.951041268335689 \cdot 10^{-71}:\\ \;\;\;\;x\\ \mathbf{elif}\;a \leq 89773.38265548325:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{a}\\ \end{array} \]
Alternative 7
Error29.4
Cost840
\[\begin{array}{l} t_1 := \frac{x}{1 + a}\\ \mathbf{if}\;t \leq -2.516399535361732 \cdot 10^{+85}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq -5.052632521096853 \cdot 10^{-76}:\\ \;\;\;\;\frac{x + \frac{y}{\frac{t}{z}}}{a}\\ \mathbf{elif}\;t \leq 8.876187271044955 \cdot 10^{-67}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 8
Error29.9
Cost584
\[\begin{array}{l} \mathbf{if}\;y \leq -9.659275296900071 \cdot 10^{-49}:\\ \;\;\;\;\frac{z}{b}\\ \mathbf{elif}\;y \leq 4.3430254644180896 \cdot 10^{+120}:\\ \;\;\;\;\frac{x}{1 + a}\\ \mathbf{else}:\\ \;\;\;\;\frac{z}{b}\\ \end{array} \]
Alternative 9
Error36.8
Cost456
\[\begin{array}{l} \mathbf{if}\;a \leq -0.00010740973579101983:\\ \;\;\;\;\frac{x}{a}\\ \mathbf{elif}\;a \leq 4.439325972992265 \cdot 10^{-15}:\\ \;\;\;\;x\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{a}\\ \end{array} \]
Alternative 10
Error51.3
Cost64
\[x \]

Error

Reproduce

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