Toniolo and Linder, Equation (13)

Percentage Accurate: 49.6% → 64.3%
Time: 24.2s
Alternatives: 16
Speedup: 1.8×

Specification

?
\[\begin{array}{l} \\ \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (sqrt
  (*
   (* (* 2.0 n) U)
   (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	return sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * pow((l / Om), 2.0)) * (U - U_42_)))));
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    code = sqrt((((2.0d0 * n) * u) * ((t - (2.0d0 * ((l * l) / om))) - ((n * ((l / om) ** 2.0d0)) * (u - u_42)))))
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	return Math.sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * Math.pow((l / Om), 2.0)) * (U - U_42_)))));
}
def code(n, U, t, l, Om, U_42_):
	return math.sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * math.pow((l / Om), 2.0)) * (U - U_42_)))))
function code(n, U, t, l, Om, U_42_)
	return sqrt(Float64(Float64(Float64(2.0 * n) * U) * Float64(Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om))) - Float64(Float64(n * (Float64(l / Om) ^ 2.0)) * Float64(U - U_42_)))))
end
function tmp = code(n, U, t, l, Om, U_42_)
	tmp = sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * ((l / Om) ^ 2.0)) * (U - U_42_)))));
end
code[n_, U_, t_, l_, Om_, U$42$_] := N[Sqrt[N[(N[(N[(2.0 * n), $MachinePrecision] * U), $MachinePrecision] * N[(N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(n * N[Power[N[(l / Om), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(U - U$42$), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\end{array}

Sampling outcomes in binary64 precision:

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 16 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: 49.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (sqrt
  (*
   (* (* 2.0 n) U)
   (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	return sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * pow((l / Om), 2.0)) * (U - U_42_)))));
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    code = sqrt((((2.0d0 * n) * u) * ((t - (2.0d0 * ((l * l) / om))) - ((n * ((l / om) ** 2.0d0)) * (u - u_42)))))
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	return Math.sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * Math.pow((l / Om), 2.0)) * (U - U_42_)))));
}
def code(n, U, t, l, Om, U_42_):
	return math.sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * math.pow((l / Om), 2.0)) * (U - U_42_)))))
function code(n, U, t, l, Om, U_42_)
	return sqrt(Float64(Float64(Float64(2.0 * n) * U) * Float64(Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om))) - Float64(Float64(n * (Float64(l / Om) ^ 2.0)) * Float64(U - U_42_)))))
end
function tmp = code(n, U, t, l, Om, U_42_)
	tmp = sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * ((l / Om) ^ 2.0)) * (U - U_42_)))));
end
code[n_, U_, t_, l_, Om_, U$42$_] := N[Sqrt[N[(N[(N[(2.0 * n), $MachinePrecision] * U), $MachinePrecision] * N[(N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(n * N[Power[N[(l / Om), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(U - U$42$), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\end{array}

Alternative 1: 64.3% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\\ \mathbf{if}\;U \leq -2 \cdot 10^{-310}:\\ \;\;\;\;\sqrt{U \cdot \left(t\_1 \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(n \cdot 2\right) \cdot \left(t + \frac{t\_1}{\frac{Om}{\ell}}\right)} \cdot \sqrt{U}\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1 (+ (/ (- U* U) (/ Om (* n l))) (* l -2.0))))
   (if (<= U -2e-310)
     (sqrt (+ (* U (* t_1 (* (/ l Om) (* n 2.0)))) (* U (* 2.0 (* n t)))))
     (* (sqrt (* (* n 2.0) (+ t (/ t_1 (/ Om l))))) (sqrt U)))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = ((U_42_ - U) / (Om / (n * l))) + (l * -2.0);
	double tmp;
	if (U <= -2e-310) {
		tmp = sqrt(((U * (t_1 * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	} else {
		tmp = sqrt(((n * 2.0) * (t + (t_1 / (Om / l))))) * sqrt(U);
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: tmp
    t_1 = ((u_42 - u) / (om / (n * l))) + (l * (-2.0d0))
    if (u <= (-2d-310)) then
        tmp = sqrt(((u * (t_1 * ((l / om) * (n * 2.0d0)))) + (u * (2.0d0 * (n * t)))))
    else
        tmp = sqrt(((n * 2.0d0) * (t + (t_1 / (om / l))))) * sqrt(u)
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = ((U_42_ - U) / (Om / (n * l))) + (l * -2.0);
	double tmp;
	if (U <= -2e-310) {
		tmp = Math.sqrt(((U * (t_1 * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	} else {
		tmp = Math.sqrt(((n * 2.0) * (t + (t_1 / (Om / l))))) * Math.sqrt(U);
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = ((U_42_ - U) / (Om / (n * l))) + (l * -2.0)
	tmp = 0
	if U <= -2e-310:
		tmp = math.sqrt(((U * (t_1 * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))))
	else:
		tmp = math.sqrt(((n * 2.0) * (t + (t_1 / (Om / l))))) * math.sqrt(U)
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = Float64(Float64(Float64(U_42_ - U) / Float64(Om / Float64(n * l))) + Float64(l * -2.0))
	tmp = 0.0
	if (U <= -2e-310)
		tmp = sqrt(Float64(Float64(U * Float64(t_1 * Float64(Float64(l / Om) * Float64(n * 2.0)))) + Float64(U * Float64(2.0 * Float64(n * t)))));
	else
		tmp = Float64(sqrt(Float64(Float64(n * 2.0) * Float64(t + Float64(t_1 / Float64(Om / l))))) * sqrt(U));
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = ((U_42_ - U) / (Om / (n * l))) + (l * -2.0);
	tmp = 0.0;
	if (U <= -2e-310)
		tmp = sqrt(((U * (t_1 * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	else
		tmp = sqrt(((n * 2.0) * (t + (t_1 / (Om / l))))) * sqrt(U);
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[(N[(N[(U$42$ - U), $MachinePrecision] / N[(Om / N[(n * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(l * -2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[U, -2e-310], N[Sqrt[N[(N[(U * N[(t$95$1 * N[(N[(l / Om), $MachinePrecision] * N[(n * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[(N[Sqrt[N[(N[(n * 2.0), $MachinePrecision] * N[(t + N[(t$95$1 / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[Sqrt[U], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\\
\mathbf{if}\;U \leq -2 \cdot 10^{-310}:\\
\;\;\;\;\sqrt{U \cdot \left(t\_1 \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\left(n \cdot 2\right) \cdot \left(t + \frac{t\_1}{\frac{Om}{\ell}}\right)} \cdot \sqrt{U}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if U < -1.999999999999994e-310

    1. Initial program 42.0%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified51.6%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr56.9%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr61.3%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]

    if -1.999999999999994e-310 < U

    1. Initial program 52.4%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified57.4%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \sqrt{\left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right)} \]
      2. associate-*r*N/A

        \[\leadsto \sqrt{\left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)} \]
      3. associate-*r*N/A

        \[\leadsto \sqrt{\left(\left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U} \]
      4. sqrt-prodN/A

        \[\leadsto \sqrt{\left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)} \cdot \color{blue}{\sqrt{U}} \]
      5. pow1/2N/A

        \[\leadsto \sqrt{\left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)} \cdot {U}^{\color{blue}{\frac{1}{2}}} \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\left(\sqrt{\left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)}\right), \color{blue}{\left({U}^{\frac{1}{2}}\right)}\right) \]
    6. Applied egg-rr74.7%

      \[\leadsto \color{blue}{\sqrt{\left(t + \frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}}\right) \cdot \left(n \cdot 2\right)} \cdot \sqrt{U}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification68.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;U \leq -2 \cdot 10^{-310}:\\ \;\;\;\;\sqrt{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(n \cdot 2\right) \cdot \left(t + \frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}}\right)} \cdot \sqrt{U}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 62.4% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;n \leq 6 \cdot 10^{+74}:\\ \;\;\;\;\sqrt{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;{\left(n \cdot 2\right)}^{0.5} \cdot \sqrt{U \cdot \left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)}\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (if (<= n 6e+74)
   (sqrt
    (+
     (*
      U
      (* (+ (/ (- U* U) (/ Om (* n l))) (* l -2.0)) (* (/ l Om) (* n 2.0))))
     (* U (* 2.0 (* n t)))))
   (*
    (pow (* n 2.0) 0.5)
    (sqrt (* U (+ t (* (+ -2.0 (/ n (/ Om (- U* U)))) (* l (/ l Om)))))))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (n <= 6e+74) {
		tmp = sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	} else {
		tmp = pow((n * 2.0), 0.5) * sqrt((U * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))));
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: tmp
    if (n <= 6d+74) then
        tmp = sqrt(((u * ((((u_42 - u) / (om / (n * l))) + (l * (-2.0d0))) * ((l / om) * (n * 2.0d0)))) + (u * (2.0d0 * (n * t)))))
    else
        tmp = ((n * 2.0d0) ** 0.5d0) * sqrt((u * (t + (((-2.0d0) + (n / (om / (u_42 - u)))) * (l * (l / om))))))
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (n <= 6e+74) {
		tmp = Math.sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	} else {
		tmp = Math.pow((n * 2.0), 0.5) * Math.sqrt((U * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))));
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	tmp = 0
	if n <= 6e+74:
		tmp = math.sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))))
	else:
		tmp = math.pow((n * 2.0), 0.5) * math.sqrt((U * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))))
	return tmp
function code(n, U, t, l, Om, U_42_)
	tmp = 0.0
	if (n <= 6e+74)
		tmp = sqrt(Float64(Float64(U * Float64(Float64(Float64(Float64(U_42_ - U) / Float64(Om / Float64(n * l))) + Float64(l * -2.0)) * Float64(Float64(l / Om) * Float64(n * 2.0)))) + Float64(U * Float64(2.0 * Float64(n * t)))));
	else
		tmp = Float64((Float64(n * 2.0) ^ 0.5) * sqrt(Float64(U * Float64(t + Float64(Float64(-2.0 + Float64(n / Float64(Om / Float64(U_42_ - U)))) * Float64(l * Float64(l / Om)))))));
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	tmp = 0.0;
	if (n <= 6e+74)
		tmp = sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	else
		tmp = ((n * 2.0) ^ 0.5) * sqrt((U * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))));
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[n, 6e+74], N[Sqrt[N[(N[(U * N[(N[(N[(N[(U$42$ - U), $MachinePrecision] / N[(Om / N[(n * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(l * -2.0), $MachinePrecision]), $MachinePrecision] * N[(N[(l / Om), $MachinePrecision] * N[(n * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[(N[Power[N[(n * 2.0), $MachinePrecision], 0.5], $MachinePrecision] * N[Sqrt[N[(U * N[(t + N[(N[(-2.0 + N[(n / N[(Om / N[(U$42$ - U), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;n \leq 6 \cdot 10^{+74}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;{\left(n \cdot 2\right)}^{0.5} \cdot \sqrt{U \cdot \left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < 6e74

    1. Initial program 45.2%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified52.4%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr61.6%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr64.9%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]

    if 6e74 < n

    1. Initial program 60.2%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified67.9%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr48.8%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr46.1%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]
    9. Applied egg-rr83.8%

      \[\leadsto \color{blue}{{\left(n \cdot 2\right)}^{0.5} \cdot \sqrt{\left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) \cdot U}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification67.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq 6 \cdot 10^{+74}:\\ \;\;\;\;\sqrt{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;{\left(n \cdot 2\right)}^{0.5} \cdot \sqrt{U \cdot \left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 65.4% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \mathbf{if}\;n \leq -2.6 \cdot 10^{-18}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;n \leq 0.78:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + \left(\ell \cdot \left(-2 + \frac{U* \cdot n}{Om}\right)\right) \cdot \left(U \cdot \frac{n \cdot 2}{\frac{Om}{\ell}}\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1
         (sqrt
          (*
           (* 2.0 (* U n))
           (+ t (* (/ l Om) (+ (* l -2.0) (* n (* (- U* U) (/ l Om))))))))))
   (if (<= n -2.6e-18)
     t_1
     (if (<= n 0.78)
       (sqrt
        (+
         (* U (* 2.0 (* n t)))
         (* (* l (+ -2.0 (/ (* U* n) Om))) (* U (/ (* n 2.0) (/ Om l))))))
       t_1))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	double tmp;
	if (n <= -2.6e-18) {
		tmp = t_1;
	} else if (n <= 0.78) {
		tmp = sqrt(((U * (2.0 * (n * t))) + ((l * (-2.0 + ((U_42_ * n) / Om))) * (U * ((n * 2.0) / (Om / l))))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: tmp
    t_1 = sqrt(((2.0d0 * (u * n)) * (t + ((l / om) * ((l * (-2.0d0)) + (n * ((u_42 - u) * (l / om))))))))
    if (n <= (-2.6d-18)) then
        tmp = t_1
    else if (n <= 0.78d0) then
        tmp = sqrt(((u * (2.0d0 * (n * t))) + ((l * ((-2.0d0) + ((u_42 * n) / om))) * (u * ((n * 2.0d0) / (om / l))))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = Math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	double tmp;
	if (n <= -2.6e-18) {
		tmp = t_1;
	} else if (n <= 0.78) {
		tmp = Math.sqrt(((U * (2.0 * (n * t))) + ((l * (-2.0 + ((U_42_ * n) / Om))) * (U * ((n * 2.0) / (Om / l))))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))))
	tmp = 0
	if n <= -2.6e-18:
		tmp = t_1
	elif n <= 0.78:
		tmp = math.sqrt(((U * (2.0 * (n * t))) + ((l * (-2.0 + ((U_42_ * n) / Om))) * (U * ((n * 2.0) / (Om / l))))))
	else:
		tmp = t_1
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l / Om) * Float64(Float64(l * -2.0) + Float64(n * Float64(Float64(U_42_ - U) * Float64(l / Om))))))))
	tmp = 0.0
	if (n <= -2.6e-18)
		tmp = t_1;
	elseif (n <= 0.78)
		tmp = sqrt(Float64(Float64(U * Float64(2.0 * Float64(n * t))) + Float64(Float64(l * Float64(-2.0 + Float64(Float64(U_42_ * n) / Om))) * Float64(U * Float64(Float64(n * 2.0) / Float64(Om / l))))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	tmp = 0.0;
	if (n <= -2.6e-18)
		tmp = t_1;
	elseif (n <= 0.78)
		tmp = sqrt(((U * (2.0 * (n * t))) + ((l * (-2.0 + ((U_42_ * n) / Om))) * (U * ((n * 2.0) / (Om / l))))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(l * -2.0), $MachinePrecision] + N[(n * N[(N[(U$42$ - U), $MachinePrecision] * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[n, -2.6e-18], t$95$1, If[LessEqual[n, 0.78], N[Sqrt[N[(N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(l * N[(-2.0 + N[(N[(U$42$ * n), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(U * N[(N[(n * 2.0), $MachinePrecision] / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\
\mathbf{if}\;n \leq -2.6 \cdot 10^{-18}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;n \leq 0.78:\\
\;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + \left(\ell \cdot \left(-2 + \frac{U* \cdot n}{Om}\right)\right) \cdot \left(U \cdot \frac{n \cdot 2}{\frac{Om}{\ell}}\right)}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < -2.6e-18 or 0.78000000000000003 < n

    1. Initial program 53.9%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified62.0%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\frac{n \cdot \ell}{Om} \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      2. associate-/l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\left(\frac{\ell}{Om}\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      6. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      7. --lowering--.f6467.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{\_.f64}\left(U*, U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
    6. Applied egg-rr67.3%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\color{blue}{n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)} + \ell \cdot -2\right)\right)} \]

    if -2.6e-18 < n < 0.78000000000000003

    1. Initial program 42.1%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified48.8%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr62.3%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr67.5%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]
    9. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) \cdot U\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      2. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      3. associate-/r/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{U* - U}{Om} \cdot \left(n \cdot \ell\right) + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(\frac{U* - U}{Om} \cdot n\right) \cdot \ell + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      5. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(n \cdot \frac{U* - U}{Om}\right) \cdot \ell + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      6. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(n \cdot \frac{U* - U}{Om}\right) \cdot \ell + -2 \cdot \ell\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      7. distribute-rgt-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\ell \cdot \left(n \cdot \frac{U* - U}{Om} + -2\right)\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(\ell \cdot \left(n \cdot \frac{U* - U}{Om} + -2\right)\right), \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    10. Applied egg-rr62.8%

      \[\leadsto \sqrt{\color{blue}{\left(\ell \cdot \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right)\right) \cdot \left(\frac{n \cdot 2}{\frac{Om}{\ell}} \cdot U\right)} + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)} \]
    11. Taylor expanded in U around 0

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\color{blue}{\left(\ell \cdot \left(\frac{U* \cdot n}{Om} - 2\right)\right)}, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, 2\right), \mathsf{/.f64}\left(Om, \ell\right)\right), U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    12. Step-by-step derivation
      1. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \left(\frac{U* \cdot n}{Om} - 2\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, 2\right), \mathsf{/.f64}\left(Om, \ell\right)\right), U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      2. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \left(\frac{U* \cdot n}{Om} + \left(\mathsf{neg}\left(2\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, 2\right), \mathsf{/.f64}\left(Om, \ell\right)\right), U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      3. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \left(\frac{U* \cdot n}{Om} + -2\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, 2\right), \mathsf{/.f64}\left(Om, \ell\right)\right), U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{+.f64}\left(\left(\frac{U* \cdot n}{Om}\right), -2\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, 2\right), \mathsf{/.f64}\left(Om, \ell\right)\right), U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      5. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{+.f64}\left(\mathsf{/.f64}\left(\left(U* \cdot n\right), Om\right), -2\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, 2\right), \mathsf{/.f64}\left(Om, \ell\right)\right), U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      6. *-lowering-*.f6467.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(U*, n\right), Om\right), -2\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, 2\right), \mathsf{/.f64}\left(Om, \ell\right)\right), U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    13. Simplified67.3%

      \[\leadsto \sqrt{\color{blue}{\left(\ell \cdot \left(\frac{U* \cdot n}{Om} + -2\right)\right)} \cdot \left(\frac{n \cdot 2}{\frac{Om}{\ell}} \cdot U\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification67.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -2.6 \cdot 10^{-18}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \mathbf{elif}\;n \leq 0.78:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + \left(\ell \cdot \left(-2 + \frac{U* \cdot n}{Om}\right)\right) \cdot \left(U \cdot \frac{n \cdot 2}{\frac{Om}{\ell}}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 62.9% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \mathbf{if}\;n \leq -1.7 \cdot 10^{-14}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;n \leq 6.5 \cdot 10^{-82}:\\ \;\;\;\;\sqrt{U \cdot \left(\left(\ell \cdot \left(\ell \cdot \frac{n \cdot 2}{Om}\right)\right) \cdot \left(-2 + \frac{\left(U* - U\right) \cdot n}{Om}\right) + n \cdot \left(2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1
         (sqrt
          (*
           (* 2.0 (* U n))
           (+ t (* (/ l Om) (+ (* l -2.0) (* n (* (- U* U) (/ l Om))))))))))
   (if (<= n -1.7e-14)
     t_1
     (if (<= n 6.5e-82)
       (sqrt
        (*
         U
         (+
          (* (* l (* l (/ (* n 2.0) Om))) (+ -2.0 (/ (* (- U* U) n) Om)))
          (* n (* 2.0 t)))))
       t_1))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	double tmp;
	if (n <= -1.7e-14) {
		tmp = t_1;
	} else if (n <= 6.5e-82) {
		tmp = sqrt((U * (((l * (l * ((n * 2.0) / Om))) * (-2.0 + (((U_42_ - U) * n) / Om))) + (n * (2.0 * t)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: tmp
    t_1 = sqrt(((2.0d0 * (u * n)) * (t + ((l / om) * ((l * (-2.0d0)) + (n * ((u_42 - u) * (l / om))))))))
    if (n <= (-1.7d-14)) then
        tmp = t_1
    else if (n <= 6.5d-82) then
        tmp = sqrt((u * (((l * (l * ((n * 2.0d0) / om))) * ((-2.0d0) + (((u_42 - u) * n) / om))) + (n * (2.0d0 * t)))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = Math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	double tmp;
	if (n <= -1.7e-14) {
		tmp = t_1;
	} else if (n <= 6.5e-82) {
		tmp = Math.sqrt((U * (((l * (l * ((n * 2.0) / Om))) * (-2.0 + (((U_42_ - U) * n) / Om))) + (n * (2.0 * t)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))))
	tmp = 0
	if n <= -1.7e-14:
		tmp = t_1
	elif n <= 6.5e-82:
		tmp = math.sqrt((U * (((l * (l * ((n * 2.0) / Om))) * (-2.0 + (((U_42_ - U) * n) / Om))) + (n * (2.0 * t)))))
	else:
		tmp = t_1
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l / Om) * Float64(Float64(l * -2.0) + Float64(n * Float64(Float64(U_42_ - U) * Float64(l / Om))))))))
	tmp = 0.0
	if (n <= -1.7e-14)
		tmp = t_1;
	elseif (n <= 6.5e-82)
		tmp = sqrt(Float64(U * Float64(Float64(Float64(l * Float64(l * Float64(Float64(n * 2.0) / Om))) * Float64(-2.0 + Float64(Float64(Float64(U_42_ - U) * n) / Om))) + Float64(n * Float64(2.0 * t)))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	tmp = 0.0;
	if (n <= -1.7e-14)
		tmp = t_1;
	elseif (n <= 6.5e-82)
		tmp = sqrt((U * (((l * (l * ((n * 2.0) / Om))) * (-2.0 + (((U_42_ - U) * n) / Om))) + (n * (2.0 * t)))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(l * -2.0), $MachinePrecision] + N[(n * N[(N[(U$42$ - U), $MachinePrecision] * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[n, -1.7e-14], t$95$1, If[LessEqual[n, 6.5e-82], N[Sqrt[N[(U * N[(N[(N[(l * N[(l * N[(N[(n * 2.0), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(-2.0 + N[(N[(N[(U$42$ - U), $MachinePrecision] * n), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(n * N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\
\mathbf{if}\;n \leq -1.7 \cdot 10^{-14}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;n \leq 6.5 \cdot 10^{-82}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(\ell \cdot \left(\ell \cdot \frac{n \cdot 2}{Om}\right)\right) \cdot \left(-2 + \frac{\left(U* - U\right) \cdot n}{Om}\right) + n \cdot \left(2 \cdot t\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < -1.70000000000000001e-14 or 6.4999999999999997e-82 < n

    1. Initial program 54.2%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified61.5%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\frac{n \cdot \ell}{Om} \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      2. associate-/l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\left(\frac{\ell}{Om}\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      6. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      7. --lowering--.f6466.8%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{\_.f64}\left(U*, U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
    6. Applied egg-rr66.8%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\color{blue}{n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)} + \ell \cdot -2\right)\right)} \]

    if -1.70000000000000001e-14 < n < 6.4999999999999997e-82

    1. Initial program 40.5%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified47.8%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr62.8%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr68.6%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]
    9. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) \cdot U\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      2. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      3. associate-/r/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{U* - U}{Om} \cdot \left(n \cdot \ell\right) + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(\frac{U* - U}{Om} \cdot n\right) \cdot \ell + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      5. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(n \cdot \frac{U* - U}{Om}\right) \cdot \ell + \ell \cdot -2\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      6. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\left(n \cdot \frac{U* - U}{Om}\right) \cdot \ell + -2 \cdot \ell\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      7. distribute-rgt-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\ell \cdot \left(n \cdot \frac{U* - U}{Om} + -2\right)\right) \cdot \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(\ell \cdot \left(n \cdot \frac{U* - U}{Om} + -2\right)\right), \left(\left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) \cdot U\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    10. Applied egg-rr62.6%

      \[\leadsto \sqrt{\color{blue}{\left(\ell \cdot \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right)\right) \cdot \left(\frac{n \cdot 2}{\frac{Om}{\ell}} \cdot U\right)} + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)} \]
    11. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\ell \cdot \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right)\right) \cdot \frac{n \cdot 2}{\frac{Om}{\ell}}\right) \cdot U + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\ell \cdot \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right)\right) \cdot \frac{n \cdot 2}{\frac{Om}{\ell}}\right) \cdot U + \left(2 \cdot \left(n \cdot t\right)\right) \cdot U\right)\right) \]
      3. distribute-rgt-outN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(U \cdot \left(\left(\ell \cdot \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right)\right) \cdot \frac{n \cdot 2}{\frac{Om}{\ell}} + 2 \cdot \left(n \cdot t\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(U, \left(\left(\ell \cdot \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right)\right) \cdot \frac{n \cdot 2}{\frac{Om}{\ell}} + 2 \cdot \left(n \cdot t\right)\right)\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(U, \mathsf{+.f64}\left(\left(\left(\ell \cdot \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right)\right) \cdot \frac{n \cdot 2}{\frac{Om}{\ell}}\right), \left(2 \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
    12. Applied egg-rr65.0%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(-2 + \frac{n \cdot \left(U* - U\right)}{Om}\right) \cdot \left(\ell \cdot \left(\ell \cdot \frac{n \cdot 2}{Om}\right)\right) + n \cdot \left(2 \cdot t\right)\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification65.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.7 \cdot 10^{-14}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \mathbf{elif}\;n \leq 6.5 \cdot 10^{-82}:\\ \;\;\;\;\sqrt{U \cdot \left(\left(\ell \cdot \left(\ell \cdot \frac{n \cdot 2}{Om}\right)\right) \cdot \left(-2 + \frac{\left(U* - U\right) \cdot n}{Om}\right) + n \cdot \left(2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 62.4% accurate, 1.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;n \leq 7 \cdot 10^{-80}:\\ \;\;\;\;\sqrt{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (if (<= n 7e-80)
   (sqrt
    (+
     (*
      U
      (* (+ (/ (- U* U) (/ Om (* n l))) (* l -2.0)) (* (/ l Om) (* n 2.0))))
     (* U (* 2.0 (* n t)))))
   (sqrt
    (*
     (* 2.0 (* U n))
     (+ t (* (/ l Om) (+ (* l -2.0) (* n (* (- U* U) (/ l Om))))))))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (n <= 7e-80) {
		tmp = sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	} else {
		tmp = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: tmp
    if (n <= 7d-80) then
        tmp = sqrt(((u * ((((u_42 - u) / (om / (n * l))) + (l * (-2.0d0))) * ((l / om) * (n * 2.0d0)))) + (u * (2.0d0 * (n * t)))))
    else
        tmp = sqrt(((2.0d0 * (u * n)) * (t + ((l / om) * ((l * (-2.0d0)) + (n * ((u_42 - u) * (l / om))))))))
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (n <= 7e-80) {
		tmp = Math.sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	} else {
		tmp = Math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	tmp = 0
	if n <= 7e-80:
		tmp = math.sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))))
	else:
		tmp = math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))))
	return tmp
function code(n, U, t, l, Om, U_42_)
	tmp = 0.0
	if (n <= 7e-80)
		tmp = sqrt(Float64(Float64(U * Float64(Float64(Float64(Float64(U_42_ - U) / Float64(Om / Float64(n * l))) + Float64(l * -2.0)) * Float64(Float64(l / Om) * Float64(n * 2.0)))) + Float64(U * Float64(2.0 * Float64(n * t)))));
	else
		tmp = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l / Om) * Float64(Float64(l * -2.0) + Float64(n * Float64(Float64(U_42_ - U) * Float64(l / Om))))))));
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	tmp = 0.0;
	if (n <= 7e-80)
		tmp = sqrt(((U * ((((U_42_ - U) / (Om / (n * l))) + (l * -2.0)) * ((l / Om) * (n * 2.0)))) + (U * (2.0 * (n * t)))));
	else
		tmp = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[n, 7e-80], N[Sqrt[N[(N[(U * N[(N[(N[(N[(U$42$ - U), $MachinePrecision] / N[(Om / N[(n * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(l * -2.0), $MachinePrecision]), $MachinePrecision] * N[(N[(l / Om), $MachinePrecision] * N[(n * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(l * -2.0), $MachinePrecision] + N[(n * N[(N[(U$42$ - U), $MachinePrecision] * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;n \leq 7 \cdot 10^{-80}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < 7.00000000000000029e-80

    1. Initial program 42.7%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified50.8%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr61.1%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr64.8%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]

    if 7.00000000000000029e-80 < n

    1. Initial program 62.1%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified67.0%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\frac{n \cdot \ell}{Om} \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      2. associate-/l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\left(\frac{\ell}{Om}\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      6. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      7. --lowering--.f6475.0%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{\_.f64}\left(U*, U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
    6. Applied egg-rr75.0%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\color{blue}{n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)} + \ell \cdot -2\right)\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification67.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq 7 \cdot 10^{-80}:\\ \;\;\;\;\sqrt{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 6: 62.1% accurate, 1.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \mathbf{if}\;n \leq -1.12 \cdot 10^{-23}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-129}:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1
         (sqrt
          (*
           (* 2.0 (* U n))
           (+ t (* (/ l Om) (+ (* l -2.0) (* n (* (- U* U) (/ l Om))))))))))
   (if (<= n -1.12e-23)
     t_1
     (if (<= n 4.2e-129)
       (sqrt
        (+ (* U (* 2.0 (* n t))) (* U (* (* l -2.0) (* (/ l Om) (* n 2.0))))))
       t_1))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	double tmp;
	if (n <= -1.12e-23) {
		tmp = t_1;
	} else if (n <= 4.2e-129) {
		tmp = sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: tmp
    t_1 = sqrt(((2.0d0 * (u * n)) * (t + ((l / om) * ((l * (-2.0d0)) + (n * ((u_42 - u) * (l / om))))))))
    if (n <= (-1.12d-23)) then
        tmp = t_1
    else if (n <= 4.2d-129) then
        tmp = sqrt(((u * (2.0d0 * (n * t))) + (u * ((l * (-2.0d0)) * ((l / om) * (n * 2.0d0))))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = Math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	double tmp;
	if (n <= -1.12e-23) {
		tmp = t_1;
	} else if (n <= 4.2e-129) {
		tmp = Math.sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))))
	tmp = 0
	if n <= -1.12e-23:
		tmp = t_1
	elif n <= 4.2e-129:
		tmp = math.sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))))
	else:
		tmp = t_1
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l / Om) * Float64(Float64(l * -2.0) + Float64(n * Float64(Float64(U_42_ - U) * Float64(l / Om))))))))
	tmp = 0.0
	if (n <= -1.12e-23)
		tmp = t_1;
	elseif (n <= 4.2e-129)
		tmp = sqrt(Float64(Float64(U * Float64(2.0 * Float64(n * t))) + Float64(U * Float64(Float64(l * -2.0) * Float64(Float64(l / Om) * Float64(n * 2.0))))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((l * -2.0) + (n * ((U_42_ - U) * (l / Om))))))));
	tmp = 0.0;
	if (n <= -1.12e-23)
		tmp = t_1;
	elseif (n <= 4.2e-129)
		tmp = sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(l * -2.0), $MachinePrecision] + N[(n * N[(N[(U$42$ - U), $MachinePrecision] * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[n, -1.12e-23], t$95$1, If[LessEqual[n, 4.2e-129], N[Sqrt[N[(N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(U * N[(N[(l * -2.0), $MachinePrecision] * N[(N[(l / Om), $MachinePrecision] * N[(n * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\
\mathbf{if}\;n \leq -1.12 \cdot 10^{-23}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;n \leq 4.2 \cdot 10^{-129}:\\
\;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < -1.1200000000000001e-23 or 4.2e-129 < n

    1. Initial program 53.6%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified60.4%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\frac{n \cdot \ell}{Om} \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      2. associate-/l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U* - U\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\left(n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\left(\frac{\ell}{Om}\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      6. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(U* - U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
      7. --lowering--.f6465.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{\_.f64}\left(U*, U\right)\right)\right), \mathsf{*.f64}\left(\ell, -2\right)\right)\right)\right)\right)\right) \]
    6. Applied egg-rr65.3%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\color{blue}{n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)} + \ell \cdot -2\right)\right)} \]

    if -1.1200000000000001e-23 < n < 4.2e-129

    1. Initial program 39.9%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified47.7%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr63.4%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr69.0%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]
    9. Taylor expanded in Om around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\color{blue}{\left(-2 \cdot \ell\right)}, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(n, 2\right)\right)\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    10. Step-by-step derivation
      1. *-lowering-*.f6465.6%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\mathsf{*.f64}\left(-2, \ell\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(n, 2\right)\right)\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    11. Simplified65.6%

      \[\leadsto \sqrt{U \cdot \left(\color{blue}{\left(-2 \cdot \ell\right)} \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification65.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.12 \cdot 10^{-23}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-129}:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + n \cdot \left(\left(U* - U\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 53.5% accurate, 1.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := 2 \cdot \left(U \cdot n\right)\\ t_2 := \sqrt{t\_1 \cdot \left(t + \left(\ell \cdot -2\right) \cdot \frac{\ell}{Om}\right)}\\ \mathbf{if}\;Om \leq -4.5 \cdot 10^{+145}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;Om \leq -2.6 \cdot 10^{-47}:\\ \;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\ \mathbf{elif}\;Om \leq 128000000000:\\ \;\;\;\;\sqrt{t\_1 \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1 (* 2.0 (* U n)))
        (t_2 (sqrt (* t_1 (+ t (* (* l -2.0) (/ l Om)))))))
   (if (<= Om -4.5e+145)
     t_2
     (if (<= Om -2.6e-47)
       (sqrt (* (* U 2.0) (* n (- t (* 2.0 (/ (* l l) Om))))))
       (if (<= Om 128000000000.0)
         (sqrt (* t_1 (+ t (* (/ l Om) (/ (* U* (* n l)) Om)))))
         t_2)))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = 2.0 * (U * n);
	double t_2 = sqrt((t_1 * (t + ((l * -2.0) * (l / Om)))));
	double tmp;
	if (Om <= -4.5e+145) {
		tmp = t_2;
	} else if (Om <= -2.6e-47) {
		tmp = sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
	} else if (Om <= 128000000000.0) {
		tmp = sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_1 = 2.0d0 * (u * n)
    t_2 = sqrt((t_1 * (t + ((l * (-2.0d0)) * (l / om)))))
    if (om <= (-4.5d+145)) then
        tmp = t_2
    else if (om <= (-2.6d-47)) then
        tmp = sqrt(((u * 2.0d0) * (n * (t - (2.0d0 * ((l * l) / om))))))
    else if (om <= 128000000000.0d0) then
        tmp = sqrt((t_1 * (t + ((l / om) * ((u_42 * (n * l)) / om)))))
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = 2.0 * (U * n);
	double t_2 = Math.sqrt((t_1 * (t + ((l * -2.0) * (l / Om)))));
	double tmp;
	if (Om <= -4.5e+145) {
		tmp = t_2;
	} else if (Om <= -2.6e-47) {
		tmp = Math.sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
	} else if (Om <= 128000000000.0) {
		tmp = Math.sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = 2.0 * (U * n)
	t_2 = math.sqrt((t_1 * (t + ((l * -2.0) * (l / Om)))))
	tmp = 0
	if Om <= -4.5e+145:
		tmp = t_2
	elif Om <= -2.6e-47:
		tmp = math.sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))))
	elif Om <= 128000000000.0:
		tmp = math.sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))))
	else:
		tmp = t_2
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = Float64(2.0 * Float64(U * n))
	t_2 = sqrt(Float64(t_1 * Float64(t + Float64(Float64(l * -2.0) * Float64(l / Om)))))
	tmp = 0.0
	if (Om <= -4.5e+145)
		tmp = t_2;
	elseif (Om <= -2.6e-47)
		tmp = sqrt(Float64(Float64(U * 2.0) * Float64(n * Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om))))));
	elseif (Om <= 128000000000.0)
		tmp = sqrt(Float64(t_1 * Float64(t + Float64(Float64(l / Om) * Float64(Float64(U_42_ * Float64(n * l)) / Om)))));
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = 2.0 * (U * n);
	t_2 = sqrt((t_1 * (t + ((l * -2.0) * (l / Om)))));
	tmp = 0.0;
	if (Om <= -4.5e+145)
		tmp = t_2;
	elseif (Om <= -2.6e-47)
		tmp = sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
	elseif (Om <= 128000000000.0)
		tmp = sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[Sqrt[N[(t$95$1 * N[(t + N[(N[(l * -2.0), $MachinePrecision] * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[Om, -4.5e+145], t$95$2, If[LessEqual[Om, -2.6e-47], N[Sqrt[N[(N[(U * 2.0), $MachinePrecision] * N[(n * N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[Om, 128000000000.0], N[Sqrt[N[(t$95$1 * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(U$42$ * N[(n * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$2]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := 2 \cdot \left(U \cdot n\right)\\
t_2 := \sqrt{t\_1 \cdot \left(t + \left(\ell \cdot -2\right) \cdot \frac{\ell}{Om}\right)}\\
\mathbf{if}\;Om \leq -4.5 \cdot 10^{+145}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;Om \leq -2.6 \cdot 10^{-47}:\\
\;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\

\mathbf{elif}\;Om \leq 128000000000:\\
\;\;\;\;\sqrt{t\_1 \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\

\mathbf{else}:\\
\;\;\;\;t\_2\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if Om < -4.4999999999999998e145 or 1.28e11 < Om

    1. Initial program 49.9%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified59.1%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in n around 0

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(-2 \cdot \ell\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. *-lowering-*.f6459.8%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(-2, \ell\right)\right)\right)\right)\right) \]
    7. Simplified59.8%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\left(-2 \cdot \ell\right)}\right)} \]

    if -4.4999999999999998e145 < Om < -2.6e-47

    1. Initial program 42.7%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified42.7%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in n around 0

      \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(2 \cdot \left(U \cdot \left(n \cdot \left(t + -2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right)}\right) \]
    6. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t + -2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      2. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t + \left(\mathsf{neg}\left(2\right)\right) \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      3. cancel-sign-sub-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot U\right), \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      7. --lowering--.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \left(2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \left(\frac{{\ell}^{2}}{Om}\right)\right)\right)\right)\right)\right) \]
      9. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\left({\ell}^{2}\right), Om\right)\right)\right)\right)\right)\right) \]
      10. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\left(\ell \cdot \ell\right), Om\right)\right)\right)\right)\right)\right) \]
      11. *-lowering-*.f6457.4%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), Om\right)\right)\right)\right)\right)\right) \]
    7. Simplified57.4%

      \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}} \]

    if -2.6e-47 < Om < 1.28e11

    1. Initial program 45.4%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified52.5%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in U* around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(\frac{U* \cdot \left(\ell \cdot n\right)}{Om}\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(U* \cdot \left(\ell \cdot n\right)\right), Om\right)\right)\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(\left(\ell \cdot n\right) \cdot U*\right), Om\right)\right)\right)\right)\right) \]
      3. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\left(\ell \cdot n\right), U*\right), Om\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f6451.6%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, n\right), U*\right), Om\right)\right)\right)\right)\right) \]
    7. Simplified51.6%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\frac{\left(\ell \cdot n\right) \cdot U*}{Om}}\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification56.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;Om \leq -4.5 \cdot 10^{+145}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \left(\ell \cdot -2\right) \cdot \frac{\ell}{Om}\right)}\\ \mathbf{elif}\;Om \leq -2.6 \cdot 10^{-47}:\\ \;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\ \mathbf{elif}\;Om \leq 128000000000:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \left(\ell \cdot -2\right) \cdot \frac{\ell}{Om}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 8: 57.5% accurate, 1.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := 2 \cdot \left(U \cdot n\right)\\ \mathbf{if}\;n \leq -2.05 \cdot 10^{-23}:\\ \;\;\;\;\sqrt{t\_1 \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{elif}\;n \leq 2.35 \cdot 10^{-126}:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{t\_1 \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot \left(-2 + \frac{\left(U* - U\right) \cdot n}{Om}\right)\right)\right)}\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1 (* 2.0 (* U n))))
   (if (<= n -2.05e-23)
     (sqrt (* t_1 (+ t (* (/ l Om) (/ (* U* (* n l)) Om)))))
     (if (<= n 2.35e-126)
       (sqrt
        (+ (* U (* 2.0 (* n t))) (* U (* (* l -2.0) (* (/ l Om) (* n 2.0))))))
       (sqrt
        (* t_1 (+ t (* (/ l Om) (* l (+ -2.0 (/ (* (- U* U) n) Om)))))))))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = 2.0 * (U * n);
	double tmp;
	if (n <= -2.05e-23) {
		tmp = sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	} else if (n <= 2.35e-126) {
		tmp = sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	} else {
		tmp = sqrt((t_1 * (t + ((l / Om) * (l * (-2.0 + (((U_42_ - U) * n) / Om)))))));
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: tmp
    t_1 = 2.0d0 * (u * n)
    if (n <= (-2.05d-23)) then
        tmp = sqrt((t_1 * (t + ((l / om) * ((u_42 * (n * l)) / om)))))
    else if (n <= 2.35d-126) then
        tmp = sqrt(((u * (2.0d0 * (n * t))) + (u * ((l * (-2.0d0)) * ((l / om) * (n * 2.0d0))))))
    else
        tmp = sqrt((t_1 * (t + ((l / om) * (l * ((-2.0d0) + (((u_42 - u) * n) / om)))))))
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = 2.0 * (U * n);
	double tmp;
	if (n <= -2.05e-23) {
		tmp = Math.sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	} else if (n <= 2.35e-126) {
		tmp = Math.sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	} else {
		tmp = Math.sqrt((t_1 * (t + ((l / Om) * (l * (-2.0 + (((U_42_ - U) * n) / Om)))))));
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = 2.0 * (U * n)
	tmp = 0
	if n <= -2.05e-23:
		tmp = math.sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))))
	elif n <= 2.35e-126:
		tmp = math.sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))))
	else:
		tmp = math.sqrt((t_1 * (t + ((l / Om) * (l * (-2.0 + (((U_42_ - U) * n) / Om)))))))
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = Float64(2.0 * Float64(U * n))
	tmp = 0.0
	if (n <= -2.05e-23)
		tmp = sqrt(Float64(t_1 * Float64(t + Float64(Float64(l / Om) * Float64(Float64(U_42_ * Float64(n * l)) / Om)))));
	elseif (n <= 2.35e-126)
		tmp = sqrt(Float64(Float64(U * Float64(2.0 * Float64(n * t))) + Float64(U * Float64(Float64(l * -2.0) * Float64(Float64(l / Om) * Float64(n * 2.0))))));
	else
		tmp = sqrt(Float64(t_1 * Float64(t + Float64(Float64(l / Om) * Float64(l * Float64(-2.0 + Float64(Float64(Float64(U_42_ - U) * n) / Om)))))));
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = 2.0 * (U * n);
	tmp = 0.0;
	if (n <= -2.05e-23)
		tmp = sqrt((t_1 * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	elseif (n <= 2.35e-126)
		tmp = sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	else
		tmp = sqrt((t_1 * (t + ((l / Om) * (l * (-2.0 + (((U_42_ - U) * n) / Om)))))));
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[n, -2.05e-23], N[Sqrt[N[(t$95$1 * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(U$42$ * N[(n * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[n, 2.35e-126], N[Sqrt[N[(N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(U * N[(N[(l * -2.0), $MachinePrecision] * N[(N[(l / Om), $MachinePrecision] * N[(n * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(t$95$1 * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(l * N[(-2.0 + N[(N[(N[(U$42$ - U), $MachinePrecision] * n), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := 2 \cdot \left(U \cdot n\right)\\
\mathbf{if}\;n \leq -2.05 \cdot 10^{-23}:\\
\;\;\;\;\sqrt{t\_1 \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\

\mathbf{elif}\;n \leq 2.35 \cdot 10^{-126}:\\
\;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{t\_1 \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot \left(-2 + \frac{\left(U* - U\right) \cdot n}{Om}\right)\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if n < -2.05000000000000015e-23

    1. Initial program 45.9%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified55.1%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in U* around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(\frac{U* \cdot \left(\ell \cdot n\right)}{Om}\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(U* \cdot \left(\ell \cdot n\right)\right), Om\right)\right)\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(\left(\ell \cdot n\right) \cdot U*\right), Om\right)\right)\right)\right)\right) \]
      3. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\left(\ell \cdot n\right), U*\right), Om\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f6450.9%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, n\right), U*\right), Om\right)\right)\right)\right)\right) \]
    7. Simplified50.9%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\frac{\left(\ell \cdot n\right) \cdot U*}{Om}}\right)} \]

    if -2.05000000000000015e-23 < n < 2.35000000000000009e-126

    1. Initial program 39.9%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified47.7%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr63.4%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr69.0%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]
    9. Taylor expanded in Om around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\color{blue}{\left(-2 \cdot \ell\right)}, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(n, 2\right)\right)\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    10. Step-by-step derivation
      1. *-lowering-*.f6465.6%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\mathsf{*.f64}\left(-2, \ell\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(n, 2\right)\right)\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    11. Simplified65.6%

      \[\leadsto \sqrt{U \cdot \left(\color{blue}{\left(-2 \cdot \ell\right)} \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)} \]

    if 2.35000000000000009e-126 < n

    1. Initial program 61.3%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified65.7%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in n around 0

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(-2 \cdot \ell + \frac{\ell \cdot \left(n \cdot \left(U* - U\right)\right)}{Om}\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(\frac{\ell \cdot \left(n \cdot \left(U* - U\right)\right)}{Om} + -2 \cdot \ell\right)\right)\right)\right)\right) \]
      2. associate-/l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(\ell \cdot \frac{n \cdot \left(U* - U\right)}{Om} + -2 \cdot \ell\right)\right)\right)\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(\ell \cdot \frac{n \cdot \left(U* - U\right)}{Om} + \ell \cdot -2\right)\right)\right)\right)\right) \]
      4. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(\ell \cdot \left(\frac{n \cdot \left(U* - U\right)}{Om} + -2\right)\right)\right)\right)\right)\right) \]
      5. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(\ell \cdot \left(\frac{n \cdot \left(U* - U\right)}{Om} + \left(\mathsf{neg}\left(2\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \left(\ell \cdot \left(\frac{n \cdot \left(U* - U\right)}{Om} - 2\right)\right)\right)\right)\right)\right) \]
      7. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(\ell, \left(\frac{n \cdot \left(U* - U\right)}{Om} - 2\right)\right)\right)\right)\right)\right) \]
      8. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(\ell, \left(\frac{n \cdot \left(U* - U\right)}{Om} + \left(\mathsf{neg}\left(2\right)\right)\right)\right)\right)\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(\ell, \left(\frac{n \cdot \left(U* - U\right)}{Om} + -2\right)\right)\right)\right)\right)\right) \]
      10. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(\ell, \mathsf{+.f64}\left(\left(\frac{n \cdot \left(U* - U\right)}{Om}\right), -2\right)\right)\right)\right)\right)\right) \]
      11. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(\ell, \mathsf{+.f64}\left(\mathsf{/.f64}\left(\left(n \cdot \left(U* - U\right)\right), Om\right), -2\right)\right)\right)\right)\right)\right) \]
      12. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(\ell, \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, \left(U* - U\right)\right), Om\right), -2\right)\right)\right)\right)\right)\right) \]
      13. --lowering--.f6463.8%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(\ell, \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(U*, U\right)\right), Om\right), -2\right)\right)\right)\right)\right)\right) \]
    7. Simplified63.8%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\left(\ell \cdot \left(\frac{n \cdot \left(U* - U\right)}{Om} + -2\right)\right)}\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification61.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -2.05 \cdot 10^{-23}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{elif}\;n \leq 2.35 \cdot 10^{-126}:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot \left(-2 + \frac{\left(U* - U\right) \cdot n}{Om}\right)\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 57.6% accurate, 1.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{if}\;n \leq -1.8 \cdot 10^{-23}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;n \leq 2.3 \cdot 10^{-69}:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1
         (sqrt (* (* 2.0 (* U n)) (+ t (* (/ l Om) (/ (* U* (* n l)) Om)))))))
   (if (<= n -1.8e-23)
     t_1
     (if (<= n 2.3e-69)
       (sqrt
        (+ (* U (* 2.0 (* n t))) (* U (* (* l -2.0) (* (/ l Om) (* n 2.0))))))
       t_1))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	double tmp;
	if (n <= -1.8e-23) {
		tmp = t_1;
	} else if (n <= 2.3e-69) {
		tmp = sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: tmp
    t_1 = sqrt(((2.0d0 * (u * n)) * (t + ((l / om) * ((u_42 * (n * l)) / om)))))
    if (n <= (-1.8d-23)) then
        tmp = t_1
    else if (n <= 2.3d-69) then
        tmp = sqrt(((u * (2.0d0 * (n * t))) + (u * ((l * (-2.0d0)) * ((l / om) * (n * 2.0d0))))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = Math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	double tmp;
	if (n <= -1.8e-23) {
		tmp = t_1;
	} else if (n <= 2.3e-69) {
		tmp = Math.sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))))
	tmp = 0
	if n <= -1.8e-23:
		tmp = t_1
	elif n <= 2.3e-69:
		tmp = math.sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))))
	else:
		tmp = t_1
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l / Om) * Float64(Float64(U_42_ * Float64(n * l)) / Om)))))
	tmp = 0.0
	if (n <= -1.8e-23)
		tmp = t_1;
	elseif (n <= 2.3e-69)
		tmp = sqrt(Float64(Float64(U * Float64(2.0 * Float64(n * t))) + Float64(U * Float64(Float64(l * -2.0) * Float64(Float64(l / Om) * Float64(n * 2.0))))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	tmp = 0.0;
	if (n <= -1.8e-23)
		tmp = t_1;
	elseif (n <= 2.3e-69)
		tmp = sqrt(((U * (2.0 * (n * t))) + (U * ((l * -2.0) * ((l / Om) * (n * 2.0))))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(U$42$ * N[(n * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[n, -1.8e-23], t$95$1, If[LessEqual[n, 2.3e-69], N[Sqrt[N[(N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(U * N[(N[(l * -2.0), $MachinePrecision] * N[(N[(l / Om), $MachinePrecision] * N[(n * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\
\mathbf{if}\;n \leq -1.8 \cdot 10^{-23}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;n \leq 2.3 \cdot 10^{-69}:\\
\;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < -1.7999999999999999e-23 or 2.3000000000000001e-69 < n

    1. Initial program 54.0%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified61.2%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in U* around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(\frac{U* \cdot \left(\ell \cdot n\right)}{Om}\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(U* \cdot \left(\ell \cdot n\right)\right), Om\right)\right)\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(\left(\ell \cdot n\right) \cdot U*\right), Om\right)\right)\right)\right)\right) \]
      3. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\left(\ell \cdot n\right), U*\right), Om\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f6455.7%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, n\right), U*\right), Om\right)\right)\right)\right)\right) \]
    7. Simplified55.7%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\frac{\left(\ell \cdot n\right) \cdot U*}{Om}}\right)} \]

    if -1.7999999999999999e-23 < n < 2.3000000000000001e-69

    1. Initial program 40.8%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified48.1%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr63.1%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr68.9%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]
    9. Taylor expanded in Om around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\color{blue}{\left(-2 \cdot \ell\right)}, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(n, 2\right)\right)\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    10. Step-by-step derivation
      1. *-lowering-*.f6463.5%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\mathsf{*.f64}\left(-2, \ell\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(n, 2\right)\right)\right)\right), \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    11. Simplified63.5%

      \[\leadsto \sqrt{U \cdot \left(\color{blue}{\left(-2 \cdot \ell\right)} \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification59.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.8 \cdot 10^{-23}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{elif}\;n \leq 2.3 \cdot 10^{-69}:\\ \;\;\;\;\sqrt{U \cdot \left(2 \cdot \left(n \cdot t\right)\right) + U \cdot \left(\left(\ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 56.6% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{if}\;n \leq -1.12 \cdot 10^{-23}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;n \leq 3.7 \cdot 10^{-69}:\\ \;\;\;\;\sqrt{\frac{-4 \cdot \left(\left(n \cdot \ell\right) \cdot \left(U \cdot \ell\right)\right)}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (let* ((t_1
         (sqrt (* (* 2.0 (* U n)) (+ t (* (/ l Om) (/ (* U* (* n l)) Om)))))))
   (if (<= n -1.12e-23)
     t_1
     (if (<= n 3.7e-69)
       (sqrt (+ (/ (* -4.0 (* (* n l) (* U l))) Om) (* 2.0 (* U (* n t)))))
       t_1))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	double tmp;
	if (n <= -1.12e-23) {
		tmp = t_1;
	} else if (n <= 3.7e-69) {
		tmp = sqrt((((-4.0 * ((n * l) * (U * l))) / Om) + (2.0 * (U * (n * t)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: t_1
    real(8) :: tmp
    t_1 = sqrt(((2.0d0 * (u * n)) * (t + ((l / om) * ((u_42 * (n * l)) / om)))))
    if (n <= (-1.12d-23)) then
        tmp = t_1
    else if (n <= 3.7d-69) then
        tmp = sqrt(((((-4.0d0) * ((n * l) * (u * l))) / om) + (2.0d0 * (u * (n * t)))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double t_1 = Math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	double tmp;
	if (n <= -1.12e-23) {
		tmp = t_1;
	} else if (n <= 3.7e-69) {
		tmp = Math.sqrt((((-4.0 * ((n * l) * (U * l))) / Om) + (2.0 * (U * (n * t)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	t_1 = math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))))
	tmp = 0
	if n <= -1.12e-23:
		tmp = t_1
	elif n <= 3.7e-69:
		tmp = math.sqrt((((-4.0 * ((n * l) * (U * l))) / Om) + (2.0 * (U * (n * t)))))
	else:
		tmp = t_1
	return tmp
function code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l / Om) * Float64(Float64(U_42_ * Float64(n * l)) / Om)))))
	tmp = 0.0
	if (n <= -1.12e-23)
		tmp = t_1;
	elseif (n <= 3.7e-69)
		tmp = sqrt(Float64(Float64(Float64(-4.0 * Float64(Float64(n * l) * Float64(U * l))) / Om) + Float64(2.0 * Float64(U * Float64(n * t)))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	t_1 = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	tmp = 0.0;
	if (n <= -1.12e-23)
		tmp = t_1;
	elseif (n <= 3.7e-69)
		tmp = sqrt((((-4.0 * ((n * l) * (U * l))) / Om) + (2.0 * (U * (n * t)))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(U$42$ * N[(n * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[n, -1.12e-23], t$95$1, If[LessEqual[n, 3.7e-69], N[Sqrt[N[(N[(N[(-4.0 * N[(N[(n * l), $MachinePrecision] * N[(U * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] + N[(2.0 * N[(U * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\
\mathbf{if}\;n \leq -1.12 \cdot 10^{-23}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;n \leq 3.7 \cdot 10^{-69}:\\
\;\;\;\;\sqrt{\frac{-4 \cdot \left(\left(n \cdot \ell\right) \cdot \left(U \cdot \ell\right)\right)}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < -1.1200000000000001e-23 or 3.7000000000000002e-69 < n

    1. Initial program 54.0%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified61.2%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in U* around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(\frac{U* \cdot \left(\ell \cdot n\right)}{Om}\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(U* \cdot \left(\ell \cdot n\right)\right), Om\right)\right)\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(\left(\ell \cdot n\right) \cdot U*\right), Om\right)\right)\right)\right)\right) \]
      3. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\left(\ell \cdot n\right), U*\right), Om\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f6455.7%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, n\right), U*\right), Om\right)\right)\right)\right)\right) \]
    7. Simplified55.7%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\frac{\left(\ell \cdot n\right) \cdot U*}{Om}}\right)} \]

    if -1.1200000000000001e-23 < n < 3.7000000000000002e-69

    1. Initial program 40.8%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified48.1%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr63.1%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Taylor expanded in Om around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(-4 \cdot \frac{U \cdot \left({\ell}^{2} \cdot n\right)}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}\right) \]
    8. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(-4 \cdot \frac{U \cdot \left({\ell}^{2} \cdot n\right)}{Om}\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      2. associate-*r/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{-4 \cdot \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)}{Om}\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      3. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\left(-4 \cdot \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(\left(U \cdot {\ell}^{2}\right) \cdot n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\left(U \cdot {\ell}^{2}\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      7. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \left({\ell}^{2}\right)\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      8. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \left(\ell \cdot \ell\right)\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      9. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      10. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \mathsf{*.f64}\left(2, \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      11. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \left(n \cdot t\right)\right)\right)\right)\right) \]
      12. *-lowering-*.f6451.8%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    9. Simplified51.8%

      \[\leadsto \sqrt{\color{blue}{\frac{-4 \cdot \left(\left(U \cdot \left(\ell \cdot \ell\right)\right) \cdot n\right)}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)}} \]
    10. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(\left(\left(U \cdot \ell\right) \cdot \ell\right) \cdot n\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      2. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(\left(U \cdot \ell\right) \cdot \left(\ell \cdot n\right)\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(\left(U \cdot \ell\right) \cdot \left(n \cdot \ell\right)\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\left(U \cdot \ell\right), \left(n \cdot \ell\right)\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \ell\right), \left(n \cdot \ell\right)\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
      6. *-lowering-*.f6459.9%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \ell\right), \mathsf{*.f64}\left(n, \ell\right)\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    11. Applied egg-rr59.9%

      \[\leadsto \sqrt{\frac{-4 \cdot \color{blue}{\left(\left(U \cdot \ell\right) \cdot \left(n \cdot \ell\right)\right)}}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification57.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.12 \cdot 10^{-23}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{elif}\;n \leq 3.7 \cdot 10^{-69}:\\ \;\;\;\;\sqrt{\frac{-4 \cdot \left(\left(n \cdot \ell\right) \cdot \left(U \cdot \ell\right)\right)}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 11: 53.6% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 4.8 \cdot 10^{-173}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(n \cdot \left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)\right) \cdot \left(U \cdot 2\right)}\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (if (<= l 4.8e-173)
   (sqrt (* (* 2.0 (* U n)) (+ t (* (/ l Om) (/ (* U* (* n l)) Om)))))
   (sqrt
    (*
     (* n (+ t (* (+ -2.0 (/ n (/ Om (- U* U)))) (* l (/ l Om)))))
     (* U 2.0)))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (l <= 4.8e-173) {
		tmp = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	} else {
		tmp = sqrt(((n * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))) * (U * 2.0)));
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: tmp
    if (l <= 4.8d-173) then
        tmp = sqrt(((2.0d0 * (u * n)) * (t + ((l / om) * ((u_42 * (n * l)) / om)))))
    else
        tmp = sqrt(((n * (t + (((-2.0d0) + (n / (om / (u_42 - u)))) * (l * (l / om))))) * (u * 2.0d0)))
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (l <= 4.8e-173) {
		tmp = Math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	} else {
		tmp = Math.sqrt(((n * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))) * (U * 2.0)));
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	tmp = 0
	if l <= 4.8e-173:
		tmp = math.sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))))
	else:
		tmp = math.sqrt(((n * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))) * (U * 2.0)))
	return tmp
function code(n, U, t, l, Om, U_42_)
	tmp = 0.0
	if (l <= 4.8e-173)
		tmp = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l / Om) * Float64(Float64(U_42_ * Float64(n * l)) / Om)))));
	else
		tmp = sqrt(Float64(Float64(n * Float64(t + Float64(Float64(-2.0 + Float64(n / Float64(Om / Float64(U_42_ - U)))) * Float64(l * Float64(l / Om))))) * Float64(U * 2.0)));
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	tmp = 0.0;
	if (l <= 4.8e-173)
		tmp = sqrt(((2.0 * (U * n)) * (t + ((l / Om) * ((U_42_ * (n * l)) / Om)))));
	else
		tmp = sqrt(((n * (t + ((-2.0 + (n / (Om / (U_42_ - U)))) * (l * (l / Om))))) * (U * 2.0)));
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 4.8e-173], N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(U$42$ * N[(n * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(n * N[(t + N[(N[(-2.0 + N[(n / N[(Om / N[(U$42$ - U), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(U * 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\ell \leq 4.8 \cdot 10^{-173}:\\
\;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\left(n \cdot \left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)\right) \cdot \left(U \cdot 2\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if l < 4.80000000000000034e-173

    1. Initial program 50.7%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified57.2%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in U* around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(\frac{U* \cdot \left(\ell \cdot n\right)}{Om}\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(U* \cdot \left(\ell \cdot n\right)\right), Om\right)\right)\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\left(\left(\ell \cdot n\right) \cdot U*\right), Om\right)\right)\right)\right)\right) \]
      3. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\left(\ell \cdot n\right), U*\right), Om\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f6451.7%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, n\right), U*\right), Om\right)\right)\right)\right)\right) \]
    7. Simplified51.7%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\frac{\left(\ell \cdot n\right) \cdot U*}{Om}}\right)} \]

    if 4.80000000000000034e-173 < l

    1. Initial program 40.3%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified49.1%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr60.2%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right)\right) \cdot U\right), \left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)\right)\right) \]
    8. Applied egg-rr64.7%

      \[\leadsto \sqrt{\color{blue}{U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right)\right) + U \cdot \left(2 \cdot \left(n \cdot t\right)\right)}} \]
    9. Step-by-step derivation
      1. distribute-lft-outN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(U \cdot \left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) + 2 \cdot \left(n \cdot t\right)\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot 2\right)\right) + 2 \cdot \left(n \cdot t\right)\right) \cdot U\right)\right) \]
    10. Applied egg-rr64.0%

      \[\leadsto \sqrt{\color{blue}{\left(n \cdot \left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)\right) \cdot \left(U \cdot 2\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification55.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \leq 4.8 \cdot 10^{-173}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \frac{U* \cdot \left(n \cdot \ell\right)}{Om}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(n \cdot \left(t + \left(-2 + \frac{n}{\frac{Om}{U* - U}}\right) \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)\right) \cdot \left(U \cdot 2\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 12: 46.0% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 1.95 \cdot 10^{+153}:\\ \;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \left(\ell \cdot -2\right) \cdot \frac{\ell}{Om}\right)}\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (if (<= l 1.95e+153)
   (sqrt (* (* U 2.0) (* n (- t (* 2.0 (/ (* l l) Om))))))
   (sqrt (* (* 2.0 (* U n)) (+ t (* (* l -2.0) (/ l Om)))))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (l <= 1.95e+153) {
		tmp = sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
	} else {
		tmp = sqrt(((2.0 * (U * n)) * (t + ((l * -2.0) * (l / Om)))));
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: tmp
    if (l <= 1.95d+153) then
        tmp = sqrt(((u * 2.0d0) * (n * (t - (2.0d0 * ((l * l) / om))))))
    else
        tmp = sqrt(((2.0d0 * (u * n)) * (t + ((l * (-2.0d0)) * (l / om)))))
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (l <= 1.95e+153) {
		tmp = Math.sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
	} else {
		tmp = Math.sqrt(((2.0 * (U * n)) * (t + ((l * -2.0) * (l / Om)))));
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	tmp = 0
	if l <= 1.95e+153:
		tmp = math.sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))))
	else:
		tmp = math.sqrt(((2.0 * (U * n)) * (t + ((l * -2.0) * (l / Om)))))
	return tmp
function code(n, U, t, l, Om, U_42_)
	tmp = 0.0
	if (l <= 1.95e+153)
		tmp = sqrt(Float64(Float64(U * 2.0) * Float64(n * Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om))))));
	else
		tmp = sqrt(Float64(Float64(2.0 * Float64(U * n)) * Float64(t + Float64(Float64(l * -2.0) * Float64(l / Om)))));
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	tmp = 0.0;
	if (l <= 1.95e+153)
		tmp = sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
	else
		tmp = sqrt(((2.0 * (U * n)) * (t + ((l * -2.0) * (l / Om)))));
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 1.95e+153], N[Sqrt[N[(N[(U * 2.0), $MachinePrecision] * N[(n * N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(2.0 * N[(U * n), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l * -2.0), $MachinePrecision] * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\ell \leq 1.95 \cdot 10^{+153}:\\
\;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \left(\ell \cdot -2\right) \cdot \frac{\ell}{Om}\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if l < 1.94999999999999992e153

    1. Initial program 50.3%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified55.7%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in n around 0

      \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(2 \cdot \left(U \cdot \left(n \cdot \left(t + -2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right)}\right) \]
    6. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t + -2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      2. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t + \left(\mathsf{neg}\left(2\right)\right) \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      3. cancel-sign-sub-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot U\right), \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
      7. --lowering--.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \left(2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \left(\frac{{\ell}^{2}}{Om}\right)\right)\right)\right)\right)\right) \]
      9. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\left({\ell}^{2}\right), Om\right)\right)\right)\right)\right)\right) \]
      10. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\left(\ell \cdot \ell\right), Om\right)\right)\right)\right)\right)\right) \]
      11. *-lowering-*.f6450.0%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), Om\right)\right)\right)\right)\right)\right) \]
    7. Simplified50.0%

      \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}} \]

    if 1.94999999999999992e153 < l

    1. Initial program 18.3%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified43.9%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in n around 0

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \color{blue}{\left(-2 \cdot \ell\right)}\right)\right)\right)\right) \]
    6. Step-by-step derivation
      1. *-lowering-*.f6450.9%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\ell, Om\right), \mathsf{*.f64}\left(-2, \ell\right)\right)\right)\right)\right) \]
    7. Simplified50.9%

      \[\leadsto \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \color{blue}{\left(-2 \cdot \ell\right)}\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification50.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \leq 1.95 \cdot 10^{+153}:\\ \;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t + \left(\ell \cdot -2\right) \cdot \frac{\ell}{Om}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 13: 38.9% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 1.8 \cdot 10^{+113}:\\ \;\;\;\;{\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{-4 \cdot \left(n \cdot \left(U \cdot \left(\ell \cdot \ell\right)\right)\right)}{Om}}\\ \end{array} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (if (<= l 1.8e+113)
   (pow (* U (* 2.0 (* n t))) 0.5)
   (sqrt (/ (* -4.0 (* n (* U (* l l)))) Om))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (l <= 1.8e+113) {
		tmp = pow((U * (2.0 * (n * t))), 0.5);
	} else {
		tmp = sqrt(((-4.0 * (n * (U * (l * l)))) / Om));
	}
	return tmp;
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    real(8) :: tmp
    if (l <= 1.8d+113) then
        tmp = (u * (2.0d0 * (n * t))) ** 0.5d0
    else
        tmp = sqrt((((-4.0d0) * (n * (u * (l * l)))) / om))
    end if
    code = tmp
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	double tmp;
	if (l <= 1.8e+113) {
		tmp = Math.pow((U * (2.0 * (n * t))), 0.5);
	} else {
		tmp = Math.sqrt(((-4.0 * (n * (U * (l * l)))) / Om));
	}
	return tmp;
}
def code(n, U, t, l, Om, U_42_):
	tmp = 0
	if l <= 1.8e+113:
		tmp = math.pow((U * (2.0 * (n * t))), 0.5)
	else:
		tmp = math.sqrt(((-4.0 * (n * (U * (l * l)))) / Om))
	return tmp
function code(n, U, t, l, Om, U_42_)
	tmp = 0.0
	if (l <= 1.8e+113)
		tmp = Float64(U * Float64(2.0 * Float64(n * t))) ^ 0.5;
	else
		tmp = sqrt(Float64(Float64(-4.0 * Float64(n * Float64(U * Float64(l * l)))) / Om));
	end
	return tmp
end
function tmp_2 = code(n, U, t, l, Om, U_42_)
	tmp = 0.0;
	if (l <= 1.8e+113)
		tmp = (U * (2.0 * (n * t))) ^ 0.5;
	else
		tmp = sqrt(((-4.0 * (n * (U * (l * l)))) / Om));
	end
	tmp_2 = tmp;
end
code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 1.8e+113], N[Power[N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision], N[Sqrt[N[(N[(-4.0 * N[(n * N[(U * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\ell \leq 1.8 \cdot 10^{+113}:\\
\;\;\;\;{\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{-4 \cdot \left(n \cdot \left(U \cdot \left(\ell \cdot \ell\right)\right)\right)}{Om}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if l < 1.79999999999999996e113

    1. Initial program 51.3%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified56.4%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Taylor expanded in t around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}\right) \]
    6. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot t\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot U\right), \left(n \cdot t\right)\right)\right) \]
      3. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \left(n \cdot t\right)\right)\right) \]
      4. *-lowering-*.f6445.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, t\right)\right)\right) \]
    7. Simplified45.3%

      \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}} \]
    8. Step-by-step derivation
      1. pow1/2N/A

        \[\leadsto {\left(\left(2 \cdot U\right) \cdot \left(n \cdot t\right)\right)}^{\color{blue}{\frac{1}{2}}} \]
      2. *-commutativeN/A

        \[\leadsto {\left(\left(U \cdot 2\right) \cdot \left(n \cdot t\right)\right)}^{\frac{1}{2}} \]
      3. associate-*l*N/A

        \[\leadsto {\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{\frac{1}{2}} \]
      4. associate-*l*N/A

        \[\leadsto {\left(U \cdot \left(\left(2 \cdot n\right) \cdot t\right)\right)}^{\frac{1}{2}} \]
      5. *-commutativeN/A

        \[\leadsto {\left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}^{\frac{1}{2}} \]
      6. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right), \color{blue}{\frac{1}{2}}\right) \]
      7. *-lowering-*.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \left(\left(n \cdot 2\right) \cdot t\right)\right), \frac{1}{2}\right) \]
      8. *-commutativeN/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \left(\left(2 \cdot n\right) \cdot t\right)\right), \frac{1}{2}\right) \]
      9. associate-*l*N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \left(2 \cdot \left(n \cdot t\right)\right)\right), \frac{1}{2}\right) \]
      10. *-lowering-*.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \left(n \cdot t\right)\right)\right), \frac{1}{2}\right) \]
      11. *-lowering-*.f6446.7%

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right), \frac{1}{2}\right) \]
    9. Applied egg-rr46.7%

      \[\leadsto \color{blue}{{\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{0.5}} \]

    if 1.79999999999999996e113 < l

    1. Initial program 15.7%

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      2. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
      6. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      7. sub-negN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
      8. associate-+l+N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
      10. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
    3. Simplified40.3%

      \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right) + t\right)\right)\right) \]
      2. distribute-lft-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      3. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot \left(n \cdot U\right)\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right) + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U + \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right) \]
      6. fma-defineN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right), U, \left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
      7. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{fma.f64}\left(\left(\left(\frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right) \cdot \left(2 \cdot n\right)\right), U, \left(\left(2 \cdot \left(n \cdot U\right)\right) \cdot t\right)\right)\right) \]
    6. Applied egg-rr44.1%

      \[\leadsto \sqrt{\color{blue}{\mathsf{fma}\left(\frac{\frac{U* - U}{\frac{Om}{n \cdot \ell}} + \ell \cdot -2}{\frac{Om}{\ell}} \cdot \left(n \cdot 2\right), U, U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}} \]
    7. Taylor expanded in Om around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(-4 \cdot \frac{U \cdot \left({\ell}^{2} \cdot n\right)}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}\right) \]
    8. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(-4 \cdot \frac{U \cdot \left({\ell}^{2} \cdot n\right)}{Om}\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      2. associate-*r/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{-4 \cdot \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)}{Om}\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      3. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\left(-4 \cdot \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      4. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(\left(U \cdot {\ell}^{2}\right) \cdot n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\left(U \cdot {\ell}^{2}\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      7. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \left({\ell}^{2}\right)\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      8. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \left(\ell \cdot \ell\right)\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      9. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      10. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \mathsf{*.f64}\left(2, \left(U \cdot \left(n \cdot t\right)\right)\right)\right)\right) \]
      11. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \left(n \cdot t\right)\right)\right)\right)\right) \]
      12. *-lowering-*.f6423.1%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right), \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(n, t\right)\right)\right)\right)\right) \]
    9. Simplified23.1%

      \[\leadsto \sqrt{\color{blue}{\frac{-4 \cdot \left(\left(U \cdot \left(\ell \cdot \ell\right)\right) \cdot n\right)}{Om} + 2 \cdot \left(U \cdot \left(n \cdot t\right)\right)}} \]
    10. Taylor expanded in l around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(-4 \cdot \frac{U \cdot \left({\ell}^{2} \cdot n\right)}{Om}\right)}\right) \]
    11. Step-by-step derivation
      1. associate-*r/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{-4 \cdot \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)}{Om}\right)\right) \]
      2. /-lowering-/.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{/.f64}\left(\left(-4 \cdot \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)\right), Om\right)\right) \]
      3. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(U \cdot \left({\ell}^{2} \cdot n\right)\right)\right), Om\right)\right) \]
      4. associate-*r*N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \left(\left(U \cdot {\ell}^{2}\right) \cdot n\right)\right), Om\right)\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\left(U \cdot {\ell}^{2}\right), n\right)\right), Om\right)\right) \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \left({\ell}^{2}\right)\right), n\right)\right), Om\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \left(\ell \cdot \ell\right)\right), n\right)\right), Om\right)\right) \]
      8. *-lowering-*.f6426.6%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(-4, \mathsf{*.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\ell, \ell\right)\right), n\right)\right), Om\right)\right) \]
    12. Simplified26.6%

      \[\leadsto \sqrt{\color{blue}{\frac{-4 \cdot \left(\left(U \cdot \left(\ell \cdot \ell\right)\right) \cdot n\right)}{Om}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification44.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \leq 1.8 \cdot 10^{+113}:\\ \;\;\;\;{\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{-4 \cdot \left(n \cdot \left(U \cdot \left(\ell \cdot \ell\right)\right)\right)}{Om}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 14: 44.3% accurate, 2.0× speedup?

\[\begin{array}{l} \\ \sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)} \end{array} \]
(FPCore (n U t l Om U*)
 :precision binary64
 (sqrt (* (* U 2.0) (* n (- t (* 2.0 (/ (* l l) Om)))))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	return sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    code = sqrt(((u * 2.0d0) * (n * (t - (2.0d0 * ((l * l) / om))))))
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	return Math.sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
}
def code(n, U, t, l, Om, U_42_):
	return math.sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))))
function code(n, U, t, l, Om, U_42_)
	return sqrt(Float64(Float64(U * 2.0) * Float64(n * Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om))))))
end
function tmp = code(n, U, t, l, Om, U_42_)
	tmp = sqrt(((U * 2.0) * (n * (t - (2.0 * ((l * l) / Om))))));
end
code[n_, U_, t_, l_, Om_, U$42$_] := N[Sqrt[N[(N[(U * 2.0), $MachinePrecision] * N[(n * N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}
\end{array}
Derivation
  1. Initial program 47.3%

    \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
  2. Step-by-step derivation
    1. sqrt-lowering-sqrt.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    2. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    3. associate-*l*N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    4. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    6. sub-negN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
    7. sub-negN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
    8. associate-+l+N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
    9. +-lowering-+.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
    10. +-commutativeN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
  3. Simplified54.6%

    \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
  4. Add Preprocessing
  5. Taylor expanded in n around 0

    \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(2 \cdot \left(U \cdot \left(n \cdot \left(t + -2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right)}\right) \]
  6. Step-by-step derivation
    1. associate-*r*N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t + -2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
    2. metadata-evalN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t + \left(\mathsf{neg}\left(2\right)\right) \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
    3. cancel-sign-sub-invN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
    4. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot U\right), \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \left(n \cdot \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
    6. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \left(t - 2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
    7. --lowering--.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \left(2 \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right)\right) \]
    8. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \left(\frac{{\ell}^{2}}{Om}\right)\right)\right)\right)\right)\right) \]
    9. /-lowering-/.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\left({\ell}^{2}\right), Om\right)\right)\right)\right)\right)\right) \]
    10. unpow2N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\left(\ell \cdot \ell\right), Om\right)\right)\right)\right)\right)\right) \]
    11. *-lowering-*.f6447.1%

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \mathsf{\_.f64}\left(t, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), Om\right)\right)\right)\right)\right)\right) \]
  7. Simplified47.1%

    \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}} \]
  8. Final simplification47.1%

    \[\leadsto \sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)} \]
  9. Add Preprocessing

Alternative 15: 38.0% accurate, 2.1× speedup?

\[\begin{array}{l} \\ {\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{0.5} \end{array} \]
(FPCore (n U t l Om U*) :precision binary64 (pow (* U (* 2.0 (* n t))) 0.5))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	return pow((U * (2.0 * (n * t))), 0.5);
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    code = (u * (2.0d0 * (n * t))) ** 0.5d0
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	return Math.pow((U * (2.0 * (n * t))), 0.5);
}
def code(n, U, t, l, Om, U_42_):
	return math.pow((U * (2.0 * (n * t))), 0.5)
function code(n, U, t, l, Om, U_42_)
	return Float64(U * Float64(2.0 * Float64(n * t))) ^ 0.5
end
function tmp = code(n, U, t, l, Om, U_42_)
	tmp = (U * (2.0 * (n * t))) ^ 0.5;
end
code[n_, U_, t_, l_, Om_, U$42$_] := N[Power[N[(U * N[(2.0 * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]
\begin{array}{l}

\\
{\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{0.5}
\end{array}
Derivation
  1. Initial program 47.3%

    \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
  2. Step-by-step derivation
    1. sqrt-lowering-sqrt.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    2. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    3. associate-*l*N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    4. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    6. sub-negN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
    7. sub-negN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
    8. associate-+l+N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
    9. +-lowering-+.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
    10. +-commutativeN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
  3. Simplified54.6%

    \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
  4. Add Preprocessing
  5. Taylor expanded in t around inf

    \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}\right) \]
  6. Step-by-step derivation
    1. associate-*r*N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot t\right)\right)\right) \]
    2. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot U\right), \left(n \cdot t\right)\right)\right) \]
    3. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \left(n \cdot t\right)\right)\right) \]
    4. *-lowering-*.f6440.8%

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, t\right)\right)\right) \]
  7. Simplified40.8%

    \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}} \]
  8. Step-by-step derivation
    1. pow1/2N/A

      \[\leadsto {\left(\left(2 \cdot U\right) \cdot \left(n \cdot t\right)\right)}^{\color{blue}{\frac{1}{2}}} \]
    2. *-commutativeN/A

      \[\leadsto {\left(\left(U \cdot 2\right) \cdot \left(n \cdot t\right)\right)}^{\frac{1}{2}} \]
    3. associate-*l*N/A

      \[\leadsto {\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{\frac{1}{2}} \]
    4. associate-*l*N/A

      \[\leadsto {\left(U \cdot \left(\left(2 \cdot n\right) \cdot t\right)\right)}^{\frac{1}{2}} \]
    5. *-commutativeN/A

      \[\leadsto {\left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right)}^{\frac{1}{2}} \]
    6. pow-lowering-pow.f64N/A

      \[\leadsto \mathsf{pow.f64}\left(\left(U \cdot \left(\left(n \cdot 2\right) \cdot t\right)\right), \color{blue}{\frac{1}{2}}\right) \]
    7. *-lowering-*.f64N/A

      \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \left(\left(n \cdot 2\right) \cdot t\right)\right), \frac{1}{2}\right) \]
    8. *-commutativeN/A

      \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \left(\left(2 \cdot n\right) \cdot t\right)\right), \frac{1}{2}\right) \]
    9. associate-*l*N/A

      \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \left(2 \cdot \left(n \cdot t\right)\right)\right), \frac{1}{2}\right) \]
    10. *-lowering-*.f64N/A

      \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \left(n \cdot t\right)\right)\right), \frac{1}{2}\right) \]
    11. *-lowering-*.f6442.5%

      \[\leadsto \mathsf{pow.f64}\left(\mathsf{*.f64}\left(U, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, t\right)\right)\right), \frac{1}{2}\right) \]
  9. Applied egg-rr42.5%

    \[\leadsto \color{blue}{{\left(U \cdot \left(2 \cdot \left(n \cdot t\right)\right)\right)}^{0.5}} \]
  10. Add Preprocessing

Alternative 16: 35.9% accurate, 2.1× speedup?

\[\begin{array}{l} \\ \sqrt{\left(n \cdot t\right) \cdot \left(U \cdot 2\right)} \end{array} \]
(FPCore (n U t l Om U*) :precision binary64 (sqrt (* (* n t) (* U 2.0))))
double code(double n, double U, double t, double l, double Om, double U_42_) {
	return sqrt(((n * t) * (U * 2.0)));
}
real(8) function code(n, u, t, l, om, u_42)
    real(8), intent (in) :: n
    real(8), intent (in) :: u
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: u_42
    code = sqrt(((n * t) * (u * 2.0d0)))
end function
public static double code(double n, double U, double t, double l, double Om, double U_42_) {
	return Math.sqrt(((n * t) * (U * 2.0)));
}
def code(n, U, t, l, Om, U_42_):
	return math.sqrt(((n * t) * (U * 2.0)))
function code(n, U, t, l, Om, U_42_)
	return sqrt(Float64(Float64(n * t) * Float64(U * 2.0)))
end
function tmp = code(n, U, t, l, Om, U_42_)
	tmp = sqrt(((n * t) * (U * 2.0)));
end
code[n_, U_, t_, l_, Om_, U$42$_] := N[Sqrt[N[(N[(n * t), $MachinePrecision] * N[(U * 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sqrt{\left(n \cdot t\right) \cdot \left(U \cdot 2\right)}
\end{array}
Derivation
  1. Initial program 47.3%

    \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \]
  2. Step-by-step derivation
    1. sqrt-lowering-sqrt.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    2. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(\left(2 \cdot n\right) \cdot U\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    3. associate-*l*N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    4. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(n \cdot U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right) \]
    6. sub-negN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
    7. sub-negN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(\left(t + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right) \]
    8. associate-+l+N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \left(t + \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
    9. +-lowering-+.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right) + \left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)\right)\right) \]
    10. +-commutativeN/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(n, U\right)\right), \mathsf{+.f64}\left(t, \left(\left(\mathsf{neg}\left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) + \left(\mathsf{neg}\left(2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)\right)\right)\right)\right) \]
  3. Simplified54.6%

    \[\leadsto \color{blue}{\sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \left(\left(U* - U\right) \cdot \frac{n \cdot \ell}{Om} + \ell \cdot -2\right)\right)}} \]
  4. Add Preprocessing
  5. Taylor expanded in t around inf

    \[\leadsto \mathsf{sqrt.f64}\left(\color{blue}{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}\right) \]
  6. Step-by-step derivation
    1. associate-*r*N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(2 \cdot U\right) \cdot \left(n \cdot t\right)\right)\right) \]
    2. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\left(2 \cdot U\right), \left(n \cdot t\right)\right)\right) \]
    3. *-lowering-*.f64N/A

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \left(n \cdot t\right)\right)\right) \]
    4. *-lowering-*.f6440.8%

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, t\right)\right)\right) \]
  7. Simplified40.8%

    \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}} \]
  8. Final simplification40.8%

    \[\leadsto \sqrt{\left(n \cdot t\right) \cdot \left(U \cdot 2\right)} \]
  9. Add Preprocessing

Reproduce

?
herbie shell --seed 2024288 
(FPCore (n U t l Om U*)
  :name "Toniolo and Linder, Equation (13)"
  :precision binary64
  (sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))