Average Error: 10.7 → 1.7
Time: 13.2s
Precision: binary64
Cost: 1224
\[\frac{x - y \cdot z}{t - a \cdot z} \]
\[\begin{array}{l} t_1 := z \cdot a - t\\ t_2 := \frac{y}{a - \frac{t}{z}} - \frac{x}{t_1}\\ \mathbf{if}\;z \leq -1.2913028461123884 \cdot 10^{-78}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 5.116855325008033 \cdot 10^{-49}:\\ \;\;\;\;\frac{z \cdot y - x}{t_1}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
(FPCore (x y z t a) :precision binary64 (/ (- x (* y z)) (- t (* a z))))
(FPCore (x y z t a)
 :precision binary64
 (let* ((t_1 (- (* z a) t)) (t_2 (- (/ y (- a (/ t z))) (/ x t_1))))
   (if (<= z -1.2913028461123884e-78)
     t_2
     (if (<= z 5.116855325008033e-49) (/ (- (* z y) x) t_1) t_2))))
double code(double x, double y, double z, double t, double a) {
	return (x - (y * z)) / (t - (a * z));
}
double code(double x, double y, double z, double t, double a) {
	double t_1 = (z * a) - t;
	double t_2 = (y / (a - (t / z))) - (x / t_1);
	double tmp;
	if (z <= -1.2913028461123884e-78) {
		tmp = t_2;
	} else if (z <= 5.116855325008033e-49) {
		tmp = ((z * y) - x) / t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    code = (x - (y * z)) / (t - (a * z))
end function
real(8) function code(x, y, z, t, a)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_1 = (z * a) - t
    t_2 = (y / (a - (t / z))) - (x / t_1)
    if (z <= (-1.2913028461123884d-78)) then
        tmp = t_2
    else if (z <= 5.116855325008033d-49) then
        tmp = ((z * y) - x) / t_1
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
	return (x - (y * z)) / (t - (a * z));
}
public static double code(double x, double y, double z, double t, double a) {
	double t_1 = (z * a) - t;
	double t_2 = (y / (a - (t / z))) - (x / t_1);
	double tmp;
	if (z <= -1.2913028461123884e-78) {
		tmp = t_2;
	} else if (z <= 5.116855325008033e-49) {
		tmp = ((z * y) - x) / t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(x, y, z, t, a):
	return (x - (y * z)) / (t - (a * z))
def code(x, y, z, t, a):
	t_1 = (z * a) - t
	t_2 = (y / (a - (t / z))) - (x / t_1)
	tmp = 0
	if z <= -1.2913028461123884e-78:
		tmp = t_2
	elif z <= 5.116855325008033e-49:
		tmp = ((z * y) - x) / t_1
	else:
		tmp = t_2
	return tmp
function code(x, y, z, t, a)
	return Float64(Float64(x - Float64(y * z)) / Float64(t - Float64(a * z)))
end
function code(x, y, z, t, a)
	t_1 = Float64(Float64(z * a) - t)
	t_2 = Float64(Float64(y / Float64(a - Float64(t / z))) - Float64(x / t_1))
	tmp = 0.0
	if (z <= -1.2913028461123884e-78)
		tmp = t_2;
	elseif (z <= 5.116855325008033e-49)
		tmp = Float64(Float64(Float64(z * y) - x) / t_1);
	else
		tmp = t_2;
	end
	return tmp
end
function tmp = code(x, y, z, t, a)
	tmp = (x - (y * z)) / (t - (a * z));
end
function tmp_2 = code(x, y, z, t, a)
	t_1 = (z * a) - t;
	t_2 = (y / (a - (t / z))) - (x / t_1);
	tmp = 0.0;
	if (z <= -1.2913028461123884e-78)
		tmp = t_2;
	elseif (z <= 5.116855325008033e-49)
		tmp = ((z * y) - x) / t_1;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_] := N[(N[(x - N[(y * z), $MachinePrecision]), $MachinePrecision] / N[(t - N[(a * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(z * a), $MachinePrecision] - t), $MachinePrecision]}, Block[{t$95$2 = N[(N[(y / N[(a - N[(t / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(x / t$95$1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.2913028461123884e-78], t$95$2, If[LessEqual[z, 5.116855325008033e-49], N[(N[(N[(z * y), $MachinePrecision] - x), $MachinePrecision] / t$95$1), $MachinePrecision], t$95$2]]]]
\frac{x - y \cdot z}{t - a \cdot z}
\begin{array}{l}
t_1 := z \cdot a - t\\
t_2 := \frac{y}{a - \frac{t}{z}} - \frac{x}{t_1}\\
\mathbf{if}\;z \leq -1.2913028461123884 \cdot 10^{-78}:\\
\;\;\;\;t_2\\

\mathbf{elif}\;z \leq 5.116855325008033 \cdot 10^{-49}:\\
\;\;\;\;\frac{z \cdot y - x}{t_1}\\

\mathbf{else}:\\
\;\;\;\;t_2\\


\end{array}

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original10.7
Target1.6
Herbie1.7
\[\begin{array}{l} \mathbf{if}\;z < -32113435955957344:\\ \;\;\;\;\frac{x}{t - a \cdot z} - \frac{y}{\frac{t}{z} - a}\\ \mathbf{elif}\;z < 3.5139522372978296 \cdot 10^{-86}:\\ \;\;\;\;\left(x - y \cdot z\right) \cdot \frac{1}{t - a \cdot z}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{t - a \cdot z} - \frac{y}{\frac{t}{z} - a}\\ \end{array} \]

Derivation

  1. Split input into 2 regimes
  2. if z < -1.2913028461123884e-78 or 5.11685532500803272e-49 < z

    1. Initial program 17.6

      \[\frac{x - y \cdot z}{t - a \cdot z} \]
    2. Simplified17.6

      \[\leadsto \color{blue}{\frac{y \cdot z - x}{z \cdot a - t}} \]
    3. Applied egg-rr11.4

      \[\leadsto \color{blue}{\frac{y}{\frac{z \cdot a - t}{z}} - \frac{x}{z \cdot a - t}} \]
    4. Taylor expanded in z around 0 2.6

      \[\leadsto \frac{y}{\color{blue}{a + -1 \cdot \frac{t}{z}}} - \frac{x}{z \cdot a - t} \]
    5. Simplified2.6

      \[\leadsto \frac{y}{\color{blue}{a - \frac{t}{z}}} - \frac{x}{z \cdot a - t} \]

    if -1.2913028461123884e-78 < z < 5.11685532500803272e-49

    1. Initial program 0.1

      \[\frac{x - y \cdot z}{t - a \cdot z} \]
    2. Simplified0.1

      \[\leadsto \color{blue}{\frac{y \cdot z - x}{z \cdot a - t}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \leq -1.2913028461123884 \cdot 10^{-78}:\\ \;\;\;\;\frac{y}{a - \frac{t}{z}} - \frac{x}{z \cdot a - t}\\ \mathbf{elif}\;z \leq 5.116855325008033 \cdot 10^{-49}:\\ \;\;\;\;\frac{z \cdot y - x}{z \cdot a - t}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{a - \frac{t}{z}} - \frac{x}{z \cdot a - t}\\ \end{array} \]

Alternatives

Alternative 1
Error2.6
Cost3792
\[\begin{array}{l} t_1 := z \cdot a - t\\ t_2 := \frac{x - z \cdot y}{t - z \cdot a}\\ t_3 := \frac{z \cdot y - x}{t_1}\\ t_4 := \frac{y}{a - \frac{t}{z}}\\ \mathbf{if}\;t_2 \leq -\infty:\\ \;\;\;\;\frac{z}{\frac{t_1}{y}}\\ \mathbf{elif}\;t_2 \leq -1 \cdot 10^{-270}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;t_2 \leq 0:\\ \;\;\;\;t_4\\ \mathbf{elif}\;t_2 \leq 10^{+276}:\\ \;\;\;\;t_3\\ \mathbf{else}:\\ \;\;\;\;t_4\\ \end{array} \]
Alternative 2
Error21.2
Cost1764
\[\begin{array}{l} t_1 := \frac{x - z \cdot y}{t}\\ t_2 := \frac{y}{a} - \frac{x}{z \cdot a}\\ t_3 := \frac{y}{a - \frac{t}{z}}\\ t_4 := \frac{x}{t - z \cdot a}\\ \mathbf{if}\;a \leq -1 \cdot 10^{-50}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \leq 2.2 \cdot 10^{-207}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 3.1 \cdot 10^{-145}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;a \leq 10^{-100}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 10^{-82}:\\ \;\;\;\;\frac{y - \frac{x}{z}}{a}\\ \mathbf{elif}\;a \leq 1.15 \cdot 10^{-57}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 0.006077210246815943:\\ \;\;\;\;t_4\\ \mathbf{elif}\;a \leq 8.105184433261923 \cdot 10^{+33}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;a \leq 9.41797863958167 \cdot 10^{+102}:\\ \;\;\;\;t_4\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 3
Error21.2
Cost1764
\[\begin{array}{l} t_1 := \frac{x - z \cdot y}{t}\\ t_2 := \frac{y}{a} - \frac{x}{z \cdot a}\\ t_3 := \frac{y}{a - \frac{t}{z}}\\ \mathbf{if}\;a \leq -1 \cdot 10^{-50}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \leq 2.2 \cdot 10^{-207}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 3.1 \cdot 10^{-145}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;a \leq 10^{-100}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 10^{-82}:\\ \;\;\;\;\frac{y - \frac{x}{z}}{a}\\ \mathbf{elif}\;a \leq 1.15 \cdot 10^{-57}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 0.006077210246815943:\\ \;\;\;\;\frac{x}{t - z \cdot a}\\ \mathbf{elif}\;a \leq 8.105184433261923 \cdot 10^{+33}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;a \leq 9.41797863958167 \cdot 10^{+102}:\\ \;\;\;\;x \cdot \frac{-1}{z \cdot a - t}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 4
Error40.1
Cost1704
\[\begin{array}{l} t_1 := z \cdot \frac{-y}{t}\\ t_2 := \frac{\frac{-x}{a}}{z}\\ \mathbf{if}\;y \leq -4.081213821777791 \cdot 10^{+171}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq -2.2184826313056817 \cdot 10^{+74}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;y \leq -1.1931317422206269 \cdot 10^{-48}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq -7.39924654569465 \cdot 10^{-184}:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{elif}\;y \leq 4.3591674251308986 \cdot 10^{-219}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq 2.1291742025410693 \cdot 10^{-68}:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{elif}\;y \leq 1.1080260522904412 \cdot 10^{-24}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq 4.664432912997273 \cdot 10^{+69}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq 10^{+190}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;y \leq 4.2 \cdot 10^{+249}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{a}\\ \end{array} \]
Alternative 5
Error39.1
Cost1440
\[\begin{array}{l} t_1 := y \cdot \frac{-z}{t}\\ \mathbf{if}\;x \leq -1 \cdot 10^{+180}:\\ \;\;\;\;\frac{-x}{z \cdot a}\\ \mathbf{elif}\;x \leq -0.4185849523332704:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{elif}\;x \leq -1.7402624902145236 \cdot 10^{-181}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;x \leq 9.112076642291992 \cdot 10^{-286}:\\ \;\;\;\;z \cdot \frac{-y}{t}\\ \mathbf{elif}\;x \leq 8.726808814708283 \cdot 10^{-207}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;x \leq 1.0351502218647798 \cdot 10^{-137}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \leq 5.419791561010501 \cdot 10^{-82}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;x \leq 6035.430168273463:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{t}\\ \end{array} \]
Alternative 6
Error36.8
Cost1380
\[\begin{array}{l} t_1 := z \cdot \frac{-y}{t}\\ \mathbf{if}\;a \leq -1.32 \cdot 10^{-42}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;a \leq -3.6 \cdot 10^{-130}:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{elif}\;a \leq -5.5 \cdot 10^{-259}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 7.2 \cdot 10^{-303}:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{elif}\;a \leq 3.7 \cdot 10^{-102}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 0.006077210246815943:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{elif}\;a \leq 7818823651680.634:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 1.4544826513379414 \cdot 10^{+37}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;a \leq 2.914177866461554 \cdot 10^{+83}:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{a}\\ \end{array} \]
Alternative 7
Error29.6
Cost1372
\[\begin{array}{l} t_1 := y \cdot \frac{-z}{t}\\ t_2 := \frac{x}{t - z \cdot a}\\ \mathbf{if}\;x \leq -2.4104816064379473 \cdot 10^{-30}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;x \leq -1.7402624902145236 \cdot 10^{-181}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;x \leq 9.112076642291992 \cdot 10^{-286}:\\ \;\;\;\;z \cdot \frac{-y}{t}\\ \mathbf{elif}\;x \leq 8.726808814708283 \cdot 10^{-207}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;x \leq 1.0351502218647798 \cdot 10^{-137}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \leq 5.419791561010501 \cdot 10^{-82}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;x \leq 6035.430168273463:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 8
Error31.6
Cost1176
\[\begin{array}{l} t_1 := z \cdot \frac{-y}{t}\\ \mathbf{if}\;z \leq -3.555437157194244 \cdot 10^{+164}:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;z \leq -7.251957364365893 \cdot 10^{+79}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -2922559564252979:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;z \leq -3.298692460269135 \cdot 10^{-113}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 8.302528784495264 \cdot 10^{-108}:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{elif}\;z \leq 8.242365569687923 \cdot 10^{+86}:\\ \;\;\;\;\frac{-x}{z \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{a}\\ \end{array} \]
Alternative 9
Error14.8
Cost968
\[\begin{array}{l} t_1 := \frac{y}{a - \frac{t}{z}} + \frac{x}{t}\\ \mathbf{if}\;t \leq -7.8 \cdot 10^{-146}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t \leq 10^{-77}:\\ \;\;\;\;\frac{y}{a} - \frac{x}{z \cdot a}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 10
Error18.1
Cost712
\[\begin{array}{l} t_1 := \frac{x}{t - z \cdot a}\\ \mathbf{if}\;x \leq -1.204281952848651 \cdot 10^{-11}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \leq 6035.430168273463:\\ \;\;\;\;\frac{y}{a - \frac{t}{z}}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 11
Error29.4
Cost456
\[\begin{array}{l} \mathbf{if}\;z \leq -1504448243.7402942:\\ \;\;\;\;\frac{y}{a}\\ \mathbf{elif}\;z \leq 5.116855325008033 \cdot 10^{-49}:\\ \;\;\;\;\frac{x}{t}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{a}\\ \end{array} \]
Alternative 12
Error42.4
Cost192
\[\frac{x}{t} \]

Error

Reproduce

herbie shell --seed 2022241 
(FPCore (x y z t a)
  :name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, A"
  :precision binary64

  :herbie-target
  (if (< z -32113435955957344.0) (- (/ x (- t (* a z))) (/ y (- (/ t z) a))) (if (< z 3.5139522372978296e-86) (* (- x (* y z)) (/ 1.0 (- t (* a z)))) (- (/ x (- t (* a z))) (/ y (- (/ t z) a)))))

  (/ (- x (* y z)) (- t (* a z))))