Toniolo and Linder, Equation (13)

Percentage Accurate: 49.8% → 65.0%
Time: 21.7s
Alternatives: 24
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 24 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.8% 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: 65.0% accurate, 1.0× speedup?

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

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

\mathbf{else}:\\
\;\;\;\;{\left(n \cdot 2\right)}^{0.5} \cdot \sqrt{U \cdot t\_1}\\


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

    1. Initial program 48.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. Simplified54.1%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

    if 3.3e-307 < n

    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. Simplified58.4%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

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

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

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

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

        \[\leadsto {\left(\left(n \cdot 2\right) \cdot \left(\left(t + \frac{\frac{U* - U}{\frac{\frac{Om}{\ell}}{n}} + \ell \cdot -2}{\frac{Om}{\ell}}\right) \cdot U\right)\right)}^{\frac{1}{2}} \]
      5. unpow-prod-downN/A

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

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

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

        \[\leadsto \mathsf{*.f64}\left(\mathsf{pow.f64}\left(\mathsf{*.f64}\left(n, 2\right), \frac{1}{2}\right), \left({\left(\color{blue}{\left(t + \frac{\frac{U* - U}{\frac{\frac{Om}{\ell}}{n}} + \ell \cdot -2}{\frac{Om}{\ell}}\right)} \cdot U\right)}^{\frac{1}{2}}\right)\right) \]
      9. pow1/2N/A

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

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

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

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

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

Alternative 2: 65.0% accurate, 1.0× speedup?

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

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

\mathbf{else}:\\
\;\;\;\;\sqrt{U \cdot t\_1} \cdot \sqrt{n}\\


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

    1. Initial program 48.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. Simplified54.1%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

    if 3.5000000000000002e-307 < n

    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. Simplified58.4%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

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

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

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

Alternative 3: 62.7% accurate, 1.0× speedup?

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

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

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


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

    1. Initial program 48.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. Simplified54.1%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

    if 3.3e-307 < n

    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. Simplified58.4%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

Alternative 4: 61.8% accurate, 1.0× speedup?

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

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

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


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

    1. Initial program 48.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. Simplified54.1%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

    if 5.2000000000000003e-305 < n

    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. Simplified58.4%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Alternative 5: 59.2% accurate, 1.1× speedup?

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

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

\mathbf{else}:\\
\;\;\;\;\sqrt{t \cdot \left(n \cdot 2\right)} \cdot \sqrt{U}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if U < 2.00000000000000018e56

    1. Initial program 48.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. Simplified56.2%

      \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. associate-*r*N/A

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

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

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

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

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

    if 2.00000000000000018e56 < U

    1. Initial program 58.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. Add Preprocessing
    3. Taylor expanded in t around inf

      \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, n\right), U\right), \color{blue}{t}\right)\right) \]
    4. Step-by-step derivation
      1. Simplified48.3%

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

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

          \[\leadsto \sqrt{\left(t \cdot \left(2 \cdot n\right)\right) \cdot U} \]
        3. sqrt-prodN/A

          \[\leadsto \sqrt{t \cdot \left(2 \cdot n\right)} \cdot \color{blue}{\sqrt{U}} \]
        4. pow1/2N/A

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

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

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

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

          \[\leadsto \mathsf{*.f64}\left(\mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(t, \mathsf{*.f64}\left(2, n\right)\right)\right), \left({U}^{\frac{1}{2}}\right)\right) \]
        9. pow1/2N/A

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

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

        \[\leadsto \color{blue}{\sqrt{t \cdot \left(2 \cdot n\right)} \cdot \sqrt{U}} \]
    5. Recombined 2 regimes into one program.
    6. Final simplification62.0%

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

    Alternative 6: 60.7% accurate, 1.7× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 3.6 \cdot 10^{+102}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot \left(t + \frac{\frac{U* - U}{\frac{\frac{Om}{\ell}}{n}} + \ell \cdot -2}{\frac{Om}{\ell}}\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 3.6e+102)
       (sqrt
        (*
         n
         (*
          U
          (* 2.0 (+ t (/ (+ (/ (- U* U) (/ (/ Om l) n)) (* l -2.0)) (/ Om l)))))))
       (sqrt
        (* 2.0 (* (/ U (/ -1.0 (* l (- 2.0 (/ U* (/ Om n)))))) (/ n (/ Om l)))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 3.6e+102) {
    		tmp = sqrt((n * (U * (2.0 * (t + ((((U_42_ - U) / ((Om / l) / n)) + (l * -2.0)) / (Om / l)))))));
    	} else {
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	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 <= 3.6d+102) then
            tmp = sqrt((n * (u * (2.0d0 * (t + ((((u_42 - u) / ((om / l) / n)) + (l * (-2.0d0))) / (om / l)))))))
        else
            tmp = sqrt((2.0d0 * ((u / ((-1.0d0) / (l * (2.0d0 - (u_42 / (om / n)))))) * (n / (om / l)))))
        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 <= 3.6e+102) {
    		tmp = Math.sqrt((n * (U * (2.0 * (t + ((((U_42_ - U) / ((Om / l) / n)) + (l * -2.0)) / (Om / l)))))));
    	} else {
    		tmp = Math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 3.6e+102:
    		tmp = math.sqrt((n * (U * (2.0 * (t + ((((U_42_ - U) / ((Om / l) / n)) + (l * -2.0)) / (Om / l)))))))
    	else:
    		tmp = math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 3.6e+102)
    		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * Float64(t + Float64(Float64(Float64(Float64(U_42_ - U) / Float64(Float64(Om / l) / n)) + Float64(l * -2.0)) / Float64(Om / l)))))));
    	else
    		tmp = sqrt(Float64(2.0 * Float64(Float64(U / Float64(-1.0 / Float64(l * Float64(2.0 - Float64(U_42_ / Float64(Om / n)))))) * Float64(n / Float64(Om / l)))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 3.6e+102)
    		tmp = sqrt((n * (U * (2.0 * (t + ((((U_42_ - U) / ((Om / l) / n)) + (l * -2.0)) / (Om / l)))))));
    	else
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 3.6e+102], N[Sqrt[N[(n * N[(U * N[(2.0 * N[(t + N[(N[(N[(N[(U$42$ - U), $MachinePrecision] / N[(N[(Om / l), $MachinePrecision] / n), $MachinePrecision]), $MachinePrecision] + N[(l * -2.0), $MachinePrecision]), $MachinePrecision] / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(2.0 * N[(N[(U / N[(-1.0 / N[(l * N[(2.0 - N[(U$42$ / N[(Om / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(n / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 3.6 \cdot 10^{+102}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot \left(t + \frac{\frac{U* - U}{\frac{\frac{Om}{\ell}}{n}} + \ell \cdot -2}{\frac{Om}{\ell}}\right)\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 3.6000000000000002e102

      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. Simplified57.2%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

      if 3.6000000000000002e102 < l

      1. Initial program 28.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. Simplified51.1%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6436.4%

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \left(\frac{n}{Om}\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. /-lowering-/.f6436.4%

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \left(U* \cdot \frac{1}{\frac{Om}{n}}\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. un-div-invN/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \left(\frac{Om}{n}\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        9. /-lowering-/.f6436.4%

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\left(U \cdot n\right) \cdot \frac{1}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        4. un-div-invN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        5. neg-mul-1N/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)} \cdot \frac{Om}{\ell}}\right)\right)\right) \]
        7. times-fracN/A

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(U, \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \mathsf{/.f64}\left(Om, n\right)\right)\right)\right)\right)\right), \mathsf{/.f64}\left(n, \left(\frac{Om}{\ell}\right)\right)\right)\right)\right) \]
      13. Applied egg-rr60.7%

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

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

    Alternative 7: 59.6% accurate, 1.8× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 3.5 \cdot 10^{+103}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot \left(t + \frac{\ell \cdot -2 + U* \cdot \left(\ell \cdot \frac{n}{Om}\right)}{\frac{Om}{\ell}}\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 3.5e+103)
       (sqrt
        (*
         n
         (* U (* 2.0 (+ t (/ (+ (* l -2.0) (* U* (* l (/ n Om)))) (/ Om l)))))))
       (sqrt
        (* 2.0 (* (/ U (/ -1.0 (* l (- 2.0 (/ U* (/ Om n)))))) (/ n (/ Om l)))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 3.5e+103) {
    		tmp = sqrt((n * (U * (2.0 * (t + (((l * -2.0) + (U_42_ * (l * (n / Om)))) / (Om / l)))))));
    	} else {
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	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 <= 3.5d+103) then
            tmp = sqrt((n * (u * (2.0d0 * (t + (((l * (-2.0d0)) + (u_42 * (l * (n / om)))) / (om / l)))))))
        else
            tmp = sqrt((2.0d0 * ((u / ((-1.0d0) / (l * (2.0d0 - (u_42 / (om / n)))))) * (n / (om / l)))))
        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 <= 3.5e+103) {
    		tmp = Math.sqrt((n * (U * (2.0 * (t + (((l * -2.0) + (U_42_ * (l * (n / Om)))) / (Om / l)))))));
    	} else {
    		tmp = Math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 3.5e+103:
    		tmp = math.sqrt((n * (U * (2.0 * (t + (((l * -2.0) + (U_42_ * (l * (n / Om)))) / (Om / l)))))))
    	else:
    		tmp = math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 3.5e+103)
    		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * Float64(t + Float64(Float64(Float64(l * -2.0) + Float64(U_42_ * Float64(l * Float64(n / Om)))) / Float64(Om / l)))))));
    	else
    		tmp = sqrt(Float64(2.0 * Float64(Float64(U / Float64(-1.0 / Float64(l * Float64(2.0 - Float64(U_42_ / Float64(Om / n)))))) * Float64(n / Float64(Om / l)))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 3.5e+103)
    		tmp = sqrt((n * (U * (2.0 * (t + (((l * -2.0) + (U_42_ * (l * (n / Om)))) / (Om / l)))))));
    	else
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 3.5e+103], N[Sqrt[N[(n * N[(U * N[(2.0 * N[(t + N[(N[(N[(l * -2.0), $MachinePrecision] + N[(U$42$ * N[(l * N[(n / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(2.0 * N[(N[(U / N[(-1.0 / N[(l * N[(2.0 - N[(U$42$ / N[(Om / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(n / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 3.5 \cdot 10^{+103}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot \left(t + \frac{\ell \cdot -2 + U* \cdot \left(\ell \cdot \frac{n}{Om}\right)}{\frac{Om}{\ell}}\right)\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 3.5e103

      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. Simplified57.2%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if 3.5e103 < l

      1. Initial program 28.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. Simplified51.1%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6436.4%

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \left(\frac{n}{Om}\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. /-lowering-/.f6436.4%

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \left(U* \cdot \frac{1}{\frac{Om}{n}}\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. un-div-invN/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \left(\frac{Om}{n}\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        9. /-lowering-/.f6436.4%

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\left(U \cdot n\right) \cdot \frac{1}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        4. un-div-invN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        5. neg-mul-1N/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)} \cdot \frac{Om}{\ell}}\right)\right)\right) \]
        7. times-fracN/A

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(U, \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \mathsf{/.f64}\left(Om, n\right)\right)\right)\right)\right)\right), \mathsf{/.f64}\left(n, \left(\frac{Om}{\ell}\right)\right)\right)\right)\right) \]
      13. Applied egg-rr60.7%

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

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

    Alternative 8: 59.6% accurate, 1.8× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;\sqrt{2 \cdot \left(\left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + U* \cdot \frac{n \cdot \ell}{Om}\right)\right) \cdot \left(n \cdot U\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 2.9e+103)
       (sqrt
        (*
         2.0
         (* (+ t (* (/ l Om) (+ (* l -2.0) (* U* (/ (* n l) Om))))) (* n U))))
       (sqrt
        (* 2.0 (* (/ U (/ -1.0 (* l (- 2.0 (/ U* (/ Om n)))))) (/ n (/ Om l)))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 2.9e+103) {
    		tmp = sqrt((2.0 * ((t + ((l / Om) * ((l * -2.0) + (U_42_ * ((n * l) / Om))))) * (n * U))));
    	} else {
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	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 <= 2.9d+103) then
            tmp = sqrt((2.0d0 * ((t + ((l / om) * ((l * (-2.0d0)) + (u_42 * ((n * l) / om))))) * (n * u))))
        else
            tmp = sqrt((2.0d0 * ((u / ((-1.0d0) / (l * (2.0d0 - (u_42 / (om / n)))))) * (n / (om / l)))))
        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 <= 2.9e+103) {
    		tmp = Math.sqrt((2.0 * ((t + ((l / Om) * ((l * -2.0) + (U_42_ * ((n * l) / Om))))) * (n * U))));
    	} else {
    		tmp = Math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 2.9e+103:
    		tmp = math.sqrt((2.0 * ((t + ((l / Om) * ((l * -2.0) + (U_42_ * ((n * l) / Om))))) * (n * U))))
    	else:
    		tmp = math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 2.9e+103)
    		tmp = sqrt(Float64(2.0 * Float64(Float64(t + Float64(Float64(l / Om) * Float64(Float64(l * -2.0) + Float64(U_42_ * Float64(Float64(n * l) / Om))))) * Float64(n * U))));
    	else
    		tmp = sqrt(Float64(2.0 * Float64(Float64(U / Float64(-1.0 / Float64(l * Float64(2.0 - Float64(U_42_ / Float64(Om / n)))))) * Float64(n / Float64(Om / l)))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 2.9e+103)
    		tmp = sqrt((2.0 * ((t + ((l / Om) * ((l * -2.0) + (U_42_ * ((n * l) / Om))))) * (n * U))));
    	else
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 2.9e+103], N[Sqrt[N[(2.0 * N[(N[(t + N[(N[(l / Om), $MachinePrecision] * N[(N[(l * -2.0), $MachinePrecision] + N[(U$42$ * N[(N[(n * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(n * U), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(2.0 * N[(N[(U / N[(-1.0 / N[(l * N[(2.0 - N[(U$42$ / N[(Om / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(n / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 2.9 \cdot 10^{+103}:\\
    \;\;\;\;\sqrt{2 \cdot \left(\left(t + \frac{\ell}{Om} \cdot \left(\ell \cdot -2 + U* \cdot \frac{n \cdot \ell}{Om}\right)\right) \cdot \left(n \cdot U\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 2.8999999999999998e103

      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. Simplified57.2%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in U* around inf

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

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

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

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

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

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

      if 2.8999999999999998e103 < l

      1. Initial program 28.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. Simplified51.1%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6436.4%

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \left(\frac{n}{Om}\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. /-lowering-/.f6436.4%

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \left(U* \cdot \frac{1}{\frac{Om}{n}}\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. un-div-invN/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \left(\frac{Om}{n}\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        9. /-lowering-/.f6436.4%

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\left(U \cdot n\right) \cdot \frac{1}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        4. un-div-invN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        5. neg-mul-1N/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)} \cdot \frac{Om}{\ell}}\right)\right)\right) \]
        7. times-fracN/A

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(U, \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \mathsf{/.f64}\left(Om, n\right)\right)\right)\right)\right)\right), \mathsf{/.f64}\left(n, \left(\frac{Om}{\ell}\right)\right)\right)\right)\right) \]
      13. Applied egg-rr60.7%

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

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

    Alternative 9: 48.4% accurate, 1.8× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 2.4 \cdot 10^{+38}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 2.4e+38)
       (sqrt (* n (* U (+ (/ (* -4.0 (* l l)) Om) (* 2.0 t)))))
       (sqrt
        (* 2.0 (* (/ U (/ -1.0 (* l (- 2.0 (/ U* (/ Om n)))))) (/ n (/ Om l)))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 2.4e+38) {
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	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 <= 2.4d+38) then
            tmp = sqrt((n * (u * ((((-4.0d0) * (l * l)) / om) + (2.0d0 * t)))))
        else
            tmp = sqrt((2.0d0 * ((u / ((-1.0d0) / (l * (2.0d0 - (u_42 / (om / n)))))) * (n / (om / l)))))
        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 <= 2.4e+38) {
    		tmp = Math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = Math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 2.4e+38:
    		tmp = math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))))
    	else:
    		tmp = math.sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 2.4e+38)
    		tmp = sqrt(Float64(n * Float64(U * Float64(Float64(Float64(-4.0 * Float64(l * l)) / Om) + Float64(2.0 * t)))));
    	else
    		tmp = sqrt(Float64(2.0 * Float64(Float64(U / Float64(-1.0 / Float64(l * Float64(2.0 - Float64(U_42_ / Float64(Om / n)))))) * Float64(n / Float64(Om / l)))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 2.4e+38)
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	else
    		tmp = sqrt((2.0 * ((U / (-1.0 / (l * (2.0 - (U_42_ / (Om / n)))))) * (n / (Om / l)))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 2.4e+38], N[Sqrt[N[(n * N[(U * N[(N[(N[(-4.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] + N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(2.0 * N[(N[(U / N[(-1.0 / N[(l * N[(2.0 - N[(U$42$ / N[(Om / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(n / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 2.4 \cdot 10^{+38}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{2 \cdot \left(\frac{U}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)}} \cdot \frac{n}{\frac{Om}{\ell}}\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 2.40000000000000017e38

      1. Initial program 50.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. Simplified55.3%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if 2.40000000000000017e38 < l

      1. Initial program 44.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. Simplified61.3%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6446.0%

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \left(\frac{n}{Om}\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. /-lowering-/.f6446.0%

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \left(U* \cdot \frac{1}{\frac{Om}{n}}\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. un-div-invN/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \left(\frac{Om}{n}\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        9. /-lowering-/.f6446.1%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \mathsf{/.f64}\left(Om, n\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      11. Applied egg-rr46.1%

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\left(U \cdot n\right) \cdot \frac{1}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        4. un-div-invN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{\mathsf{neg}\left(Om\right)}{\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \ell}}\right)\right)\right) \]
        5. neg-mul-1N/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \left(\frac{U \cdot n}{\frac{-1}{\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)} \cdot \frac{Om}{\ell}}\right)\right)\right) \]
        7. times-fracN/A

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(U, \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \mathsf{/.f64}\left(Om, n\right)\right)\right)\right)\right)\right), \mathsf{/.f64}\left(n, \left(\frac{Om}{\ell}\right)\right)\right)\right)\right) \]
      13. Applied egg-rr62.3%

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

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

    Alternative 10: 46.3% accurate, 1.8× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 1.7 \cdot 10^{+39}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(-2 \cdot \left(\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 1.7e+39)
       (sqrt (* n (* U (+ (/ (* -4.0 (* l l)) Om) (* 2.0 t)))))
       (sqrt (* n (* U (* -2.0 (* (* l (- 2.0 (/ U* (/ Om n)))) (/ l Om))))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 1.7e+39) {
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = sqrt((n * (U * (-2.0 * ((l * (2.0 - (U_42_ / (Om / n)))) * (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.7d+39) then
            tmp = sqrt((n * (u * ((((-4.0d0) * (l * l)) / om) + (2.0d0 * t)))))
        else
            tmp = sqrt((n * (u * ((-2.0d0) * ((l * (2.0d0 - (u_42 / (om / n)))) * (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.7e+39) {
    		tmp = Math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = Math.sqrt((n * (U * (-2.0 * ((l * (2.0 - (U_42_ / (Om / n)))) * (l / Om))))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 1.7e+39:
    		tmp = math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))))
    	else:
    		tmp = math.sqrt((n * (U * (-2.0 * ((l * (2.0 - (U_42_ / (Om / n)))) * (l / Om))))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 1.7e+39)
    		tmp = sqrt(Float64(n * Float64(U * Float64(Float64(Float64(-4.0 * Float64(l * l)) / Om) + Float64(2.0 * t)))));
    	else
    		tmp = sqrt(Float64(n * Float64(U * Float64(-2.0 * Float64(Float64(l * Float64(2.0 - Float64(U_42_ / Float64(Om / n)))) * Float64(l / Om))))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 1.7e+39)
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	else
    		tmp = sqrt((n * (U * (-2.0 * ((l * (2.0 - (U_42_ / (Om / n)))) * (l / Om))))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 1.7e+39], N[Sqrt[N[(n * N[(U * N[(N[(N[(-4.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] + N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(n * N[(U * N[(-2.0 * N[(N[(l * N[(2.0 - N[(U$42$ / N[(Om / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 1.7 \cdot 10^{+39}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(-2 \cdot \left(\left(\ell \cdot \left(2 - \frac{U*}{\frac{Om}{n}}\right)\right) \cdot \frac{\ell}{Om}\right)\right)\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 1.6999999999999999e39

      1. Initial program 50.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. Simplified55.3%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if 1.6999999999999999e39 < l

      1. Initial program 44.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. Simplified61.3%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6446.0%

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \left(\frac{n}{Om}\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. /-lowering-/.f6446.0%

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \left(U* \cdot \frac{1}{\frac{Om}{n}}\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. un-div-invN/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \left(\frac{Om}{n}\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        9. /-lowering-/.f6446.1%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \mathsf{/.f64}\left(Om, n\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      11. Applied egg-rr46.1%

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

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

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

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

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

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

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

    Alternative 11: 44.5% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 2.5 \cdot 10^{+137}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{n \cdot \frac{2 \cdot \left(U \cdot \left(n \cdot \left(U* \cdot \left(\ell \cdot \ell\right)\right)\right)\right)}{Om \cdot Om}}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 2.5e+137)
       (sqrt (* n (* U (+ (/ (* -4.0 (* l l)) Om) (* 2.0 t)))))
       (sqrt (* n (/ (* 2.0 (* U (* n (* U* (* l l))))) (* Om Om))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 2.5e+137) {
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = sqrt((n * ((2.0 * (U * (n * (U_42_ * (l * l))))) / (Om * 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 <= 2.5d+137) then
            tmp = sqrt((n * (u * ((((-4.0d0) * (l * l)) / om) + (2.0d0 * t)))))
        else
            tmp = sqrt((n * ((2.0d0 * (u * (n * (u_42 * (l * l))))) / (om * 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 <= 2.5e+137) {
    		tmp = Math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = Math.sqrt((n * ((2.0 * (U * (n * (U_42_ * (l * l))))) / (Om * Om))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 2.5e+137:
    		tmp = math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))))
    	else:
    		tmp = math.sqrt((n * ((2.0 * (U * (n * (U_42_ * (l * l))))) / (Om * Om))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 2.5e+137)
    		tmp = sqrt(Float64(n * Float64(U * Float64(Float64(Float64(-4.0 * Float64(l * l)) / Om) + Float64(2.0 * t)))));
    	else
    		tmp = sqrt(Float64(n * Float64(Float64(2.0 * Float64(U * Float64(n * Float64(U_42_ * Float64(l * l))))) / Float64(Om * Om))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 2.5e+137)
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	else
    		tmp = sqrt((n * ((2.0 * (U * (n * (U_42_ * (l * l))))) / (Om * Om))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 2.5e+137], N[Sqrt[N[(n * N[(U * N[(N[(N[(-4.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] + N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(n * N[(N[(2.0 * N[(U * N[(n * N[(U$42$ * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 2.5 \cdot 10^{+137}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{n \cdot \frac{2 \cdot \left(U \cdot \left(n \cdot \left(U* \cdot \left(\ell \cdot \ell\right)\right)\right)\right)}{Om \cdot Om}}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 2.5000000000000001e137

      1. Initial program 52.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. Simplified57.4%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if 2.5000000000000001e137 < l

      1. Initial program 24.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. Simplified49.4%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Alternative 12: 44.4% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 2.5 \cdot 10^{+137}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(U \cdot \left(n \cdot 2\right)\right) \cdot \frac{U* \cdot \left(n \cdot \left(\ell \cdot \ell\right)\right)}{Om \cdot Om}}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 2.5e+137)
       (sqrt (* n (* U (+ (/ (* -4.0 (* l l)) Om) (* 2.0 t)))))
       (sqrt (* (* U (* n 2.0)) (/ (* U* (* n (* l l))) (* Om Om))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 2.5e+137) {
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = sqrt(((U * (n * 2.0)) * ((U_42_ * (n * (l * l))) / (Om * 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 <= 2.5d+137) then
            tmp = sqrt((n * (u * ((((-4.0d0) * (l * l)) / om) + (2.0d0 * t)))))
        else
            tmp = sqrt(((u * (n * 2.0d0)) * ((u_42 * (n * (l * l))) / (om * 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 <= 2.5e+137) {
    		tmp = Math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = Math.sqrt(((U * (n * 2.0)) * ((U_42_ * (n * (l * l))) / (Om * Om))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 2.5e+137:
    		tmp = math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))))
    	else:
    		tmp = math.sqrt(((U * (n * 2.0)) * ((U_42_ * (n * (l * l))) / (Om * Om))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 2.5e+137)
    		tmp = sqrt(Float64(n * Float64(U * Float64(Float64(Float64(-4.0 * Float64(l * l)) / Om) + Float64(2.0 * t)))));
    	else
    		tmp = sqrt(Float64(Float64(U * Float64(n * 2.0)) * Float64(Float64(U_42_ * Float64(n * Float64(l * l))) / Float64(Om * Om))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 2.5e+137)
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	else
    		tmp = sqrt(((U * (n * 2.0)) * ((U_42_ * (n * (l * l))) / (Om * Om))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 2.5e+137], N[Sqrt[N[(n * N[(U * N[(N[(N[(-4.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] + N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(U * N[(n * 2.0), $MachinePrecision]), $MachinePrecision] * N[(N[(U$42$ * N[(n * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 2.5 \cdot 10^{+137}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{\left(U \cdot \left(n \cdot 2\right)\right) \cdot \frac{U* \cdot \left(n \cdot \left(\ell \cdot \ell\right)\right)}{Om \cdot Om}}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 2.5000000000000001e137

      1. Initial program 52.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. Simplified57.4%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if 2.5000000000000001e137 < l

      1. Initial program 24.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. Add Preprocessing
      3. Taylor expanded in U* around inf

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, n\right), U\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(U*, \mathsf{*.f64}\left(n, \mathsf{*.f64}\left(\ell, \ell\right)\right)\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right) \]
      5. Simplified38.8%

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

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

    Alternative 13: 44.5% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 2.5 \cdot 10^{+137}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{2 \cdot \left(U \cdot \left(\frac{U* \cdot \left(\ell \cdot \ell\right)}{Om} \cdot \frac{n \cdot n}{Om}\right)\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 2.5e+137)
       (sqrt (* n (* U (+ (/ (* -4.0 (* l l)) Om) (* 2.0 t)))))
       (sqrt (* 2.0 (* U (* (/ (* U* (* l l)) Om) (/ (* n n) Om)))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 2.5e+137) {
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = sqrt((2.0 * (U * (((U_42_ * (l * l)) / Om) * ((n * 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) :: tmp
        if (l <= 2.5d+137) then
            tmp = sqrt((n * (u * ((((-4.0d0) * (l * l)) / om) + (2.0d0 * t)))))
        else
            tmp = sqrt((2.0d0 * (u * (((u_42 * (l * l)) / om) * ((n * 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 tmp;
    	if (l <= 2.5e+137) {
    		tmp = Math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = Math.sqrt((2.0 * (U * (((U_42_ * (l * l)) / Om) * ((n * n) / Om)))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 2.5e+137:
    		tmp = math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))))
    	else:
    		tmp = math.sqrt((2.0 * (U * (((U_42_ * (l * l)) / Om) * ((n * n) / Om)))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 2.5e+137)
    		tmp = sqrt(Float64(n * Float64(U * Float64(Float64(Float64(-4.0 * Float64(l * l)) / Om) + Float64(2.0 * t)))));
    	else
    		tmp = sqrt(Float64(2.0 * Float64(U * Float64(Float64(Float64(U_42_ * Float64(l * l)) / Om) * Float64(Float64(n * n) / Om)))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 2.5e+137)
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	else
    		tmp = sqrt((2.0 * (U * (((U_42_ * (l * l)) / Om) * ((n * n) / Om)))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 2.5e+137], N[Sqrt[N[(n * N[(U * N[(N[(N[(-4.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] + N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(2.0 * N[(U * N[(N[(N[(U$42$ * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] * N[(N[(n * n), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 2.5 \cdot 10^{+137}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{2 \cdot \left(U \cdot \left(\frac{U* \cdot \left(\ell \cdot \ell\right)}{Om} \cdot \frac{n \cdot n}{Om}\right)\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 2.5000000000000001e137

      1. Initial program 52.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. Simplified57.4%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if 2.5000000000000001e137 < l

      1. Initial program 24.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. Simplified49.4%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6439.8%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      6. Simplified39.8%

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \left(\frac{n}{Om}\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. /-lowering-/.f6439.8%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \mathsf{/.f64}\left(n, Om\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      9. Simplified39.8%

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \left(U* \cdot \frac{1}{\frac{Om}{n}}\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. un-div-invN/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{\_.f64}\left(2, \mathsf{/.f64}\left(U*, \left(\frac{Om}{n}\right)\right)\right)\right), \ell\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        9. /-lowering-/.f6439.8%

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(U, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(U*, \mathsf{*.f64}\left(\ell, \ell\right)\right), Om\right), \mathsf{/.f64}\left(\mathsf{*.f64}\left(n, n\right), Om\right)\right)\right)\right)\right) \]
      14. Simplified35.3%

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

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

    Alternative 14: 44.6% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;U \leq 5 \cdot 10^{-57}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(U \cdot \left(n \cdot 2\right)\right) \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= U 5e-57)
       (sqrt (* n (* U (+ (/ (* -4.0 (* l l)) Om) (* 2.0 t)))))
       (sqrt (* (* U (* n 2.0)) (- t (* 2.0 (/ (* l l) Om)))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (U <= 5e-57) {
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = sqrt(((U * (n * 2.0)) * (t - (2.0 * ((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 (u <= 5d-57) then
            tmp = sqrt((n * (u * ((((-4.0d0) * (l * l)) / om) + (2.0d0 * t)))))
        else
            tmp = sqrt(((u * (n * 2.0d0)) * (t - (2.0d0 * ((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 (U <= 5e-57) {
    		tmp = Math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	} else {
    		tmp = Math.sqrt(((U * (n * 2.0)) * (t - (2.0 * ((l * l) / Om)))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if U <= 5e-57:
    		tmp = math.sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))))
    	else:
    		tmp = math.sqrt(((U * (n * 2.0)) * (t - (2.0 * ((l * l) / Om)))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (U <= 5e-57)
    		tmp = sqrt(Float64(n * Float64(U * Float64(Float64(Float64(-4.0 * Float64(l * l)) / Om) + Float64(2.0 * t)))));
    	else
    		tmp = sqrt(Float64(Float64(U * Float64(n * 2.0)) * Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om)))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (U <= 5e-57)
    		tmp = sqrt((n * (U * (((-4.0 * (l * l)) / Om) + (2.0 * t)))));
    	else
    		tmp = sqrt(((U * (n * 2.0)) * (t - (2.0 * ((l * l) / Om)))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[U, 5e-57], N[Sqrt[N[(n * N[(U * N[(N[(N[(-4.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] + N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(U * N[(n * 2.0), $MachinePrecision]), $MachinePrecision] * N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;U \leq 5 \cdot 10^{-57}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(\frac{-4 \cdot \left(\ell \cdot \ell\right)}{Om} + 2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{\left(U \cdot \left(n \cdot 2\right)\right) \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if U < 5.0000000000000002e-57

      1. Initial program 44.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. Simplified52.1%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if 5.0000000000000002e-57 < U

      1. Initial program 67.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. Add Preprocessing
      3. Taylor expanded in Om around inf

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

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

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

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

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

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

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

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

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

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

    Alternative 15: 43.5% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_1 := t - 2 \cdot \frac{\ell \cdot \ell}{Om}\\ \mathbf{if}\;U* \leq 9 \cdot 10^{-195}:\\ \;\;\;\;\sqrt{\left(U \cdot \left(n \cdot 2\right)\right) \cdot t\_1}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\_1\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (let* ((t_1 (- t (* 2.0 (/ (* l l) Om)))))
       (if (<= U* 9e-195)
         (sqrt (* (* U (* n 2.0)) t_1))
         (sqrt (* (* 2.0 U) (* n t_1))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double t_1 = t - (2.0 * ((l * l) / Om));
    	double tmp;
    	if (U_42_ <= 9e-195) {
    		tmp = sqrt(((U * (n * 2.0)) * t_1));
    	} else {
    		tmp = sqrt(((2.0 * U) * (n * 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 = t - (2.0d0 * ((l * l) / om))
        if (u_42 <= 9d-195) then
            tmp = sqrt(((u * (n * 2.0d0)) * t_1))
        else
            tmp = sqrt(((2.0d0 * u) * (n * 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 = t - (2.0 * ((l * l) / Om));
    	double tmp;
    	if (U_42_ <= 9e-195) {
    		tmp = Math.sqrt(((U * (n * 2.0)) * t_1));
    	} else {
    		tmp = Math.sqrt(((2.0 * U) * (n * t_1)));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	t_1 = t - (2.0 * ((l * l) / Om))
    	tmp = 0
    	if U_42_ <= 9e-195:
    		tmp = math.sqrt(((U * (n * 2.0)) * t_1))
    	else:
    		tmp = math.sqrt(((2.0 * U) * (n * t_1)))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	t_1 = Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om)))
    	tmp = 0.0
    	if (U_42_ <= 9e-195)
    		tmp = sqrt(Float64(Float64(U * Float64(n * 2.0)) * t_1));
    	else
    		tmp = sqrt(Float64(Float64(2.0 * U) * Float64(n * t_1)));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	t_1 = t - (2.0 * ((l * l) / Om));
    	tmp = 0.0;
    	if (U_42_ <= 9e-195)
    		tmp = sqrt(((U * (n * 2.0)) * t_1));
    	else
    		tmp = sqrt(((2.0 * U) * (n * t_1)));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[U$42$, 9e-195], N[Sqrt[N[(N[(U * N[(n * 2.0), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(2.0 * U), $MachinePrecision] * N[(n * t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_1 := t - 2 \cdot \frac{\ell \cdot \ell}{Om}\\
    \mathbf{if}\;U* \leq 9 \cdot 10^{-195}:\\
    \;\;\;\;\sqrt{\left(U \cdot \left(n \cdot 2\right)\right) \cdot t\_1}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\_1\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if U* < 9e-195

      1. Initial program 51.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. Add Preprocessing
      3. Taylor expanded in Om around inf

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

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

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

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

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

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

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

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

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

      if 9e-195 < U*

      1. Initial program 45.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. Simplified57.9%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. 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) \]
      5. 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. *-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) \]
        3. *-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) \]
        4. *-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) \]
        5. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \left(t + \left(\mathsf{neg}\left(2\right)\right) \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
        6. cancel-sign-sub-invN/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-*.f6448.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) \]
      6. Simplified48.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)}} \]
    3. Recombined 2 regimes into one program.
    4. Final simplification46.9%

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

    Alternative 16: 39.6% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 8.5 \cdot 10^{-217}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 8.5e-217)
       (sqrt (* n (* U (* 2.0 t))))
       (sqrt (* (* 2.0 U) (* n (- t (* 2.0 (/ (* l l) Om))))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 8.5e-217) {
    		tmp = sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = sqrt(((2.0 * U) * (n * (t - (2.0 * ((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 <= 8.5d-217) then
            tmp = sqrt((n * (u * (2.0d0 * t))))
        else
            tmp = sqrt(((2.0d0 * u) * (n * (t - (2.0d0 * ((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 <= 8.5e-217) {
    		tmp = Math.sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = Math.sqrt(((2.0 * U) * (n * (t - (2.0 * ((l * l) / Om))))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 8.5e-217:
    		tmp = math.sqrt((n * (U * (2.0 * t))))
    	else:
    		tmp = math.sqrt(((2.0 * U) * (n * (t - (2.0 * ((l * l) / Om))))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 8.5e-217)
    		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * t))));
    	else
    		tmp = sqrt(Float64(Float64(2.0 * U) * Float64(n * Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om))))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 8.5e-217)
    		tmp = sqrt((n * (U * (2.0 * t))));
    	else
    		tmp = sqrt(((2.0 * U) * (n * (t - (2.0 * ((l * l) / Om))))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 8.5e-217], N[Sqrt[N[(n * N[(U * N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(2.0 * U), $MachinePrecision] * N[(n * N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 8.5 \cdot 10^{-217}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right)\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 8.4999999999999994e-217

      1. Initial program 49.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. Simplified55.2%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\color{blue}{\left(2 \cdot t\right)}, U\right), n\right)\right) \]
      7. Step-by-step derivation
        1. *-lowering-*.f6436.2%

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

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

      if 8.4999999999999994e-217 < l

      1. Initial program 49.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. Simplified58.1%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. 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) \]
      5. 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. *-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) \]
        3. *-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) \]
        4. *-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) \]
        5. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, \left(t + \left(\mathsf{neg}\left(2\right)\right) \cdot \frac{{\ell}^{2}}{Om}\right)\right)\right)\right) \]
        6. cancel-sign-sub-invN/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-*.f6448.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) \]
      6. Simplified48.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)}} \]
    3. Recombined 2 regimes into one program.
    4. Final simplification41.2%

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

    Alternative 17: 36.6% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 8.8 \cdot 10^{+44}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{2 \cdot \left(\left(n \cdot U\right) \cdot \frac{-2 \cdot \left(\ell \cdot \ell\right)}{Om}\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 8.8e+44)
       (sqrt (* n (* U (* 2.0 t))))
       (sqrt (* 2.0 (* (* n U) (/ (* -2.0 (* l l)) Om))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 8.8e+44) {
    		tmp = sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = sqrt((2.0 * ((n * U) * ((-2.0 * (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 <= 8.8d+44) then
            tmp = sqrt((n * (u * (2.0d0 * t))))
        else
            tmp = sqrt((2.0d0 * ((n * u) * (((-2.0d0) * (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 <= 8.8e+44) {
    		tmp = Math.sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = Math.sqrt((2.0 * ((n * U) * ((-2.0 * (l * l)) / Om))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 8.8e+44:
    		tmp = math.sqrt((n * (U * (2.0 * t))))
    	else:
    		tmp = math.sqrt((2.0 * ((n * U) * ((-2.0 * (l * l)) / Om))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 8.8e+44)
    		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * t))));
    	else
    		tmp = sqrt(Float64(2.0 * Float64(Float64(n * U) * Float64(Float64(-2.0 * Float64(l * l)) / Om))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 8.8e+44)
    		tmp = sqrt((n * (U * (2.0 * t))));
    	else
    		tmp = sqrt((2.0 * ((n * U) * ((-2.0 * (l * l)) / Om))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 8.8e+44], N[Sqrt[N[(n * N[(U * N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(2.0 * N[(N[(n * U), $MachinePrecision] * N[(N[(-2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 8.8 \cdot 10^{+44}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{2 \cdot \left(\left(n \cdot U\right) \cdot \frac{-2 \cdot \left(\ell \cdot \ell\right)}{Om}\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 8.79999999999999983e44

      1. Initial program 50.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. Simplified55.5%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\color{blue}{\left(2 \cdot t\right)}, U\right), n\right)\right) \]
      7. Step-by-step derivation
        1. *-lowering-*.f6440.3%

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

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

      if 8.79999999999999983e44 < l

      1. Initial program 44.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. Simplified60.5%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6444.9%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      6. Simplified44.9%

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

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

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

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

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

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

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

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

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

    Alternative 18: 37.1% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 7 \cdot 10^{+44}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{-4 \cdot \frac{U \cdot \left(n \cdot \left(\ell \cdot \ell\right)\right)}{Om}}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 7e+44)
       (sqrt (* n (* U (* 2.0 t))))
       (sqrt (* -4.0 (/ (* U (* n (* l l))) Om)))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 7e+44) {
    		tmp = sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = sqrt((-4.0 * ((U * (n * (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 <= 7d+44) then
            tmp = sqrt((n * (u * (2.0d0 * t))))
        else
            tmp = sqrt(((-4.0d0) * ((u * (n * (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 <= 7e+44) {
    		tmp = Math.sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = Math.sqrt((-4.0 * ((U * (n * (l * l))) / Om)));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 7e+44:
    		tmp = math.sqrt((n * (U * (2.0 * t))))
    	else:
    		tmp = math.sqrt((-4.0 * ((U * (n * (l * l))) / Om)))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 7e+44)
    		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * t))));
    	else
    		tmp = sqrt(Float64(-4.0 * Float64(Float64(U * Float64(n * Float64(l * l))) / Om)));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 7e+44)
    		tmp = sqrt((n * (U * (2.0 * t))));
    	else
    		tmp = sqrt((-4.0 * ((U * (n * (l * l))) / Om)));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 7e+44], N[Sqrt[N[(n * N[(U * N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(-4.0 * N[(N[(U * N[(n * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 7 \cdot 10^{+44}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{-4 \cdot \frac{U \cdot \left(n \cdot \left(\ell \cdot \ell\right)\right)}{Om}}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 6.9999999999999998e44

      1. Initial program 50.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. Simplified55.5%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\color{blue}{\left(2 \cdot t\right)}, U\right), n\right)\right) \]
      7. Step-by-step derivation
        1. *-lowering-*.f6440.3%

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

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

      if 6.9999999999999998e44 < l

      1. Initial program 44.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. Simplified60.5%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6444.9%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      6. Simplified44.9%

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \left(\frac{n}{Om}\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        7. /-lowering-/.f6444.9%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(U*, \mathsf{/.f64}\left(n, Om\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      9. Simplified44.9%

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

        \[\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. *-lowering-*.f64N/A

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

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

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

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

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

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

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

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

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

    Alternative 19: 37.2% accurate, 1.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 6.5 \cdot 10^{+44}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{-4 \cdot \left(U \cdot \frac{n \cdot \left(\ell \cdot \ell\right)}{Om}\right)}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= l 6.5e+44)
       (sqrt (* n (* U (* 2.0 t))))
       (sqrt (* -4.0 (* U (/ (* n (* l l)) Om))))))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (l <= 6.5e+44) {
    		tmp = sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = sqrt((-4.0 * (U * ((n * (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 <= 6.5d+44) then
            tmp = sqrt((n * (u * (2.0d0 * t))))
        else
            tmp = sqrt(((-4.0d0) * (u * ((n * (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 <= 6.5e+44) {
    		tmp = Math.sqrt((n * (U * (2.0 * t))));
    	} else {
    		tmp = Math.sqrt((-4.0 * (U * ((n * (l * l)) / Om))));
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if l <= 6.5e+44:
    		tmp = math.sqrt((n * (U * (2.0 * t))))
    	else:
    		tmp = math.sqrt((-4.0 * (U * ((n * (l * l)) / Om))))
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (l <= 6.5e+44)
    		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * t))));
    	else
    		tmp = sqrt(Float64(-4.0 * Float64(U * Float64(Float64(n * Float64(l * l)) / Om))));
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (l <= 6.5e+44)
    		tmp = sqrt((n * (U * (2.0 * t))));
    	else
    		tmp = sqrt((-4.0 * (U * ((n * (l * l)) / Om))));
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 6.5e+44], N[Sqrt[N[(n * N[(U * N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(-4.0 * N[(U * N[(N[(n * N[(l * l), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\ell \leq 6.5 \cdot 10^{+44}:\\
    \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\sqrt{-4 \cdot \left(U \cdot \frac{n \cdot \left(\ell \cdot \ell\right)}{Om}\right)}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if l < 6.50000000000000018e44

      1. Initial program 50.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. Simplified55.5%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Step-by-step derivation
        1. associate-*r*N/A

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\color{blue}{\left(2 \cdot t\right)}, U\right), n\right)\right) \]
      7. Step-by-step derivation
        1. *-lowering-*.f6440.3%

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

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

      if 6.50000000000000018e44 < l

      1. Initial program 44.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. Simplified60.5%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. Taylor expanded in l around -inf

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

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

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

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \left(\mathsf{neg}\left(Om\right)\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
        14. neg-lowering-neg.f6444.9%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(2, \mathsf{*.f64}\left(n, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(U*, U\right), Om\right)\right)\right)\right), \mathsf{neg.f64}\left(Om\right)\right), \mathsf{*.f64}\left(n, U\right)\right)\right)\right) \]
      6. Simplified44.9%

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

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

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

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

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

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

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

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

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

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

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

    Alternative 20: 36.6% accurate, 2.0× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -3.4 \cdot 10^{+117}:\\ \;\;\;\;{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\ \mathbf{else}:\\ \;\;\;\;{\left(2 \cdot \left(n \cdot \left(t \cdot U\right)\right)\right)}^{0.5}\\ \end{array} \end{array} \]
    (FPCore (n U t l Om U*)
     :precision binary64
     (if (<= t -3.4e+117)
       (pow (* 2.0 (* U (* n t))) 0.5)
       (pow (* 2.0 (* n (* t U))) 0.5)))
    double code(double n, double U, double t, double l, double Om, double U_42_) {
    	double tmp;
    	if (t <= -3.4e+117) {
    		tmp = pow((2.0 * (U * (n * t))), 0.5);
    	} else {
    		tmp = pow((2.0 * (n * (t * U))), 0.5);
    	}
    	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 (t <= (-3.4d+117)) then
            tmp = (2.0d0 * (u * (n * t))) ** 0.5d0
        else
            tmp = (2.0d0 * (n * (t * u))) ** 0.5d0
        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 (t <= -3.4e+117) {
    		tmp = Math.pow((2.0 * (U * (n * t))), 0.5);
    	} else {
    		tmp = Math.pow((2.0 * (n * (t * U))), 0.5);
    	}
    	return tmp;
    }
    
    def code(n, U, t, l, Om, U_42_):
    	tmp = 0
    	if t <= -3.4e+117:
    		tmp = math.pow((2.0 * (U * (n * t))), 0.5)
    	else:
    		tmp = math.pow((2.0 * (n * (t * U))), 0.5)
    	return tmp
    
    function code(n, U, t, l, Om, U_42_)
    	tmp = 0.0
    	if (t <= -3.4e+117)
    		tmp = Float64(2.0 * Float64(U * Float64(n * t))) ^ 0.5;
    	else
    		tmp = Float64(2.0 * Float64(n * Float64(t * U))) ^ 0.5;
    	end
    	return tmp
    end
    
    function tmp_2 = code(n, U, t, l, Om, U_42_)
    	tmp = 0.0;
    	if (t <= -3.4e+117)
    		tmp = (2.0 * (U * (n * t))) ^ 0.5;
    	else
    		tmp = (2.0 * (n * (t * U))) ^ 0.5;
    	end
    	tmp_2 = tmp;
    end
    
    code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[t, -3.4e+117], N[Power[N[(2.0 * N[(U * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision], N[Power[N[(2.0 * N[(n * N[(t * U), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;t \leq -3.4 \cdot 10^{+117}:\\
    \;\;\;\;{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\
    
    \mathbf{else}:\\
    \;\;\;\;{\left(2 \cdot \left(n \cdot \left(t \cdot U\right)\right)\right)}^{0.5}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if t < -3.4000000000000001e117

      1. Initial program 48.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. Simplified55.9%

        \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
      3. Add Preprocessing
      4. 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) \]
      5. 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-*.f6439.7%

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

        \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}} \]
      7. 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. pow-lowering-pow.f64N/A

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

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

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

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

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

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

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

      if -3.4000000000000001e117 < t

      1. Initial program 49.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. Add Preprocessing
      3. Taylor expanded in t around inf

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, n\right), U\right), \color{blue}{t}\right)\right) \]
      4. Step-by-step derivation
        1. Simplified33.5%

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

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

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

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

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

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

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

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

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

          \[\leadsto \color{blue}{{\left(2 \cdot \left(n \cdot \left(t \cdot U\right)\right)\right)}^{0.5}} \]
      5. Recombined 2 regimes into one program.
      6. Final simplification37.8%

        \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -3.4 \cdot 10^{+117}:\\ \;\;\;\;{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\ \mathbf{else}:\\ \;\;\;\;{\left(2 \cdot \left(n \cdot \left(t \cdot U\right)\right)\right)}^{0.5}\\ \end{array} \]
      7. Add Preprocessing

      Alternative 21: 35.9% accurate, 2.0× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\ell \leq 2.6 \cdot 10^{-181}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\ \end{array} \end{array} \]
      (FPCore (n U t l Om U*)
       :precision binary64
       (if (<= l 2.6e-181)
         (sqrt (* n (* U (* 2.0 t))))
         (pow (* 2.0 (* U (* n t))) 0.5)))
      double code(double n, double U, double t, double l, double Om, double U_42_) {
      	double tmp;
      	if (l <= 2.6e-181) {
      		tmp = sqrt((n * (U * (2.0 * t))));
      	} else {
      		tmp = pow((2.0 * (U * (n * t))), 0.5);
      	}
      	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 <= 2.6d-181) then
              tmp = sqrt((n * (u * (2.0d0 * t))))
          else
              tmp = (2.0d0 * (u * (n * t))) ** 0.5d0
          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 <= 2.6e-181) {
      		tmp = Math.sqrt((n * (U * (2.0 * t))));
      	} else {
      		tmp = Math.pow((2.0 * (U * (n * t))), 0.5);
      	}
      	return tmp;
      }
      
      def code(n, U, t, l, Om, U_42_):
      	tmp = 0
      	if l <= 2.6e-181:
      		tmp = math.sqrt((n * (U * (2.0 * t))))
      	else:
      		tmp = math.pow((2.0 * (U * (n * t))), 0.5)
      	return tmp
      
      function code(n, U, t, l, Om, U_42_)
      	tmp = 0.0
      	if (l <= 2.6e-181)
      		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * t))));
      	else
      		tmp = Float64(2.0 * Float64(U * Float64(n * t))) ^ 0.5;
      	end
      	return tmp
      end
      
      function tmp_2 = code(n, U, t, l, Om, U_42_)
      	tmp = 0.0;
      	if (l <= 2.6e-181)
      		tmp = sqrt((n * (U * (2.0 * t))));
      	else
      		tmp = (2.0 * (U * (n * t))) ^ 0.5;
      	end
      	tmp_2 = tmp;
      end
      
      code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[l, 2.6e-181], N[Sqrt[N[(n * N[(U * N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Power[N[(2.0 * N[(U * N[(n * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;\ell \leq 2.6 \cdot 10^{-181}:\\
      \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\
      
      \mathbf{else}:\\
      \;\;\;\;{\left(2 \cdot \left(U \cdot \left(n \cdot t\right)\right)\right)}^{0.5}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if l < 2.59999999999999999e-181

        1. Initial program 48.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. Simplified54.5%

          \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
        3. Add Preprocessing
        4. Step-by-step derivation
          1. associate-*r*N/A

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\color{blue}{\left(2 \cdot t\right)}, U\right), n\right)\right) \]
        7. Step-by-step derivation
          1. *-lowering-*.f6436.1%

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, t\right), U\right), n\right)\right) \]
        8. Simplified36.1%

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

        if 2.59999999999999999e-181 < l

        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. Simplified59.6%

          \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
        3. Add Preprocessing
        4. 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) \]
        5. 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-*.f6433.7%

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

          \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}} \]
        7. 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. pow-lowering-pow.f64N/A

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

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

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

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

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

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

          \[\leadsto \color{blue}{{\left(2 \cdot \left(U \cdot \left(t \cdot n\right)\right)\right)}^{0.5}} \]
      3. Recombined 2 regimes into one program.
      4. Final simplification35.6%

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

      Alternative 22: 35.1% accurate, 2.0× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -9 \cdot 10^{+117}:\\ \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\ \end{array} \end{array} \]
      (FPCore (n U t l Om U*)
       :precision binary64
       (if (<= t -9e+117) (sqrt (* (* 2.0 U) (* n t))) (sqrt (* n (* U (* 2.0 t))))))
      double code(double n, double U, double t, double l, double Om, double U_42_) {
      	double tmp;
      	if (t <= -9e+117) {
      		tmp = sqrt(((2.0 * U) * (n * t)));
      	} else {
      		tmp = sqrt((n * (U * (2.0 * t))));
      	}
      	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 (t <= (-9d+117)) then
              tmp = sqrt(((2.0d0 * u) * (n * t)))
          else
              tmp = sqrt((n * (u * (2.0d0 * t))))
          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 (t <= -9e+117) {
      		tmp = Math.sqrt(((2.0 * U) * (n * t)));
      	} else {
      		tmp = Math.sqrt((n * (U * (2.0 * t))));
      	}
      	return tmp;
      }
      
      def code(n, U, t, l, Om, U_42_):
      	tmp = 0
      	if t <= -9e+117:
      		tmp = math.sqrt(((2.0 * U) * (n * t)))
      	else:
      		tmp = math.sqrt((n * (U * (2.0 * t))))
      	return tmp
      
      function code(n, U, t, l, Om, U_42_)
      	tmp = 0.0
      	if (t <= -9e+117)
      		tmp = sqrt(Float64(Float64(2.0 * U) * Float64(n * t)));
      	else
      		tmp = sqrt(Float64(n * Float64(U * Float64(2.0 * t))));
      	end
      	return tmp
      end
      
      function tmp_2 = code(n, U, t, l, Om, U_42_)
      	tmp = 0.0;
      	if (t <= -9e+117)
      		tmp = sqrt(((2.0 * U) * (n * t)));
      	else
      		tmp = sqrt((n * (U * (2.0 * t))));
      	end
      	tmp_2 = tmp;
      end
      
      code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[t, -9e+117], N[Sqrt[N[(N[(2.0 * U), $MachinePrecision] * N[(n * t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(n * N[(U * N[(2.0 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;t \leq -9 \cdot 10^{+117}:\\
      \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}\\
      
      \mathbf{else}:\\
      \;\;\;\;\sqrt{n \cdot \left(U \cdot \left(2 \cdot t\right)\right)}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if t < -9e117

        1. Initial program 48.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. Simplified55.9%

          \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
        3. Add Preprocessing
        4. 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) \]
        5. 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-*.f6439.7%

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

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

        if -9e117 < t

        1. Initial program 49.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. Simplified56.6%

          \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
        3. Add Preprocessing
        4. Step-by-step derivation
          1. associate-*r*N/A

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

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

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

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, t\right), U\right), n\right)\right) \]
        8. Simplified36.5%

          \[\leadsto \sqrt{\left(\color{blue}{\left(2 \cdot t\right)} \cdot U\right) \cdot n} \]
      3. Recombined 2 regimes into one program.
      4. Final simplification37.0%

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

      Alternative 23: 35.4% accurate, 2.0× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;U* \leq 1.4 \cdot 10^{-187}:\\ \;\;\;\;\sqrt{t \cdot \left(U \cdot \left(n \cdot 2\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}\\ \end{array} \end{array} \]
      (FPCore (n U t l Om U*)
       :precision binary64
       (if (<= U* 1.4e-187)
         (sqrt (* t (* U (* n 2.0))))
         (sqrt (* (* 2.0 U) (* n t)))))
      double code(double n, double U, double t, double l, double Om, double U_42_) {
      	double tmp;
      	if (U_42_ <= 1.4e-187) {
      		tmp = sqrt((t * (U * (n * 2.0))));
      	} else {
      		tmp = sqrt(((2.0 * U) * (n * t)));
      	}
      	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 (u_42 <= 1.4d-187) then
              tmp = sqrt((t * (u * (n * 2.0d0))))
          else
              tmp = sqrt(((2.0d0 * u) * (n * t)))
          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 (U_42_ <= 1.4e-187) {
      		tmp = Math.sqrt((t * (U * (n * 2.0))));
      	} else {
      		tmp = Math.sqrt(((2.0 * U) * (n * t)));
      	}
      	return tmp;
      }
      
      def code(n, U, t, l, Om, U_42_):
      	tmp = 0
      	if U_42_ <= 1.4e-187:
      		tmp = math.sqrt((t * (U * (n * 2.0))))
      	else:
      		tmp = math.sqrt(((2.0 * U) * (n * t)))
      	return tmp
      
      function code(n, U, t, l, Om, U_42_)
      	tmp = 0.0
      	if (U_42_ <= 1.4e-187)
      		tmp = sqrt(Float64(t * Float64(U * Float64(n * 2.0))));
      	else
      		tmp = sqrt(Float64(Float64(2.0 * U) * Float64(n * t)));
      	end
      	return tmp
      end
      
      function tmp_2 = code(n, U, t, l, Om, U_42_)
      	tmp = 0.0;
      	if (U_42_ <= 1.4e-187)
      		tmp = sqrt((t * (U * (n * 2.0))));
      	else
      		tmp = sqrt(((2.0 * U) * (n * t)));
      	end
      	tmp_2 = tmp;
      end
      
      code[n_, U_, t_, l_, Om_, U$42$_] := If[LessEqual[U$42$, 1.4e-187], N[Sqrt[N[(t * N[(U * N[(n * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(N[(2.0 * U), $MachinePrecision] * N[(n * t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;U* \leq 1.4 \cdot 10^{-187}:\\
      \;\;\;\;\sqrt{t \cdot \left(U \cdot \left(n \cdot 2\right)\right)}\\
      
      \mathbf{else}:\\
      \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if U* < 1.4e-187

        1. Initial program 51.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. Add Preprocessing
        3. Taylor expanded in t around inf

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, n\right), U\right), \color{blue}{t}\right)\right) \]
        4. Step-by-step derivation
          1. Simplified38.4%

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

          if 1.4e-187 < U*

          1. Initial program 45.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. Simplified57.9%

            \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
          3. Add Preprocessing
          4. 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) \]
          5. 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-*.f6434.3%

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

            \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}} \]
        5. Recombined 2 regimes into one program.
        6. Final simplification36.7%

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

        Alternative 24: 35.7% accurate, 2.1× speedup?

        \[\begin{array}{l} \\ \sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)} \end{array} \]
        (FPCore (n U t l Om U*) :precision binary64 (sqrt (* (* 2.0 U) (* n t))))
        double code(double n, double U, double t, double l, double Om, double U_42_) {
        	return sqrt(((2.0 * U) * (n * t)));
        }
        
        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 * u) * (n * t)))
        end function
        
        public static double code(double n, double U, double t, double l, double Om, double U_42_) {
        	return Math.sqrt(((2.0 * U) * (n * t)));
        }
        
        def code(n, U, t, l, Om, U_42_):
        	return math.sqrt(((2.0 * U) * (n * t)))
        
        function code(n, U, t, l, Om, U_42_)
        	return sqrt(Float64(Float64(2.0 * U) * Float64(n * t)))
        end
        
        function tmp = code(n, U, t, l, Om, U_42_)
        	tmp = sqrt(((2.0 * U) * (n * t)));
        end
        
        code[n_, U_, t_, l_, Om_, U$42$_] := N[Sqrt[N[(N[(2.0 * U), $MachinePrecision] * N[(n * t), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}
        \end{array}
        
        Derivation
        1. Initial program 49.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. Simplified56.4%

          \[\leadsto \color{blue}{\sqrt{2 \cdot \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(n \cdot U\right)\right)}} \]
        3. Add Preprocessing
        4. 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) \]
        5. 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-*.f6435.1%

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(2, U\right), \mathsf{*.f64}\left(n, t\right)\right)\right) \]
        6. Simplified35.1%

          \[\leadsto \sqrt{\color{blue}{\left(2 \cdot U\right) \cdot \left(n \cdot t\right)}} \]
        7. Add Preprocessing

        Reproduce

        ?
        herbie shell --seed 2024145 
        (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*))))))