Average Error: 5.3 → 1.4
Time: 38.8s
Precision: binary64
Cost: 66628
\[ \begin{array}{c}[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \end{array} \]
\[\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
\[\begin{array}{l} t_1 := \sqrt{1 + x}\\ t_2 := t_1 - \sqrt{x}\\ \mathbf{if}\;t_2 \leq 5 \cdot 10^{-5}:\\ \;\;\;\;\frac{1 + \left(x - x\right)}{t_1 + \sqrt{x}}\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{1 + t} - \sqrt{t}\right) + \left(\frac{1 + \left(z - z\right)}{\sqrt{1 + z} + \sqrt{z}} + \left(t_2 + \frac{y + \left(1 - y\right)}{\sqrt{y} + \sqrt{1 + y}}\right)\right)\\ \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (+
  (+
   (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y)))
   (- (sqrt (+ z 1.0)) (sqrt z)))
  (- (sqrt (+ t 1.0)) (sqrt t))))
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (+ 1.0 x))) (t_2 (- t_1 (sqrt x))))
   (if (<= t_2 5e-5)
     (/ (+ 1.0 (- x x)) (+ t_1 (sqrt x)))
     (+
      (- (sqrt (+ 1.0 t)) (sqrt t))
      (+
       (/ (+ 1.0 (- z z)) (+ (sqrt (+ 1.0 z)) (sqrt z)))
       (+ t_2 (/ (+ y (- 1.0 y)) (+ (sqrt y) (sqrt (+ 1.0 y))))))))))
double code(double x, double y, double z, double t) {
	return (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
}
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((1.0 + x));
	double t_2 = t_1 - sqrt(x);
	double tmp;
	if (t_2 <= 5e-5) {
		tmp = (1.0 + (x - x)) / (t_1 + sqrt(x));
	} else {
		tmp = (sqrt((1.0 + t)) - sqrt(t)) + (((1.0 + (z - z)) / (sqrt((1.0 + z)) + sqrt(z))) + (t_2 + ((y + (1.0 - y)) / (sqrt(y) + sqrt((1.0 + y))))));
	}
	return tmp;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = (((sqrt((x + 1.0d0)) - sqrt(x)) + (sqrt((y + 1.0d0)) - sqrt(y))) + (sqrt((z + 1.0d0)) - sqrt(z))) + (sqrt((t + 1.0d0)) - sqrt(t))
end function
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_1 = sqrt((1.0d0 + x))
    t_2 = t_1 - sqrt(x)
    if (t_2 <= 5d-5) then
        tmp = (1.0d0 + (x - x)) / (t_1 + sqrt(x))
    else
        tmp = (sqrt((1.0d0 + t)) - sqrt(t)) + (((1.0d0 + (z - z)) / (sqrt((1.0d0 + z)) + sqrt(z))) + (t_2 + ((y + (1.0d0 - y)) / (sqrt(y) + sqrt((1.0d0 + y))))))
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	return (((Math.sqrt((x + 1.0)) - Math.sqrt(x)) + (Math.sqrt((y + 1.0)) - Math.sqrt(y))) + (Math.sqrt((z + 1.0)) - Math.sqrt(z))) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
}
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((1.0 + x));
	double t_2 = t_1 - Math.sqrt(x);
	double tmp;
	if (t_2 <= 5e-5) {
		tmp = (1.0 + (x - x)) / (t_1 + Math.sqrt(x));
	} else {
		tmp = (Math.sqrt((1.0 + t)) - Math.sqrt(t)) + (((1.0 + (z - z)) / (Math.sqrt((1.0 + z)) + Math.sqrt(z))) + (t_2 + ((y + (1.0 - y)) / (Math.sqrt(y) + Math.sqrt((1.0 + y))))));
	}
	return tmp;
}
def code(x, y, z, t):
	return (((math.sqrt((x + 1.0)) - math.sqrt(x)) + (math.sqrt((y + 1.0)) - math.sqrt(y))) + (math.sqrt((z + 1.0)) - math.sqrt(z))) + (math.sqrt((t + 1.0)) - math.sqrt(t))
def code(x, y, z, t):
	t_1 = math.sqrt((1.0 + x))
	t_2 = t_1 - math.sqrt(x)
	tmp = 0
	if t_2 <= 5e-5:
		tmp = (1.0 + (x - x)) / (t_1 + math.sqrt(x))
	else:
		tmp = (math.sqrt((1.0 + t)) - math.sqrt(t)) + (((1.0 + (z - z)) / (math.sqrt((1.0 + z)) + math.sqrt(z))) + (t_2 + ((y + (1.0 - y)) / (math.sqrt(y) + math.sqrt((1.0 + y))))))
	return tmp
function code(x, y, z, t)
	return Float64(Float64(Float64(Float64(sqrt(Float64(x + 1.0)) - sqrt(x)) + Float64(sqrt(Float64(y + 1.0)) - sqrt(y))) + Float64(sqrt(Float64(z + 1.0)) - sqrt(z))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)))
end
function code(x, y, z, t)
	t_1 = sqrt(Float64(1.0 + x))
	t_2 = Float64(t_1 - sqrt(x))
	tmp = 0.0
	if (t_2 <= 5e-5)
		tmp = Float64(Float64(1.0 + Float64(x - x)) / Float64(t_1 + sqrt(x)));
	else
		tmp = Float64(Float64(sqrt(Float64(1.0 + t)) - sqrt(t)) + Float64(Float64(Float64(1.0 + Float64(z - z)) / Float64(sqrt(Float64(1.0 + z)) + sqrt(z))) + Float64(t_2 + Float64(Float64(y + Float64(1.0 - y)) / Float64(sqrt(y) + sqrt(Float64(1.0 + y)))))));
	end
	return tmp
end
function tmp = code(x, y, z, t)
	tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
end
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((1.0 + x));
	t_2 = t_1 - sqrt(x);
	tmp = 0.0;
	if (t_2 <= 5e-5)
		tmp = (1.0 + (x - x)) / (t_1 + sqrt(x));
	else
		tmp = (sqrt((1.0 + t)) - sqrt(t)) + (((1.0 + (z - z)) / (sqrt((1.0 + z)) + sqrt(z))) + (t_2 + ((y + (1.0 - y)) / (sqrt(y) + sqrt((1.0 + y))))));
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := N[(N[(N[(N[(N[Sqrt[N[(x + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(y + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(z + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 - N[Sqrt[x], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$2, 5e-5], N[(N[(1.0 + N[(x - x), $MachinePrecision]), $MachinePrecision] / N[(t$95$1 + N[Sqrt[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[Sqrt[N[(1.0 + t), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision] + N[(N[(N[(1.0 + N[(z - z), $MachinePrecision]), $MachinePrecision] / N[(N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 + N[(N[(y + N[(1.0 - y), $MachinePrecision]), $MachinePrecision] / N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\begin{array}{l}
t_1 := \sqrt{1 + x}\\
t_2 := t_1 - \sqrt{x}\\
\mathbf{if}\;t_2 \leq 5 \cdot 10^{-5}:\\
\;\;\;\;\frac{1 + \left(x - x\right)}{t_1 + \sqrt{x}}\\

\mathbf{else}:\\
\;\;\;\;\left(\sqrt{1 + t} - \sqrt{t}\right) + \left(\frac{1 + \left(z - z\right)}{\sqrt{1 + z} + \sqrt{z}} + \left(t_2 + \frac{y + \left(1 - y\right)}{\sqrt{y} + \sqrt{1 + y}}\right)\right)\\


\end{array}

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original5.3
Target0.4
Herbie1.4
\[\left(\left(\frac{1}{\sqrt{x + 1} + \sqrt{x}} + \frac{1}{\sqrt{y + 1} + \sqrt{y}}\right) + \frac{1}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]

Derivation

  1. Split input into 2 regimes
  2. if (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) < 5.00000000000000024e-5

    1. Initial program 59.5

      \[\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    2. Simplified61.0

      \[\leadsto \color{blue}{\left(\sqrt{x + 1} + \left(\sqrt{1 + y} - \sqrt{x}\right)\right) + \left(\left(\sqrt{1 + z} - \sqrt{y}\right) - \left(\sqrt{t} + \left(\sqrt{z} - \sqrt{1 + t}\right)\right)\right)} \]
      Proof
      (+.f64 (+.f64 (sqrt.f64 (+.f64 x 1)) (-.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 x))) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 z)) (sqrt.f64 y)) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (sqrt.f64 (+.f64 x 1)) (-.f64 (sqrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 y 1))) (sqrt.f64 x))) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 z)) (sqrt.f64 y)) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (sqrt.f64 (+.f64 x 1)) (Rewrite<= unsub-neg_binary64 (+.f64 (sqrt.f64 (+.f64 y 1)) (neg.f64 (sqrt.f64 x))))) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 z)) (sqrt.f64 y)) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (sqrt.f64 (+.f64 x 1)) (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))))) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 z)) (sqrt.f64 y)) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (sqrt.f64 (+.f64 x 1)) (neg.f64 (sqrt.f64 x))) (sqrt.f64 (+.f64 y 1)))) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 z)) (sqrt.f64 y)) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (Rewrite<= sub-neg_binary64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))) (sqrt.f64 (+.f64 y 1))) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 z)) (sqrt.f64 y)) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (-.f64 (-.f64 (sqrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 z 1))) (sqrt.f64 y)) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (-.f64 (Rewrite<= unsub-neg_binary64 (+.f64 (sqrt.f64 (+.f64 z 1)) (neg.f64 (sqrt.f64 y)))) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 (+.f64 z 1)))) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 1 t)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (-.f64 (+.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 (+.f64 z 1))) (+.f64 (sqrt.f64 t) (-.f64 (sqrt.f64 z) (sqrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 t 1))))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (-.f64 (+.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 (+.f64 z 1))) (Rewrite<= +-commutative_binary64 (+.f64 (-.f64 (sqrt.f64 z) (sqrt.f64 (+.f64 t 1))) (sqrt.f64 t))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (-.f64 (+.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 (+.f64 z 1))) (Rewrite<= associate--r-_binary64 (-.f64 (sqrt.f64 z) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)))))): 14 points increase in error, 182 points decrease in error
      (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (+.f64 (neg.f64 (sqrt.f64 y)) (sqrt.f64 (+.f64 z 1)))) (-.f64 (sqrt.f64 z) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))))): 139 points increase in error, 23 points decrease in error
      (-.f64 (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (neg.f64 (sqrt.f64 y))) (sqrt.f64 (+.f64 z 1)))) (-.f64 (sqrt.f64 z) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)))): 0 points increase in error, 0 points decrease in error
      (-.f64 (+.f64 (Rewrite<= sub-neg_binary64 (-.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (sqrt.f64 (+.f64 y 1))) (sqrt.f64 y))) (sqrt.f64 (+.f64 z 1))) (-.f64 (sqrt.f64 z) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)))): 0 points increase in error, 0 points decrease in error
      (-.f64 (+.f64 (Rewrite<= associate-+r-_binary64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y)))) (sqrt.f64 (+.f64 z 1))) (-.f64 (sqrt.f64 z) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (sqrt.f64 (+.f64 z 1))) (sqrt.f64 z)) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t)))): 0 points increase in error, 0 points decrease in error
      (+.f64 (Rewrite<= associate-+r-_binary64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y 1)) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z 1)) (sqrt.f64 z)))) (-.f64 (sqrt.f64 (+.f64 t 1)) (sqrt.f64 t))): 6 points increase in error, 143 points decrease in error
    3. Taylor expanded in t around inf 61.8

      \[\leadsto \color{blue}{\left(\sqrt{1 + z} + \left(\sqrt{1 + y} + \sqrt{1 + x}\right)\right) - \left(\sqrt{z} + \left(\sqrt{x} + \sqrt{y}\right)\right)} \]
    4. Simplified61.8

      \[\leadsto \color{blue}{\sqrt{z + 1} + \left(\sqrt{1 + x} + \left(\left(\sqrt{1 + y} - \sqrt{x}\right) - \left(\sqrt{z} + \sqrt{y}\right)\right)\right)} \]
      Proof
      (+.f64 (sqrt.f64 (+.f64 z 1)) (+.f64 (sqrt.f64 (+.f64 1 x)) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 x)) (+.f64 (sqrt.f64 z) (sqrt.f64 y))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (Rewrite<= +-commutative_binary64 (+.f64 1 z))) (+.f64 (sqrt.f64 (+.f64 1 x)) (-.f64 (-.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 x)) (+.f64 (sqrt.f64 z) (sqrt.f64 y))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (+.f64 1 z)) (+.f64 (sqrt.f64 (+.f64 1 x)) (Rewrite<= associate--r+_binary64 (-.f64 (sqrt.f64 (+.f64 1 y)) (+.f64 (sqrt.f64 x) (+.f64 (sqrt.f64 z) (sqrt.f64 y))))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (+.f64 1 z)) (+.f64 (sqrt.f64 (+.f64 1 x)) (-.f64 (sqrt.f64 (+.f64 1 y)) (+.f64 (sqrt.f64 x) (Rewrite=> +-commutative_binary64 (+.f64 (sqrt.f64 y) (sqrt.f64 z))))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (+.f64 1 z)) (+.f64 (sqrt.f64 (+.f64 1 x)) (-.f64 (sqrt.f64 (+.f64 1 y)) (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 y)) (sqrt.f64 z)))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (+.f64 1 z)) (+.f64 (sqrt.f64 (+.f64 1 x)) (-.f64 (sqrt.f64 (+.f64 1 y)) (Rewrite<= +-commutative_binary64 (+.f64 (sqrt.f64 z) (+.f64 (sqrt.f64 x) (sqrt.f64 y))))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (+.f64 1 z)) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 (+.f64 1 y))) (+.f64 (sqrt.f64 z) (+.f64 (sqrt.f64 x) (sqrt.f64 y)))))): 2 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (+.f64 1 z)) (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 (+.f64 1 x)))) (+.f64 (sqrt.f64 z) (+.f64 (sqrt.f64 x) (sqrt.f64 y))))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (sqrt.f64 (+.f64 1 z)) (+.f64 (sqrt.f64 (+.f64 1 y)) (sqrt.f64 (+.f64 1 x)))) (+.f64 (sqrt.f64 z) (+.f64 (sqrt.f64 x) (sqrt.f64 y))))): 1 points increase in error, 7 points decrease in error
    5. Taylor expanded in y around inf 61.8

      \[\leadsto \color{blue}{\left(\sqrt{1 + z} + \sqrt{1 + x}\right) - \left(\sqrt{z} + \sqrt{x}\right)} \]
    6. Simplified59.5

      \[\leadsto \color{blue}{\sqrt{1 + x} + \left(\sqrt{1 + z} - \left(\sqrt{x} + \sqrt{z}\right)\right)} \]
      Proof
      (+.f64 (sqrt.f64 (+.f64 1 x)) (-.f64 (sqrt.f64 (+.f64 1 z)) (+.f64 (sqrt.f64 x) (sqrt.f64 z)))): 0 points increase in error, 0 points decrease in error
      (+.f64 (sqrt.f64 (+.f64 1 x)) (-.f64 (sqrt.f64 (+.f64 1 z)) (Rewrite<= +-commutative_binary64 (+.f64 (sqrt.f64 z) (sqrt.f64 x))))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (sqrt.f64 (+.f64 1 x)) (sqrt.f64 (+.f64 1 z))) (+.f64 (sqrt.f64 z) (sqrt.f64 x)))): 158 points increase in error, 5 points decrease in error
      (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (sqrt.f64 (+.f64 1 z)) (sqrt.f64 (+.f64 1 x)))) (+.f64 (sqrt.f64 z) (sqrt.f64 x))): 0 points increase in error, 0 points decrease in error
    7. Taylor expanded in z around inf 59.5

      \[\leadsto \color{blue}{\sqrt{1 + x} - \sqrt{x}} \]
    8. Applied egg-rr10.1

      \[\leadsto \color{blue}{\frac{1 + \left(x - x\right)}{\sqrt{1 + x} + \sqrt{x}}} \]

    if 5.00000000000000024e-5 < (-.f64 (sqrt.f64 (+.f64 x 1)) (sqrt.f64 x))

    1. Initial program 2.2

      \[\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    2. Applied egg-rr1.8

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\frac{y + \left(1 - y\right)}{\sqrt{y + 1} + \sqrt{y}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied egg-rr0.9

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{y + \left(1 - y\right)}{\sqrt{y + 1} + \sqrt{y}}\right) + \color{blue}{\frac{1 + \left(z - z\right)}{\sqrt{1 + z} + \sqrt{z}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.4

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

Alternatives

Alternative 1
Error1.9
Cost79172
\[\begin{array}{l} t_1 := \sqrt{1 + y}\\ t_2 := \sqrt{1 + x}\\ t_3 := t_2 - \sqrt{x}\\ \mathbf{if}\;\left(t_1 - \sqrt{y}\right) + t_3 \leq 5 \cdot 10^{-5}:\\ \;\;\;\;\frac{1 + \left(x - x\right)}{t_2 + \sqrt{x}}\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{1 + t} - \sqrt{t}\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + \left(t_3 + \frac{1}{\sqrt{y} + t_1}\right)\right)\\ \end{array} \]
Alternative 2
Error1.9
Cost66372
\[\begin{array}{l} t_1 := \sqrt{1 + y} - \sqrt{y}\\ t_2 := \sqrt{1 + x}\\ \mathbf{if}\;t_1 + \left(t_2 - \sqrt{x}\right) \leq 1:\\ \;\;\;\;\frac{1 + \left(x - x\right)}{t_2 + \sqrt{x}}\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{1 + t} - \sqrt{t}\right) + \left(\frac{1 + \left(z - z\right)}{\sqrt{1 + z} + \sqrt{z}} + \left(1 + t_1\right)\right)\\ \end{array} \]
Alternative 3
Error1.8
Cost53440
\[\left(\left(\frac{1 + \left(x - x\right)}{\sqrt{1 + x} + \sqrt{x}} + \left(\sqrt{1 + y} - \sqrt{y}\right)\right) + \frac{1 + \left(z - z\right)}{\sqrt{1 + z} + \sqrt{z}}\right) + \left(\sqrt{1 + t} - \sqrt{t}\right) \]
Alternative 4
Error2.6
Cost53056
\[\left(\sqrt{1 + t} - \sqrt{t}\right) + \left(\left(\frac{1 + \left(x - x\right)}{\sqrt{1 + x} + \sqrt{x}} + \left(\sqrt{1 + y} - \sqrt{y}\right)\right) + \left(\sqrt{1 + z} - \sqrt{z}\right)\right) \]
Alternative 5
Error18.4
Cost26568
\[\begin{array}{l} t_1 := \sqrt{1 + y}\\ t_2 := \sqrt{1 + x}\\ t_3 := \frac{1 + \left(x - x\right)}{t_2 + \sqrt{x}}\\ t_4 := t_1 + \left(1 - \sqrt{y}\right)\\ \mathbf{if}\;z \leq 214019011927519.53:\\ \;\;\;\;\left(1 + \left(\sqrt{1 + z} + t_1\right)\right) + \sqrt{\frac{1}{z}} \cdot \left(y - z\right)\\ \mathbf{elif}\;z \leq 2.0883971149237715 \cdot 10^{+115}:\\ \;\;\;\;\left(t_2 + t_1\right) - \left(\sqrt{x} + \sqrt{y}\right)\\ \mathbf{elif}\;z \leq 1.9428035696493632 \cdot 10^{+148}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 3.0778288872035997 \cdot 10^{+178}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;z \leq 1.6322533282610046 \cdot 10^{+221}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 1.3437745057736336 \cdot 10^{+230}:\\ \;\;\;\;t_4\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \]
Alternative 6
Error18.4
Cost26568
\[\begin{array}{l} t_1 := \sqrt{1 + y}\\ t_2 := \sqrt{1 + x}\\ t_3 := \frac{1 + \left(x - x\right)}{t_2 + \sqrt{x}}\\ t_4 := t_1 + \left(1 - \sqrt{y}\right)\\ \mathbf{if}\;z \leq 214019011927519.53:\\ \;\;\;\;\left(1 + \left(\sqrt{1 + z} + t_1\right)\right) + \sqrt{\frac{1}{z}} \cdot \left(y - z\right)\\ \mathbf{elif}\;z \leq 2.0883971149237715 \cdot 10^{+115}:\\ \;\;\;\;t_1 + \left(t_2 - \left(\sqrt{x} + \sqrt{y}\right)\right)\\ \mathbf{elif}\;z \leq 1.9428035696493632 \cdot 10^{+148}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 3.0778288872035997 \cdot 10^{+178}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;z \leq 1.6322533282610046 \cdot 10^{+221}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 1.3437745057736336 \cdot 10^{+230}:\\ \;\;\;\;t_4\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \]
Alternative 7
Error18.0
Cost26568
\[\begin{array}{l} t_1 := \sqrt{1 + x}\\ t_2 := \frac{1 + \left(x - x\right)}{t_1 + \sqrt{x}}\\ t_3 := \sqrt{1 + y}\\ t_4 := t_3 + \left(1 - \sqrt{y}\right)\\ \mathbf{if}\;z \leq 1531423668047871.5:\\ \;\;\;\;\sqrt{1 + z} + \left(1 + \left(t_3 - \left(\sqrt{y} + \sqrt{z}\right)\right)\right)\\ \mathbf{elif}\;z \leq 2.0883971149237715 \cdot 10^{+115}:\\ \;\;\;\;t_3 + \left(t_1 - \left(\sqrt{x} + \sqrt{y}\right)\right)\\ \mathbf{elif}\;z \leq 1.9428035696493632 \cdot 10^{+148}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 3.0778288872035997 \cdot 10^{+178}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;z \leq 1.6322533282610046 \cdot 10^{+221}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 1.3437745057736336 \cdot 10^{+230}:\\ \;\;\;\;t_4\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 8
Error3.5
Cost26568
\[\begin{array}{l} t_1 := \sqrt{1 + x}\\ \mathbf{if}\;y \leq 2.3533745319822106 \cdot 10^{-41}:\\ \;\;\;\;\left(\sqrt{1 + t} - \sqrt{t}\right) + \left(\left(\sqrt{1 + z} - \sqrt{z}\right) + 2\right)\\ \mathbf{elif}\;y \leq 809312055825465.9:\\ \;\;\;\;\sqrt{1 + y} + \left(t_1 - \left(\sqrt{x} + \sqrt{y}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1 + \left(x - x\right)}{t_1 + \sqrt{x}}\\ \end{array} \]
Alternative 9
Error18.5
Cost20420
\[\begin{array}{l} t_1 := \sqrt{1 + y}\\ t_2 := t_1 + \left(1 - \sqrt{y}\right)\\ t_3 := \frac{1 + \left(x - x\right)}{\sqrt{1 + x} + \sqrt{x}}\\ \mathbf{if}\;z \leq 214019011927519.53:\\ \;\;\;\;\left(1 + \left(\sqrt{1 + z} + t_1\right)\right) + \sqrt{\frac{1}{z}} \cdot \left(y - z\right)\\ \mathbf{elif}\;z \leq 2.0883971149237715 \cdot 10^{+115}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 1.9428035696493632 \cdot 10^{+148}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 3.0778288872035997 \cdot 10^{+178}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 1.6322533282610046 \cdot 10^{+221}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 1.3437745057736336 \cdot 10^{+230}:\\ \;\;\;\;t_2\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \]
Alternative 10
Error22.7
Cost14040
\[\begin{array}{l} t_1 := \sqrt{1 + x} - \sqrt{x}\\ t_2 := \sqrt{1 + y}\\ t_3 := t_2 + \left(1 - \sqrt{y}\right)\\ \mathbf{if}\;z \leq 0.0006145829860272557:\\ \;\;\;\;\left(2 + t_2\right) - \sqrt{y}\\ \mathbf{elif}\;z \leq 1.3356981662458317 \cdot 10^{+119}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 1.9428035696493632 \cdot 10^{+148}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 3.0778288872035997 \cdot 10^{+178}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 1.6322533282610046 \cdot 10^{+221}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 1.3437745057736336 \cdot 10^{+230}:\\ \;\;\;\;t_3\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 11
Error18.8
Cost14032
\[\begin{array}{l} t_1 := \sqrt{1 + y}\\ t_2 := t_1 + \left(1 - \sqrt{y}\right)\\ t_3 := \left(2 + t_1\right) - \sqrt{y}\\ \mathbf{if}\;y \leq 1.284914490601064 \cdot 10^{-225}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq 3.763805323122403 \cdot 10^{-134}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq 3.5552664262916656 \cdot 10^{-118}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq 809312055825465.9:\\ \;\;\;\;t_2\\ \mathbf{else}:\\ \;\;\;\;\frac{1 + \left(x - x\right)}{\sqrt{1 + x} + \sqrt{x}}\\ \end{array} \]
Alternative 12
Error22.2
Cost13380
\[\begin{array}{l} \mathbf{if}\;y \leq 4.181105034633162 \cdot 10^{+21}:\\ \;\;\;\;\sqrt{1 + y} + \left(1 - \sqrt{y}\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt{1 + x} - \sqrt{x}\\ \end{array} \]
Alternative 13
Error41.1
Cost13120
\[\sqrt{1 + x} - \sqrt{x} \]
Alternative 14
Error56.8
Cost6720
\[1 + \sqrt{1 + z} \]
Alternative 15
Error57.2
Cost6592
\[\sqrt{1 + z} \]

Error

Reproduce

herbie shell --seed 2022317 
(FPCore (x y z t)
  :name "Main:z from "
  :precision binary64

  :herbie-target
  (+ (+ (+ (/ 1.0 (+ (sqrt (+ x 1.0)) (sqrt x))) (/ 1.0 (+ (sqrt (+ y 1.0)) (sqrt y)))) (/ 1.0 (+ (sqrt (+ z 1.0)) (sqrt z)))) (- (sqrt (+ t 1.0)) (sqrt t)))

  (+ (+ (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y))) (- (sqrt (+ z 1.0)) (sqrt z))) (- (sqrt (+ t 1.0)) (sqrt t))))