?

Average Error: 26.6 → 7.7
Time: 22.7s
Precision: binary64
Cost: 4168

?

\[\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} \]
\[\begin{array}{l} t_1 := \frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y}\\ t_2 := \left(a + z\right) - b\\ \mathbf{if}\;t_1 \leq -5 \cdot 10^{+299}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;t_1 \leq 5 \cdot 10^{+268}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)))
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)))
        (t_2 (- (+ a z) b)))
   (if (<= t_1 -5e+299) t_2 (if (<= t_1 5e+268) t_1 t_2))))
double code(double x, double y, double z, double t, double a, double b) {
	return ((((x + y) * z) + ((t + y) * a)) - (y * b)) / ((x + t) + y);
}
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = ((((x + y) * z) + ((t + y) * a)) - (y * b)) / ((x + t) + y);
	double t_2 = (a + z) - b;
	double tmp;
	if (t_1 <= -5e+299) {
		tmp = t_2;
	} else if (t_1 <= 5e+268) {
		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 + y) * a)) - (y * b)) / ((x + t) + 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 = ((((x + y) * z) + ((t + y) * a)) - (y * b)) / ((x + t) + y)
    t_2 = (a + z) - b
    if (t_1 <= (-5d+299)) then
        tmp = t_2
    else if (t_1 <= 5d+268) 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 + y) * a)) - (y * b)) / ((x + t) + y);
}
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = ((((x + y) * z) + ((t + y) * a)) - (y * b)) / ((x + t) + y);
	double t_2 = (a + z) - b;
	double tmp;
	if (t_1 <= -5e+299) {
		tmp = t_2;
	} else if (t_1 <= 5e+268) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	return ((((x + y) * z) + ((t + y) * a)) - (y * b)) / ((x + t) + y)
def code(x, y, z, t, a, b):
	t_1 = ((((x + y) * z) + ((t + y) * a)) - (y * b)) / ((x + t) + y)
	t_2 = (a + z) - b
	tmp = 0
	if t_1 <= -5e+299:
		tmp = t_2
	elif t_1 <= 5e+268:
		tmp = t_1
	else:
		tmp = t_2
	return tmp
function code(x, y, z, t, a, b)
	return Float64(Float64(Float64(Float64(Float64(x + y) * z) + Float64(Float64(t + y) * a)) - Float64(y * b)) / Float64(Float64(x + t) + y))
end
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(Float64(Float64(Float64(x + y) * z) + Float64(Float64(t + y) * a)) - Float64(y * b)) / Float64(Float64(x + t) + y))
	t_2 = Float64(Float64(a + z) - b)
	tmp = 0.0
	if (t_1 <= -5e+299)
		tmp = t_2;
	elseif (t_1 <= 5e+268)
		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 + y) * a)) - (y * b)) / ((x + t) + y);
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = ((((x + y) * z) + ((t + y) * a)) - (y * b)) / ((x + t) + y);
	t_2 = (a + z) - b;
	tmp = 0.0;
	if (t_1 <= -5e+299)
		tmp = t_2;
	elseif (t_1 <= 5e+268)
		tmp = t_1;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := N[(N[(N[(N[(N[(x + y), $MachinePrecision] * z), $MachinePrecision] + N[(N[(t + y), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] - N[(y * b), $MachinePrecision]), $MachinePrecision] / N[(N[(x + t), $MachinePrecision] + y), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(N[(N[(x + y), $MachinePrecision] * z), $MachinePrecision] + N[(N[(t + y), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] - N[(y * b), $MachinePrecision]), $MachinePrecision] / N[(N[(x + t), $MachinePrecision] + y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(a + z), $MachinePrecision] - b), $MachinePrecision]}, If[LessEqual[t$95$1, -5e+299], t$95$2, If[LessEqual[t$95$1, 5e+268], t$95$1, t$95$2]]]]
\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y}
\begin{array}{l}
t_1 := \frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y}\\
t_2 := \left(a + z\right) - b\\
\mathbf{if}\;t_1 \leq -5 \cdot 10^{+299}:\\
\;\;\;\;t_2\\

\mathbf{elif}\;t_1 \leq 5 \cdot 10^{+268}:\\
\;\;\;\;t_1\\

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


\end{array}

Error?

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original26.6
Target11.5
Herbie7.7
\[\begin{array}{l} \mathbf{if}\;\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} < -3.5813117084150564 \cdot 10^{+153}:\\ \;\;\;\;\left(z + a\right) - b\\ \mathbf{elif}\;\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} < 1.2285964308315609 \cdot 10^{+82}:\\ \;\;\;\;\frac{1}{\frac{\left(x + t\right) + y}{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}}\\ \mathbf{else}:\\ \;\;\;\;\left(z + a\right) - b\\ \end{array} \]

Derivation?

  1. Split input into 2 regimes
  2. if (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y)) < -5.0000000000000003e299 or 5.0000000000000002e268 < (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y))

    1. Initial program 62.5

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

      \[\leadsto \color{blue}{\left(a + z\right) - b} \]

    if -5.0000000000000003e299 < (/.f64 (-.f64 (+.f64 (*.f64 (+.f64 x y) z) (*.f64 (+.f64 t y) a)) (*.f64 y b)) (+.f64 (+.f64 x t) y)) < 5.0000000000000002e268

    1. Initial program 0.3

      \[\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification7.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} \leq -5 \cdot 10^{+299}:\\ \;\;\;\;\left(a + z\right) - b\\ \mathbf{elif}\;\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y} \leq 5 \cdot 10^{+268}:\\ \;\;\;\;\frac{\left(\left(x + y\right) \cdot z + \left(t + y\right) \cdot a\right) - y \cdot b}{\left(x + t\right) + y}\\ \mathbf{else}:\\ \;\;\;\;\left(a + z\right) - b\\ \end{array} \]

Alternatives

Alternative 1
Error26.3
Cost2600
\[\begin{array}{l} t_1 := y + \left(t + x\right)\\ t_2 := \left(a + z\right) - b\\ t_3 := a \cdot \frac{y + t}{t_1}\\ t_4 := \left(-\frac{y \cdot b}{t_1}\right) + x \cdot \frac{z}{t_1}\\ \mathbf{if}\;y \leq -3.2 \cdot 10^{-56}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq -2.9 \cdot 10^{-101}:\\ \;\;\;\;\frac{a \cdot t - y \cdot b}{\left(x + t\right) + y}\\ \mathbf{elif}\;y \leq -5 \cdot 10^{-113}:\\ \;\;\;\;z \cdot \frac{y + x}{t_1}\\ \mathbf{elif}\;y \leq -3.8 \cdot 10^{-256}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq 5 \cdot 10^{-310}:\\ \;\;\;\;z + \frac{a \cdot t}{x}\\ \mathbf{elif}\;y \leq 3.1 \cdot 10^{-236}:\\ \;\;\;\;a \cdot \frac{t}{t + x}\\ \mathbf{elif}\;y \leq 4.5 \cdot 10^{-193}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;y \leq 2.7 \cdot 10^{-81}:\\ \;\;\;\;\frac{z \cdot x + a \cdot t}{t + x}\\ \mathbf{elif}\;y \leq 1.12 \cdot 10^{-60}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq 4.5 \cdot 10^{-37}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;y \leq 1.1 \cdot 10^{+53}:\\ \;\;\;\;\frac{z \cdot \left(y + x\right) + y \cdot \left(a - b\right)}{y + x}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 2
Error25.6
Cost2016
\[\begin{array}{l} t_1 := y + \left(t + x\right)\\ t_2 := \left(a + z\right) - b\\ \mathbf{if}\;y \leq -3.5 \cdot 10^{-56}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq -7.6 \cdot 10^{-100}:\\ \;\;\;\;\frac{a \cdot t - y \cdot b}{\left(x + t\right) + y}\\ \mathbf{elif}\;y \leq -4.3 \cdot 10^{-113}:\\ \;\;\;\;z \cdot \frac{y + x}{t_1}\\ \mathbf{elif}\;y \leq -9 \cdot 10^{-255}:\\ \;\;\;\;a \cdot \frac{y + t}{t_1}\\ \mathbf{elif}\;y \leq -5.5 \cdot 10^{-309}:\\ \;\;\;\;z + \frac{a \cdot t}{x}\\ \mathbf{elif}\;y \leq 3.7 \cdot 10^{-239}:\\ \;\;\;\;a \cdot \frac{t}{t + x}\\ \mathbf{elif}\;y \leq 6.1 \cdot 10^{-71}:\\ \;\;\;\;\frac{z \cdot x + a \cdot t}{t + x}\\ \mathbf{elif}\;y \leq 2.6 \cdot 10^{+44}:\\ \;\;\;\;\frac{z \cdot \left(y + x\right) + y \cdot \left(a - b\right)}{y + x}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 3
Error26.1
Cost1888
\[\begin{array}{l} t_1 := y + \left(t + x\right)\\ t_2 := \left(x + t\right) + y\\ t_3 := \left(a + z\right) - b\\ \mathbf{if}\;y \leq -2.9 \cdot 10^{-56}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq -6.8 \cdot 10^{-100}:\\ \;\;\;\;\frac{a \cdot t - y \cdot b}{t_2}\\ \mathbf{elif}\;y \leq -4.8 \cdot 10^{-113}:\\ \;\;\;\;z \cdot \frac{y + x}{t_1}\\ \mathbf{elif}\;y \leq -1.7 \cdot 10^{-256}:\\ \;\;\;\;a \cdot \frac{y + t}{t_1}\\ \mathbf{elif}\;y \leq -8.5 \cdot 10^{-309}:\\ \;\;\;\;z + \frac{a \cdot t}{x}\\ \mathbf{elif}\;y \leq 2 \cdot 10^{-238}:\\ \;\;\;\;a \cdot \frac{t}{t + x}\\ \mathbf{elif}\;y \leq 3.7 \cdot 10^{-68}:\\ \;\;\;\;\frac{z \cdot x + a \cdot t}{t + x}\\ \mathbf{elif}\;y \leq 5 \cdot 10^{+31}:\\ \;\;\;\;\frac{y \cdot t_3}{t_2}\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \]
Alternative 4
Error28.0
Cost1368
\[\begin{array}{l} t_1 := z + \frac{t}{x} \cdot \left(a - z\right)\\ t_2 := \left(a + z\right) - b\\ \mathbf{if}\;x \leq -3 \cdot 10^{+233}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \leq -7.8 \cdot 10^{+21}:\\ \;\;\;\;x \cdot \frac{z}{x + t}\\ \mathbf{elif}\;x \leq -5.5 \cdot 10^{-63}:\\ \;\;\;\;a\\ \mathbf{elif}\;x \leq 7.5 \cdot 10^{-249}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;x \leq 3.5 \cdot 10^{-199}:\\ \;\;\;\;a\\ \mathbf{elif}\;x \leq 8.5 \cdot 10^{+103}:\\ \;\;\;\;t_2\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 5
Error27.8
Cost1368
\[\begin{array}{l} t_1 := \left(a + z\right) - b\\ t_2 := z + \frac{t}{x} \cdot \left(a - z\right)\\ \mathbf{if}\;x \leq -3.1 \cdot 10^{+233}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;x \leq -2.95 \cdot 10^{+23}:\\ \;\;\;\;x \cdot \frac{z}{x + t}\\ \mathbf{elif}\;x \leq -1.5 \cdot 10^{-64}:\\ \;\;\;\;a \cdot \frac{y + t}{y + \left(t + x\right)}\\ \mathbf{elif}\;x \leq 8.2 \cdot 10^{-249}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \leq 2.8 \cdot 10^{-199}:\\ \;\;\;\;a\\ \mathbf{elif}\;x \leq 2.8 \cdot 10^{+105}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 6
Error29.0
Cost1364
\[\begin{array}{l} t_1 := y + \left(t + x\right)\\ t_2 := z \cdot \frac{y + x}{t_1}\\ \mathbf{if}\;z \leq -2.05 \cdot 10^{+143}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 7 \cdot 10^{-120}:\\ \;\;\;\;a \cdot \frac{y + t}{t_1}\\ \mathbf{elif}\;z \leq 4.1 \cdot 10^{-46}:\\ \;\;\;\;-1 \cdot \left(b \cdot \frac{y}{t + \left(y + x\right)}\right)\\ \mathbf{elif}\;z \leq 0.4:\\ \;\;\;\;z + \frac{t}{x} \cdot \left(a - z\right)\\ \mathbf{elif}\;z \leq 5.3 \cdot 10^{+228}:\\ \;\;\;\;\left(a + z\right) - b\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 7
Error28.7
Cost1364
\[\begin{array}{l} t_1 := \left(a + z\right) - b\\ t_2 := y + \left(t + x\right)\\ t_3 := z \cdot \frac{y + x}{t_2}\\ \mathbf{if}\;z \leq -4.8 \cdot 10^{+143}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 1.6 \cdot 10^{-118}:\\ \;\;\;\;a \cdot \frac{y + t}{t_2}\\ \mathbf{elif}\;z \leq 5.8 \cdot 10^{-39}:\\ \;\;\;\;\frac{y \cdot t_1}{\left(x + t\right) + y}\\ \mathbf{elif}\;z \leq 0.4:\\ \;\;\;\;z + \frac{t}{x} \cdot \left(a - z\right)\\ \mathbf{elif}\;z \leq 7.6 \cdot 10^{+225}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \]
Alternative 8
Error27.6
Cost976
\[\begin{array}{l} t_1 := a \cdot \frac{t}{t + x}\\ t_2 := \left(a + z\right) - b\\ \mathbf{if}\;y \leq -1.9 \cdot 10^{-57}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq -4 \cdot 10^{-256}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq 1.65 \cdot 10^{-308}:\\ \;\;\;\;z\\ \mathbf{elif}\;y \leq 1.22 \cdot 10^{-71}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 9
Error27.4
Cost976
\[\begin{array}{l} t_1 := a \cdot \frac{t}{t + x}\\ t_2 := \left(a + z\right) - b\\ \mathbf{if}\;y \leq -1.35 \cdot 10^{-57}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq -2.8 \cdot 10^{-256}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq 7.3 \cdot 10^{-308}:\\ \;\;\;\;z + \frac{a \cdot t}{x}\\ \mathbf{elif}\;y \leq 9.5 \cdot 10^{-72}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 10
Error27.7
Cost848
\[\begin{array}{l} t_1 := \left(a + z\right) - b\\ \mathbf{if}\;x \leq -2.8 \cdot 10^{+126}:\\ \;\;\;\;z\\ \mathbf{elif}\;x \leq 7.4 \cdot 10^{-249}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \leq 1.8 \cdot 10^{-199}:\\ \;\;\;\;a\\ \mathbf{elif}\;x \leq 6 \cdot 10^{+101}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;z\\ \end{array} \]
Alternative 11
Error36.9
Cost592
\[\begin{array}{l} \mathbf{if}\;x \leq -5.8 \cdot 10^{+22}:\\ \;\;\;\;z\\ \mathbf{elif}\;x \leq -3.4 \cdot 10^{-270}:\\ \;\;\;\;a\\ \mathbf{elif}\;x \leq 1.3 \cdot 10^{-267}:\\ \;\;\;\;z\\ \mathbf{elif}\;x \leq 5.3 \cdot 10^{+50}:\\ \;\;\;\;a\\ \mathbf{else}:\\ \;\;\;\;z\\ \end{array} \]
Alternative 12
Error43.4
Cost64
\[a \]

Error

Reproduce?

herbie shell --seed 2023068 
(FPCore (x y z t a b)
  :name "AI.Clustering.Hierarchical.Internal:ward from clustering-0.2.1"
  :precision binary64

  :herbie-target
  (if (< (/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)) -3.5813117084150564e+153) (- (+ z a) b) (if (< (/ (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)) (+ (+ x t) y)) 1.2285964308315609e+82) (/ 1.0 (/ (+ (+ x t) y) (- (+ (* (+ x y) z) (* (+ t y) a)) (* y b)))) (- (+ z a) b)))

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