Main:z from

Percentage Accurate: 91.6% → 98.9%
Time: 20.0s
Alternatives: 19
Speedup: 1.1×

Specification

?
\[\begin{array}{l} \\ \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) \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))))
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));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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
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));
}
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))
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 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
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]
\begin{array}{l}

\\
\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)
\end{array}

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 19 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 91.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \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) \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))))
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));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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
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));
}
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))
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 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
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]
\begin{array}{l}

\\
\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)
\end{array}

Alternative 1: 98.9% accurate, 0.1× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{z - -1}\\ t_2 := \sqrt{z} + t\_1\\ t_3 := e^{\sinh^{-1} \left(-\sqrt{y}\right)}\\ t_4 := \sinh^{-1} \left(-\sqrt{x}\right)\\ t_5 := e^{t\_4}\\ t_6 := \sqrt{y - -1} - \sqrt{y}\\ t_7 := \mathsf{fma}\left(t\_6, t\_6 - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{t\_4 \cdot 2}\right)\\ \mathbf{if}\;z \leq 1.18 \cdot 10^{+30}:\\ \;\;\;\;\frac{\mathsf{fma}\left(1 + \left(z - z\right), t\_7, t\_2 \cdot \left({t\_3}^{3} + {t\_5}^{3}\right)\right)}{t\_2 \cdot t\_7} + \left(\sqrt{t + 1} - \sqrt{t}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(t\_3 - \left(\sqrt{z} - t\_1\right)\right) + t\_5\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (- z -1.0)))
        (t_2 (+ (sqrt z) t_1))
        (t_3 (exp (asinh (- (sqrt y)))))
        (t_4 (asinh (- (sqrt x))))
        (t_5 (exp t_4))
        (t_6 (- (sqrt (- y -1.0)) (sqrt y)))
        (t_7
         (fma t_6 (- t_6 (- (sqrt (- x -1.0)) (sqrt x))) (exp (* t_4 2.0)))))
   (if (<= z 1.18e+30)
     (+
      (/
       (fma (+ 1.0 (- z z)) t_7 (* t_2 (+ (pow t_3 3.0) (pow t_5 3.0))))
       (* t_2 t_7))
      (- (sqrt (+ t 1.0)) (sqrt t)))
     (- (+ (- t_3 (- (sqrt z) t_1)) t_5) (- (sqrt t) (sqrt (- t -1.0)))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((z - -1.0));
	double t_2 = sqrt(z) + t_1;
	double t_3 = exp(asinh(-sqrt(y)));
	double t_4 = asinh(-sqrt(x));
	double t_5 = exp(t_4);
	double t_6 = sqrt((y - -1.0)) - sqrt(y);
	double t_7 = fma(t_6, (t_6 - (sqrt((x - -1.0)) - sqrt(x))), exp((t_4 * 2.0)));
	double tmp;
	if (z <= 1.18e+30) {
		tmp = (fma((1.0 + (z - z)), t_7, (t_2 * (pow(t_3, 3.0) + pow(t_5, 3.0)))) / (t_2 * t_7)) + (sqrt((t + 1.0)) - sqrt(t));
	} else {
		tmp = ((t_3 - (sqrt(z) - t_1)) + t_5) - (sqrt(t) - sqrt((t - -1.0)));
	}
	return tmp;
}
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = sqrt(Float64(z - -1.0))
	t_2 = Float64(sqrt(z) + t_1)
	t_3 = exp(asinh(Float64(-sqrt(y))))
	t_4 = asinh(Float64(-sqrt(x)))
	t_5 = exp(t_4)
	t_6 = Float64(sqrt(Float64(y - -1.0)) - sqrt(y))
	t_7 = fma(t_6, Float64(t_6 - Float64(sqrt(Float64(x - -1.0)) - sqrt(x))), exp(Float64(t_4 * 2.0)))
	tmp = 0.0
	if (z <= 1.18e+30)
		tmp = Float64(Float64(fma(Float64(1.0 + Float64(z - z)), t_7, Float64(t_2 * Float64((t_3 ^ 3.0) + (t_5 ^ 3.0)))) / Float64(t_2 * t_7)) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)));
	else
		tmp = Float64(Float64(Float64(t_3 - Float64(sqrt(z) - t_1)) + t_5) - Float64(sqrt(t) - sqrt(Float64(t - -1.0))));
	end
	return tmp
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(N[Sqrt[z], $MachinePrecision] + t$95$1), $MachinePrecision]}, Block[{t$95$3 = N[Exp[N[ArcSinh[(-N[Sqrt[y], $MachinePrecision])], $MachinePrecision]], $MachinePrecision]}, Block[{t$95$4 = N[ArcSinh[(-N[Sqrt[x], $MachinePrecision])], $MachinePrecision]}, Block[{t$95$5 = N[Exp[t$95$4], $MachinePrecision]}, Block[{t$95$6 = N[(N[Sqrt[N[(y - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$7 = N[(t$95$6 * N[(t$95$6 - N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[Exp[N[(t$95$4 * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, 1.18e+30], N[(N[(N[(N[(1.0 + N[(z - z), $MachinePrecision]), $MachinePrecision] * t$95$7 + N[(t$95$2 * N[(N[Power[t$95$3, 3.0], $MachinePrecision] + N[Power[t$95$5, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$2 * t$95$7), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(t$95$3 - N[(N[Sqrt[z], $MachinePrecision] - t$95$1), $MachinePrecision]), $MachinePrecision] + t$95$5), $MachinePrecision] - N[(N[Sqrt[t], $MachinePrecision] - N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{z - -1}\\
t_2 := \sqrt{z} + t\_1\\
t_3 := e^{\sinh^{-1} \left(-\sqrt{y}\right)}\\
t_4 := \sinh^{-1} \left(-\sqrt{x}\right)\\
t_5 := e^{t\_4}\\
t_6 := \sqrt{y - -1} - \sqrt{y}\\
t_7 := \mathsf{fma}\left(t\_6, t\_6 - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{t\_4 \cdot 2}\right)\\
\mathbf{if}\;z \leq 1.18 \cdot 10^{+30}:\\
\;\;\;\;\frac{\mathsf{fma}\left(1 + \left(z - z\right), t\_7, t\_2 \cdot \left({t\_3}^{3} + {t\_5}^{3}\right)\right)}{t\_2 \cdot t\_7} + \left(\sqrt{t + 1} - \sqrt{t}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(t\_3 - \left(\sqrt{z} - t\_1\right)\right) + t\_5\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if z < 1.18e30

    1. Initial program 95.3%

      \[\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 rewrites96.9%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)}} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\left(z - -1\right) - z}, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lift--.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\left(z - -1\right)} - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. sub-negate1N/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\left(z + \left(\mathsf{neg}\left(-1\right)\right)\right)} - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. metadata-evalN/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z + \color{blue}{1}\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. +-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\left(1 + z\right)} - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate--l+N/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{1 + \left(z - z\right)}, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower-+.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{1 + \left(z - z\right)}, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      8. lower--.f6498.4

        \[\leadsto \frac{\mathsf{fma}\left(1 + \color{blue}{\left(z - z\right)}, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Applied rewrites98.4%

      \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{1 + \left(z - z\right)}, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]

    if 1.18e30 < z

    1. Initial program 89.3%

      \[\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 rewrites96.0%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)}} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites99.3%

      \[\leadsto \color{blue}{\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - \left(\sqrt{z} - \sqrt{z - -1}\right)\right) + e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)} \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 2: 97.9% accurate, 0.0× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := e^{\sinh^{-1} \left(-\sqrt{y}\right)}\\ t_2 := \sqrt{1 + x}\\ t_3 := \sqrt{z - -1} + \sqrt{z}\\ t_4 := \sinh^{-1} \left(-\sqrt{x}\right)\\ t_5 := {\left(e^{2}\right)}^{t\_4}\\ t_6 := \sqrt{1 + y}\\ t_7 := e^{t\_4}\\ t_8 := \left(t\_1 - t\_7\right) \cdot t\_1\\ t_9 := {\left({\left(e^{2}\right)}^{\left(\frac{t\_4}{2}\right)}\right)}^{3}\\ \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({t\_7}^{3} + {t\_1}^{3}, t\_3, \mathsf{fma}\left(t\_6 - \sqrt{y}, \left(\sqrt{x} + t\_6\right) - \left(\sqrt{y} + t\_2\right), {\left(t\_2 - \sqrt{x}\right)}^{2}\right)\right)}{t\_3}}{\mathsf{fma}\left(t\_9, t\_9, {t\_8}^{3}\right)}, \mathsf{fma}\left(t\_5, t\_5 - t\_8, {t\_8}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (exp (asinh (- (sqrt y)))))
        (t_2 (sqrt (+ 1.0 x)))
        (t_3 (+ (sqrt (- z -1.0)) (sqrt z)))
        (t_4 (asinh (- (sqrt x))))
        (t_5 (pow (exp 2.0) t_4))
        (t_6 (sqrt (+ 1.0 y)))
        (t_7 (exp t_4))
        (t_8 (* (- t_1 t_7) t_1))
        (t_9 (pow (pow (exp 2.0) (/ t_4 2.0)) 3.0)))
   (fma
    (/
     (/
      (fma
       (+ (pow t_7 3.0) (pow t_1 3.0))
       t_3
       (fma
        (- t_6 (sqrt y))
        (- (+ (sqrt x) t_6) (+ (sqrt y) t_2))
        (pow (- t_2 (sqrt x)) 2.0)))
      t_3)
     (fma t_9 t_9 (pow t_8 3.0)))
    (fma t_5 (- t_5 t_8) (pow t_8 2.0))
    (- (sqrt (- t -1.0)) (sqrt t)))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = exp(asinh(-sqrt(y)));
	double t_2 = sqrt((1.0 + x));
	double t_3 = sqrt((z - -1.0)) + sqrt(z);
	double t_4 = asinh(-sqrt(x));
	double t_5 = pow(exp(2.0), t_4);
	double t_6 = sqrt((1.0 + y));
	double t_7 = exp(t_4);
	double t_8 = (t_1 - t_7) * t_1;
	double t_9 = pow(pow(exp(2.0), (t_4 / 2.0)), 3.0);
	return fma(((fma((pow(t_7, 3.0) + pow(t_1, 3.0)), t_3, fma((t_6 - sqrt(y)), ((sqrt(x) + t_6) - (sqrt(y) + t_2)), pow((t_2 - sqrt(x)), 2.0))) / t_3) / fma(t_9, t_9, pow(t_8, 3.0))), fma(t_5, (t_5 - t_8), pow(t_8, 2.0)), (sqrt((t - -1.0)) - sqrt(t)));
}
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = exp(asinh(Float64(-sqrt(y))))
	t_2 = sqrt(Float64(1.0 + x))
	t_3 = Float64(sqrt(Float64(z - -1.0)) + sqrt(z))
	t_4 = asinh(Float64(-sqrt(x)))
	t_5 = exp(2.0) ^ t_4
	t_6 = sqrt(Float64(1.0 + y))
	t_7 = exp(t_4)
	t_8 = Float64(Float64(t_1 - t_7) * t_1)
	t_9 = (exp(2.0) ^ Float64(t_4 / 2.0)) ^ 3.0
	return fma(Float64(Float64(fma(Float64((t_7 ^ 3.0) + (t_1 ^ 3.0)), t_3, fma(Float64(t_6 - sqrt(y)), Float64(Float64(sqrt(x) + t_6) - Float64(sqrt(y) + t_2)), (Float64(t_2 - sqrt(x)) ^ 2.0))) / t_3) / fma(t_9, t_9, (t_8 ^ 3.0))), fma(t_5, Float64(t_5 - t_8), (t_8 ^ 2.0)), Float64(sqrt(Float64(t - -1.0)) - sqrt(t)))
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Exp[N[ArcSinh[(-N[Sqrt[y], $MachinePrecision])], $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$3 = N[(N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[ArcSinh[(-N[Sqrt[x], $MachinePrecision])], $MachinePrecision]}, Block[{t$95$5 = N[Power[N[Exp[2.0], $MachinePrecision], t$95$4], $MachinePrecision]}, Block[{t$95$6 = N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$7 = N[Exp[t$95$4], $MachinePrecision]}, Block[{t$95$8 = N[(N[(t$95$1 - t$95$7), $MachinePrecision] * t$95$1), $MachinePrecision]}, Block[{t$95$9 = N[Power[N[Power[N[Exp[2.0], $MachinePrecision], N[(t$95$4 / 2.0), $MachinePrecision]], $MachinePrecision], 3.0], $MachinePrecision]}, N[(N[(N[(N[(N[(N[Power[t$95$7, 3.0], $MachinePrecision] + N[Power[t$95$1, 3.0], $MachinePrecision]), $MachinePrecision] * t$95$3 + N[(N[(t$95$6 - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Sqrt[x], $MachinePrecision] + t$95$6), $MachinePrecision] - N[(N[Sqrt[y], $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision] + N[Power[N[(t$95$2 - N[Sqrt[x], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision] / N[(t$95$9 * t$95$9 + N[Power[t$95$8, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$5 * N[(t$95$5 - t$95$8), $MachinePrecision] + N[Power[t$95$8, 2.0], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := e^{\sinh^{-1} \left(-\sqrt{y}\right)}\\
t_2 := \sqrt{1 + x}\\
t_3 := \sqrt{z - -1} + \sqrt{z}\\
t_4 := \sinh^{-1} \left(-\sqrt{x}\right)\\
t_5 := {\left(e^{2}\right)}^{t\_4}\\
t_6 := \sqrt{1 + y}\\
t_7 := e^{t\_4}\\
t_8 := \left(t\_1 - t\_7\right) \cdot t\_1\\
t_9 := {\left({\left(e^{2}\right)}^{\left(\frac{t\_4}{2}\right)}\right)}^{3}\\
\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({t\_7}^{3} + {t\_1}^{3}, t\_3, \mathsf{fma}\left(t\_6 - \sqrt{y}, \left(\sqrt{x} + t\_6\right) - \left(\sqrt{y} + t\_2\right), {\left(t\_2 - \sqrt{x}\right)}^{2}\right)\right)}{t\_3}}{\mathsf{fma}\left(t\_9, t\_9, {t\_8}^{3}\right)}, \mathsf{fma}\left(t\_5, t\_5 - t\_8, {t\_8}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right)
\end{array}
\end{array}
Derivation
  1. Initial program 91.6%

    \[\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 rewrites96.3%

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)}} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Applied rewrites97.2%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right)} \]
  4. Step-by-step derivation
    1. lift-+.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{\color{blue}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
  5. Applied rewrites97.3%

    \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{\color{blue}{\mathsf{fma}\left({\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}\right)}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
  6. Taylor expanded in x around 0

    \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \color{blue}{\left(\sqrt{1 + y} - \sqrt{y}\right) \cdot \left(\left(\sqrt{x} + \sqrt{1 + y}\right) - \left(\sqrt{y} + \sqrt{1 + x}\right)\right) + {\left(\sqrt{1 + x} - \sqrt{x}\right)}^{2}}\right)}{\sqrt{z - -1} + \sqrt{z}}}{\mathsf{fma}\left({\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}\right)}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
  7. Step-by-step derivation
    1. lower-fma.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(\sqrt{1 + y} - \sqrt{y}, \color{blue}{\left(\sqrt{x} + \sqrt{1 + y}\right) - \left(\sqrt{y} + \sqrt{1 + x}\right)}, {\left(\sqrt{1 + x} - \sqrt{x}\right)}^{2}\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{\mathsf{fma}\left({\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}\right)}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
  8. Applied rewrites97.9%

    \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \color{blue}{\mathsf{fma}\left(\sqrt{1 + y} - \sqrt{y}, \left(\sqrt{x} + \sqrt{1 + y}\right) - \left(\sqrt{y} + \sqrt{1 + x}\right), {\left(\sqrt{1 + x} - \sqrt{x}\right)}^{2}\right)}\right)}{\sqrt{z - -1} + \sqrt{z}}}{\mathsf{fma}\left({\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left({\left(e^{2}\right)}^{\left(\frac{\sinh^{-1} \left(-\sqrt{x}\right)}{2}\right)}\right)}^{3}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}\right)}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
  9. Add Preprocessing

Alternative 3: 97.2% accurate, 0.0× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := e^{\sinh^{-1} \left(-\sqrt{y}\right)}\\ t_2 := \sqrt{z - -1} + \sqrt{z}\\ t_3 := -\sqrt{x}\\ t_4 := \sinh^{-1} t\_3\\ t_5 := e^{t\_4}\\ t_6 := {\left(e^{2}\right)}^{t\_4}\\ t_7 := t\_1 - t\_5\\ t_8 := t\_7 \cdot t\_1\\ \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({t\_5}^{3} + {t\_1}^{3}, t\_2, \mathsf{fma}\left(t\_7, t\_1, \left(\left(x - -1\right) + 2 \cdot \left(\sqrt{x - -1} \cdot t\_3\right)\right) + x\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{t\_2}}{{t\_5}^{6} + {t\_8}^{3}}, \mathsf{fma}\left(t\_6, t\_6 - t\_8, {t\_8}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (exp (asinh (- (sqrt y)))))
        (t_2 (+ (sqrt (- z -1.0)) (sqrt z)))
        (t_3 (- (sqrt x)))
        (t_4 (asinh t_3))
        (t_5 (exp t_4))
        (t_6 (pow (exp 2.0) t_4))
        (t_7 (- t_1 t_5))
        (t_8 (* t_7 t_1)))
   (fma
    (/
     (/
      (fma
       (+ (pow t_5 3.0) (pow t_1 3.0))
       t_2
       (*
        (fma t_7 t_1 (+ (+ (- x -1.0) (* 2.0 (* (sqrt (- x -1.0)) t_3))) x))
        (- (- z -1.0) z)))
      t_2)
     (+ (pow t_5 6.0) (pow t_8 3.0)))
    (fma t_6 (- t_6 t_8) (pow t_8 2.0))
    (- (sqrt (- t -1.0)) (sqrt t)))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = exp(asinh(-sqrt(y)));
	double t_2 = sqrt((z - -1.0)) + sqrt(z);
	double t_3 = -sqrt(x);
	double t_4 = asinh(t_3);
	double t_5 = exp(t_4);
	double t_6 = pow(exp(2.0), t_4);
	double t_7 = t_1 - t_5;
	double t_8 = t_7 * t_1;
	return fma(((fma((pow(t_5, 3.0) + pow(t_1, 3.0)), t_2, (fma(t_7, t_1, (((x - -1.0) + (2.0 * (sqrt((x - -1.0)) * t_3))) + x)) * ((z - -1.0) - z))) / t_2) / (pow(t_5, 6.0) + pow(t_8, 3.0))), fma(t_6, (t_6 - t_8), pow(t_8, 2.0)), (sqrt((t - -1.0)) - sqrt(t)));
}
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = exp(asinh(Float64(-sqrt(y))))
	t_2 = Float64(sqrt(Float64(z - -1.0)) + sqrt(z))
	t_3 = Float64(-sqrt(x))
	t_4 = asinh(t_3)
	t_5 = exp(t_4)
	t_6 = exp(2.0) ^ t_4
	t_7 = Float64(t_1 - t_5)
	t_8 = Float64(t_7 * t_1)
	return fma(Float64(Float64(fma(Float64((t_5 ^ 3.0) + (t_1 ^ 3.0)), t_2, Float64(fma(t_7, t_1, Float64(Float64(Float64(x - -1.0) + Float64(2.0 * Float64(sqrt(Float64(x - -1.0)) * t_3))) + x)) * Float64(Float64(z - -1.0) - z))) / t_2) / Float64((t_5 ^ 6.0) + (t_8 ^ 3.0))), fma(t_6, Float64(t_6 - t_8), (t_8 ^ 2.0)), Float64(sqrt(Float64(t - -1.0)) - sqrt(t)))
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Exp[N[ArcSinh[(-N[Sqrt[y], $MachinePrecision])], $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = (-N[Sqrt[x], $MachinePrecision])}, Block[{t$95$4 = N[ArcSinh[t$95$3], $MachinePrecision]}, Block[{t$95$5 = N[Exp[t$95$4], $MachinePrecision]}, Block[{t$95$6 = N[Power[N[Exp[2.0], $MachinePrecision], t$95$4], $MachinePrecision]}, Block[{t$95$7 = N[(t$95$1 - t$95$5), $MachinePrecision]}, Block[{t$95$8 = N[(t$95$7 * t$95$1), $MachinePrecision]}, N[(N[(N[(N[(N[(N[Power[t$95$5, 3.0], $MachinePrecision] + N[Power[t$95$1, 3.0], $MachinePrecision]), $MachinePrecision] * t$95$2 + N[(N[(t$95$7 * t$95$1 + N[(N[(N[(x - -1.0), $MachinePrecision] + N[(2.0 * N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision] * N[(N[(z - -1.0), $MachinePrecision] - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$2), $MachinePrecision] / N[(N[Power[t$95$5, 6.0], $MachinePrecision] + N[Power[t$95$8, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$6 * N[(t$95$6 - t$95$8), $MachinePrecision] + N[Power[t$95$8, 2.0], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := e^{\sinh^{-1} \left(-\sqrt{y}\right)}\\
t_2 := \sqrt{z - -1} + \sqrt{z}\\
t_3 := -\sqrt{x}\\
t_4 := \sinh^{-1} t\_3\\
t_5 := e^{t\_4}\\
t_6 := {\left(e^{2}\right)}^{t\_4}\\
t_7 := t\_1 - t\_5\\
t_8 := t\_7 \cdot t\_1\\
\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({t\_5}^{3} + {t\_1}^{3}, t\_2, \mathsf{fma}\left(t\_7, t\_1, \left(\left(x - -1\right) + 2 \cdot \left(\sqrt{x - -1} \cdot t\_3\right)\right) + x\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{t\_2}}{{t\_5}^{6} + {t\_8}^{3}}, \mathsf{fma}\left(t\_6, t\_6 - t\_8, {t\_8}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right)
\end{array}
\end{array}
Derivation
  1. Initial program 91.6%

    \[\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 rewrites96.3%

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)}} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Applied rewrites97.2%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right)} \]
  4. Step-by-step derivation
    1. lift-pow.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, \color{blue}{{\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
    2. lift-exp.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\color{blue}{\left(e^{2}\right)}}^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
    3. pow-expN/A

      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, \color{blue}{e^{2 \cdot \sinh^{-1} \left(-\sqrt{x}\right)}}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
    4. *-commutativeN/A

      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, e^{\color{blue}{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
    5. exp-prodN/A

      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, \color{blue}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{2}}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
  5. Applied rewrites97.2%

    \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left({\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}, \sqrt{z - -1} + \sqrt{z}, \mathsf{fma}\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}, e^{\sinh^{-1} \left(-\sqrt{y}\right)}, \color{blue}{\left(\left(x - -1\right) + 2 \cdot \left(\sqrt{x - -1} \cdot \left(-\sqrt{x}\right)\right)\right) + x}\right) \cdot \left(\left(z - -1\right) - z\right)\right)}{\sqrt{z - -1} + \sqrt{z}}}{{\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{6} + {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3}}, \mathsf{fma}\left({\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)}, {\left(e^{2}\right)}^{\sinh^{-1} \left(-\sqrt{x}\right)} - \left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}, {\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) \cdot e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{2}\right), \sqrt{t - -1} - \sqrt{t}\right) \]
  6. Add Preprocessing

Alternative 4: 98.9% accurate, 0.1× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sinh^{-1} \left(-\sqrt{x}\right)\\ t_2 := \sqrt{z - -1}\\ t_3 := \sqrt{y - -1} - \sqrt{y}\\ t_4 := \sqrt{1 + y}\\ t_5 := t\_4 - \sqrt{y}\\ \mathbf{if}\;z \leq 4.5 \cdot 10^{+29}:\\ \;\;\;\;\frac{1 + \mathsf{fma}\left(-2, \sqrt{x}, \mathsf{fma}\left(\sqrt{z} + \sqrt{1 + z}, {\left(\sqrt{1 + x} - \sqrt{x}\right)}^{3} + {t\_5}^{3}, t\_5 \cdot \left(\left(\sqrt{x} + t\_4\right) - \left(1 + \sqrt{y}\right)\right)\right)\right)}{\left(\sqrt{z} + t\_2\right) \cdot \mathsf{fma}\left(t\_3, t\_3 - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{t\_1 \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - \left(\sqrt{z} - t\_2\right)\right) + e^{t\_1}\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (asinh (- (sqrt x))))
        (t_2 (sqrt (- z -1.0)))
        (t_3 (- (sqrt (- y -1.0)) (sqrt y)))
        (t_4 (sqrt (+ 1.0 y)))
        (t_5 (- t_4 (sqrt y))))
   (if (<= z 4.5e+29)
     (+
      (/
       (+
        1.0
        (fma
         -2.0
         (sqrt x)
         (fma
          (+ (sqrt z) (sqrt (+ 1.0 z)))
          (+ (pow (- (sqrt (+ 1.0 x)) (sqrt x)) 3.0) (pow t_5 3.0))
          (* t_5 (- (+ (sqrt x) t_4) (+ 1.0 (sqrt y)))))))
       (*
        (+ (sqrt z) t_2)
        (fma t_3 (- t_3 (- (sqrt (- x -1.0)) (sqrt x))) (exp (* t_1 2.0)))))
      (- (sqrt (+ t 1.0)) (sqrt t)))
     (-
      (+ (- (exp (asinh (- (sqrt y)))) (- (sqrt z) t_2)) (exp t_1))
      (- (sqrt t) (sqrt (- t -1.0)))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = asinh(-sqrt(x));
	double t_2 = sqrt((z - -1.0));
	double t_3 = sqrt((y - -1.0)) - sqrt(y);
	double t_4 = sqrt((1.0 + y));
	double t_5 = t_4 - sqrt(y);
	double tmp;
	if (z <= 4.5e+29) {
		tmp = ((1.0 + fma(-2.0, sqrt(x), fma((sqrt(z) + sqrt((1.0 + z))), (pow((sqrt((1.0 + x)) - sqrt(x)), 3.0) + pow(t_5, 3.0)), (t_5 * ((sqrt(x) + t_4) - (1.0 + sqrt(y))))))) / ((sqrt(z) + t_2) * fma(t_3, (t_3 - (sqrt((x - -1.0)) - sqrt(x))), exp((t_1 * 2.0))))) + (sqrt((t + 1.0)) - sqrt(t));
	} else {
		tmp = ((exp(asinh(-sqrt(y))) - (sqrt(z) - t_2)) + exp(t_1)) - (sqrt(t) - sqrt((t - -1.0)));
	}
	return tmp;
}
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = asinh(Float64(-sqrt(x)))
	t_2 = sqrt(Float64(z - -1.0))
	t_3 = Float64(sqrt(Float64(y - -1.0)) - sqrt(y))
	t_4 = sqrt(Float64(1.0 + y))
	t_5 = Float64(t_4 - sqrt(y))
	tmp = 0.0
	if (z <= 4.5e+29)
		tmp = Float64(Float64(Float64(1.0 + fma(-2.0, sqrt(x), fma(Float64(sqrt(z) + sqrt(Float64(1.0 + z))), Float64((Float64(sqrt(Float64(1.0 + x)) - sqrt(x)) ^ 3.0) + (t_5 ^ 3.0)), Float64(t_5 * Float64(Float64(sqrt(x) + t_4) - Float64(1.0 + sqrt(y))))))) / Float64(Float64(sqrt(z) + t_2) * fma(t_3, Float64(t_3 - Float64(sqrt(Float64(x - -1.0)) - sqrt(x))), exp(Float64(t_1 * 2.0))))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)));
	else
		tmp = Float64(Float64(Float64(exp(asinh(Float64(-sqrt(y)))) - Float64(sqrt(z) - t_2)) + exp(t_1)) - Float64(sqrt(t) - sqrt(Float64(t - -1.0))));
	end
	return tmp
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[ArcSinh[(-N[Sqrt[x], $MachinePrecision])], $MachinePrecision]}, Block[{t$95$2 = N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$3 = N[(N[Sqrt[N[(y - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$5 = N[(t$95$4 - N[Sqrt[y], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, 4.5e+29], N[(N[(N[(1.0 + N[(-2.0 * N[Sqrt[x], $MachinePrecision] + N[(N[(N[Sqrt[z], $MachinePrecision] + N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] + N[Power[t$95$5, 3.0], $MachinePrecision]), $MachinePrecision] + N[(t$95$5 * N[(N[(N[Sqrt[x], $MachinePrecision] + t$95$4), $MachinePrecision] - N[(1.0 + N[Sqrt[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Sqrt[z], $MachinePrecision] + t$95$2), $MachinePrecision] * N[(t$95$3 * N[(t$95$3 - N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[Exp[N[(t$95$1 * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[Exp[N[ArcSinh[(-N[Sqrt[y], $MachinePrecision])], $MachinePrecision]], $MachinePrecision] - N[(N[Sqrt[z], $MachinePrecision] - t$95$2), $MachinePrecision]), $MachinePrecision] + N[Exp[t$95$1], $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[t], $MachinePrecision] - N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sinh^{-1} \left(-\sqrt{x}\right)\\
t_2 := \sqrt{z - -1}\\
t_3 := \sqrt{y - -1} - \sqrt{y}\\
t_4 := \sqrt{1 + y}\\
t_5 := t\_4 - \sqrt{y}\\
\mathbf{if}\;z \leq 4.5 \cdot 10^{+29}:\\
\;\;\;\;\frac{1 + \mathsf{fma}\left(-2, \sqrt{x}, \mathsf{fma}\left(\sqrt{z} + \sqrt{1 + z}, {\left(\sqrt{1 + x} - \sqrt{x}\right)}^{3} + {t\_5}^{3}, t\_5 \cdot \left(\left(\sqrt{x} + t\_4\right) - \left(1 + \sqrt{y}\right)\right)\right)\right)}{\left(\sqrt{z} + t\_2\right) \cdot \mathsf{fma}\left(t\_3, t\_3 - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{t\_1 \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - \left(\sqrt{z} - t\_2\right)\right) + e^{t\_1}\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if z < 4.5000000000000002e29

    1. Initial program 95.3%

      \[\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 rewrites96.9%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)}} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Step-by-step derivation
      1. lift-exp.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \color{blue}{e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. sinh-+-cosh-revN/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \color{blue}{\cosh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right) + \sinh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right)}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. +-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \color{blue}{\sinh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right) + \cosh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right)}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \sinh \color{blue}{\left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right)} + \cosh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right)\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. *-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \sinh \color{blue}{\left(2 \cdot \sinh^{-1} \left(-\sqrt{x}\right)\right)} + \cosh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right)\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. sinh-2N/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \color{blue}{2 \cdot \left(\sinh \sinh^{-1} \left(-\sqrt{x}\right) \cdot \cosh \sinh^{-1} \left(-\sqrt{x}\right)\right)} + \cosh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right)\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower-fma.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \color{blue}{\mathsf{fma}\left(2, \sinh \sinh^{-1} \left(-\sqrt{x}\right) \cdot \cosh \sinh^{-1} \left(-\sqrt{x}\right), \cosh \left(\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2\right)\right)}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Applied rewrites96.9%

      \[\leadsto \frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), \color{blue}{\mathsf{fma}\left(2, \left(-\sqrt{x}\right) \cdot \sqrt{x - -1}, x + \left(x - -1\right)\right)}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Taylor expanded in x around 0

      \[\leadsto \frac{\color{blue}{1 + \left(-2 \cdot \sqrt{x} + \left(\left(\sqrt{z} + \sqrt{1 + z}\right) \cdot \left({\left(\sqrt{1 + x} - \sqrt{x}\right)}^{3} + {\left(\sqrt{1 + y} - \sqrt{y}\right)}^{3}\right) + \left(\sqrt{1 + y} - \sqrt{y}\right) \cdot \left(\left(\sqrt{x} + \sqrt{1 + y}\right) - \left(1 + \sqrt{y}\right)\right)\right)\right)}}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites98.4%

      \[\leadsto \frac{\color{blue}{1 + \mathsf{fma}\left(-2, \sqrt{x}, \mathsf{fma}\left(\sqrt{z} + \sqrt{1 + z}, {\left(\sqrt{1 + x} - \sqrt{x}\right)}^{3} + {\left(\sqrt{1 + y} - \sqrt{y}\right)}^{3}, \left(\sqrt{1 + y} - \sqrt{y}\right) \cdot \left(\left(\sqrt{x} + \sqrt{1 + y}\right) - \left(1 + \sqrt{y}\right)\right)\right)\right)}}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]

    if 4.5000000000000002e29 < z

    1. Initial program 89.3%

      \[\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 rewrites96.0%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)}} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites99.3%

      \[\leadsto \color{blue}{\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - \left(\sqrt{z} - \sqrt{z - -1}\right)\right) + e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)} \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 5: 97.8% accurate, 0.2× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - \left(\sqrt{z} - \sqrt{z - -1}\right)\right) + e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) - \left(\sqrt{t} - \sqrt{t - -1}\right) \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (-
  (+
   (- (exp (asinh (- (sqrt y)))) (- (sqrt z) (sqrt (- z -1.0))))
   (exp (asinh (- (sqrt x)))))
  (- (sqrt t) (sqrt (- t -1.0)))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	return ((exp(asinh(-sqrt(y))) - (sqrt(z) - sqrt((z - -1.0)))) + exp(asinh(-sqrt(x)))) - (sqrt(t) - sqrt((t - -1.0)));
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	return ((math.exp(math.asinh(-math.sqrt(y))) - (math.sqrt(z) - math.sqrt((z - -1.0)))) + math.exp(math.asinh(-math.sqrt(x)))) - (math.sqrt(t) - math.sqrt((t - -1.0)))
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	return Float64(Float64(Float64(exp(asinh(Float64(-sqrt(y)))) - Float64(sqrt(z) - sqrt(Float64(z - -1.0)))) + exp(asinh(Float64(-sqrt(x))))) - Float64(sqrt(t) - sqrt(Float64(t - -1.0))))
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp = code(x, y, z, t)
	tmp = ((exp(asinh(-sqrt(y))) - (sqrt(z) - sqrt((z - -1.0)))) + exp(asinh(-sqrt(x)))) - (sqrt(t) - sqrt((t - -1.0)));
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := N[(N[(N[(N[Exp[N[ArcSinh[(-N[Sqrt[y], $MachinePrecision])], $MachinePrecision]], $MachinePrecision] - N[(N[Sqrt[z], $MachinePrecision] - N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[Exp[N[ArcSinh[(-N[Sqrt[x], $MachinePrecision])], $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[t], $MachinePrecision] - N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - \left(\sqrt{z} - \sqrt{z - -1}\right)\right) + e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)
\end{array}
Derivation
  1. Initial program 91.6%

    \[\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 rewrites96.3%

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(z - -1\right) - z, \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right), \left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \left({\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)}\right)}^{3} + {\left(e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right)}^{3}\right)\right)}{\left(\sqrt{z} + \sqrt{z - -1}\right) \cdot \mathsf{fma}\left(\sqrt{y - -1} - \sqrt{y}, \left(\sqrt{y - -1} - \sqrt{y}\right) - \left(\sqrt{x - -1} - \sqrt{x}\right), e^{\sinh^{-1} \left(-\sqrt{x}\right) \cdot 2}\right)}} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Applied rewrites97.8%

    \[\leadsto \color{blue}{\left(\left(e^{\sinh^{-1} \left(-\sqrt{y}\right)} - \left(\sqrt{z} - \sqrt{z - -1}\right)\right) + e^{\sinh^{-1} \left(-\sqrt{x}\right)}\right) - \left(\sqrt{t} - \sqrt{t - -1}\right)} \]
  4. Add Preprocessing

Alternative 6: 85.7% accurate, 0.4× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{1 + x}\\ t_2 := \sqrt{z + 1} - \sqrt{z}\\ t_3 := \sqrt{t + 1} - \sqrt{t}\\ t_4 := \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + t\_2\right) + t\_3\\ t_5 := \sqrt{1 + y}\\ \mathbf{if}\;t\_4 \leq 1:\\ \;\;\;\;\left(\left(t\_1 - \sqrt{x}\right) + t\_2\right) + t\_3\\ \mathbf{elif}\;t\_4 \leq 2:\\ \;\;\;\;\left(\left(\left(t\_1 + t\_5\right) - \sqrt{x}\right) - \sqrt{y}\right) + t\_3\\ \mathbf{else}:\\ \;\;\;\;\left(t\_1 + \left(t\_5 + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (+ 1.0 x)))
        (t_2 (- (sqrt (+ z 1.0)) (sqrt z)))
        (t_3 (- (sqrt (+ t 1.0)) (sqrt t)))
        (t_4
         (+
          (+
           (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y)))
           t_2)
          t_3))
        (t_5 (sqrt (+ 1.0 y))))
   (if (<= t_4 1.0)
     (+ (+ (- t_1 (sqrt x)) t_2) t_3)
     (if (<= t_4 2.0)
       (+ (- (- (+ t_1 t_5) (sqrt x)) (sqrt y)) t_3)
       (-
        (+ t_1 (+ t_5 (sqrt (+ 1.0 z))))
        (+ (sqrt x) (+ (sqrt y) (sqrt z))))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((1.0 + x));
	double t_2 = sqrt((z + 1.0)) - sqrt(z);
	double t_3 = sqrt((t + 1.0)) - sqrt(t);
	double t_4 = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + t_2) + t_3;
	double t_5 = sqrt((1.0 + y));
	double tmp;
	if (t_4 <= 1.0) {
		tmp = ((t_1 - sqrt(x)) + t_2) + t_3;
	} else if (t_4 <= 2.0) {
		tmp = (((t_1 + t_5) - sqrt(x)) - sqrt(y)) + t_3;
	} else {
		tmp = (t_1 + (t_5 + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: tmp
    t_1 = sqrt((1.0d0 + x))
    t_2 = sqrt((z + 1.0d0)) - sqrt(z)
    t_3 = sqrt((t + 1.0d0)) - sqrt(t)
    t_4 = (((sqrt((x + 1.0d0)) - sqrt(x)) + (sqrt((y + 1.0d0)) - sqrt(y))) + t_2) + t_3
    t_5 = sqrt((1.0d0 + y))
    if (t_4 <= 1.0d0) then
        tmp = ((t_1 - sqrt(x)) + t_2) + t_3
    else if (t_4 <= 2.0d0) then
        tmp = (((t_1 + t_5) - sqrt(x)) - sqrt(y)) + t_3
    else
        tmp = (t_1 + (t_5 + sqrt((1.0d0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((1.0 + x));
	double t_2 = Math.sqrt((z + 1.0)) - Math.sqrt(z);
	double t_3 = Math.sqrt((t + 1.0)) - Math.sqrt(t);
	double t_4 = (((Math.sqrt((x + 1.0)) - Math.sqrt(x)) + (Math.sqrt((y + 1.0)) - Math.sqrt(y))) + t_2) + t_3;
	double t_5 = Math.sqrt((1.0 + y));
	double tmp;
	if (t_4 <= 1.0) {
		tmp = ((t_1 - Math.sqrt(x)) + t_2) + t_3;
	} else if (t_4 <= 2.0) {
		tmp = (((t_1 + t_5) - Math.sqrt(x)) - Math.sqrt(y)) + t_3;
	} else {
		tmp = (t_1 + (t_5 + Math.sqrt((1.0 + z)))) - (Math.sqrt(x) + (Math.sqrt(y) + Math.sqrt(z)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((1.0 + x))
	t_2 = math.sqrt((z + 1.0)) - math.sqrt(z)
	t_3 = math.sqrt((t + 1.0)) - math.sqrt(t)
	t_4 = (((math.sqrt((x + 1.0)) - math.sqrt(x)) + (math.sqrt((y + 1.0)) - math.sqrt(y))) + t_2) + t_3
	t_5 = math.sqrt((1.0 + y))
	tmp = 0
	if t_4 <= 1.0:
		tmp = ((t_1 - math.sqrt(x)) + t_2) + t_3
	elif t_4 <= 2.0:
		tmp = (((t_1 + t_5) - math.sqrt(x)) - math.sqrt(y)) + t_3
	else:
		tmp = (t_1 + (t_5 + math.sqrt((1.0 + z)))) - (math.sqrt(x) + (math.sqrt(y) + math.sqrt(z)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = sqrt(Float64(1.0 + x))
	t_2 = Float64(sqrt(Float64(z + 1.0)) - sqrt(z))
	t_3 = Float64(sqrt(Float64(t + 1.0)) - sqrt(t))
	t_4 = Float64(Float64(Float64(Float64(sqrt(Float64(x + 1.0)) - sqrt(x)) + Float64(sqrt(Float64(y + 1.0)) - sqrt(y))) + t_2) + t_3)
	t_5 = sqrt(Float64(1.0 + y))
	tmp = 0.0
	if (t_4 <= 1.0)
		tmp = Float64(Float64(Float64(t_1 - sqrt(x)) + t_2) + t_3);
	elseif (t_4 <= 2.0)
		tmp = Float64(Float64(Float64(Float64(t_1 + t_5) - sqrt(x)) - sqrt(y)) + t_3);
	else
		tmp = Float64(Float64(t_1 + Float64(t_5 + sqrt(Float64(1.0 + z)))) - Float64(sqrt(x) + Float64(sqrt(y) + sqrt(z))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((1.0 + x));
	t_2 = sqrt((z + 1.0)) - sqrt(z);
	t_3 = sqrt((t + 1.0)) - sqrt(t);
	t_4 = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + t_2) + t_3;
	t_5 = sqrt((1.0 + y));
	tmp = 0.0;
	if (t_4 <= 1.0)
		tmp = ((t_1 - sqrt(x)) + t_2) + t_3;
	elseif (t_4 <= 2.0)
		tmp = (((t_1 + t_5) - sqrt(x)) - sqrt(y)) + t_3;
	else
		tmp = (t_1 + (t_5 + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(N[Sqrt[N[(z + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[z], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = 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] + t$95$2), $MachinePrecision] + t$95$3), $MachinePrecision]}, Block[{t$95$5 = N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[t$95$4, 1.0], N[(N[(N[(t$95$1 - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision] + t$95$3), $MachinePrecision], If[LessEqual[t$95$4, 2.0], N[(N[(N[(N[(t$95$1 + t$95$5), $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + t$95$3), $MachinePrecision], N[(N[(t$95$1 + N[(t$95$5 + N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[x], $MachinePrecision] + N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{1 + x}\\
t_2 := \sqrt{z + 1} - \sqrt{z}\\
t_3 := \sqrt{t + 1} - \sqrt{t}\\
t_4 := \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + t\_2\right) + t\_3\\
t_5 := \sqrt{1 + y}\\
\mathbf{if}\;t\_4 \leq 1:\\
\;\;\;\;\left(\left(t\_1 - \sqrt{x}\right) + t\_2\right) + t\_3\\

\mathbf{elif}\;t\_4 \leq 2:\\
\;\;\;\;\left(\left(\left(t\_1 + t\_5\right) - \sqrt{x}\right) - \sqrt{y}\right) + t\_3\\

\mathbf{else}:\\
\;\;\;\;\left(t\_1 + \left(t\_5 + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x #s(literal 1 binary64))) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y #s(literal 1 binary64))) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z #s(literal 1 binary64))) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t #s(literal 1 binary64))) (sqrt.f64 t))) < 1

    1. Initial program 77.9%

      \[\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. Step-by-step derivation
      1. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\color{blue}{\sqrt{y + 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\color{blue}{y + 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. +-commutativeN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\color{blue}{1 + y}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. flip-+N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\color{blue}{\frac{1 \cdot 1 - y \cdot y}{1 - y}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\frac{1 \cdot 1 - y \cdot y}{\color{blue}{1 \cdot 1} - y}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. *-rgt-identityN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\frac{1 \cdot 1 - y \cdot y}{1 \cdot 1 - \color{blue}{y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. sqrt-divN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\sqrt{1 \cdot 1 - y \cdot y}}{\sqrt{1 \cdot 1 - y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      8. lower-/.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\sqrt{1 \cdot 1 - y \cdot y}}{\sqrt{1 \cdot 1 - y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      9. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\color{blue}{\sqrt{1 \cdot 1 - y \cdot y}}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      10. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{\color{blue}{1} - y \cdot y}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      11. lower--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{\color{blue}{1 - y \cdot y}}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      12. lower-*.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - \color{blue}{y \cdot y}}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      13. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\color{blue}{\sqrt{1 \cdot 1 - y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      14. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\sqrt{\color{blue}{1} - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      15. *-rgt-identityN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\sqrt{1 - \color{blue}{y}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      16. lower--.f640.0

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\sqrt{\color{blue}{1 - y}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites0.0%

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

      \[\leadsto \left(\color{blue}{\left(\sqrt{1 + x} - \sqrt{x}\right)} + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\left(\sqrt{1 + x} - \color{blue}{\sqrt{x}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\sqrt{1 + x} - \sqrt{\color{blue}{x}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-+.f64N/A

        \[\leadsto \left(\left(\sqrt{1 + x} - \sqrt{x}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lower-sqrt.f6477.7

        \[\leadsto \left(\left(\sqrt{1 + x} - \sqrt{x}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites77.7%

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

    if 1 < (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x #s(literal 1 binary64))) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y #s(literal 1 binary64))) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z #s(literal 1 binary64))) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t #s(literal 1 binary64))) (sqrt.f64 t))) < 2

    1. Initial program 96.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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites96.5%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in z around inf

      \[\leadsto \left(\color{blue}{\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \sqrt{x}\right)} - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \color{blue}{\sqrt{x}}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \sqrt{\color{blue}{x}}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \sqrt{x}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lower-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \sqrt{x}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \sqrt{x}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. lower-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \sqrt{x}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower-sqrt.f6496.3

        \[\leadsto \left(\left(\left(\sqrt{1 + x} + \sqrt{1 + y}\right) - \sqrt{x}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites96.3%

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

    if 2 < (+.f64 (+.f64 (+.f64 (-.f64 (sqrt.f64 (+.f64 x #s(literal 1 binary64))) (sqrt.f64 x)) (-.f64 (sqrt.f64 (+.f64 y #s(literal 1 binary64))) (sqrt.f64 y))) (-.f64 (sqrt.f64 (+.f64 z #s(literal 1 binary64))) (sqrt.f64 z))) (-.f64 (sqrt.f64 (+.f64 t #s(literal 1 binary64))) (sqrt.f64 t)))

    1. Initial program 97.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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites97.2%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in t around inf

      \[\leadsto \color{blue}{\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \color{blue}{\left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\color{blue}{\sqrt{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{\color{blue}{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      4. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      5. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      6. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      8. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      9. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      10. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \color{blue}{\left(\sqrt{y} + \sqrt{z}\right)}\right) \]
      11. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\color{blue}{\sqrt{y}} + \sqrt{z}\right)\right) \]
      12. lower-+.f64N/A

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

      \[\leadsto \color{blue}{\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
  3. Recombined 3 regimes into one program.
  4. Add Preprocessing

Alternative 7: 97.1% accurate, 0.4× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{y - -1}\\ \mathbf{if}\;y \leq 10^{+31}:\\ \;\;\;\;\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{1 + \left(y - y\right)}{\sqrt{y} + t\_1}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\ \mathbf{else}:\\ \;\;\;\;e^{\sinh^{-1} \left(-\sqrt{x}\right)} + \left(\left(\left(\left(t\_1 - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (- y -1.0))))
   (if (<= y 1e+31)
     (+
      (+
       (+ (- (sqrt (+ x 1.0)) (sqrt x)) (/ (+ 1.0 (- y y)) (+ (sqrt y) t_1)))
       (- (sqrt (+ z 1.0)) (sqrt z)))
      (- (sqrt (+ t 1.0)) (sqrt t)))
     (+
      (exp (asinh (- (sqrt x))))
      (+
       (- (+ (- t_1 (sqrt y)) (sqrt (- z -1.0))) (sqrt z))
       (- (sqrt (- t -1.0)) (sqrt t)))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((y - -1.0));
	double tmp;
	if (y <= 1e+31) {
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + ((1.0 + (y - y)) / (sqrt(y) + t_1))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
	} else {
		tmp = exp(asinh(-sqrt(x))) + ((((t_1 - sqrt(y)) + sqrt((z - -1.0))) - sqrt(z)) + (sqrt((t - -1.0)) - sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((y - -1.0))
	tmp = 0
	if y <= 1e+31:
		tmp = (((math.sqrt((x + 1.0)) - math.sqrt(x)) + ((1.0 + (y - y)) / (math.sqrt(y) + t_1))) + (math.sqrt((z + 1.0)) - math.sqrt(z))) + (math.sqrt((t + 1.0)) - math.sqrt(t))
	else:
		tmp = math.exp(math.asinh(-math.sqrt(x))) + ((((t_1 - math.sqrt(y)) + math.sqrt((z - -1.0))) - math.sqrt(z)) + (math.sqrt((t - -1.0)) - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = sqrt(Float64(y - -1.0))
	tmp = 0.0
	if (y <= 1e+31)
		tmp = Float64(Float64(Float64(Float64(sqrt(Float64(x + 1.0)) - sqrt(x)) + Float64(Float64(1.0 + Float64(y - y)) / Float64(sqrt(y) + t_1))) + Float64(sqrt(Float64(z + 1.0)) - sqrt(z))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)));
	else
		tmp = Float64(exp(asinh(Float64(-sqrt(x)))) + Float64(Float64(Float64(Float64(t_1 - sqrt(y)) + sqrt(Float64(z - -1.0))) - sqrt(z)) + Float64(sqrt(Float64(t - -1.0)) - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((y - -1.0));
	tmp = 0.0;
	if (y <= 1e+31)
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + ((1.0 + (y - y)) / (sqrt(y) + t_1))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
	else
		tmp = exp(asinh(-sqrt(x))) + ((((t_1 - sqrt(y)) + sqrt((z - -1.0))) - sqrt(z)) + (sqrt((t - -1.0)) - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(y - -1.0), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[y, 1e+31], N[(N[(N[(N[(N[Sqrt[N[(x + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 + N[(y - y), $MachinePrecision]), $MachinePrecision] / N[(N[Sqrt[y], $MachinePrecision] + t$95$1), $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], N[(N[Exp[N[ArcSinh[(-N[Sqrt[x], $MachinePrecision])], $MachinePrecision]], $MachinePrecision] + N[(N[(N[(N[(t$95$1 - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - N[Sqrt[z], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{y - -1}\\
\mathbf{if}\;y \leq 10^{+31}:\\
\;\;\;\;\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{1 + \left(y - y\right)}{\sqrt{y} + t\_1}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\

\mathbf{else}:\\
\;\;\;\;e^{\sinh^{-1} \left(-\sqrt{x}\right)} + \left(\left(\left(\left(t\_1 - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if y < 9.9999999999999996e30

    1. Initial program 95.9%

      \[\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. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. flip--N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\frac{\sqrt{y + 1} \cdot \sqrt{y + 1} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-/.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\frac{\sqrt{y + 1} \cdot \sqrt{y + 1} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\sqrt{y + 1}} \cdot \sqrt{y + 1} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\sqrt{y + 1} \cdot \color{blue}{\sqrt{y + 1}} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. rem-square-sqrtN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + 1\right)} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + 1\right) - \color{blue}{\sqrt{y}} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      8. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + 1\right) - \sqrt{y} \cdot \color{blue}{\sqrt{y}}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      9. rem-square-sqrtN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + 1\right) - \color{blue}{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      10. lower--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + 1\right) - y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      11. lift-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + 1\right)} - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      12. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + \color{blue}{1 \cdot 1}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      13. fp-cancel-sign-sub-invN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - \left(\mathsf{neg}\left(1\right)\right) \cdot 1\right)} - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      14. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{-1} \cdot 1\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      15. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{-1}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      16. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{\left(\mathsf{neg}\left(1\right)\right)}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      17. lower--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - \left(\mathsf{neg}\left(1\right)\right)\right)} - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      18. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{-1}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      19. +-commutativeN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\color{blue}{\sqrt{y} + \sqrt{y + 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      20. lower-+.f6496.6

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\color{blue}{\sqrt{y} + \sqrt{y + 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      21. lift-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{\color{blue}{y + 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      22. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{y + \color{blue}{1 \cdot 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      23. fp-cancel-sign-sub-invN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{\color{blue}{y - \left(\mathsf{neg}\left(1\right)\right) \cdot 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites96.6%

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{y - -1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - -1\right) - y}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lift--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - -1\right)} - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. sub-negate1N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + \left(\mathsf{neg}\left(-1\right)\right)\right)} - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + \color{blue}{1}\right) - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. +-commutativeN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(1 + y\right)} - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate--l+N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{1 + \left(y - y\right)}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{1 + \left(y - y\right)}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      8. lower--.f6497.5

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{1 + \color{blue}{\left(y - y\right)}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Applied rewrites97.5%

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

    if 9.9999999999999996e30 < y

    1. Initial program 77.8%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites77.8%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right)} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. sub-negate1N/A

        \[\leadsto \color{blue}{\left(\sqrt{x - -1} + \left(\mathsf{neg}\left(\sqrt{x}\right)\right)\right)} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift-neg.f64N/A

        \[\leadsto \left(\sqrt{x - -1} + \color{blue}{\left(-\sqrt{x}\right)}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lift-sqrt.f64N/A

        \[\leadsto \left(\color{blue}{\sqrt{x - -1}} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lift--.f64N/A

        \[\leadsto \left(\sqrt{\color{blue}{x - -1}} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. sub-negate1N/A

        \[\leadsto \left(\sqrt{\color{blue}{x + \left(\mathsf{neg}\left(-1\right)\right)}} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. metadata-evalN/A

        \[\leadsto \left(\sqrt{x + \color{blue}{1}} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. rem-square-sqrtN/A

        \[\leadsto \left(\sqrt{\color{blue}{\sqrt{x} \cdot \sqrt{x}} + 1} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      9. lift-sqrt.f64N/A

        \[\leadsto \left(\sqrt{\color{blue}{\sqrt{x}} \cdot \sqrt{x} + 1} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      10. lift-sqrt.f64N/A

        \[\leadsto \left(\sqrt{\sqrt{x} \cdot \color{blue}{\sqrt{x}} + 1} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      11. sqr-neg-revN/A

        \[\leadsto \left(\sqrt{\color{blue}{\left(\mathsf{neg}\left(\sqrt{x}\right)\right) \cdot \left(\mathsf{neg}\left(\sqrt{x}\right)\right)} + 1} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      12. lift-neg.f64N/A

        \[\leadsto \left(\sqrt{\color{blue}{\left(-\sqrt{x}\right)} \cdot \left(\mathsf{neg}\left(\sqrt{x}\right)\right) + 1} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      13. lift-neg.f64N/A

        \[\leadsto \left(\sqrt{\left(-\sqrt{x}\right) \cdot \color{blue}{\left(-\sqrt{x}\right)} + 1} + \left(-\sqrt{x}\right)\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(-\sqrt{x}\right) + \sqrt{\left(-\sqrt{x}\right) \cdot \left(-\sqrt{x}\right) + 1}\right)} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      15. rem-exp-logN/A

        \[\leadsto \color{blue}{e^{\log \left(\left(-\sqrt{x}\right) + \sqrt{\left(-\sqrt{x}\right) \cdot \left(-\sqrt{x}\right) + 1}\right)}} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      16. asinh-defN/A

        \[\leadsto e^{\color{blue}{\sinh^{-1} \left(-\sqrt{x}\right)}} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      17. lift-asinh.f64N/A

        \[\leadsto e^{\color{blue}{\sinh^{-1} \left(-\sqrt{x}\right)}} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      18. lift-exp.f6495.7

        \[\leadsto \color{blue}{e^{\sinh^{-1} \left(-\sqrt{x}\right)}} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites95.7%

      \[\leadsto \color{blue}{e^{\sinh^{-1} \left(-\sqrt{x}\right)}} + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 8: 93.7% accurate, 0.8× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} \mathbf{if}\;z \leq 3.85 \cdot 10^{+21}:\\ \;\;\;\;\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - -1\right) - z}{\sqrt{z} + \sqrt{z - -1}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (if (<= z 3.85e+21)
   (+
    (+
     (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y)))
     (/ (- (- z -1.0) z) (+ (sqrt z) (sqrt (- z -1.0)))))
    (- (sqrt (+ t 1.0)) (sqrt t)))
   (+
    (- (sqrt (- x -1.0)) (sqrt x))
    (+ (/ 1.0 (+ (sqrt y) (sqrt (+ 1.0 y)))) (- (sqrt (- t -1.0)) (sqrt t))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double tmp;
	if (z <= 3.85e+21) {
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (((z - -1.0) - z) / (sqrt(z) + sqrt((z - -1.0))))) + (sqrt((t + 1.0)) - sqrt(t));
	} else {
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: tmp
    if (z <= 3.85d+21) then
        tmp = (((sqrt((x + 1.0d0)) - sqrt(x)) + (sqrt((y + 1.0d0)) - sqrt(y))) + (((z - (-1.0d0)) - z) / (sqrt(z) + sqrt((z - (-1.0d0)))))) + (sqrt((t + 1.0d0)) - sqrt(t))
    else
        tmp = (sqrt((x - (-1.0d0))) - sqrt(x)) + ((1.0d0 / (sqrt(y) + sqrt((1.0d0 + y)))) + (sqrt((t - (-1.0d0))) - sqrt(t)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (z <= 3.85e+21) {
		tmp = (((Math.sqrt((x + 1.0)) - Math.sqrt(x)) + (Math.sqrt((y + 1.0)) - Math.sqrt(y))) + (((z - -1.0) - z) / (Math.sqrt(z) + Math.sqrt((z - -1.0))))) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
	} else {
		tmp = (Math.sqrt((x - -1.0)) - Math.sqrt(x)) + ((1.0 / (Math.sqrt(y) + Math.sqrt((1.0 + y)))) + (Math.sqrt((t - -1.0)) - Math.sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	tmp = 0
	if z <= 3.85e+21:
		tmp = (((math.sqrt((x + 1.0)) - math.sqrt(x)) + (math.sqrt((y + 1.0)) - math.sqrt(y))) + (((z - -1.0) - z) / (math.sqrt(z) + math.sqrt((z - -1.0))))) + (math.sqrt((t + 1.0)) - math.sqrt(t))
	else:
		tmp = (math.sqrt((x - -1.0)) - math.sqrt(x)) + ((1.0 / (math.sqrt(y) + math.sqrt((1.0 + y)))) + (math.sqrt((t - -1.0)) - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	tmp = 0.0
	if (z <= 3.85e+21)
		tmp = Float64(Float64(Float64(Float64(sqrt(Float64(x + 1.0)) - sqrt(x)) + Float64(sqrt(Float64(y + 1.0)) - sqrt(y))) + Float64(Float64(Float64(z - -1.0) - z) / Float64(sqrt(z) + sqrt(Float64(z - -1.0))))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)));
	else
		tmp = Float64(Float64(sqrt(Float64(x - -1.0)) - sqrt(x)) + Float64(Float64(1.0 / Float64(sqrt(y) + sqrt(Float64(1.0 + y)))) + Float64(sqrt(Float64(t - -1.0)) - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (z <= 3.85e+21)
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (((z - -1.0) - z) / (sqrt(z) + sqrt((z - -1.0))))) + (sqrt((t + 1.0)) - sqrt(t));
	else
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := If[LessEqual[z, 3.85e+21], 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[(N[(z - -1.0), $MachinePrecision] - z), $MachinePrecision] / N[(N[Sqrt[z], $MachinePrecision] + N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 / N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
\mathbf{if}\;z \leq 3.85 \cdot 10^{+21}:\\
\;\;\;\;\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - -1\right) - z}{\sqrt{z} + \sqrt{z - -1}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if z < 3.85e21

    1. Initial program 95.8%

      \[\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. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \color{blue}{\left(\sqrt{z + 1} - \sqrt{z}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. flip--N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \color{blue}{\frac{\sqrt{z + 1} \cdot \sqrt{z + 1} - \sqrt{z} \cdot \sqrt{z}}{\sqrt{z + 1} + \sqrt{z}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-/.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \color{blue}{\frac{\sqrt{z + 1} \cdot \sqrt{z + 1} - \sqrt{z} \cdot \sqrt{z}}{\sqrt{z + 1} + \sqrt{z}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\color{blue}{\sqrt{z + 1}} \cdot \sqrt{z + 1} - \sqrt{z} \cdot \sqrt{z}}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\sqrt{z + 1} \cdot \color{blue}{\sqrt{z + 1}} - \sqrt{z} \cdot \sqrt{z}}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. rem-square-sqrtN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\color{blue}{\left(z + 1\right)} - \sqrt{z} \cdot \sqrt{z}}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z + 1\right) - \color{blue}{\sqrt{z}} \cdot \sqrt{z}}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      8. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z + 1\right) - \sqrt{z} \cdot \color{blue}{\sqrt{z}}}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      9. rem-square-sqrtN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z + 1\right) - \color{blue}{z}}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      10. lower--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\color{blue}{\left(z + 1\right) - z}}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      11. lift-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\color{blue}{\left(z + 1\right)} - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      12. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z + \color{blue}{1 \cdot 1}\right) - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      13. fp-cancel-sign-sub-invN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\color{blue}{\left(z - \left(\mathsf{neg}\left(1\right)\right) \cdot 1\right)} - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      14. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - \color{blue}{-1} \cdot 1\right) - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      15. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - \color{blue}{-1}\right) - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      16. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - \color{blue}{\left(\mathsf{neg}\left(1\right)\right)}\right) - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      17. lower--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\color{blue}{\left(z - \left(\mathsf{neg}\left(1\right)\right)\right)} - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      18. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - \color{blue}{-1}\right) - z}{\sqrt{z + 1} + \sqrt{z}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      19. +-commutativeN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - -1\right) - z}{\color{blue}{\sqrt{z} + \sqrt{z + 1}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      20. lower-+.f6497.4

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - -1\right) - z}{\color{blue}{\sqrt{z} + \sqrt{z + 1}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      21. lift-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - -1\right) - z}{\sqrt{z} + \sqrt{\color{blue}{z + 1}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      22. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - -1\right) - z}{\sqrt{z} + \sqrt{z + \color{blue}{1 \cdot 1}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      23. fp-cancel-sign-sub-invN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right) + \frac{\left(z - -1\right) - z}{\sqrt{z} + \sqrt{\color{blue}{z - \left(\mathsf{neg}\left(1\right)\right) \cdot 1}}}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites97.4%

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

    if 3.85e21 < z

    1. Initial program 89.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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites47.6%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\color{blue}{\left(\sqrt{y - -1} - \sqrt{y}\right)} + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. associate-+l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\sqrt{y - -1} - \left(\sqrt{y} - \sqrt{z - -1}\right)\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. associate--l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. lower--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \color{blue}{\left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. lower--.f6451.2

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \left(\color{blue}{\left(\sqrt{y} - \sqrt{z - -1}\right)} + \sqrt{z}\right)\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites51.2%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    6. Applied rewrites55.8%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\mathsf{fma}\left(\left(y - -1\right) - y, \left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}, \left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left({\left(z - -1\right)}^{1.5} - {z}^{1.5}\right)\right)}{\left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left(\left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}\right)}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    7. Taylor expanded in z around inf

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{1}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    8. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\color{blue}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \color{blue}{\sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{\color{blue}{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lower-+.f6491.6

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    9. Applied rewrites91.6%

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

Alternative 9: 94.4% accurate, 0.8× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{t - -1}\\ t_2 := \sqrt{x - -1} - \sqrt{x}\\ \mathbf{if}\;z \leq 450000000:\\ \;\;\;\;\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) + \frac{\left(t - -1\right) - t}{\sqrt{t} + t\_1}\\ \mathbf{elif}\;z \leq 2 \cdot 10^{+27}:\\ \;\;\;\;\left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + t\_2\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\ \mathbf{else}:\\ \;\;\;\;t\_2 + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(t\_1 - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (- t -1.0))) (t_2 (- (sqrt (- x -1.0)) (sqrt x))))
   (if (<= z 450000000.0)
     (+
      (+
       (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y)))
       (- (sqrt (+ z 1.0)) (sqrt z)))
      (/ (- (- t -1.0) t) (+ (sqrt t) t_1)))
     (if (<= z 2e+27)
       (+
        (- (+ (* 0.5 (sqrt (/ 1.0 z))) (+ (sqrt (- y -1.0)) t_2)) (sqrt y))
        (- (sqrt (+ t 1.0)) (sqrt t)))
       (+ t_2 (+ (/ 1.0 (+ (sqrt y) (sqrt (+ 1.0 y)))) (- t_1 (sqrt t))))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((t - -1.0));
	double t_2 = sqrt((x - -1.0)) - sqrt(x);
	double tmp;
	if (z <= 450000000.0) {
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + (((t - -1.0) - t) / (sqrt(t) + t_1));
	} else if (z <= 2e+27) {
		tmp = (((0.5 * sqrt((1.0 / z))) + (sqrt((y - -1.0)) + t_2)) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
	} else {
		tmp = t_2 + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (t_1 - sqrt(t)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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((t - (-1.0d0)))
    t_2 = sqrt((x - (-1.0d0))) - sqrt(x)
    if (z <= 450000000.0d0) then
        tmp = (((sqrt((x + 1.0d0)) - sqrt(x)) + (sqrt((y + 1.0d0)) - sqrt(y))) + (sqrt((z + 1.0d0)) - sqrt(z))) + (((t - (-1.0d0)) - t) / (sqrt(t) + t_1))
    else if (z <= 2d+27) then
        tmp = (((0.5d0 * sqrt((1.0d0 / z))) + (sqrt((y - (-1.0d0))) + t_2)) - sqrt(y)) + (sqrt((t + 1.0d0)) - sqrt(t))
    else
        tmp = t_2 + ((1.0d0 / (sqrt(y) + sqrt((1.0d0 + y)))) + (t_1 - sqrt(t)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((t - -1.0));
	double t_2 = Math.sqrt((x - -1.0)) - Math.sqrt(x);
	double tmp;
	if (z <= 450000000.0) {
		tmp = (((Math.sqrt((x + 1.0)) - Math.sqrt(x)) + (Math.sqrt((y + 1.0)) - Math.sqrt(y))) + (Math.sqrt((z + 1.0)) - Math.sqrt(z))) + (((t - -1.0) - t) / (Math.sqrt(t) + t_1));
	} else if (z <= 2e+27) {
		tmp = (((0.5 * Math.sqrt((1.0 / z))) + (Math.sqrt((y - -1.0)) + t_2)) - Math.sqrt(y)) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
	} else {
		tmp = t_2 + ((1.0 / (Math.sqrt(y) + Math.sqrt((1.0 + y)))) + (t_1 - Math.sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((t - -1.0))
	t_2 = math.sqrt((x - -1.0)) - math.sqrt(x)
	tmp = 0
	if z <= 450000000.0:
		tmp = (((math.sqrt((x + 1.0)) - math.sqrt(x)) + (math.sqrt((y + 1.0)) - math.sqrt(y))) + (math.sqrt((z + 1.0)) - math.sqrt(z))) + (((t - -1.0) - t) / (math.sqrt(t) + t_1))
	elif z <= 2e+27:
		tmp = (((0.5 * math.sqrt((1.0 / z))) + (math.sqrt((y - -1.0)) + t_2)) - math.sqrt(y)) + (math.sqrt((t + 1.0)) - math.sqrt(t))
	else:
		tmp = t_2 + ((1.0 / (math.sqrt(y) + math.sqrt((1.0 + y)))) + (t_1 - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = sqrt(Float64(t - -1.0))
	t_2 = Float64(sqrt(Float64(x - -1.0)) - sqrt(x))
	tmp = 0.0
	if (z <= 450000000.0)
		tmp = 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(Float64(Float64(t - -1.0) - t) / Float64(sqrt(t) + t_1)));
	elseif (z <= 2e+27)
		tmp = Float64(Float64(Float64(Float64(0.5 * sqrt(Float64(1.0 / z))) + Float64(sqrt(Float64(y - -1.0)) + t_2)) - sqrt(y)) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)));
	else
		tmp = Float64(t_2 + Float64(Float64(1.0 / Float64(sqrt(y) + sqrt(Float64(1.0 + y)))) + Float64(t_1 - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((t - -1.0));
	t_2 = sqrt((x - -1.0)) - sqrt(x);
	tmp = 0.0;
	if (z <= 450000000.0)
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + (((t - -1.0) - t) / (sqrt(t) + t_1));
	elseif (z <= 2e+27)
		tmp = (((0.5 * sqrt((1.0 / z))) + (sqrt((y - -1.0)) + t_2)) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
	else
		tmp = t_2 + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (t_1 - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, 450000000.0], 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[(N[(t - -1.0), $MachinePrecision] - t), $MachinePrecision] / N[(N[Sqrt[t], $MachinePrecision] + t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2e+27], N[(N[(N[(N[(0.5 * N[Sqrt[N[(1.0 / z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(y - -1.0), $MachinePrecision]], $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$2 + N[(N[(1.0 / N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t$95$1 - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{t - -1}\\
t_2 := \sqrt{x - -1} - \sqrt{x}\\
\mathbf{if}\;z \leq 450000000:\\
\;\;\;\;\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) + \frac{\left(t - -1\right) - t}{\sqrt{t} + t\_1}\\

\mathbf{elif}\;z \leq 2 \cdot 10^{+27}:\\
\;\;\;\;\left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + t\_2\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if z < 4.5e8

    1. Initial program 98.1%

      \[\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. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \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) + \color{blue}{\left(\sqrt{t + 1} - \sqrt{t}\right)} \]
      2. flip--N/A

        \[\leadsto \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) + \color{blue}{\frac{\sqrt{t + 1} \cdot \sqrt{t + 1} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{t + 1} + \sqrt{t}}} \]
      3. lower-/.f64N/A

        \[\leadsto \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) + \color{blue}{\frac{\sqrt{t + 1} \cdot \sqrt{t + 1} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{t + 1} + \sqrt{t}}} \]
      4. lift-sqrt.f64N/A

        \[\leadsto \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) + \frac{\color{blue}{\sqrt{t + 1}} \cdot \sqrt{t + 1} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{t + 1} + \sqrt{t}} \]
      5. lift-sqrt.f64N/A

        \[\leadsto \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) + \frac{\sqrt{t + 1} \cdot \color{blue}{\sqrt{t + 1}} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{t + 1} + \sqrt{t}} \]
      6. rem-square-sqrtN/A

        \[\leadsto \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) + \frac{\color{blue}{\left(t + 1\right)} - \sqrt{t} \cdot \sqrt{t}}{\sqrt{t + 1} + \sqrt{t}} \]
      7. lift-sqrt.f64N/A

        \[\leadsto \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) + \frac{\left(t + 1\right) - \color{blue}{\sqrt{t}} \cdot \sqrt{t}}{\sqrt{t + 1} + \sqrt{t}} \]
      8. lift-sqrt.f64N/A

        \[\leadsto \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) + \frac{\left(t + 1\right) - \sqrt{t} \cdot \color{blue}{\sqrt{t}}}{\sqrt{t + 1} + \sqrt{t}} \]
      9. rem-square-sqrtN/A

        \[\leadsto \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) + \frac{\left(t + 1\right) - \color{blue}{t}}{\sqrt{t + 1} + \sqrt{t}} \]
      10. lower--.f64N/A

        \[\leadsto \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) + \frac{\color{blue}{\left(t + 1\right) - t}}{\sqrt{t + 1} + \sqrt{t}} \]
      11. lift-+.f64N/A

        \[\leadsto \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) + \frac{\color{blue}{\left(t + 1\right)} - t}{\sqrt{t + 1} + \sqrt{t}} \]
      12. metadata-evalN/A

        \[\leadsto \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) + \frac{\left(t + \color{blue}{1 \cdot 1}\right) - t}{\sqrt{t + 1} + \sqrt{t}} \]
      13. fp-cancel-sign-sub-invN/A

        \[\leadsto \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) + \frac{\color{blue}{\left(t - \left(\mathsf{neg}\left(1\right)\right) \cdot 1\right)} - t}{\sqrt{t + 1} + \sqrt{t}} \]
      14. metadata-evalN/A

        \[\leadsto \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) + \frac{\left(t - \color{blue}{-1} \cdot 1\right) - t}{\sqrt{t + 1} + \sqrt{t}} \]
      15. metadata-evalN/A

        \[\leadsto \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) + \frac{\left(t - \color{blue}{-1}\right) - t}{\sqrt{t + 1} + \sqrt{t}} \]
      16. metadata-evalN/A

        \[\leadsto \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) + \frac{\left(t - \color{blue}{\left(\mathsf{neg}\left(1\right)\right)}\right) - t}{\sqrt{t + 1} + \sqrt{t}} \]
      17. lower--.f64N/A

        \[\leadsto \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) + \frac{\color{blue}{\left(t - \left(\mathsf{neg}\left(1\right)\right)\right)} - t}{\sqrt{t + 1} + \sqrt{t}} \]
      18. metadata-evalN/A

        \[\leadsto \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) + \frac{\left(t - \color{blue}{-1}\right) - t}{\sqrt{t + 1} + \sqrt{t}} \]
      19. +-commutativeN/A

        \[\leadsto \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) + \frac{\left(t - -1\right) - t}{\color{blue}{\sqrt{t} + \sqrt{t + 1}}} \]
      20. lower-+.f6498.8

        \[\leadsto \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) + \frac{\left(t - -1\right) - t}{\color{blue}{\sqrt{t} + \sqrt{t + 1}}} \]
      21. lift-+.f64N/A

        \[\leadsto \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) + \frac{\left(t - -1\right) - t}{\sqrt{t} + \sqrt{\color{blue}{t + 1}}} \]
      22. metadata-evalN/A

        \[\leadsto \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) + \frac{\left(t - -1\right) - t}{\sqrt{t} + \sqrt{t + \color{blue}{1 \cdot 1}}} \]
      23. fp-cancel-sign-sub-invN/A

        \[\leadsto \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) + \frac{\left(t - -1\right) - t}{\sqrt{t} + \sqrt{\color{blue}{t - \left(\mathsf{neg}\left(1\right)\right) \cdot 1}}} \]
    3. Applied rewrites98.8%

      \[\leadsto \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) + \color{blue}{\frac{\left(t - -1\right) - t}{\sqrt{t} + \sqrt{t - -1}}} \]

    if 4.5e8 < z < 2e27

    1. Initial program 75.0%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites75.0%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in z around inf

      \[\leadsto \left(\left(\color{blue}{\frac{1}{2} \cdot \sqrt{\frac{1}{z}}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \left(\left(\frac{1}{2} \cdot \color{blue}{\sqrt{\frac{1}{z}}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\frac{1}{2} \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-/.f6497.3

        \[\leadsto \left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites97.3%

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

    if 2e27 < z

    1. Initial program 89.3%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites47.0%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\color{blue}{\left(\sqrt{y - -1} - \sqrt{y}\right)} + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. associate-+l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\sqrt{y - -1} - \left(\sqrt{y} - \sqrt{z - -1}\right)\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. associate--l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. lower--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \color{blue}{\left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. lower--.f6450.7

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \left(\color{blue}{\left(\sqrt{y} - \sqrt{z - -1}\right)} + \sqrt{z}\right)\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites50.7%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    6. Applied rewrites55.2%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\mathsf{fma}\left(\left(y - -1\right) - y, \left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}, \left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left({\left(z - -1\right)}^{1.5} - {z}^{1.5}\right)\right)}{\left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left(\left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}\right)}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    7. Taylor expanded in z around inf

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{1}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    8. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\color{blue}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \color{blue}{\sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{\color{blue}{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lower-+.f6491.8

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    9. Applied rewrites91.8%

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

Alternative 10: 93.1% accurate, 0.9× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{1 + \left(y - y\right)}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (+
  (+
   (+
    (- (sqrt (+ x 1.0)) (sqrt x))
    (/ (+ 1.0 (- y y)) (+ (sqrt y) (sqrt (- y -1.0)))))
   (- (sqrt (+ z 1.0)) (sqrt z)))
  (- (sqrt (+ t 1.0)) (sqrt t))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	return (((sqrt((x + 1.0)) - sqrt(x)) + ((1.0 + (y - y)) / (sqrt(y) + sqrt((y - -1.0))))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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)) + ((1.0d0 + (y - y)) / (sqrt(y) + sqrt((y - (-1.0d0)))))) + (sqrt((z + 1.0d0)) - sqrt(z))) + (sqrt((t + 1.0d0)) - sqrt(t))
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	return (((Math.sqrt((x + 1.0)) - Math.sqrt(x)) + ((1.0 + (y - y)) / (Math.sqrt(y) + Math.sqrt((y - -1.0))))) + (Math.sqrt((z + 1.0)) - Math.sqrt(z))) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	return (((math.sqrt((x + 1.0)) - math.sqrt(x)) + ((1.0 + (y - y)) / (math.sqrt(y) + math.sqrt((y - -1.0))))) + (math.sqrt((z + 1.0)) - math.sqrt(z))) + (math.sqrt((t + 1.0)) - math.sqrt(t))
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	return Float64(Float64(Float64(Float64(sqrt(Float64(x + 1.0)) - sqrt(x)) + Float64(Float64(1.0 + Float64(y - y)) / Float64(sqrt(y) + sqrt(Float64(y - -1.0))))) + Float64(sqrt(Float64(z + 1.0)) - sqrt(z))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)))
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp = code(x, y, z, t)
	tmp = (((sqrt((x + 1.0)) - sqrt(x)) + ((1.0 + (y - y)) / (sqrt(y) + sqrt((y - -1.0))))) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := N[(N[(N[(N[(N[Sqrt[N[(x + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 + N[(y - y), $MachinePrecision]), $MachinePrecision] / N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[N[(y - -1.0), $MachinePrecision]], $MachinePrecision]), $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]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{1 + \left(y - y\right)}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\end{array}
Derivation
  1. Initial program 91.6%

    \[\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. Step-by-step derivation
    1. lift--.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    2. flip--N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\frac{\sqrt{y + 1} \cdot \sqrt{y + 1} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. lower-/.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\frac{\sqrt{y + 1} \cdot \sqrt{y + 1} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. lift-sqrt.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\sqrt{y + 1}} \cdot \sqrt{y + 1} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. lift-sqrt.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\sqrt{y + 1} \cdot \color{blue}{\sqrt{y + 1}} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. rem-square-sqrtN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + 1\right)} - \sqrt{y} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    7. lift-sqrt.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + 1\right) - \color{blue}{\sqrt{y}} \cdot \sqrt{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    8. lift-sqrt.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + 1\right) - \sqrt{y} \cdot \color{blue}{\sqrt{y}}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    9. rem-square-sqrtN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + 1\right) - \color{blue}{y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    10. lower--.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + 1\right) - y}}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    11. lift-+.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + 1\right)} - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    12. metadata-evalN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + \color{blue}{1 \cdot 1}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    13. fp-cancel-sign-sub-invN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - \left(\mathsf{neg}\left(1\right)\right) \cdot 1\right)} - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    14. metadata-evalN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{-1} \cdot 1\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    15. metadata-evalN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{-1}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    16. metadata-evalN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{\left(\mathsf{neg}\left(1\right)\right)}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    17. lower--.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - \left(\mathsf{neg}\left(1\right)\right)\right)} - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    18. metadata-evalN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - \color{blue}{-1}\right) - y}{\sqrt{y + 1} + \sqrt{y}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    19. +-commutativeN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\color{blue}{\sqrt{y} + \sqrt{y + 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    20. lower-+.f6492.2

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\color{blue}{\sqrt{y} + \sqrt{y + 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    21. lift-+.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{\color{blue}{y + 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    22. metadata-evalN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{y + \color{blue}{1 \cdot 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    23. fp-cancel-sign-sub-invN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{\color{blue}{y - \left(\mathsf{neg}\left(1\right)\right) \cdot 1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Applied rewrites92.2%

    \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\frac{\left(y - -1\right) - y}{\sqrt{y} + \sqrt{y - -1}}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  4. Step-by-step derivation
    1. lift--.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - -1\right) - y}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    2. lift--.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y - -1\right)} - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. sub-negate1N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(y + \left(\mathsf{neg}\left(-1\right)\right)\right)} - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. metadata-evalN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\left(y + \color{blue}{1}\right) - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. +-commutativeN/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{\left(1 + y\right)} - y}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. associate--l+N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{1 + \left(y - y\right)}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    7. lower-+.f64N/A

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{1 + \left(y - y\right)}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    8. lower--.f6493.1

      \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{1 + \color{blue}{\left(y - y\right)}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  5. Applied rewrites93.1%

    \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \frac{\color{blue}{1 + \left(y - y\right)}}{\sqrt{y} + \sqrt{y - -1}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  6. Add Preprocessing

Alternative 11: 94.1% accurate, 0.9× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{x - -1} - \sqrt{x}\\ t_2 := \sqrt{y - -1} + t\_1\\ t_3 := \sqrt{t + 1} - \sqrt{t}\\ \mathbf{if}\;z \leq 90000000:\\ \;\;\;\;\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + t\_2\right) - \sqrt{y}\right) + t\_3\\ \mathbf{elif}\;z \leq 2 \cdot 10^{+27}:\\ \;\;\;\;\left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + t\_2\right) - \sqrt{y}\right) + t\_3\\ \mathbf{else}:\\ \;\;\;\;t\_1 + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (- (sqrt (- x -1.0)) (sqrt x)))
        (t_2 (+ (sqrt (- y -1.0)) t_1))
        (t_3 (- (sqrt (+ t 1.0)) (sqrt t))))
   (if (<= z 90000000.0)
     (+ (- (+ (- (sqrt (- z -1.0)) (sqrt z)) t_2) (sqrt y)) t_3)
     (if (<= z 2e+27)
       (+ (- (+ (* 0.5 (sqrt (/ 1.0 z))) t_2) (sqrt y)) t_3)
       (+
        t_1
        (+
         (/ 1.0 (+ (sqrt y) (sqrt (+ 1.0 y))))
         (- (sqrt (- t -1.0)) (sqrt t))))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((x - -1.0)) - sqrt(x);
	double t_2 = sqrt((y - -1.0)) + t_1;
	double t_3 = sqrt((t + 1.0)) - sqrt(t);
	double tmp;
	if (z <= 90000000.0) {
		tmp = (((sqrt((z - -1.0)) - sqrt(z)) + t_2) - sqrt(y)) + t_3;
	} else if (z <= 2e+27) {
		tmp = (((0.5 * sqrt((1.0 / z))) + t_2) - sqrt(y)) + t_3;
	} else {
		tmp = t_1 + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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) :: t_3
    real(8) :: tmp
    t_1 = sqrt((x - (-1.0d0))) - sqrt(x)
    t_2 = sqrt((y - (-1.0d0))) + t_1
    t_3 = sqrt((t + 1.0d0)) - sqrt(t)
    if (z <= 90000000.0d0) then
        tmp = (((sqrt((z - (-1.0d0))) - sqrt(z)) + t_2) - sqrt(y)) + t_3
    else if (z <= 2d+27) then
        tmp = (((0.5d0 * sqrt((1.0d0 / z))) + t_2) - sqrt(y)) + t_3
    else
        tmp = t_1 + ((1.0d0 / (sqrt(y) + sqrt((1.0d0 + y)))) + (sqrt((t - (-1.0d0))) - sqrt(t)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((x - -1.0)) - Math.sqrt(x);
	double t_2 = Math.sqrt((y - -1.0)) + t_1;
	double t_3 = Math.sqrt((t + 1.0)) - Math.sqrt(t);
	double tmp;
	if (z <= 90000000.0) {
		tmp = (((Math.sqrt((z - -1.0)) - Math.sqrt(z)) + t_2) - Math.sqrt(y)) + t_3;
	} else if (z <= 2e+27) {
		tmp = (((0.5 * Math.sqrt((1.0 / z))) + t_2) - Math.sqrt(y)) + t_3;
	} else {
		tmp = t_1 + ((1.0 / (Math.sqrt(y) + Math.sqrt((1.0 + y)))) + (Math.sqrt((t - -1.0)) - Math.sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((x - -1.0)) - math.sqrt(x)
	t_2 = math.sqrt((y - -1.0)) + t_1
	t_3 = math.sqrt((t + 1.0)) - math.sqrt(t)
	tmp = 0
	if z <= 90000000.0:
		tmp = (((math.sqrt((z - -1.0)) - math.sqrt(z)) + t_2) - math.sqrt(y)) + t_3
	elif z <= 2e+27:
		tmp = (((0.5 * math.sqrt((1.0 / z))) + t_2) - math.sqrt(y)) + t_3
	else:
		tmp = t_1 + ((1.0 / (math.sqrt(y) + math.sqrt((1.0 + y)))) + (math.sqrt((t - -1.0)) - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = Float64(sqrt(Float64(x - -1.0)) - sqrt(x))
	t_2 = Float64(sqrt(Float64(y - -1.0)) + t_1)
	t_3 = Float64(sqrt(Float64(t + 1.0)) - sqrt(t))
	tmp = 0.0
	if (z <= 90000000.0)
		tmp = Float64(Float64(Float64(Float64(sqrt(Float64(z - -1.0)) - sqrt(z)) + t_2) - sqrt(y)) + t_3);
	elseif (z <= 2e+27)
		tmp = Float64(Float64(Float64(Float64(0.5 * sqrt(Float64(1.0 / z))) + t_2) - sqrt(y)) + t_3);
	else
		tmp = Float64(t_1 + Float64(Float64(1.0 / Float64(sqrt(y) + sqrt(Float64(1.0 + y)))) + Float64(sqrt(Float64(t - -1.0)) - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((x - -1.0)) - sqrt(x);
	t_2 = sqrt((y - -1.0)) + t_1;
	t_3 = sqrt((t + 1.0)) - sqrt(t);
	tmp = 0.0;
	if (z <= 90000000.0)
		tmp = (((sqrt((z - -1.0)) - sqrt(z)) + t_2) - sqrt(y)) + t_3;
	elseif (z <= 2e+27)
		tmp = (((0.5 * sqrt((1.0 / z))) + t_2) - sqrt(y)) + t_3;
	else
		tmp = t_1 + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Sqrt[N[(y - -1.0), $MachinePrecision]], $MachinePrecision] + t$95$1), $MachinePrecision]}, Block[{t$95$3 = N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, 90000000.0], N[(N[(N[(N[(N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[z], $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + t$95$3), $MachinePrecision], If[LessEqual[z, 2e+27], N[(N[(N[(N[(0.5 * N[Sqrt[N[(1.0 / z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + t$95$3), $MachinePrecision], N[(t$95$1 + N[(N[(1.0 / N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{x - -1} - \sqrt{x}\\
t_2 := \sqrt{y - -1} + t\_1\\
t_3 := \sqrt{t + 1} - \sqrt{t}\\
\mathbf{if}\;z \leq 90000000:\\
\;\;\;\;\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + t\_2\right) - \sqrt{y}\right) + t\_3\\

\mathbf{elif}\;z \leq 2 \cdot 10^{+27}:\\
\;\;\;\;\left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + t\_2\right) - \sqrt{y}\right) + t\_3\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if z < 9e7

    1. Initial program 98.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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites98.2%

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

    if 9e7 < z < 2e27

    1. Initial program 75.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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites75.2%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in z around inf

      \[\leadsto \left(\left(\color{blue}{\frac{1}{2} \cdot \sqrt{\frac{1}{z}}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \left(\left(\frac{1}{2} \cdot \color{blue}{\sqrt{\frac{1}{z}}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\frac{1}{2} \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-/.f6497.1

        \[\leadsto \left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites97.1%

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

    if 2e27 < z

    1. Initial program 89.3%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites47.0%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\color{blue}{\left(\sqrt{y - -1} - \sqrt{y}\right)} + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. associate-+l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\sqrt{y - -1} - \left(\sqrt{y} - \sqrt{z - -1}\right)\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. associate--l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. lower--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \color{blue}{\left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. lower--.f6450.7

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \left(\color{blue}{\left(\sqrt{y} - \sqrt{z - -1}\right)} + \sqrt{z}\right)\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites50.7%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    6. Applied rewrites55.2%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\mathsf{fma}\left(\left(y - -1\right) - y, \left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}, \left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left({\left(z - -1\right)}^{1.5} - {z}^{1.5}\right)\right)}{\left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left(\left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}\right)}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    7. Taylor expanded in z around inf

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{1}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    8. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\color{blue}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \color{blue}{\sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{\color{blue}{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lower-+.f6491.8

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    9. Applied rewrites91.8%

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

Alternative 12: 94.1% accurate, 0.9× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{t + 1} - \sqrt{t}\\ t_2 := \sqrt{x - -1} - \sqrt{x}\\ \mathbf{if}\;z \leq 450000000:\\ \;\;\;\;\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) + t\_1\\ \mathbf{elif}\;z \leq 2 \cdot 10^{+27}:\\ \;\;\;\;\left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + t\_2\right)\right) - \sqrt{y}\right) + t\_1\\ \mathbf{else}:\\ \;\;\;\;t\_2 + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (- (sqrt (+ t 1.0)) (sqrt t)))
        (t_2 (- (sqrt (- x -1.0)) (sqrt x))))
   (if (<= z 450000000.0)
     (+
      (+
       (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y)))
       (- (sqrt (+ z 1.0)) (sqrt z)))
      t_1)
     (if (<= z 2e+27)
       (+
        (- (+ (* 0.5 (sqrt (/ 1.0 z))) (+ (sqrt (- y -1.0)) t_2)) (sqrt y))
        t_1)
       (+
        t_2
        (+
         (/ 1.0 (+ (sqrt y) (sqrt (+ 1.0 y))))
         (- (sqrt (- t -1.0)) (sqrt t))))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((t + 1.0)) - sqrt(t);
	double t_2 = sqrt((x - -1.0)) - sqrt(x);
	double tmp;
	if (z <= 450000000.0) {
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + t_1;
	} else if (z <= 2e+27) {
		tmp = (((0.5 * sqrt((1.0 / z))) + (sqrt((y - -1.0)) + t_2)) - sqrt(y)) + t_1;
	} else {
		tmp = t_2 + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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((t + 1.0d0)) - sqrt(t)
    t_2 = sqrt((x - (-1.0d0))) - sqrt(x)
    if (z <= 450000000.0d0) then
        tmp = (((sqrt((x + 1.0d0)) - sqrt(x)) + (sqrt((y + 1.0d0)) - sqrt(y))) + (sqrt((z + 1.0d0)) - sqrt(z))) + t_1
    else if (z <= 2d+27) then
        tmp = (((0.5d0 * sqrt((1.0d0 / z))) + (sqrt((y - (-1.0d0))) + t_2)) - sqrt(y)) + t_1
    else
        tmp = t_2 + ((1.0d0 / (sqrt(y) + sqrt((1.0d0 + y)))) + (sqrt((t - (-1.0d0))) - sqrt(t)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((t + 1.0)) - Math.sqrt(t);
	double t_2 = Math.sqrt((x - -1.0)) - Math.sqrt(x);
	double tmp;
	if (z <= 450000000.0) {
		tmp = (((Math.sqrt((x + 1.0)) - Math.sqrt(x)) + (Math.sqrt((y + 1.0)) - Math.sqrt(y))) + (Math.sqrt((z + 1.0)) - Math.sqrt(z))) + t_1;
	} else if (z <= 2e+27) {
		tmp = (((0.5 * Math.sqrt((1.0 / z))) + (Math.sqrt((y - -1.0)) + t_2)) - Math.sqrt(y)) + t_1;
	} else {
		tmp = t_2 + ((1.0 / (Math.sqrt(y) + Math.sqrt((1.0 + y)))) + (Math.sqrt((t - -1.0)) - Math.sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((t + 1.0)) - math.sqrt(t)
	t_2 = math.sqrt((x - -1.0)) - math.sqrt(x)
	tmp = 0
	if z <= 450000000.0:
		tmp = (((math.sqrt((x + 1.0)) - math.sqrt(x)) + (math.sqrt((y + 1.0)) - math.sqrt(y))) + (math.sqrt((z + 1.0)) - math.sqrt(z))) + t_1
	elif z <= 2e+27:
		tmp = (((0.5 * math.sqrt((1.0 / z))) + (math.sqrt((y - -1.0)) + t_2)) - math.sqrt(y)) + t_1
	else:
		tmp = t_2 + ((1.0 / (math.sqrt(y) + math.sqrt((1.0 + y)))) + (math.sqrt((t - -1.0)) - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = Float64(sqrt(Float64(t + 1.0)) - sqrt(t))
	t_2 = Float64(sqrt(Float64(x - -1.0)) - sqrt(x))
	tmp = 0.0
	if (z <= 450000000.0)
		tmp = 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))) + t_1);
	elseif (z <= 2e+27)
		tmp = Float64(Float64(Float64(Float64(0.5 * sqrt(Float64(1.0 / z))) + Float64(sqrt(Float64(y - -1.0)) + t_2)) - sqrt(y)) + t_1);
	else
		tmp = Float64(t_2 + Float64(Float64(1.0 / Float64(sqrt(y) + sqrt(Float64(1.0 + y)))) + Float64(sqrt(Float64(t - -1.0)) - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((t + 1.0)) - sqrt(t);
	t_2 = sqrt((x - -1.0)) - sqrt(x);
	tmp = 0.0;
	if (z <= 450000000.0)
		tmp = (((sqrt((x + 1.0)) - sqrt(x)) + (sqrt((y + 1.0)) - sqrt(y))) + (sqrt((z + 1.0)) - sqrt(z))) + t_1;
	elseif (z <= 2e+27)
		tmp = (((0.5 * sqrt((1.0 / z))) + (sqrt((y - -1.0)) + t_2)) - sqrt(y)) + t_1;
	else
		tmp = t_2 + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, 450000000.0], 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] + t$95$1), $MachinePrecision], If[LessEqual[z, 2e+27], N[(N[(N[(N[(0.5 * N[Sqrt[N[(1.0 / z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(y - -1.0), $MachinePrecision]], $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + t$95$1), $MachinePrecision], N[(t$95$2 + N[(N[(1.0 / N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{t + 1} - \sqrt{t}\\
t_2 := \sqrt{x - -1} - \sqrt{x}\\
\mathbf{if}\;z \leq 450000000:\\
\;\;\;\;\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) + t\_1\\

\mathbf{elif}\;z \leq 2 \cdot 10^{+27}:\\
\;\;\;\;\left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + t\_2\right)\right) - \sqrt{y}\right) + t\_1\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if z < 4.5e8

    1. Initial program 98.1%

      \[\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) \]

    if 4.5e8 < z < 2e27

    1. Initial program 75.0%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites75.0%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in z around inf

      \[\leadsto \left(\left(\color{blue}{\frac{1}{2} \cdot \sqrt{\frac{1}{z}}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \left(\left(\frac{1}{2} \cdot \color{blue}{\sqrt{\frac{1}{z}}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\frac{1}{2} \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-/.f6497.3

        \[\leadsto \left(\left(0.5 \cdot \sqrt{\frac{1}{z}} + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites97.3%

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

    if 2e27 < z

    1. Initial program 89.3%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites47.0%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\color{blue}{\left(\sqrt{y - -1} - \sqrt{y}\right)} + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. associate-+l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\sqrt{y - -1} - \left(\sqrt{y} - \sqrt{z - -1}\right)\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. associate--l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. lower--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \color{blue}{\left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. lower--.f6450.7

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \left(\color{blue}{\left(\sqrt{y} - \sqrt{z - -1}\right)} + \sqrt{z}\right)\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites50.7%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    6. Applied rewrites55.2%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\mathsf{fma}\left(\left(y - -1\right) - y, \left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}, \left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left({\left(z - -1\right)}^{1.5} - {z}^{1.5}\right)\right)}{\left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left(\left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}\right)}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    7. Taylor expanded in z around inf

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{1}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    8. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\color{blue}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \color{blue}{\sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{\color{blue}{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lower-+.f6491.8

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    9. Applied rewrites91.8%

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

Alternative 13: 93.1% accurate, 0.9× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} \mathbf{if}\;z \leq 3.85 \cdot 10^{+21}:\\ \;\;\;\;\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)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (if (<= z 3.85e+21)
   (+
    (+
     (+ (- (sqrt (+ x 1.0)) (sqrt x)) (- (sqrt (+ y 1.0)) (sqrt y)))
     (- (sqrt (+ z 1.0)) (sqrt z)))
    (- (sqrt (+ t 1.0)) (sqrt t)))
   (+
    (- (sqrt (- x -1.0)) (sqrt x))
    (+ (/ 1.0 (+ (sqrt y) (sqrt (+ 1.0 y)))) (- (sqrt (- t -1.0)) (sqrt t))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double tmp;
	if (z <= 3.85e+21) {
		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));
	} else {
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: tmp
    if (z <= 3.85d+21) then
        tmp = (((sqrt((x + 1.0d0)) - sqrt(x)) + (sqrt((y + 1.0d0)) - sqrt(y))) + (sqrt((z + 1.0d0)) - sqrt(z))) + (sqrt((t + 1.0d0)) - sqrt(t))
    else
        tmp = (sqrt((x - (-1.0d0))) - sqrt(x)) + ((1.0d0 / (sqrt(y) + sqrt((1.0d0 + y)))) + (sqrt((t - (-1.0d0))) - sqrt(t)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (z <= 3.85e+21) {
		tmp = (((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));
	} else {
		tmp = (Math.sqrt((x - -1.0)) - Math.sqrt(x)) + ((1.0 / (Math.sqrt(y) + Math.sqrt((1.0 + y)))) + (Math.sqrt((t - -1.0)) - Math.sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	tmp = 0
	if z <= 3.85e+21:
		tmp = (((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))
	else:
		tmp = (math.sqrt((x - -1.0)) - math.sqrt(x)) + ((1.0 / (math.sqrt(y) + math.sqrt((1.0 + y)))) + (math.sqrt((t - -1.0)) - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	tmp = 0.0
	if (z <= 3.85e+21)
		tmp = 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)));
	else
		tmp = Float64(Float64(sqrt(Float64(x - -1.0)) - sqrt(x)) + Float64(Float64(1.0 / Float64(sqrt(y) + sqrt(Float64(1.0 + y)))) + Float64(sqrt(Float64(t - -1.0)) - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (z <= 3.85e+21)
		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));
	else
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + sqrt((1.0 + y)))) + (sqrt((t - -1.0)) - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := If[LessEqual[z, 3.85e+21], 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], N[(N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 / N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
\mathbf{if}\;z \leq 3.85 \cdot 10^{+21}:\\
\;\;\;\;\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)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if z < 3.85e21

    1. Initial program 95.8%

      \[\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) \]

    if 3.85e21 < z

    1. Initial program 89.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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites47.6%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\color{blue}{\left(\sqrt{y - -1} - \sqrt{y}\right)} + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. associate-+l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\sqrt{y - -1} - \left(\sqrt{y} - \sqrt{z - -1}\right)\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. associate--l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. lower--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \color{blue}{\left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. lower--.f6451.2

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \left(\color{blue}{\left(\sqrt{y} - \sqrt{z - -1}\right)} + \sqrt{z}\right)\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites51.2%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    6. Applied rewrites55.8%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\mathsf{fma}\left(\left(y - -1\right) - y, \left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}, \left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left({\left(z - -1\right)}^{1.5} - {z}^{1.5}\right)\right)}{\left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left(\left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}\right)}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    7. Taylor expanded in z around inf

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{1}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    8. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\color{blue}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \color{blue}{\sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{\color{blue}{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lower-+.f6491.6

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    9. Applied rewrites91.6%

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

Alternative 14: 93.0% accurate, 1.1× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{1 + y}\\ t_2 := \sqrt{1 + x}\\ \mathbf{if}\;z \leq 2.3 \cdot 10^{-13}:\\ \;\;\;\;\left(\left(\left(1 + \left(t\_2 + t\_1\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\ \mathbf{elif}\;z \leq 1.6 \cdot 10^{+15}:\\ \;\;\;\;\left(t\_2 + \left(t\_1 + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + t\_1} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (+ 1.0 y))) (t_2 (sqrt (+ 1.0 x))))
   (if (<= z 2.3e-13)
     (+
      (- (- (+ 1.0 (+ t_2 t_1)) (+ (sqrt x) (sqrt z))) (sqrt y))
      (- (sqrt (+ t 1.0)) (sqrt t)))
     (if (<= z 1.6e+15)
       (- (+ t_2 (+ t_1 (sqrt (+ 1.0 z)))) (+ (sqrt x) (+ (sqrt y) (sqrt z))))
       (+
        (- (sqrt (- x -1.0)) (sqrt x))
        (+ (/ 1.0 (+ (sqrt y) t_1)) (- (sqrt (- t -1.0)) (sqrt t))))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((1.0 + y));
	double t_2 = sqrt((1.0 + x));
	double tmp;
	if (z <= 2.3e-13) {
		tmp = (((1.0 + (t_2 + t_1)) - (sqrt(x) + sqrt(z))) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
	} else if (z <= 1.6e+15) {
		tmp = (t_2 + (t_1 + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	} else {
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + t_1)) + (sqrt((t - -1.0)) - sqrt(t)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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 + y))
    t_2 = sqrt((1.0d0 + x))
    if (z <= 2.3d-13) then
        tmp = (((1.0d0 + (t_2 + t_1)) - (sqrt(x) + sqrt(z))) - sqrt(y)) + (sqrt((t + 1.0d0)) - sqrt(t))
    else if (z <= 1.6d+15) then
        tmp = (t_2 + (t_1 + sqrt((1.0d0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)))
    else
        tmp = (sqrt((x - (-1.0d0))) - sqrt(x)) + ((1.0d0 / (sqrt(y) + t_1)) + (sqrt((t - (-1.0d0))) - sqrt(t)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((1.0 + y));
	double t_2 = Math.sqrt((1.0 + x));
	double tmp;
	if (z <= 2.3e-13) {
		tmp = (((1.0 + (t_2 + t_1)) - (Math.sqrt(x) + Math.sqrt(z))) - Math.sqrt(y)) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
	} else if (z <= 1.6e+15) {
		tmp = (t_2 + (t_1 + Math.sqrt((1.0 + z)))) - (Math.sqrt(x) + (Math.sqrt(y) + Math.sqrt(z)));
	} else {
		tmp = (Math.sqrt((x - -1.0)) - Math.sqrt(x)) + ((1.0 / (Math.sqrt(y) + t_1)) + (Math.sqrt((t - -1.0)) - Math.sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((1.0 + y))
	t_2 = math.sqrt((1.0 + x))
	tmp = 0
	if z <= 2.3e-13:
		tmp = (((1.0 + (t_2 + t_1)) - (math.sqrt(x) + math.sqrt(z))) - math.sqrt(y)) + (math.sqrt((t + 1.0)) - math.sqrt(t))
	elif z <= 1.6e+15:
		tmp = (t_2 + (t_1 + math.sqrt((1.0 + z)))) - (math.sqrt(x) + (math.sqrt(y) + math.sqrt(z)))
	else:
		tmp = (math.sqrt((x - -1.0)) - math.sqrt(x)) + ((1.0 / (math.sqrt(y) + t_1)) + (math.sqrt((t - -1.0)) - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = sqrt(Float64(1.0 + y))
	t_2 = sqrt(Float64(1.0 + x))
	tmp = 0.0
	if (z <= 2.3e-13)
		tmp = Float64(Float64(Float64(Float64(1.0 + Float64(t_2 + t_1)) - Float64(sqrt(x) + sqrt(z))) - sqrt(y)) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)));
	elseif (z <= 1.6e+15)
		tmp = Float64(Float64(t_2 + Float64(t_1 + sqrt(Float64(1.0 + z)))) - Float64(sqrt(x) + Float64(sqrt(y) + sqrt(z))));
	else
		tmp = Float64(Float64(sqrt(Float64(x - -1.0)) - sqrt(x)) + Float64(Float64(1.0 / Float64(sqrt(y) + t_1)) + Float64(sqrt(Float64(t - -1.0)) - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((1.0 + y));
	t_2 = sqrt((1.0 + x));
	tmp = 0.0;
	if (z <= 2.3e-13)
		tmp = (((1.0 + (t_2 + t_1)) - (sqrt(x) + sqrt(z))) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
	elseif (z <= 1.6e+15)
		tmp = (t_2 + (t_1 + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	else
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + t_1)) + (sqrt((t - -1.0)) - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[z, 2.3e-13], N[(N[(N[(N[(1.0 + N[(t$95$2 + t$95$1), $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[x], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 1.6e+15], N[(N[(t$95$2 + N[(t$95$1 + N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[x], $MachinePrecision] + N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 / N[(N[Sqrt[y], $MachinePrecision] + t$95$1), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{1 + y}\\
t_2 := \sqrt{1 + x}\\
\mathbf{if}\;z \leq 2.3 \cdot 10^{-13}:\\
\;\;\;\;\left(\left(\left(1 + \left(t\_2 + t\_1\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\

\mathbf{elif}\;z \leq 1.6 \cdot 10^{+15}:\\
\;\;\;\;\left(t\_2 + \left(t\_1 + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if z < 2.29999999999999979e-13

    1. Initial program 98.6%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites98.6%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in z around 0

      \[\leadsto \left(\color{blue}{\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right)} - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \color{blue}{\left(\sqrt{x} + \sqrt{z}\right)}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\color{blue}{\sqrt{x}} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-+.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. lower-+.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      8. lower-+.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \color{blue}{\sqrt{z}}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      9. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{\color{blue}{z}}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      10. lower-sqrt.f6498.6

        \[\leadsto \left(\left(\left(1 + \left(\sqrt{1 + x} + \sqrt{1 + y}\right)\right) - \left(\sqrt{x} + \sqrt{z}\right)\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites98.6%

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

    if 2.29999999999999979e-13 < z < 1.6e15

    1. Initial program 90.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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites90.5%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in t around inf

      \[\leadsto \color{blue}{\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \color{blue}{\left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\color{blue}{\sqrt{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{\color{blue}{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      4. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      5. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      6. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      8. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      9. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      10. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \color{blue}{\left(\sqrt{y} + \sqrt{z}\right)}\right) \]
      11. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\color{blue}{\sqrt{y}} + \sqrt{z}\right)\right) \]
      12. lower-+.f64N/A

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

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

    if 1.6e15 < z

    1. Initial program 88.7%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites48.1%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\color{blue}{\left(\sqrt{y - -1} - \sqrt{y}\right)} + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. associate-+l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\sqrt{y - -1} - \left(\sqrt{y} - \sqrt{z - -1}\right)\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. associate--l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. lower--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \color{blue}{\left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. lower--.f6451.6

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \left(\color{blue}{\left(\sqrt{y} - \sqrt{z - -1}\right)} + \sqrt{z}\right)\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites51.6%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    6. Applied rewrites56.1%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\mathsf{fma}\left(\left(y - -1\right) - y, \left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}, \left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left({\left(z - -1\right)}^{1.5} - {z}^{1.5}\right)\right)}{\left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left(\left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}\right)}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    7. Taylor expanded in z around inf

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{1}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    8. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\color{blue}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \color{blue}{\sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{\color{blue}{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lower-+.f6491.1

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    9. Applied rewrites91.1%

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

Alternative 15: 87.4% accurate, 1.1× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{1 + y}\\ \mathbf{if}\;z \leq 1.6 \cdot 10^{+15}:\\ \;\;\;\;\left(\sqrt{1 + x} + \left(t\_1 + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + t\_1} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (+ 1.0 y))))
   (if (<= z 1.6e+15)
     (-
      (+ (sqrt (+ 1.0 x)) (+ t_1 (sqrt (+ 1.0 z))))
      (+ (sqrt x) (+ (sqrt y) (sqrt z))))
     (+
      (- (sqrt (- x -1.0)) (sqrt x))
      (+ (/ 1.0 (+ (sqrt y) t_1)) (- (sqrt (- t -1.0)) (sqrt t)))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((1.0 + y));
	double tmp;
	if (z <= 1.6e+15) {
		tmp = (sqrt((1.0 + x)) + (t_1 + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	} else {
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + t_1)) + (sqrt((t - -1.0)) - sqrt(t)));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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) :: tmp
    t_1 = sqrt((1.0d0 + y))
    if (z <= 1.6d+15) then
        tmp = (sqrt((1.0d0 + x)) + (t_1 + sqrt((1.0d0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)))
    else
        tmp = (sqrt((x - (-1.0d0))) - sqrt(x)) + ((1.0d0 / (sqrt(y) + t_1)) + (sqrt((t - (-1.0d0))) - sqrt(t)))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((1.0 + y));
	double tmp;
	if (z <= 1.6e+15) {
		tmp = (Math.sqrt((1.0 + x)) + (t_1 + Math.sqrt((1.0 + z)))) - (Math.sqrt(x) + (Math.sqrt(y) + Math.sqrt(z)));
	} else {
		tmp = (Math.sqrt((x - -1.0)) - Math.sqrt(x)) + ((1.0 / (Math.sqrt(y) + t_1)) + (Math.sqrt((t - -1.0)) - Math.sqrt(t)));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((1.0 + y))
	tmp = 0
	if z <= 1.6e+15:
		tmp = (math.sqrt((1.0 + x)) + (t_1 + math.sqrt((1.0 + z)))) - (math.sqrt(x) + (math.sqrt(y) + math.sqrt(z)))
	else:
		tmp = (math.sqrt((x - -1.0)) - math.sqrt(x)) + ((1.0 / (math.sqrt(y) + t_1)) + (math.sqrt((t - -1.0)) - math.sqrt(t)))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = sqrt(Float64(1.0 + y))
	tmp = 0.0
	if (z <= 1.6e+15)
		tmp = Float64(Float64(sqrt(Float64(1.0 + x)) + Float64(t_1 + sqrt(Float64(1.0 + z)))) - Float64(sqrt(x) + Float64(sqrt(y) + sqrt(z))));
	else
		tmp = Float64(Float64(sqrt(Float64(x - -1.0)) - sqrt(x)) + Float64(Float64(1.0 / Float64(sqrt(y) + t_1)) + Float64(sqrt(Float64(t - -1.0)) - sqrt(t))));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((1.0 + y));
	tmp = 0.0;
	if (z <= 1.6e+15)
		tmp = (sqrt((1.0 + x)) + (t_1 + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	else
		tmp = (sqrt((x - -1.0)) - sqrt(x)) + ((1.0 / (sqrt(y) + t_1)) + (sqrt((t - -1.0)) - sqrt(t)));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[z, 1.6e+15], N[(N[(N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision] + N[(t$95$1 + N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[x], $MachinePrecision] + N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[Sqrt[N[(x - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[x], $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 / N[(N[Sqrt[y], $MachinePrecision] + t$95$1), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{1 + y}\\
\mathbf{if}\;z \leq 1.6 \cdot 10^{+15}:\\
\;\;\;\;\left(\sqrt{1 + x} + \left(t\_1 + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if z < 1.6e15

    1. Initial program 97.1%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites97.1%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in t around inf

      \[\leadsto \color{blue}{\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \color{blue}{\left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\color{blue}{\sqrt{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{\color{blue}{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      4. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      5. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      6. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      8. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      9. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      10. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \color{blue}{\left(\sqrt{y} + \sqrt{z}\right)}\right) \]
      11. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\color{blue}{\sqrt{y}} + \sqrt{z}\right)\right) \]
      12. lower-+.f64N/A

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

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

    if 1.6e15 < z

    1. Initial program 88.7%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. lift-+.f64N/A

        \[\leadsto \color{blue}{\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) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\color{blue}{\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) \]
      4. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+l+N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
      6. lower-+.f64N/A

        \[\leadsto \color{blue}{\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\left(\left(\sqrt{y + 1} - \sqrt{y}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\right)} \]
    3. Applied rewrites48.1%

      \[\leadsto \color{blue}{\left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right)} \]
    4. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right) - \sqrt{z}\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\left(\sqrt{y - -1} - \sqrt{y}\right) + \sqrt{z - -1}\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lift--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\left(\color{blue}{\left(\sqrt{y - -1} - \sqrt{y}\right)} + \sqrt{z - -1}\right) - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. associate-+l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\color{blue}{\left(\sqrt{y - -1} - \left(\sqrt{y} - \sqrt{z - -1}\right)\right)} - \sqrt{z}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. associate--l-N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      6. lower--.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \color{blue}{\left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)}\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      8. lower--.f6451.6

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\left(\sqrt{y - -1} - \left(\color{blue}{\left(\sqrt{y} - \sqrt{z - -1}\right)} + \sqrt{z}\right)\right) + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    5. Applied rewrites51.6%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\left(\sqrt{y - -1} - \left(\left(\sqrt{y} - \sqrt{z - -1}\right) + \sqrt{z}\right)\right)} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    6. Applied rewrites56.1%

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\mathsf{fma}\left(\left(y - -1\right) - y, \left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}, \left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left({\left(z - -1\right)}^{1.5} - {z}^{1.5}\right)\right)}{\left(\sqrt{y - -1} + \sqrt{y}\right) \cdot \left(\left(\left(z - -1\right) + z\right) + \sqrt{\left(z - -1\right) \cdot z}\right)}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    7. Taylor expanded in z around inf

      \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\color{blue}{\frac{1}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    8. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\color{blue}{\sqrt{y} + \sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \color{blue}{\sqrt{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{\color{blue}{1 + y}}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      4. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
      5. lower-+.f6491.1

        \[\leadsto \left(\sqrt{x - -1} - \sqrt{x}\right) + \left(\frac{1}{\sqrt{y} + \sqrt{1 + y}} + \left(\sqrt{t - -1} - \sqrt{t}\right)\right) \]
    9. Applied rewrites91.1%

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

Alternative 16: 59.1% accurate, 1.3× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \begin{array}{l} t_1 := \sqrt{1 + x}\\ \mathbf{if}\;z \leq 2.6 \cdot 10^{+31}:\\ \;\;\;\;\left(t\_1 + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(t\_1 - \sqrt{x}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\ \end{array} \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (sqrt (+ 1.0 x))))
   (if (<= z 2.6e+31)
     (-
      (+ t_1 (+ (sqrt (+ 1.0 y)) (sqrt (+ 1.0 z))))
      (+ (sqrt x) (+ (sqrt y) (sqrt z))))
     (+
      (+ (- t_1 (sqrt x)) (- (sqrt (+ z 1.0)) (sqrt z)))
      (- (sqrt (+ t 1.0)) (sqrt t))))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	double t_1 = sqrt((1.0 + x));
	double tmp;
	if (z <= 2.6e+31) {
		tmp = (t_1 + (sqrt((1.0 + y)) + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	} else {
		tmp = ((t_1 - sqrt(x)) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
	}
	return tmp;
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    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) :: tmp
    t_1 = sqrt((1.0d0 + x))
    if (z <= 2.6d+31) then
        tmp = (t_1 + (sqrt((1.0d0 + y)) + sqrt((1.0d0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)))
    else
        tmp = ((t_1 - sqrt(x)) + (sqrt((z + 1.0d0)) - sqrt(z))) + (sqrt((t + 1.0d0)) - sqrt(t))
    end if
    code = tmp
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.sqrt((1.0 + x));
	double tmp;
	if (z <= 2.6e+31) {
		tmp = (t_1 + (Math.sqrt((1.0 + y)) + Math.sqrt((1.0 + z)))) - (Math.sqrt(x) + (Math.sqrt(y) + Math.sqrt(z)));
	} else {
		tmp = ((t_1 - Math.sqrt(x)) + (Math.sqrt((z + 1.0)) - Math.sqrt(z))) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
	}
	return tmp;
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	t_1 = math.sqrt((1.0 + x))
	tmp = 0
	if z <= 2.6e+31:
		tmp = (t_1 + (math.sqrt((1.0 + y)) + math.sqrt((1.0 + z)))) - (math.sqrt(x) + (math.sqrt(y) + math.sqrt(z)))
	else:
		tmp = ((t_1 - math.sqrt(x)) + (math.sqrt((z + 1.0)) - math.sqrt(z))) + (math.sqrt((t + 1.0)) - math.sqrt(t))
	return tmp
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	t_1 = sqrt(Float64(1.0 + x))
	tmp = 0.0
	if (z <= 2.6e+31)
		tmp = Float64(Float64(t_1 + Float64(sqrt(Float64(1.0 + y)) + sqrt(Float64(1.0 + z)))) - Float64(sqrt(x) + Float64(sqrt(y) + sqrt(z))));
	else
		tmp = Float64(Float64(Float64(t_1 - sqrt(x)) + Float64(sqrt(Float64(z + 1.0)) - sqrt(z))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)));
	end
	return tmp
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp_2 = code(x, y, z, t)
	t_1 = sqrt((1.0 + x));
	tmp = 0.0;
	if (z <= 2.6e+31)
		tmp = (t_1 + (sqrt((1.0 + y)) + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
	else
		tmp = ((t_1 - sqrt(x)) + (sqrt((z + 1.0)) - sqrt(z))) + (sqrt((t + 1.0)) - sqrt(t));
	end
	tmp_2 = tmp;
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := Block[{t$95$1 = N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[z, 2.6e+31], N[(N[(t$95$1 + N[(N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision] + N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[x], $MachinePrecision] + N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(t$95$1 - N[Sqrt[x], $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]]]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\begin{array}{l}
t_1 := \sqrt{1 + x}\\
\mathbf{if}\;z \leq 2.6 \cdot 10^{+31}:\\
\;\;\;\;\left(t\_1 + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(t\_1 - \sqrt{x}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if z < 2.6e31

    1. Initial program 95.4%

      \[\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. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{\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. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lift-+.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lift--.f64N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. associate-+r-N/A

        \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. associate-+r-N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites95.3%

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. Taylor expanded in t around inf

      \[\leadsto \color{blue}{\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \color{blue}{\left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
      2. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\color{blue}{\sqrt{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      3. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{\color{blue}{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      4. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      5. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      6. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      7. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      8. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      9. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
      10. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \color{blue}{\left(\sqrt{y} + \sqrt{z}\right)}\right) \]
      11. lower-sqrt.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\color{blue}{\sqrt{y}} + \sqrt{z}\right)\right) \]
      12. lower-+.f64N/A

        \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \color{blue}{\sqrt{z}}\right)\right) \]
    6. Applied rewrites80.0%

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

    if 2.6e31 < z

    1. Initial program 89.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. Step-by-step derivation
      1. lift-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\color{blue}{\sqrt{y + 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lift-+.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\color{blue}{y + 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. +-commutativeN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\color{blue}{1 + y}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. flip-+N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\color{blue}{\frac{1 \cdot 1 - y \cdot y}{1 - y}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      5. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\frac{1 \cdot 1 - y \cdot y}{\color{blue}{1 \cdot 1} - y}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      6. *-rgt-identityN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{\frac{1 \cdot 1 - y \cdot y}{1 \cdot 1 - \color{blue}{y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      7. sqrt-divN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\sqrt{1 \cdot 1 - y \cdot y}}{\sqrt{1 \cdot 1 - y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      8. lower-/.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\color{blue}{\frac{\sqrt{1 \cdot 1 - y \cdot y}}{\sqrt{1 \cdot 1 - y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      9. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\color{blue}{\sqrt{1 \cdot 1 - y \cdot y}}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      10. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{\color{blue}{1} - y \cdot y}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      11. lower--.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{\color{blue}{1 - y \cdot y}}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      12. lower-*.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - \color{blue}{y \cdot y}}}{\sqrt{1 \cdot 1 - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      13. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\color{blue}{\sqrt{1 \cdot 1 - y \cdot 1}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      14. metadata-evalN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\sqrt{\color{blue}{1} - y \cdot 1}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      15. *-rgt-identityN/A

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\sqrt{1 - \color{blue}{y}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      16. lower--.f6450.2

        \[\leadsto \left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\frac{\sqrt{1 - y \cdot y}}{\sqrt{\color{blue}{1 - y}}} - \sqrt{y}\right)\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. Applied rewrites50.2%

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

      \[\leadsto \left(\color{blue}{\left(\sqrt{1 + x} - \sqrt{x}\right)} + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. Step-by-step derivation
      1. lower--.f64N/A

        \[\leadsto \left(\left(\sqrt{1 + x} - \color{blue}{\sqrt{x}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \left(\left(\sqrt{1 + x} - \sqrt{\color{blue}{x}}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      3. lower-+.f64N/A

        \[\leadsto \left(\left(\sqrt{1 + x} - \sqrt{x}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
      4. lower-sqrt.f6446.3

        \[\leadsto \left(\left(\sqrt{1 + x} - \sqrt{x}\right) + \left(\sqrt{z + 1} - \sqrt{z}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. Applied rewrites46.3%

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

Alternative 17: 32.7% accurate, 1.3× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (-
  (+ (sqrt (+ 1.0 x)) (+ (sqrt (+ 1.0 y)) (sqrt (+ 1.0 z))))
  (+ (sqrt x) (+ (sqrt y) (sqrt z)))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	return (sqrt((1.0 + x)) + (sqrt((1.0 + y)) + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = (sqrt((1.0d0 + x)) + (sqrt((1.0d0 + y)) + sqrt((1.0d0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)))
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	return (Math.sqrt((1.0 + x)) + (Math.sqrt((1.0 + y)) + Math.sqrt((1.0 + z)))) - (Math.sqrt(x) + (Math.sqrt(y) + Math.sqrt(z)));
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	return (math.sqrt((1.0 + x)) + (math.sqrt((1.0 + y)) + math.sqrt((1.0 + z)))) - (math.sqrt(x) + (math.sqrt(y) + math.sqrt(z)))
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	return Float64(Float64(sqrt(Float64(1.0 + x)) + Float64(sqrt(Float64(1.0 + y)) + sqrt(Float64(1.0 + z)))) - Float64(sqrt(x) + Float64(sqrt(y) + sqrt(z))))
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp = code(x, y, z, t)
	tmp = (sqrt((1.0 + x)) + (sqrt((1.0 + y)) + sqrt((1.0 + z)))) - (sqrt(x) + (sqrt(y) + sqrt(z)));
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := N[(N[(N[Sqrt[N[(1.0 + x), $MachinePrecision]], $MachinePrecision] + N[(N[Sqrt[N[(1.0 + y), $MachinePrecision]], $MachinePrecision] + N[Sqrt[N[(1.0 + z), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[Sqrt[x], $MachinePrecision] + N[(N[Sqrt[y], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)
\end{array}
Derivation
  1. Initial program 91.6%

    \[\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. Step-by-step derivation
    1. lift-+.f64N/A

      \[\leadsto \color{blue}{\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. +-commutativeN/A

      \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. lift-+.f64N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. lift--.f64N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. associate-+r-N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. associate-+r-N/A

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    7. lower--.f64N/A

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Applied rewrites73.7%

    \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  4. Taylor expanded in t around inf

    \[\leadsto \color{blue}{\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
  5. Step-by-step derivation
    1. lower--.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \color{blue}{\left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
    2. lower-+.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\color{blue}{\sqrt{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    3. lower-sqrt.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{\color{blue}{x}} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    4. lower-+.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    5. lower-+.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    6. lower-sqrt.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    7. lower-+.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    8. lower-sqrt.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    9. lower-+.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right) \]
    10. lower-+.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \color{blue}{\left(\sqrt{y} + \sqrt{z}\right)}\right) \]
    11. lower-sqrt.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\color{blue}{\sqrt{y}} + \sqrt{z}\right)\right) \]
    12. lower-+.f64N/A

      \[\leadsto \left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \color{blue}{\sqrt{z}}\right)\right) \]
  6. Applied rewrites32.7%

    \[\leadsto \color{blue}{\left(\sqrt{1 + x} + \left(\sqrt{1 + y} + \sqrt{1 + z}\right)\right) - \left(\sqrt{x} + \left(\sqrt{y} + \sqrt{z}\right)\right)} \]
  7. Add Preprocessing

Alternative 18: 8.1% accurate, 1.4× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \sqrt{y}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (+
  (- (+ (- (sqrt (- z -1.0)) (sqrt z)) (sqrt y)) (sqrt y))
  (- (sqrt (+ t 1.0)) (sqrt t))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	return (((sqrt((z - -1.0)) - sqrt(z)) + sqrt(y)) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = (((sqrt((z - (-1.0d0))) - sqrt(z)) + sqrt(y)) - sqrt(y)) + (sqrt((t + 1.0d0)) - sqrt(t))
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	return (((Math.sqrt((z - -1.0)) - Math.sqrt(z)) + Math.sqrt(y)) - Math.sqrt(y)) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	return (((math.sqrt((z - -1.0)) - math.sqrt(z)) + math.sqrt(y)) - math.sqrt(y)) + (math.sqrt((t + 1.0)) - math.sqrt(t))
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	return Float64(Float64(Float64(Float64(sqrt(Float64(z - -1.0)) - sqrt(z)) + sqrt(y)) - sqrt(y)) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)))
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp = code(x, y, z, t)
	tmp = (((sqrt((z - -1.0)) - sqrt(z)) + sqrt(y)) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := N[(N[(N[(N[(N[Sqrt[N[(z - -1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[z], $MachinePrecision]), $MachinePrecision] + N[Sqrt[y], $MachinePrecision]), $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \sqrt{y}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\end{array}
Derivation
  1. Initial program 91.6%

    \[\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. Step-by-step derivation
    1. lift-+.f64N/A

      \[\leadsto \color{blue}{\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. +-commutativeN/A

      \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. lift-+.f64N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. lift--.f64N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. associate-+r-N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. associate-+r-N/A

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    7. lower--.f64N/A

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Applied rewrites73.7%

    \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  4. Taylor expanded in y around inf

    \[\leadsto \left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \color{blue}{\sqrt{y}}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  5. Step-by-step derivation
    1. lower-sqrt.f648.1

      \[\leadsto \left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \sqrt{y}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  6. Applied rewrites8.1%

    \[\leadsto \left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \color{blue}{\sqrt{y}}\right) - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  7. Add Preprocessing

Alternative 19: 4.2% accurate, 2.2× speedup?

\[\begin{array}{l} [x, y, z, t] = \mathsf{sort}([x, y, z, t])\\ \\ \left(\sqrt{y} - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \end{array} \]
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
(FPCore (x y z t)
 :precision binary64
 (+ (- (sqrt y) (sqrt y)) (- (sqrt (+ t 1.0)) (sqrt t))))
assert(x < y && y < z && z < t);
double code(double x, double y, double z, double t) {
	return (sqrt(y) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
}
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = (sqrt(y) - sqrt(y)) + (sqrt((t + 1.0d0)) - sqrt(t))
end function
assert x < y && y < z && z < t;
public static double code(double x, double y, double z, double t) {
	return (Math.sqrt(y) - Math.sqrt(y)) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
}
[x, y, z, t] = sort([x, y, z, t])
def code(x, y, z, t):
	return (math.sqrt(y) - math.sqrt(y)) + (math.sqrt((t + 1.0)) - math.sqrt(t))
x, y, z, t = sort([x, y, z, t])
function code(x, y, z, t)
	return Float64(Float64(sqrt(y) - sqrt(y)) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)))
end
x, y, z, t = num2cell(sort([x, y, z, t])){:}
function tmp = code(x, y, z, t)
	tmp = (sqrt(y) - sqrt(y)) + (sqrt((t + 1.0)) - sqrt(t));
end
NOTE: x, y, z, and t should be sorted in increasing order before calling this function.
code[x_, y_, z_, t_] := N[(N[(N[Sqrt[y], $MachinePrecision] - N[Sqrt[y], $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
[x, y, z, t] = \mathsf{sort}([x, y, z, t])\\
\\
\left(\sqrt{y} - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right)
\end{array}
Derivation
  1. Initial program 91.6%

    \[\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. Step-by-step derivation
    1. lift-+.f64N/A

      \[\leadsto \color{blue}{\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. +-commutativeN/A

      \[\leadsto \color{blue}{\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    3. lift-+.f64N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \left(\sqrt{y + 1} - \sqrt{y}\right)\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    4. lift--.f64N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \color{blue}{\left(\sqrt{y + 1} - \sqrt{y}\right)}\right)\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    5. associate-+r-N/A

      \[\leadsto \left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \color{blue}{\left(\left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right) - \sqrt{y}\right)}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    6. associate-+r-N/A

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
    7. lower--.f64N/A

      \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z + 1} - \sqrt{z}\right) + \left(\left(\sqrt{x + 1} - \sqrt{x}\right) + \sqrt{y + 1}\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  3. Applied rewrites73.7%

    \[\leadsto \color{blue}{\left(\left(\left(\sqrt{z - -1} - \sqrt{z}\right) + \left(\sqrt{y - -1} + \left(\sqrt{x - -1} - \sqrt{x}\right)\right)\right) - \sqrt{y}\right)} + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  4. Taylor expanded in y around inf

    \[\leadsto \left(\color{blue}{\sqrt{y}} - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  5. Step-by-step derivation
    1. lower-sqrt.f644.2

      \[\leadsto \left(\sqrt{y} - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  6. Applied rewrites4.2%

    \[\leadsto \left(\color{blue}{\sqrt{y}} - \sqrt{y}\right) + \left(\sqrt{t + 1} - \sqrt{t}\right) \]
  7. Add Preprocessing

Developer Target 1: 99.4% accurate, 0.8× speedup?

\[\begin{array}{l} \\ \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) \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (+
  (+
   (+
    (/ 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))))
double code(double x, double y, double z, double t) {
	return (((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));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = (((1.0d0 / (sqrt((x + 1.0d0)) + sqrt(x))) + (1.0d0 / (sqrt((y + 1.0d0)) + sqrt(y)))) + (1.0d0 / (sqrt((z + 1.0d0)) + sqrt(z)))) + (sqrt((t + 1.0d0)) - sqrt(t))
end function
public static double code(double x, double y, double z, double t) {
	return (((1.0 / (Math.sqrt((x + 1.0)) + Math.sqrt(x))) + (1.0 / (Math.sqrt((y + 1.0)) + Math.sqrt(y)))) + (1.0 / (Math.sqrt((z + 1.0)) + Math.sqrt(z)))) + (Math.sqrt((t + 1.0)) - Math.sqrt(t));
}
def code(x, y, z, t):
	return (((1.0 / (math.sqrt((x + 1.0)) + math.sqrt(x))) + (1.0 / (math.sqrt((y + 1.0)) + math.sqrt(y)))) + (1.0 / (math.sqrt((z + 1.0)) + math.sqrt(z)))) + (math.sqrt((t + 1.0)) - math.sqrt(t))
function code(x, y, z, t)
	return Float64(Float64(Float64(Float64(1.0 / Float64(sqrt(Float64(x + 1.0)) + sqrt(x))) + Float64(1.0 / Float64(sqrt(Float64(y + 1.0)) + sqrt(y)))) + Float64(1.0 / Float64(sqrt(Float64(z + 1.0)) + sqrt(z)))) + Float64(sqrt(Float64(t + 1.0)) - sqrt(t)))
end
function tmp = code(x, y, z, t)
	tmp = (((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));
end
code[x_, y_, z_, t_] := N[(N[(N[(N[(1.0 / N[(N[Sqrt[N[(x + 1.0), $MachinePrecision]], $MachinePrecision] + N[Sqrt[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(1.0 / N[(N[Sqrt[N[(y + 1.0), $MachinePrecision]], $MachinePrecision] + N[Sqrt[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(1.0 / N[(N[Sqrt[N[(z + 1.0), $MachinePrecision]], $MachinePrecision] + N[Sqrt[z], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Sqrt[N[(t + 1.0), $MachinePrecision]], $MachinePrecision] - N[Sqrt[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\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)
\end{array}

Reproduce

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

  :alt
  (! :herbie-platform default (+ (+ (+ (/ 1 (+ (sqrt (+ x 1)) (sqrt x))) (/ 1 (+ (sqrt (+ y 1)) (sqrt y)))) (/ 1 (+ (sqrt (+ z 1)) (sqrt z)))) (- (sqrt (+ t 1)) (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))))