Average Error: 23.2 → 18.2
Time: 18.9s
Precision: binary64
Cost: 1884
\[\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)} \]
\[\begin{array}{l} t_1 := \frac{y \cdot x + z \cdot t}{y - z \cdot \left(y - b\right)}\\ t_2 := \frac{t - a}{b - y}\\ \mathbf{if}\;z \leq -8754944757305.786:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq -3.4243684492499595 \cdot 10^{-8}:\\ \;\;\;\;\frac{x}{1 - z}\\ \mathbf{elif}\;z \leq -2.398542161330947 \cdot 10^{-12}:\\ \;\;\;\;\frac{t}{b}\\ \mathbf{elif}\;z \leq -2.508209905370799 \cdot 10^{-169}:\\ \;\;\;\;x + z \cdot \frac{t - a}{y}\\ \mathbf{elif}\;z \leq -7.237021465513243 \cdot 10^{-225}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 3.6828643864288107 \cdot 10^{-168}:\\ \;\;\;\;x - \frac{z \cdot a}{y}\\ \mathbf{elif}\;z \leq 3933586333917.1025:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (/ (+ (* y x) (* z t)) (- y (* z (- y b)))))
        (t_2 (/ (- t a) (- b y))))
   (if (<= z -8754944757305.786)
     t_2
     (if (<= z -3.4243684492499595e-8)
       (/ x (- 1.0 z))
       (if (<= z -2.398542161330947e-12)
         (/ t b)
         (if (<= z -2.508209905370799e-169)
           (+ x (* z (/ (- t a) y)))
           (if (<= z -7.237021465513243e-225)
             t_1
             (if (<= z 3.6828643864288107e-168)
               (- x (/ (* z a) y))
               (if (<= z 3933586333917.1025) t_1 t_2)))))))))
double code(double x, double y, double z, double t, double a, double b) {
	return ((x * y) + (z * (t - a))) / (y + (z * (b - y)));
}
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = ((y * x) + (z * t)) / (y - (z * (y - b)));
	double t_2 = (t - a) / (b - y);
	double tmp;
	if (z <= -8754944757305.786) {
		tmp = t_2;
	} else if (z <= -3.4243684492499595e-8) {
		tmp = x / (1.0 - z);
	} else if (z <= -2.398542161330947e-12) {
		tmp = t / b;
	} else if (z <= -2.508209905370799e-169) {
		tmp = x + (z * ((t - a) / y));
	} else if (z <= -7.237021465513243e-225) {
		tmp = t_1;
	} else if (z <= 3.6828643864288107e-168) {
		tmp = x - ((z * a) / y);
	} else if (z <= 3933586333917.1025) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    code = ((x * y) + (z * (t - a))) / (y + (z * (b - y)))
end function
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_1 = ((y * x) + (z * t)) / (y - (z * (y - b)))
    t_2 = (t - a) / (b - y)
    if (z <= (-8754944757305.786d0)) then
        tmp = t_2
    else if (z <= (-3.4243684492499595d-8)) then
        tmp = x / (1.0d0 - z)
    else if (z <= (-2.398542161330947d-12)) then
        tmp = t / b
    else if (z <= (-2.508209905370799d-169)) then
        tmp = x + (z * ((t - a) / y))
    else if (z <= (-7.237021465513243d-225)) then
        tmp = t_1
    else if (z <= 3.6828643864288107d-168) then
        tmp = x - ((z * a) / y)
    else if (z <= 3933586333917.1025d0) then
        tmp = 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, double b) {
	return ((x * y) + (z * (t - a))) / (y + (z * (b - y)));
}
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = ((y * x) + (z * t)) / (y - (z * (y - b)));
	double t_2 = (t - a) / (b - y);
	double tmp;
	if (z <= -8754944757305.786) {
		tmp = t_2;
	} else if (z <= -3.4243684492499595e-8) {
		tmp = x / (1.0 - z);
	} else if (z <= -2.398542161330947e-12) {
		tmp = t / b;
	} else if (z <= -2.508209905370799e-169) {
		tmp = x + (z * ((t - a) / y));
	} else if (z <= -7.237021465513243e-225) {
		tmp = t_1;
	} else if (z <= 3.6828643864288107e-168) {
		tmp = x - ((z * a) / y);
	} else if (z <= 3933586333917.1025) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	return ((x * y) + (z * (t - a))) / (y + (z * (b - y)))
def code(x, y, z, t, a, b):
	t_1 = ((y * x) + (z * t)) / (y - (z * (y - b)))
	t_2 = (t - a) / (b - y)
	tmp = 0
	if z <= -8754944757305.786:
		tmp = t_2
	elif z <= -3.4243684492499595e-8:
		tmp = x / (1.0 - z)
	elif z <= -2.398542161330947e-12:
		tmp = t / b
	elif z <= -2.508209905370799e-169:
		tmp = x + (z * ((t - a) / y))
	elif z <= -7.237021465513243e-225:
		tmp = t_1
	elif z <= 3.6828643864288107e-168:
		tmp = x - ((z * a) / y)
	elif z <= 3933586333917.1025:
		tmp = t_1
	else:
		tmp = t_2
	return tmp
function code(x, y, z, t, a, b)
	return Float64(Float64(Float64(x * y) + Float64(z * Float64(t - a))) / Float64(y + Float64(z * Float64(b - y))))
end
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(Float64(y * x) + Float64(z * t)) / Float64(y - Float64(z * Float64(y - b))))
	t_2 = Float64(Float64(t - a) / Float64(b - y))
	tmp = 0.0
	if (z <= -8754944757305.786)
		tmp = t_2;
	elseif (z <= -3.4243684492499595e-8)
		tmp = Float64(x / Float64(1.0 - z));
	elseif (z <= -2.398542161330947e-12)
		tmp = Float64(t / b);
	elseif (z <= -2.508209905370799e-169)
		tmp = Float64(x + Float64(z * Float64(Float64(t - a) / y)));
	elseif (z <= -7.237021465513243e-225)
		tmp = t_1;
	elseif (z <= 3.6828643864288107e-168)
		tmp = Float64(x - Float64(Float64(z * a) / y));
	elseif (z <= 3933586333917.1025)
		tmp = t_1;
	else
		tmp = t_2;
	end
	return tmp
end
function tmp = code(x, y, z, t, a, b)
	tmp = ((x * y) + (z * (t - a))) / (y + (z * (b - y)));
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = ((y * x) + (z * t)) / (y - (z * (y - b)));
	t_2 = (t - a) / (b - y);
	tmp = 0.0;
	if (z <= -8754944757305.786)
		tmp = t_2;
	elseif (z <= -3.4243684492499595e-8)
		tmp = x / (1.0 - z);
	elseif (z <= -2.398542161330947e-12)
		tmp = t / b;
	elseif (z <= -2.508209905370799e-169)
		tmp = x + (z * ((t - a) / y));
	elseif (z <= -7.237021465513243e-225)
		tmp = t_1;
	elseif (z <= 3.6828643864288107e-168)
		tmp = x - ((z * a) / y);
	elseif (z <= 3933586333917.1025)
		tmp = t_1;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(x * y), $MachinePrecision] + N[(z * N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y + N[(z * N[(b - y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(y * x), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision] / N[(y - N[(z * N[(y - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t - a), $MachinePrecision] / N[(b - y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -8754944757305.786], t$95$2, If[LessEqual[z, -3.4243684492499595e-8], N[(x / N[(1.0 - z), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -2.398542161330947e-12], N[(t / b), $MachinePrecision], If[LessEqual[z, -2.508209905370799e-169], N[(x + N[(z * N[(N[(t - a), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, -7.237021465513243e-225], t$95$1, If[LessEqual[z, 3.6828643864288107e-168], N[(x - N[(N[(z * a), $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 3933586333917.1025], t$95$1, t$95$2]]]]]]]]]
\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}
\begin{array}{l}
t_1 := \frac{y \cdot x + z \cdot t}{y - z \cdot \left(y - b\right)}\\
t_2 := \frac{t - a}{b - y}\\
\mathbf{if}\;z \leq -8754944757305.786:\\
\;\;\;\;t_2\\

\mathbf{elif}\;z \leq -3.4243684492499595 \cdot 10^{-8}:\\
\;\;\;\;\frac{x}{1 - z}\\

\mathbf{elif}\;z \leq -2.398542161330947 \cdot 10^{-12}:\\
\;\;\;\;\frac{t}{b}\\

\mathbf{elif}\;z \leq -2.508209905370799 \cdot 10^{-169}:\\
\;\;\;\;x + z \cdot \frac{t - a}{y}\\

\mathbf{elif}\;z \leq -7.237021465513243 \cdot 10^{-225}:\\
\;\;\;\;t_1\\

\mathbf{elif}\;z \leq 3.6828643864288107 \cdot 10^{-168}:\\
\;\;\;\;x - \frac{z \cdot a}{y}\\

\mathbf{elif}\;z \leq 3933586333917.1025:\\
\;\;\;\;t_1\\

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


\end{array}

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original23.2
Target17.6
Herbie18.2
\[\frac{z \cdot t + y \cdot x}{y + z \cdot \left(b - y\right)} - \frac{a}{\left(b - y\right) + \frac{y}{z}} \]

Derivation

  1. Split input into 6 regimes
  2. if z < -8754944757305.78613 or 3933586333917.1025 < z

    1. Initial program 39.8

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

      \[\leadsto \color{blue}{\frac{t - a}{b - y}} \]

    if -8754944757305.78613 < z < -3.4243684492499595e-8

    1. Initial program 8.6

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

      \[\leadsto \color{blue}{\frac{x}{-1 \cdot z + 1}} \]
    3. Simplified45.0

      \[\leadsto \color{blue}{\frac{x}{1 - z}} \]

    if -3.4243684492499595e-8 < z < -2.39854216133094705e-12

    1. Initial program 11.3

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

      \[\leadsto \color{blue}{\frac{y \cdot x + t \cdot z}{y + \left(b - y\right) \cdot z}} \]
    3. Taylor expanded in y around 0 51.0

      \[\leadsto \color{blue}{\frac{t}{b}} \]

    if -2.39854216133094705e-12 < z < -2.50820990537079901e-169

    1. Initial program 7.3

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

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(z, t - a, x \cdot y\right)}{\mathsf{fma}\left(z, b - y, y\right)}} \]
    3. Taylor expanded in z around 0 35.4

      \[\leadsto \color{blue}{z \cdot \left(\frac{t}{y} - \left(\frac{\left(b - y\right) \cdot x}{y} + \frac{a}{y}\right)\right) + x} \]
    4. Taylor expanded in x around 0 27.9

      \[\leadsto z \cdot \color{blue}{\left(\frac{t}{y} - \frac{a}{y}\right)} + x \]
    5. Simplified27.9

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

    if -2.50820990537079901e-169 < z < -7.2370214655132426e-225 or 3.6828643864288107e-168 < z < 3933586333917.1025

    1. Initial program 8.4

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

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

    if -7.2370214655132426e-225 < z < 3.6828643864288107e-168

    1. Initial program 8.8

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

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(z, t - a, x \cdot y\right)}{\mathsf{fma}\left(z, b - y, y\right)}} \]
    3. Taylor expanded in z around 0 29.7

      \[\leadsto \color{blue}{z \cdot \left(\frac{t}{y} - \left(\frac{\left(b - y\right) \cdot x}{y} + \frac{a}{y}\right)\right) + x} \]
    4. Taylor expanded in a around inf 18.1

      \[\leadsto \color{blue}{-1 \cdot \frac{a \cdot z}{y}} + x \]
  3. Recombined 6 regimes into one program.
  4. Final simplification18.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \leq -8754944757305.786:\\ \;\;\;\;\frac{t - a}{b - y}\\ \mathbf{elif}\;z \leq -3.4243684492499595 \cdot 10^{-8}:\\ \;\;\;\;\frac{x}{1 - z}\\ \mathbf{elif}\;z \leq -2.398542161330947 \cdot 10^{-12}:\\ \;\;\;\;\frac{t}{b}\\ \mathbf{elif}\;z \leq -2.508209905370799 \cdot 10^{-169}:\\ \;\;\;\;x + z \cdot \frac{t - a}{y}\\ \mathbf{elif}\;z \leq -7.237021465513243 \cdot 10^{-225}:\\ \;\;\;\;\frac{y \cdot x + z \cdot t}{y - z \cdot \left(y - b\right)}\\ \mathbf{elif}\;z \leq 3.6828643864288107 \cdot 10^{-168}:\\ \;\;\;\;x - \frac{z \cdot a}{y}\\ \mathbf{elif}\;z \leq 3933586333917.1025:\\ \;\;\;\;\frac{y \cdot x + z \cdot t}{y - z \cdot \left(y - b\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{t - a}{b - y}\\ \end{array} \]

Alternatives

Alternative 1
Error19.0
Cost3144
\[\begin{array}{l} t_1 := x + z \cdot \frac{t - a}{y}\\ t_2 := \frac{t}{b - y}\\ t_3 := \frac{y}{b - y}\\ t_4 := \frac{t - a}{b - y}\\ \mathbf{if}\;z \leq -2.734961975704294 \cdot 10^{+111}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;z \leq -2.398542161330947 \cdot 10^{-12}:\\ \;\;\;\;t_2 + \left(\frac{t_3 \cdot \left(x - t_2\right)}{z} + t_3 \cdot \frac{t_3 \cdot \left(t_2 - x\right)}{z \cdot z}\right)\\ \mathbf{elif}\;z \leq -2.508209905370799 \cdot 10^{-169}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -1.3452608333652823 \cdot 10^{-294}:\\ \;\;\;\;\frac{y \cdot x + z \cdot t}{y - z \cdot \left(y - b\right)}\\ \mathbf{elif}\;z \leq 3.3734369093148308 \cdot 10^{-21}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_4\\ \end{array} \]
Alternative 2
Error18.8
Cost1104
\[\begin{array}{l} t_1 := \frac{t - a}{b - y}\\ \mathbf{if}\;z \leq -8754944757305.786:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -3.4243684492499595 \cdot 10^{-8}:\\ \;\;\;\;\frac{x}{1 - z}\\ \mathbf{elif}\;z \leq -2.398542161330947 \cdot 10^{-12}:\\ \;\;\;\;\frac{t}{b}\\ \mathbf{elif}\;z \leq 3.3734369093148308 \cdot 10^{-21}:\\ \;\;\;\;x + z \cdot \frac{t - a}{y}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 3
Error23.8
Cost976
\[\begin{array}{l} t_1 := \frac{x}{1 - z}\\ t_2 := \frac{t - a}{b - y}\\ \mathbf{if}\;z \leq -8754944757305.786:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq -1.1538369431793351 \cdot 10^{-60}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -4.641251990478265 \cdot 10^{-110}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 16218283225797.996:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 4
Error20.0
Cost976
\[\begin{array}{l} t_1 := \frac{t - a}{b - y}\\ \mathbf{if}\;z \leq -8754944757305.786:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -3.269586728694795 \cdot 10^{-21}:\\ \;\;\;\;\frac{x}{1 - z}\\ \mathbf{elif}\;z \leq -1.5230136600968576 \cdot 10^{-43}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 3.3734369093148308 \cdot 10^{-21}:\\ \;\;\;\;x + \frac{z \cdot t}{y}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 5
Error19.9
Cost976
\[\begin{array}{l} t_1 := \frac{t - a}{b - y}\\ \mathbf{if}\;z \leq -8754944757305.786:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -3.4243684492499595 \cdot 10^{-8}:\\ \;\;\;\;\frac{x}{1 - z}\\ \mathbf{elif}\;z \leq -1.5230136600968576 \cdot 10^{-43}:\\ \;\;\;\;x - z \cdot \frac{a}{y}\\ \mathbf{elif}\;z \leq 3.3734369093148308 \cdot 10^{-21}:\\ \;\;\;\;x + \frac{z \cdot t}{y}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 6
Error37.7
Cost584
\[\begin{array}{l} t_1 := \frac{x}{1 - z}\\ \mathbf{if}\;y \leq -2.163765690678235 \cdot 10^{-93}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq 1.800621625295979 \cdot 10^{-36}:\\ \;\;\;\;\frac{t}{b}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 7
Error30.4
Cost584
\[\begin{array}{l} t_1 := \frac{x}{1 - z}\\ \mathbf{if}\;y \leq -30954260345892184000:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq 4.207596498591257 \cdot 10^{-30}:\\ \;\;\;\;\frac{t - a}{b}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 8
Error40.7
Cost456
\[\begin{array}{l} \mathbf{if}\;z \leq -8754944757305.786:\\ \;\;\;\;\frac{t}{b}\\ \mathbf{elif}\;z \leq 6.5135968507168305 \cdot 10^{-24}:\\ \;\;\;\;x\\ \mathbf{else}:\\ \;\;\;\;\frac{t}{b}\\ \end{array} \]
Alternative 9
Error47.4
Cost64
\[x \]

Error

Reproduce

herbie shell --seed 2022228 
(FPCore (x y z t a b)
  :name "Development.Shake.Progress:decay from shake-0.15.5"
  :precision binary64

  :herbie-target
  (- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z))))

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