Toniolo and Linder, Equation (3a)

Percentage Accurate: 98.2% → 99.4%
Time: 17.9s
Alternatives: 10
Speedup: 1.4×

Specification

?
\[\begin{array}{l} \\ \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \end{array} \]
(FPCore (l Om kx ky)
 :precision binary64
 (sqrt
  (*
   (/ 1.0 2.0)
   (+
    1.0
    (/
     1.0
     (sqrt
      (+
       1.0
       (*
        (pow (/ (* 2.0 l) Om) 2.0)
        (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))
double code(double l, double Om, double kx, double ky) {
	return sqrt(((1.0 / 2.0) * (1.0 + (1.0 / sqrt((1.0 + (pow(((2.0 * l) / Om), 2.0) * (pow(sin(kx), 2.0) + pow(sin(ky), 2.0)))))))));
}
real(8) function code(l, om, kx, ky)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx
    real(8), intent (in) :: ky
    code = sqrt(((1.0d0 / 2.0d0) * (1.0d0 + (1.0d0 / sqrt((1.0d0 + ((((2.0d0 * l) / om) ** 2.0d0) * ((sin(kx) ** 2.0d0) + (sin(ky) ** 2.0d0)))))))))
end function
public static double code(double l, double Om, double kx, double ky) {
	return Math.sqrt(((1.0 / 2.0) * (1.0 + (1.0 / Math.sqrt((1.0 + (Math.pow(((2.0 * l) / Om), 2.0) * (Math.pow(Math.sin(kx), 2.0) + Math.pow(Math.sin(ky), 2.0)))))))));
}
def code(l, Om, kx, ky):
	return math.sqrt(((1.0 / 2.0) * (1.0 + (1.0 / math.sqrt((1.0 + (math.pow(((2.0 * l) / Om), 2.0) * (math.pow(math.sin(kx), 2.0) + math.pow(math.sin(ky), 2.0)))))))))
function code(l, Om, kx, ky)
	return sqrt(Float64(Float64(1.0 / 2.0) * Float64(1.0 + Float64(1.0 / sqrt(Float64(1.0 + Float64((Float64(Float64(2.0 * l) / Om) ^ 2.0) * Float64((sin(kx) ^ 2.0) + (sin(ky) ^ 2.0)))))))))
end
function tmp = code(l, Om, kx, ky)
	tmp = sqrt(((1.0 / 2.0) * (1.0 + (1.0 / sqrt((1.0 + ((((2.0 * l) / Om) ^ 2.0) * ((sin(kx) ^ 2.0) + (sin(ky) ^ 2.0)))))))));
end
code[l_, Om_, kx_, ky_] := N[Sqrt[N[(N[(1.0 / 2.0), $MachinePrecision] * N[(1.0 + N[(1.0 / N[Sqrt[N[(1.0 + N[(N[Power[N[(N[(2.0 * l), $MachinePrecision] / Om), $MachinePrecision], 2.0], $MachinePrecision] * N[(N[Power[N[Sin[kx], $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[Sin[ky], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\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 10 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: 98.2% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \end{array} \]
(FPCore (l Om kx ky)
 :precision binary64
 (sqrt
  (*
   (/ 1.0 2.0)
   (+
    1.0
    (/
     1.0
     (sqrt
      (+
       1.0
       (*
        (pow (/ (* 2.0 l) Om) 2.0)
        (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))
double code(double l, double Om, double kx, double ky) {
	return sqrt(((1.0 / 2.0) * (1.0 + (1.0 / sqrt((1.0 + (pow(((2.0 * l) / Om), 2.0) * (pow(sin(kx), 2.0) + pow(sin(ky), 2.0)))))))));
}
real(8) function code(l, om, kx, ky)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx
    real(8), intent (in) :: ky
    code = sqrt(((1.0d0 / 2.0d0) * (1.0d0 + (1.0d0 / sqrt((1.0d0 + ((((2.0d0 * l) / om) ** 2.0d0) * ((sin(kx) ** 2.0d0) + (sin(ky) ** 2.0d0)))))))))
end function
public static double code(double l, double Om, double kx, double ky) {
	return Math.sqrt(((1.0 / 2.0) * (1.0 + (1.0 / Math.sqrt((1.0 + (Math.pow(((2.0 * l) / Om), 2.0) * (Math.pow(Math.sin(kx), 2.0) + Math.pow(Math.sin(ky), 2.0)))))))));
}
def code(l, Om, kx, ky):
	return math.sqrt(((1.0 / 2.0) * (1.0 + (1.0 / math.sqrt((1.0 + (math.pow(((2.0 * l) / Om), 2.0) * (math.pow(math.sin(kx), 2.0) + math.pow(math.sin(ky), 2.0)))))))))
function code(l, Om, kx, ky)
	return sqrt(Float64(Float64(1.0 / 2.0) * Float64(1.0 + Float64(1.0 / sqrt(Float64(1.0 + Float64((Float64(Float64(2.0 * l) / Om) ^ 2.0) * Float64((sin(kx) ^ 2.0) + (sin(ky) ^ 2.0)))))))))
end
function tmp = code(l, Om, kx, ky)
	tmp = sqrt(((1.0 / 2.0) * (1.0 + (1.0 / sqrt((1.0 + ((((2.0 * l) / Om) ^ 2.0) * ((sin(kx) ^ 2.0) + (sin(ky) ^ 2.0)))))))));
end
code[l_, Om_, kx_, ky_] := N[Sqrt[N[(N[(1.0 / 2.0), $MachinePrecision] * N[(1.0 + N[(1.0 / N[Sqrt[N[(1.0 + N[(N[Power[N[(N[(2.0 * l), $MachinePrecision] / Om), $MachinePrecision], 2.0], $MachinePrecision] * N[(N[Power[N[Sin[kx], $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[Sin[ky], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)}
\end{array}

Alternative 1: 99.4% accurate, 1.1× speedup?

\[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;{\sin ky\_m}^{2} \leq 5 \cdot 10^{-34}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\ell \cdot \left(\left(0.5 - 0.5 \cdot \cos \left(2 \cdot kx\_m\right)\right) + \left(0.5 - 0.5 \cdot \cos \left(ky\_m \cdot 2\right)\right)\right)}{\frac{Om}{\frac{\ell \cdot 4}{Om}}}}}}\\ \end{array} \end{array} \]
kx_m = (fabs.f64 kx)
ky_m = (fabs.f64 ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
(FPCore (l Om kx_m ky_m)
 :precision binary64
 (if (<= (pow (sin ky_m) 2.0) 5e-34)
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (*
         l
         (*
          4.0
          (/
           (*
            ky_m
            (*
             ky_m
             (* (/ 1.0 Om) (+ l (* l (* (* ky_m ky_m) -0.3333333333333333))))))
           Om))))))))
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (/
         (*
          l
          (+
           (- 0.5 (* 0.5 (cos (* 2.0 kx_m))))
           (- 0.5 (* 0.5 (cos (* ky_m 2.0))))))
         (/ Om (/ (* l 4.0) Om))))))))))
kx_m = fabs(kx);
ky_m = fabs(ky);
assert(l < Om && Om < kx_m && kx_m < ky_m);
double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (pow(sin(ky_m), 2.0) <= 5e-34) {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + ((l * ((0.5 - (0.5 * cos((2.0 * kx_m)))) + (0.5 - (0.5 * cos((ky_m * 2.0)))))) / (Om / ((l * 4.0) / Om))))))));
	}
	return tmp;
}
kx_m = abs(kx)
ky_m = abs(ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
real(8) function code(l, om, kx_m, ky_m)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx_m
    real(8), intent (in) :: ky_m
    real(8) :: tmp
    if ((sin(ky_m) ** 2.0d0) <= 5d-34) then
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (l * (4.0d0 * ((ky_m * (ky_m * ((1.0d0 / om) * (l + (l * ((ky_m * ky_m) * (-0.3333333333333333d0))))))) / om))))))))
    else
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + ((l * ((0.5d0 - (0.5d0 * cos((2.0d0 * kx_m)))) + (0.5d0 - (0.5d0 * cos((ky_m * 2.0d0)))))) / (om / ((l * 4.0d0) / om))))))))
    end if
    code = tmp
end function
kx_m = Math.abs(kx);
ky_m = Math.abs(ky);
assert l < Om && Om < kx_m && kx_m < ky_m;
public static double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (Math.pow(Math.sin(ky_m), 2.0) <= 5e-34) {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + ((l * ((0.5 - (0.5 * Math.cos((2.0 * kx_m)))) + (0.5 - (0.5 * Math.cos((ky_m * 2.0)))))) / (Om / ((l * 4.0) / Om))))))));
	}
	return tmp;
}
kx_m = math.fabs(kx)
ky_m = math.fabs(ky)
[l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
def code(l, Om, kx_m, ky_m):
	tmp = 0
	if math.pow(math.sin(ky_m), 2.0) <= 5e-34:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))))
	else:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + ((l * ((0.5 - (0.5 * math.cos((2.0 * kx_m)))) + (0.5 - (0.5 * math.cos((ky_m * 2.0)))))) / (Om / ((l * 4.0) / Om))))))))
	return tmp
kx_m = abs(kx)
ky_m = abs(ky)
l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
function code(l, Om, kx_m, ky_m)
	tmp = 0.0
	if ((sin(ky_m) ^ 2.0) <= 5e-34)
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(l * Float64(4.0 * Float64(Float64(ky_m * Float64(ky_m * Float64(Float64(1.0 / Om) * Float64(l + Float64(l * Float64(Float64(ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(Float64(l * Float64(Float64(0.5 - Float64(0.5 * cos(Float64(2.0 * kx_m)))) + Float64(0.5 - Float64(0.5 * cos(Float64(ky_m * 2.0)))))) / Float64(Om / Float64(Float64(l * 4.0) / Om))))))));
	end
	return tmp
end
kx_m = abs(kx);
ky_m = abs(ky);
l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
function tmp_2 = code(l, Om, kx_m, ky_m)
	tmp = 0.0;
	if ((sin(ky_m) ^ 2.0) <= 5e-34)
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + ((l * ((0.5 - (0.5 * cos((2.0 * kx_m)))) + (0.5 - (0.5 * cos((ky_m * 2.0)))))) / (Om / ((l * 4.0) / Om))))))));
	end
	tmp_2 = tmp;
end
kx_m = N[Abs[kx], $MachinePrecision]
ky_m = N[Abs[ky], $MachinePrecision]
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[N[Power[N[Sin[ky$95$m], $MachinePrecision], 2.0], $MachinePrecision], 5e-34], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(l * N[(4.0 * N[(N[(ky$95$m * N[(ky$95$m * N[(N[(1.0 / Om), $MachinePrecision] * N[(l + N[(l * N[(N[(ky$95$m * ky$95$m), $MachinePrecision] * -0.3333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(N[(l * N[(N[(0.5 - N[(0.5 * N[Cos[N[(2.0 * kx$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(0.5 - N[(0.5 * N[Cos[N[(ky$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om / N[(N[(l * 4.0), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
kx_m = \left|kx\right|
\\
ky_m = \left|ky\right|
\\
[l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
\\
\begin{array}{l}
\mathbf{if}\;{\sin ky\_m}^{2} \leq 5 \cdot 10^{-34}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\ell \cdot \left(\left(0.5 - 0.5 \cdot \cos \left(2 \cdot kx\_m\right)\right) + \left(0.5 - 0.5 \cdot \cos \left(ky\_m \cdot 2\right)\right)\right)}{\frac{Om}{\frac{\ell \cdot 4}{Om}}}}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) < 5.0000000000000003e-34

    1. Initial program 96.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified96.1%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6473.8%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified73.8%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr63.2%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
    10. Taylor expanded in ky around 0

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \left({ky}^{2} \cdot \ell\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-commutativeN/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \left({ky}^{2}\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      10. unpow2N/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      12. /-lowering-/.f6478.1%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \mathsf{/.f64}\left(\ell, Om\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    12. Simplified78.1%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot ky\right) \cdot \left(\frac{-0.3333333333333333 \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)}}{Om}\right)}}} \]
    13. Step-by-step derivation
      1. associate-*l*N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\frac{\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \ell \cdot \frac{1}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. distribute-rgt-outN/A

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\left(ky \cdot ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      15. *-lowering-*.f6485.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    14. Applied egg-rr85.3%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right) + \ell\right)\right)\right) \cdot ky}}{Om}\right)}}} \]

    if 5.0000000000000003e-34 < (pow.f64 (sin.f64 ky) #s(literal 2 binary64))

    1. Initial program 100.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}\right)\right) \]
      2. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{\frac{1}{2}}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}} + \frac{1}{2}\right)\right) \]
      3. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{\frac{1}{2}}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}\right), \left(\frac{1}{2}\right)\right)\right) \]
    6. Applied egg-rr100.0%

      \[\leadsto \sqrt{\color{blue}{\frac{0.5}{\sqrt{1 + \frac{\ell \cdot \left(\left(0.5 - 0.5 \cdot \cos \left(2 \cdot kx\right)\right) + \left(0.5 - 0.5 \cdot \cos \left(2 \cdot ky\right)\right)\right)}{\frac{Om}{\frac{\ell \cdot 4}{Om}}}}} + 0.5}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification92.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;{\sin ky}^{2} \leq 5 \cdot 10^{-34}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky \cdot \left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\ell \cdot \left(\left(0.5 - 0.5 \cdot \cos \left(2 \cdot kx\right)\right) + \left(0.5 - 0.5 \cdot \cos \left(ky \cdot 2\right)\right)\right)}{\frac{Om}{\frac{\ell \cdot 4}{Om}}}}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 99.0% accurate, 1.4× speedup?

\[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;{\sin ky\_m}^{2} \leq 5 \cdot 10^{-34}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{2}}{Om}}{Om}\right)}}}\\ \end{array} \end{array} \]
kx_m = (fabs.f64 kx)
ky_m = (fabs.f64 ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
(FPCore (l Om kx_m ky_m)
 :precision binary64
 (if (<= (pow (sin ky_m) 2.0) 5e-34)
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (*
         l
         (*
          4.0
          (/
           (*
            ky_m
            (*
             ky_m
             (* (/ 1.0 Om) (+ l (* l (* (* ky_m ky_m) -0.3333333333333333))))))
           Om))))))))
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (*
         l
         (* 4.0 (/ (/ (/ (* l (- 1.0 (cos (* ky_m 2.0)))) 2.0) Om) Om))))))))))
kx_m = fabs(kx);
ky_m = fabs(ky);
assert(l < Om && Om < kx_m && kx_m < ky_m);
double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (pow(sin(ky_m), 2.0) <= 5e-34) {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((((l * (1.0 - cos((ky_m * 2.0)))) / 2.0) / Om) / Om))))))));
	}
	return tmp;
}
kx_m = abs(kx)
ky_m = abs(ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
real(8) function code(l, om, kx_m, ky_m)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx_m
    real(8), intent (in) :: ky_m
    real(8) :: tmp
    if ((sin(ky_m) ** 2.0d0) <= 5d-34) then
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (l * (4.0d0 * ((ky_m * (ky_m * ((1.0d0 / om) * (l + (l * ((ky_m * ky_m) * (-0.3333333333333333d0))))))) / om))))))))
    else
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (l * (4.0d0 * ((((l * (1.0d0 - cos((ky_m * 2.0d0)))) / 2.0d0) / om) / om))))))))
    end if
    code = tmp
end function
kx_m = Math.abs(kx);
ky_m = Math.abs(ky);
assert l < Om && Om < kx_m && kx_m < ky_m;
public static double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (Math.pow(Math.sin(ky_m), 2.0) <= 5e-34) {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (l * (4.0 * ((((l * (1.0 - Math.cos((ky_m * 2.0)))) / 2.0) / Om) / Om))))))));
	}
	return tmp;
}
kx_m = math.fabs(kx)
ky_m = math.fabs(ky)
[l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
def code(l, Om, kx_m, ky_m):
	tmp = 0
	if math.pow(math.sin(ky_m), 2.0) <= 5e-34:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))))
	else:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (l * (4.0 * ((((l * (1.0 - math.cos((ky_m * 2.0)))) / 2.0) / Om) / Om))))))))
	return tmp
kx_m = abs(kx)
ky_m = abs(ky)
l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
function code(l, Om, kx_m, ky_m)
	tmp = 0.0
	if ((sin(ky_m) ^ 2.0) <= 5e-34)
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(l * Float64(4.0 * Float64(Float64(ky_m * Float64(ky_m * Float64(Float64(1.0 / Om) * Float64(l + Float64(l * Float64(Float64(ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(l * Float64(4.0 * Float64(Float64(Float64(Float64(l * Float64(1.0 - cos(Float64(ky_m * 2.0)))) / 2.0) / Om) / Om))))))));
	end
	return tmp
end
kx_m = abs(kx);
ky_m = abs(ky);
l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
function tmp_2 = code(l, Om, kx_m, ky_m)
	tmp = 0.0;
	if ((sin(ky_m) ^ 2.0) <= 5e-34)
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((((l * (1.0 - cos((ky_m * 2.0)))) / 2.0) / Om) / Om))))))));
	end
	tmp_2 = tmp;
end
kx_m = N[Abs[kx], $MachinePrecision]
ky_m = N[Abs[ky], $MachinePrecision]
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[N[Power[N[Sin[ky$95$m], $MachinePrecision], 2.0], $MachinePrecision], 5e-34], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(l * N[(4.0 * N[(N[(ky$95$m * N[(ky$95$m * N[(N[(1.0 / Om), $MachinePrecision] * N[(l + N[(l * N[(N[(ky$95$m * ky$95$m), $MachinePrecision] * -0.3333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(l * N[(4.0 * N[(N[(N[(N[(l * N[(1.0 - N[Cos[N[(ky$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / 2.0), $MachinePrecision] / Om), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
kx_m = \left|kx\right|
\\
ky_m = \left|ky\right|
\\
[l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
\\
\begin{array}{l}
\mathbf{if}\;{\sin ky\_m}^{2} \leq 5 \cdot 10^{-34}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{2}}{Om}}{Om}\right)}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) < 5.0000000000000003e-34

    1. Initial program 96.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified96.1%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6473.8%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified73.8%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr63.2%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
    10. Taylor expanded in ky around 0

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \left({ky}^{2} \cdot \ell\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-commutativeN/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \left({ky}^{2}\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      10. unpow2N/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      12. /-lowering-/.f6478.1%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \mathsf{/.f64}\left(\ell, Om\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    12. Simplified78.1%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot ky\right) \cdot \left(\frac{-0.3333333333333333 \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)}}{Om}\right)}}} \]
    13. Step-by-step derivation
      1. associate-*l*N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\frac{\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \ell \cdot \frac{1}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. distribute-rgt-outN/A

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\left(ky \cdot ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      15. *-lowering-*.f6485.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    14. Applied egg-rr85.3%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right) + \ell\right)\right)\right) \cdot ky}}{Om}\right)}}} \]

    if 5.0000000000000003e-34 < (pow.f64 (sin.f64 ky) #s(literal 2 binary64))

    1. Initial program 100.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6495.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified95.3%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr99.0%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification92.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;{\sin ky}^{2} \leq 5 \cdot 10^{-34}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky \cdot \left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}\right)}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 95.1% accurate, 1.4× speedup?

\[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;{\sin ky\_m}^{2} \leq 5 \cdot 10^{-34}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\frac{2 \cdot \left(\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)\right)}{Om}}{Om}}}}\\ \end{array} \end{array} \]
kx_m = (fabs.f64 kx)
ky_m = (fabs.f64 ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
(FPCore (l Om kx_m ky_m)
 :precision binary64
 (if (<= (pow (sin ky_m) 2.0) 5e-34)
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (*
         l
         (*
          4.0
          (/
           (*
            ky_m
            (*
             ky_m
             (* (/ 1.0 Om) (+ l (* l (* (* ky_m ky_m) -0.3333333333333333))))))
           Om))))))))
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (/ (/ (* 2.0 (* (* l l) (- 1.0 (cos (* ky_m 2.0))))) Om) Om))))))))
kx_m = fabs(kx);
ky_m = fabs(ky);
assert(l < Om && Om < kx_m && kx_m < ky_m);
double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (pow(sin(ky_m), 2.0) <= 5e-34) {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (((2.0 * ((l * l) * (1.0 - cos((ky_m * 2.0))))) / Om) / Om))))));
	}
	return tmp;
}
kx_m = abs(kx)
ky_m = abs(ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
real(8) function code(l, om, kx_m, ky_m)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx_m
    real(8), intent (in) :: ky_m
    real(8) :: tmp
    if ((sin(ky_m) ** 2.0d0) <= 5d-34) then
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (l * (4.0d0 * ((ky_m * (ky_m * ((1.0d0 / om) * (l + (l * ((ky_m * ky_m) * (-0.3333333333333333d0))))))) / om))))))))
    else
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (((2.0d0 * ((l * l) * (1.0d0 - cos((ky_m * 2.0d0))))) / om) / om))))))
    end if
    code = tmp
end function
kx_m = Math.abs(kx);
ky_m = Math.abs(ky);
assert l < Om && Om < kx_m && kx_m < ky_m;
public static double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (Math.pow(Math.sin(ky_m), 2.0) <= 5e-34) {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (((2.0 * ((l * l) * (1.0 - Math.cos((ky_m * 2.0))))) / Om) / Om))))));
	}
	return tmp;
}
kx_m = math.fabs(kx)
ky_m = math.fabs(ky)
[l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
def code(l, Om, kx_m, ky_m):
	tmp = 0
	if math.pow(math.sin(ky_m), 2.0) <= 5e-34:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))))
	else:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (((2.0 * ((l * l) * (1.0 - math.cos((ky_m * 2.0))))) / Om) / Om))))))
	return tmp
kx_m = abs(kx)
ky_m = abs(ky)
l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
function code(l, Om, kx_m, ky_m)
	tmp = 0.0
	if ((sin(ky_m) ^ 2.0) <= 5e-34)
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(l * Float64(4.0 * Float64(Float64(ky_m * Float64(ky_m * Float64(Float64(1.0 / Om) * Float64(l + Float64(l * Float64(Float64(ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(Float64(Float64(2.0 * Float64(Float64(l * l) * Float64(1.0 - cos(Float64(ky_m * 2.0))))) / Om) / Om))))));
	end
	return tmp
end
kx_m = abs(kx);
ky_m = abs(ky);
l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
function tmp_2 = code(l, Om, kx_m, ky_m)
	tmp = 0.0;
	if ((sin(ky_m) ^ 2.0) <= 5e-34)
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (((2.0 * ((l * l) * (1.0 - cos((ky_m * 2.0))))) / Om) / Om))))));
	end
	tmp_2 = tmp;
end
kx_m = N[Abs[kx], $MachinePrecision]
ky_m = N[Abs[ky], $MachinePrecision]
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[N[Power[N[Sin[ky$95$m], $MachinePrecision], 2.0], $MachinePrecision], 5e-34], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(l * N[(4.0 * N[(N[(ky$95$m * N[(ky$95$m * N[(N[(1.0 / Om), $MachinePrecision] * N[(l + N[(l * N[(N[(ky$95$m * ky$95$m), $MachinePrecision] * -0.3333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(N[(N[(2.0 * N[(N[(l * l), $MachinePrecision] * N[(1.0 - N[Cos[N[(ky$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
kx_m = \left|kx\right|
\\
ky_m = \left|ky\right|
\\
[l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
\\
\begin{array}{l}
\mathbf{if}\;{\sin ky\_m}^{2} \leq 5 \cdot 10^{-34}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\frac{2 \cdot \left(\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)\right)}{Om}}{Om}}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) < 5.0000000000000003e-34

    1. Initial program 96.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified96.1%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6473.8%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified73.8%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr63.2%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
    10. Taylor expanded in ky around 0

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \left({ky}^{2} \cdot \ell\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-commutativeN/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \left({ky}^{2}\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      10. unpow2N/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      12. /-lowering-/.f6478.1%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \mathsf{/.f64}\left(\ell, Om\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    12. Simplified78.1%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot ky\right) \cdot \left(\frac{-0.3333333333333333 \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)}}{Om}\right)}}} \]
    13. Step-by-step derivation
      1. associate-*l*N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\frac{\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \ell \cdot \frac{1}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. distribute-rgt-outN/A

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\left(ky \cdot ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      15. *-lowering-*.f6485.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    14. Applied egg-rr85.3%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right) + \ell\right)\right)\right) \cdot ky}}{Om}\right)}}} \]

    if 5.0000000000000003e-34 < (pow.f64 (sin.f64 ky) #s(literal 2 binary64))

    1. Initial program 100.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6495.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified95.3%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr99.0%

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \left(\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{Om \cdot 2}\right)\right), Om\right)\right)\right)\right)\right)\right) \]
      7. *-commutativeN/A

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\left(ky \cdot 2\right)\right)\right), \left(\frac{\ell}{Om \cdot 2}\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
      12. *-lowering-*.f64N/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \left(Om \cdot 2\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
      14. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \left(2 \cdot Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
      15. *-lowering-*.f6499.0%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \mathsf{*.f64}\left(2, Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
    11. Applied egg-rr99.0%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \color{blue}{\frac{\left(\ell \cdot 4\right) \cdot \left(\left(1 - \cos \left(ky \cdot 2\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}} \]
    12. Taylor expanded in l around 0

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

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\left(2 \cdot ky\right)\right)\right)\right)\right), Om\right), Om\right)\right)\right)\right)\right)\right) \]
      9. *-lowering-*.f6494.7%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right)\right), Om\right), Om\right)\right)\right)\right)\right)\right) \]
    14. Simplified94.7%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\color{blue}{\frac{2 \cdot \left(\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(2 \cdot ky\right)\right)\right)}{Om}}}{Om}}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification90.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;{\sin ky}^{2} \leq 5 \cdot 10^{-34}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky \cdot \left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\frac{2 \cdot \left(\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)\right)}{Om}}{Om}}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 90.2% accurate, 1.4× speedup?

\[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;{\sin ky\_m}^{2} \leq 10^{-23}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + 2 \cdot \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}}\\ \end{array} \end{array} \]
kx_m = (fabs.f64 kx)
ky_m = (fabs.f64 ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
(FPCore (l Om kx_m ky_m)
 :precision binary64
 (if (<= (pow (sin ky_m) 2.0) 1e-23)
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (*
         l
         (*
          4.0
          (/
           (*
            ky_m
            (*
             ky_m
             (* (/ 1.0 Om) (+ l (* l (* (* ky_m ky_m) -0.3333333333333333))))))
           Om))))))))
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (* 2.0 (/ (* (* l l) (- 1.0 (cos (* ky_m 2.0)))) (* Om Om))))))))))
kx_m = fabs(kx);
ky_m = fabs(ky);
assert(l < Om && Om < kx_m && kx_m < ky_m);
double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (pow(sin(ky_m), 2.0) <= 1e-23) {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (2.0 * (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))))));
	}
	return tmp;
}
kx_m = abs(kx)
ky_m = abs(ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
real(8) function code(l, om, kx_m, ky_m)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx_m
    real(8), intent (in) :: ky_m
    real(8) :: tmp
    if ((sin(ky_m) ** 2.0d0) <= 1d-23) then
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (l * (4.0d0 * ((ky_m * (ky_m * ((1.0d0 / om) * (l + (l * ((ky_m * ky_m) * (-0.3333333333333333d0))))))) / om))))))))
    else
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (2.0d0 * (((l * l) * (1.0d0 - cos((ky_m * 2.0d0)))) / (om * om))))))))
    end if
    code = tmp
end function
kx_m = Math.abs(kx);
ky_m = Math.abs(ky);
assert l < Om && Om < kx_m && kx_m < ky_m;
public static double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (Math.pow(Math.sin(ky_m), 2.0) <= 1e-23) {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (2.0 * (((l * l) * (1.0 - Math.cos((ky_m * 2.0)))) / (Om * Om))))))));
	}
	return tmp;
}
kx_m = math.fabs(kx)
ky_m = math.fabs(ky)
[l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
def code(l, Om, kx_m, ky_m):
	tmp = 0
	if math.pow(math.sin(ky_m), 2.0) <= 1e-23:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))))
	else:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (2.0 * (((l * l) * (1.0 - math.cos((ky_m * 2.0)))) / (Om * Om))))))))
	return tmp
kx_m = abs(kx)
ky_m = abs(ky)
l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
function code(l, Om, kx_m, ky_m)
	tmp = 0.0
	if ((sin(ky_m) ^ 2.0) <= 1e-23)
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(l * Float64(4.0 * Float64(Float64(ky_m * Float64(ky_m * Float64(Float64(1.0 / Om) * Float64(l + Float64(l * Float64(Float64(ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(2.0 * Float64(Float64(Float64(l * l) * Float64(1.0 - cos(Float64(ky_m * 2.0)))) / Float64(Om * Om))))))));
	end
	return tmp
end
kx_m = abs(kx);
ky_m = abs(ky);
l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
function tmp_2 = code(l, Om, kx_m, ky_m)
	tmp = 0.0;
	if ((sin(ky_m) ^ 2.0) <= 1e-23)
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (2.0 * (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))))));
	end
	tmp_2 = tmp;
end
kx_m = N[Abs[kx], $MachinePrecision]
ky_m = N[Abs[ky], $MachinePrecision]
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[N[Power[N[Sin[ky$95$m], $MachinePrecision], 2.0], $MachinePrecision], 1e-23], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(l * N[(4.0 * N[(N[(ky$95$m * N[(ky$95$m * N[(N[(1.0 / Om), $MachinePrecision] * N[(l + N[(l * N[(N[(ky$95$m * ky$95$m), $MachinePrecision] * -0.3333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(2.0 * N[(N[(N[(l * l), $MachinePrecision] * N[(1.0 - N[Cos[N[(ky$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
kx_m = \left|kx\right|
\\
ky_m = \left|ky\right|
\\
[l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
\\
\begin{array}{l}
\mathbf{if}\;{\sin ky\_m}^{2} \leq 10^{-23}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + 2 \cdot \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) < 9.9999999999999996e-24

    1. Initial program 96.1%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified96.2%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6474.2%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified74.2%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr63.8%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
    10. Taylor expanded in ky around 0

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \left({ky}^{2} \cdot \ell\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-commutativeN/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \left({ky}^{2}\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      10. unpow2N/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      12. /-lowering-/.f6478.5%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \mathsf{/.f64}\left(\ell, Om\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    12. Simplified78.5%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot ky\right) \cdot \left(\frac{-0.3333333333333333 \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)}}{Om}\right)}}} \]
    13. Step-by-step derivation
      1. associate-*l*N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\frac{\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \ell \cdot \frac{1}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. distribute-rgt-outN/A

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\left(ky \cdot ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      15. *-lowering-*.f6485.6%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    14. Applied egg-rr85.6%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right) + \ell\right)\right)\right) \cdot ky}}{Om}\right)}}} \]

    if 9.9999999999999996e-24 < (pow.f64 (sin.f64 ky) #s(literal 2 binary64))

    1. Initial program 100.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6495.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified95.3%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr99.0%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
    10. Taylor expanded in ky around inf

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right) \]
      11. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      12. *-lowering-*.f6488.7%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    12. Simplified88.7%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\color{blue}{\sqrt{1 + 2 \cdot \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(2 \cdot ky\right)\right)}{Om \cdot Om}}}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification87.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;{\sin ky}^{2} \leq 10^{-23}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky \cdot \left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + 2 \cdot \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{Om \cdot Om}}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 90.0% accurate, 1.7× speedup?

\[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;{\sin ky\_m}^{2} \leq 10^{-23}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}\\ \end{array} \end{array} \]
kx_m = (fabs.f64 kx)
ky_m = (fabs.f64 ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
(FPCore (l Om kx_m ky_m)
 :precision binary64
 (if (<= (pow (sin ky_m) 2.0) 1e-23)
   (sqrt
    (+
     0.5
     (/
      0.5
      (sqrt
       (+
        1.0
        (*
         l
         (*
          4.0
          (/
           (*
            ky_m
            (*
             ky_m
             (* (/ 1.0 Om) (+ l (* l (* (* ky_m ky_m) -0.3333333333333333))))))
           Om))))))))
   (sqrt
    (+
     0.5
     (/ 0.5 (+ 1.0 (/ (* (* l l) (- 1.0 (cos (* ky_m 2.0)))) (* Om Om))))))))
kx_m = fabs(kx);
ky_m = fabs(ky);
assert(l < Om && Om < kx_m && kx_m < ky_m);
double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (pow(sin(ky_m), 2.0) <= 1e-23) {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))));
	}
	return tmp;
}
kx_m = abs(kx)
ky_m = abs(ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
real(8) function code(l, om, kx_m, ky_m)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx_m
    real(8), intent (in) :: ky_m
    real(8) :: tmp
    if ((sin(ky_m) ** 2.0d0) <= 1d-23) then
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (l * (4.0d0 * ((ky_m * (ky_m * ((1.0d0 / om) * (l + (l * ((ky_m * ky_m) * (-0.3333333333333333d0))))))) / om))))))))
    else
        tmp = sqrt((0.5d0 + (0.5d0 / (1.0d0 + (((l * l) * (1.0d0 - cos((ky_m * 2.0d0)))) / (om * om))))))
    end if
    code = tmp
end function
kx_m = Math.abs(kx);
ky_m = Math.abs(ky);
assert l < Om && Om < kx_m && kx_m < ky_m;
public static double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (Math.pow(Math.sin(ky_m), 2.0) <= 1e-23) {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	} else {
		tmp = Math.sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - Math.cos((ky_m * 2.0)))) / (Om * Om))))));
	}
	return tmp;
}
kx_m = math.fabs(kx)
ky_m = math.fabs(ky)
[l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
def code(l, Om, kx_m, ky_m):
	tmp = 0
	if math.pow(math.sin(ky_m), 2.0) <= 1e-23:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))))
	else:
		tmp = math.sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - math.cos((ky_m * 2.0)))) / (Om * Om))))))
	return tmp
kx_m = abs(kx)
ky_m = abs(ky)
l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
function code(l, Om, kx_m, ky_m)
	tmp = 0.0
	if ((sin(ky_m) ^ 2.0) <= 1e-23)
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(l * Float64(4.0 * Float64(Float64(ky_m * Float64(ky_m * Float64(Float64(1.0 / Om) * Float64(l + Float64(l * Float64(Float64(ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt(Float64(0.5 + Float64(0.5 / Float64(1.0 + Float64(Float64(Float64(l * l) * Float64(1.0 - cos(Float64(ky_m * 2.0)))) / Float64(Om * Om))))));
	end
	return tmp
end
kx_m = abs(kx);
ky_m = abs(ky);
l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
function tmp_2 = code(l, Om, kx_m, ky_m)
	tmp = 0.0;
	if ((sin(ky_m) ^ 2.0) <= 1e-23)
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (l * (4.0 * ((ky_m * (ky_m * ((1.0 / Om) * (l + (l * ((ky_m * ky_m) * -0.3333333333333333)))))) / Om))))))));
	else
		tmp = sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))));
	end
	tmp_2 = tmp;
end
kx_m = N[Abs[kx], $MachinePrecision]
ky_m = N[Abs[ky], $MachinePrecision]
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[N[Power[N[Sin[ky$95$m], $MachinePrecision], 2.0], $MachinePrecision], 1e-23], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(l * N[(4.0 * N[(N[(ky$95$m * N[(ky$95$m * N[(N[(1.0 / Om), $MachinePrecision] * N[(l + N[(l * N[(N[(ky$95$m * ky$95$m), $MachinePrecision] * -0.3333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(0.5 + N[(0.5 / N[(1.0 + N[(N[(N[(l * l), $MachinePrecision] * N[(1.0 - N[Cos[N[(ky$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
kx_m = \left|kx\right|
\\
ky_m = \left|ky\right|
\\
[l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
\\
\begin{array}{l}
\mathbf{if}\;{\sin ky\_m}^{2} \leq 10^{-23}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky\_m \cdot \left(ky\_m \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky\_m \cdot ky\_m\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) < 9.9999999999999996e-24

    1. Initial program 96.1%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified96.2%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6474.2%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified74.2%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr63.8%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
    10. Taylor expanded in ky around 0

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \left({ky}^{2} \cdot \ell\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-commutativeN/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \left({ky}^{2}\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      10. unpow2N/A

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \left(\frac{\ell}{Om}\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      12. /-lowering-/.f6478.5%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{-1}{3}, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(ky, ky\right)\right)\right), Om\right), \mathsf{/.f64}\left(\ell, Om\right)\right)\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    12. Simplified78.5%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot ky\right) \cdot \left(\frac{-0.3333333333333333 \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)}}{Om}\right)}}} \]
    13. Step-by-step derivation
      1. associate-*l*N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\frac{\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \frac{\ell}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. div-invN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \left(\left(\frac{-1}{3} \cdot \left(\ell \cdot \left(ky \cdot ky\right)\right)\right) \cdot \frac{1}{Om} + \ell \cdot \frac{1}{Om}\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. distribute-rgt-outN/A

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\left(ky \cdot ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      15. *-lowering-*.f6485.6%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, \mathsf{*.f64}\left(\mathsf{/.f64}\left(1, Om\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(\mathsf{*.f64}\left(ky, ky\right), \frac{-1}{3}\right)\right), \ell\right)\right)\right), ky\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    14. Applied egg-rr85.6%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{\color{blue}{\left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right) + \ell\right)\right)\right) \cdot ky}}{Om}\right)}}} \]

    if 9.9999999999999996e-24 < (pow.f64 (sin.f64 ky) #s(literal 2 binary64))

    1. Initial program 100.0%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in kx around 0

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      6. sin-lowering-sin.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      8. *-lowering-*.f6495.3%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    7. Simplified95.3%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
    8. Step-by-step derivation
      1. pow2N/A

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
    9. Applied egg-rr99.0%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
    10. Taylor expanded in l around 0

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

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

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

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

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

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

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

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

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right) \]
      9. unpow2N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right) \]
      10. *-lowering-*.f6488.1%

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right) \]
    12. Simplified88.1%

      \[\leadsto \sqrt{0.5 + \frac{0.5}{\color{blue}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(2 \cdot ky\right)\right)}{Om \cdot Om}}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification86.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;{\sin ky}^{2} \leq 10^{-23}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \frac{ky \cdot \left(ky \cdot \left(\frac{1}{Om} \cdot \left(\ell + \ell \cdot \left(\left(ky \cdot ky\right) \cdot -0.3333333333333333\right)\right)\right)\right)}{Om}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{Om \cdot Om}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 6: 78.3% accurate, 2.2× speedup?

\[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;\ell \leq 3.3 \cdot 10^{-183}:\\ \;\;\;\;1\\ \mathbf{elif}\;\ell \leq 3.8 \cdot 10^{+142}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + 2 \cdot \left(\left(\ell \cdot \ell\right) \cdot \frac{{\sin ky\_m}^{2}}{Om \cdot Om}\right)}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\left(\ell \cdot 4\right) \cdot \left(\left(2 \cdot \left(ky\_m \cdot ky\_m\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}\\ \end{array} \end{array} \]
kx_m = (fabs.f64 kx)
ky_m = (fabs.f64 ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
(FPCore (l Om kx_m ky_m)
 :precision binary64
 (if (<= l 3.3e-183)
   1.0
   (if (<= l 3.8e+142)
     (sqrt
      (+
       0.5
       (/ 0.5 (+ 1.0 (* 2.0 (* (* l l) (/ (pow (sin ky_m) 2.0) (* Om Om))))))))
     (sqrt
      (+
       0.5
       (/
        0.5
        (sqrt
         (+
          1.0
          (/
           (* (* l 4.0) (* (* 2.0 (* ky_m ky_m)) (/ l (* 2.0 Om))))
           Om)))))))))
kx_m = fabs(kx);
ky_m = fabs(ky);
assert(l < Om && Om < kx_m && kx_m < ky_m);
double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (l <= 3.3e-183) {
		tmp = 1.0;
	} else if (l <= 3.8e+142) {
		tmp = sqrt((0.5 + (0.5 / (1.0 + (2.0 * ((l * l) * (pow(sin(ky_m), 2.0) / (Om * Om))))))));
	} else {
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))));
	}
	return tmp;
}
kx_m = abs(kx)
ky_m = abs(ky)
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
real(8) function code(l, om, kx_m, ky_m)
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: kx_m
    real(8), intent (in) :: ky_m
    real(8) :: tmp
    if (l <= 3.3d-183) then
        tmp = 1.0d0
    else if (l <= 3.8d+142) then
        tmp = sqrt((0.5d0 + (0.5d0 / (1.0d0 + (2.0d0 * ((l * l) * ((sin(ky_m) ** 2.0d0) / (om * om))))))))
    else
        tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (((l * 4.0d0) * ((2.0d0 * (ky_m * ky_m)) * (l / (2.0d0 * om)))) / om))))))
    end if
    code = tmp
end function
kx_m = Math.abs(kx);
ky_m = Math.abs(ky);
assert l < Om && Om < kx_m && kx_m < ky_m;
public static double code(double l, double Om, double kx_m, double ky_m) {
	double tmp;
	if (l <= 3.3e-183) {
		tmp = 1.0;
	} else if (l <= 3.8e+142) {
		tmp = Math.sqrt((0.5 + (0.5 / (1.0 + (2.0 * ((l * l) * (Math.pow(Math.sin(ky_m), 2.0) / (Om * Om))))))));
	} else {
		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))));
	}
	return tmp;
}
kx_m = math.fabs(kx)
ky_m = math.fabs(ky)
[l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
def code(l, Om, kx_m, ky_m):
	tmp = 0
	if l <= 3.3e-183:
		tmp = 1.0
	elif l <= 3.8e+142:
		tmp = math.sqrt((0.5 + (0.5 / (1.0 + (2.0 * ((l * l) * (math.pow(math.sin(ky_m), 2.0) / (Om * Om))))))))
	else:
		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))))
	return tmp
kx_m = abs(kx)
ky_m = abs(ky)
l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
function code(l, Om, kx_m, ky_m)
	tmp = 0.0
	if (l <= 3.3e-183)
		tmp = 1.0;
	elseif (l <= 3.8e+142)
		tmp = sqrt(Float64(0.5 + Float64(0.5 / Float64(1.0 + Float64(2.0 * Float64(Float64(l * l) * Float64((sin(ky_m) ^ 2.0) / Float64(Om * Om))))))));
	else
		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(Float64(Float64(l * 4.0) * Float64(Float64(2.0 * Float64(ky_m * ky_m)) * Float64(l / Float64(2.0 * Om)))) / Om))))));
	end
	return tmp
end
kx_m = abs(kx);
ky_m = abs(ky);
l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
function tmp_2 = code(l, Om, kx_m, ky_m)
	tmp = 0.0;
	if (l <= 3.3e-183)
		tmp = 1.0;
	elseif (l <= 3.8e+142)
		tmp = sqrt((0.5 + (0.5 / (1.0 + (2.0 * ((l * l) * ((sin(ky_m) ^ 2.0) / (Om * Om))))))));
	else
		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))));
	end
	tmp_2 = tmp;
end
kx_m = N[Abs[kx], $MachinePrecision]
ky_m = N[Abs[ky], $MachinePrecision]
NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[l, 3.3e-183], 1.0, If[LessEqual[l, 3.8e+142], N[Sqrt[N[(0.5 + N[(0.5 / N[(1.0 + N[(2.0 * N[(N[(l * l), $MachinePrecision] * N[(N[Power[N[Sin[ky$95$m], $MachinePrecision], 2.0], $MachinePrecision] / N[(Om * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(N[(N[(l * 4.0), $MachinePrecision] * N[(N[(2.0 * N[(ky$95$m * ky$95$m), $MachinePrecision]), $MachinePrecision] * N[(l / N[(2.0 * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
\begin{array}{l}
kx_m = \left|kx\right|
\\
ky_m = \left|ky\right|
\\
[l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
\\
\begin{array}{l}
\mathbf{if}\;\ell \leq 3.3 \cdot 10^{-183}:\\
\;\;\;\;1\\

\mathbf{elif}\;\ell \leq 3.8 \cdot 10^{+142}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + 2 \cdot \left(\left(\ell \cdot \ell\right) \cdot \frac{{\sin ky\_m}^{2}}{Om \cdot Om}\right)}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\left(\ell \cdot 4\right) \cdot \left(\left(2 \cdot \left(ky\_m \cdot ky\_m\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if l < 3.3e-183

    1. Initial program 97.3%

      \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
    2. Step-by-step derivation
      1. sqrt-lowering-sqrt.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
      3. +-commutativeN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
      4. distribute-rgt1-inN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      6. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
      7. associate-*l/N/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      8. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      9. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      10. metadata-evalN/A

        \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
    3. Simplified97.4%

      \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
    4. Add Preprocessing
    5. Taylor expanded in l around 0

      \[\leadsto \color{blue}{1} \]
    6. Step-by-step derivation
      1. Simplified66.2%

        \[\leadsto \color{blue}{1} \]

      if 3.3e-183 < l < 3.7999999999999999e142

      1. Initial program 98.7%

        \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
      2. Step-by-step derivation
        1. sqrt-lowering-sqrt.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        2. *-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
        3. +-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
        4. distribute-rgt1-inN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        6. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        7. associate-*l/N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        8. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        9. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        10. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      3. Simplified98.7%

        \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
      4. Add Preprocessing
      5. Taylor expanded in kx around 0

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        5. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        6. sin-lowering-sin.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        7. unpow2N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        8. *-lowering-*.f6493.2%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. Simplified93.2%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
      8. Taylor expanded in l around 0

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\left({\ell}^{2}\right), \left(\frac{{\sin ky}^{2}}{{Om}^{2}}\right)\right)\right)\right)\right)\right)\right) \]
        5. unpow2N/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \left(\frac{{\sin ky}^{2}}{{Om}^{2}}\right)\right)\right)\right)\right)\right)\right) \]
        7. /-lowering-/.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right) \]
        8. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right) \]
        9. sin-lowering-sin.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right) \]
        10. unpow2N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right) \]
        11. *-lowering-*.f6493.1%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(2, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      10. Simplified93.1%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\color{blue}{1 + 2 \cdot \left(\left(\ell \cdot \ell\right) \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)}}} \]

      if 3.7999999999999999e142 < l

      1. Initial program 100.0%

        \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
      2. Step-by-step derivation
        1. sqrt-lowering-sqrt.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        2. *-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
        3. +-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
        4. distribute-rgt1-inN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        6. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        7. associate-*l/N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        8. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        9. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        10. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      3. Simplified100.0%

        \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
      4. Add Preprocessing
      5. Taylor expanded in kx around 0

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        5. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        6. sin-lowering-sin.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        7. unpow2N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        8. *-lowering-*.f6484.8%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. Simplified84.8%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
      8. Step-by-step derivation
        1. pow2N/A

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      9. Applied egg-rr63.6%

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \left(\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{Om \cdot 2}\right)\right), Om\right)\right)\right)\right)\right)\right) \]
        7. *-commutativeN/A

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\left(ky \cdot 2\right)\right)\right), \left(\frac{\ell}{Om \cdot 2}\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
        12. *-lowering-*.f64N/A

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \left(Om \cdot 2\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
        14. *-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \left(2 \cdot Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
        15. *-lowering-*.f6460.6%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \mathsf{*.f64}\left(2, Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
      11. Applied egg-rr60.6%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \color{blue}{\frac{\left(\ell \cdot 4\right) \cdot \left(\left(1 - \cos \left(ky \cdot 2\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}} \]
      12. Taylor expanded in ky around 0

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(ky \cdot ky\right)\right), \mathsf{/.f64}\left(\ell, \mathsf{*.f64}\left(2, Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
        3. *-lowering-*.f6487.3%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(ky, ky\right)\right), \mathsf{/.f64}\left(\ell, \mathsf{*.f64}\left(2, Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
      14. Simplified87.3%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\left(\ell \cdot 4\right) \cdot \left(\color{blue}{\left(2 \cdot \left(ky \cdot ky\right)\right)} \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}} \]
    7. Recombined 3 regimes into one program.
    8. Add Preprocessing

    Alternative 7: 71.6% accurate, 3.2× speedup?

    \[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;Om \leq 4.7 \cdot 10^{-112}:\\ \;\;\;\;\sqrt{0.5}\\ \mathbf{elif}\;Om \leq 6.2 \cdot 10^{+144}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \end{array} \]
    kx_m = (fabs.f64 kx)
    ky_m = (fabs.f64 ky)
    NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
    (FPCore (l Om kx_m ky_m)
     :precision binary64
     (if (<= Om 4.7e-112)
       (sqrt 0.5)
       (if (<= Om 6.2e+144)
         (sqrt
          (+
           0.5
           (/ 0.5 (+ 1.0 (/ (* (* l l) (- 1.0 (cos (* ky_m 2.0)))) (* Om Om))))))
         1.0)))
    kx_m = fabs(kx);
    ky_m = fabs(ky);
    assert(l < Om && Om < kx_m && kx_m < ky_m);
    double code(double l, double Om, double kx_m, double ky_m) {
    	double tmp;
    	if (Om <= 4.7e-112) {
    		tmp = sqrt(0.5);
    	} else if (Om <= 6.2e+144) {
    		tmp = sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))));
    	} else {
    		tmp = 1.0;
    	}
    	return tmp;
    }
    
    kx_m = abs(kx)
    ky_m = abs(ky)
    NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
    real(8) function code(l, om, kx_m, ky_m)
        real(8), intent (in) :: l
        real(8), intent (in) :: om
        real(8), intent (in) :: kx_m
        real(8), intent (in) :: ky_m
        real(8) :: tmp
        if (om <= 4.7d-112) then
            tmp = sqrt(0.5d0)
        else if (om <= 6.2d+144) then
            tmp = sqrt((0.5d0 + (0.5d0 / (1.0d0 + (((l * l) * (1.0d0 - cos((ky_m * 2.0d0)))) / (om * om))))))
        else
            tmp = 1.0d0
        end if
        code = tmp
    end function
    
    kx_m = Math.abs(kx);
    ky_m = Math.abs(ky);
    assert l < Om && Om < kx_m && kx_m < ky_m;
    public static double code(double l, double Om, double kx_m, double ky_m) {
    	double tmp;
    	if (Om <= 4.7e-112) {
    		tmp = Math.sqrt(0.5);
    	} else if (Om <= 6.2e+144) {
    		tmp = Math.sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - Math.cos((ky_m * 2.0)))) / (Om * Om))))));
    	} else {
    		tmp = 1.0;
    	}
    	return tmp;
    }
    
    kx_m = math.fabs(kx)
    ky_m = math.fabs(ky)
    [l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
    def code(l, Om, kx_m, ky_m):
    	tmp = 0
    	if Om <= 4.7e-112:
    		tmp = math.sqrt(0.5)
    	elif Om <= 6.2e+144:
    		tmp = math.sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - math.cos((ky_m * 2.0)))) / (Om * Om))))))
    	else:
    		tmp = 1.0
    	return tmp
    
    kx_m = abs(kx)
    ky_m = abs(ky)
    l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
    function code(l, Om, kx_m, ky_m)
    	tmp = 0.0
    	if (Om <= 4.7e-112)
    		tmp = sqrt(0.5);
    	elseif (Om <= 6.2e+144)
    		tmp = sqrt(Float64(0.5 + Float64(0.5 / Float64(1.0 + Float64(Float64(Float64(l * l) * Float64(1.0 - cos(Float64(ky_m * 2.0)))) / Float64(Om * Om))))));
    	else
    		tmp = 1.0;
    	end
    	return tmp
    end
    
    kx_m = abs(kx);
    ky_m = abs(ky);
    l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
    function tmp_2 = code(l, Om, kx_m, ky_m)
    	tmp = 0.0;
    	if (Om <= 4.7e-112)
    		tmp = sqrt(0.5);
    	elseif (Om <= 6.2e+144)
    		tmp = sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))));
    	else
    		tmp = 1.0;
    	end
    	tmp_2 = tmp;
    end
    
    kx_m = N[Abs[kx], $MachinePrecision]
    ky_m = N[Abs[ky], $MachinePrecision]
    NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
    code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[Om, 4.7e-112], N[Sqrt[0.5], $MachinePrecision], If[LessEqual[Om, 6.2e+144], N[Sqrt[N[(0.5 + N[(0.5 / N[(1.0 + N[(N[(N[(l * l), $MachinePrecision] * N[(1.0 - N[Cos[N[(ky$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 1.0]]
    
    \begin{array}{l}
    kx_m = \left|kx\right|
    \\
    ky_m = \left|ky\right|
    \\
    [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
    \\
    \begin{array}{l}
    \mathbf{if}\;Om \leq 4.7 \cdot 10^{-112}:\\
    \;\;\;\;\sqrt{0.5}\\
    
    \mathbf{elif}\;Om \leq 6.2 \cdot 10^{+144}:\\
    \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}\\
    
    \mathbf{else}:\\
    \;\;\;\;1\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if Om < 4.7000000000000004e-112

      1. Initial program 97.5%

        \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
      2. Add Preprocessing
      3. Taylor expanded in l around inf

        \[\leadsto \color{blue}{\sqrt{\frac{1}{2}}} \]
      4. Step-by-step derivation
        1. sqrt-lowering-sqrt.f6463.9%

          \[\leadsto \mathsf{sqrt.f64}\left(\frac{1}{2}\right) \]
      5. Simplified63.9%

        \[\leadsto \color{blue}{\sqrt{0.5}} \]

      if 4.7000000000000004e-112 < Om < 6.2000000000000003e144

      1. Initial program 98.2%

        \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
      2. Step-by-step derivation
        1. sqrt-lowering-sqrt.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        2. *-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
        3. +-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
        4. distribute-rgt1-inN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        6. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        7. associate-*l/N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        8. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        9. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        10. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      3. Simplified99.9%

        \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
      4. Add Preprocessing
      5. Taylor expanded in kx around 0

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        5. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        6. sin-lowering-sin.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        7. unpow2N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        8. *-lowering-*.f6485.8%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      7. Simplified85.8%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
      8. Step-by-step derivation
        1. pow2N/A

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
      9. Applied egg-rr81.6%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
      10. Taylor expanded in l around 0

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

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

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

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

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

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

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

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

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right) \]
        9. unpow2N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right) \]
        10. *-lowering-*.f6475.9%

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right) \]
      12. Simplified75.9%

        \[\leadsto \sqrt{0.5 + \frac{0.5}{\color{blue}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(2 \cdot ky\right)\right)}{Om \cdot Om}}}} \]

      if 6.2000000000000003e144 < Om

      1. Initial program 100.0%

        \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
      2. Step-by-step derivation
        1. sqrt-lowering-sqrt.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        2. *-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
        3. +-commutativeN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
        4. distribute-rgt1-inN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        6. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
        7. associate-*l/N/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        8. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        9. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        10. metadata-evalN/A

          \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
      3. Simplified100.0%

        \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
      4. Add Preprocessing
      5. Taylor expanded in l around 0

        \[\leadsto \color{blue}{1} \]
      6. Step-by-step derivation
        1. Simplified93.5%

          \[\leadsto \color{blue}{1} \]
      7. Recombined 3 regimes into one program.
      8. Final simplification70.9%

        \[\leadsto \begin{array}{l} \mathbf{if}\;Om \leq 4.7 \cdot 10^{-112}:\\ \;\;\;\;\sqrt{0.5}\\ \mathbf{elif}\;Om \leq 6.2 \cdot 10^{+144}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{Om \cdot Om}}}\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \]
      9. Add Preprocessing

      Alternative 8: 90.0% accurate, 3.2× speedup?

      \[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;ky\_m \leq 8.5 \cdot 10^{+104}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\left(\ell \cdot 4\right) \cdot \left(\left(2 \cdot \left(ky\_m \cdot ky\_m\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}\\ \end{array} \end{array} \]
      kx_m = (fabs.f64 kx)
      ky_m = (fabs.f64 ky)
      NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
      (FPCore (l Om kx_m ky_m)
       :precision binary64
       (if (<= ky_m 8.5e+104)
         (sqrt
          (+
           0.5
           (/
            0.5
            (sqrt
             (+
              1.0
              (/ (* (* l 4.0) (* (* 2.0 (* ky_m ky_m)) (/ l (* 2.0 Om)))) Om))))))
         (sqrt
          (+
           0.5
           (/ 0.5 (+ 1.0 (/ (* (* l l) (- 1.0 (cos (* ky_m 2.0)))) (* Om Om))))))))
      kx_m = fabs(kx);
      ky_m = fabs(ky);
      assert(l < Om && Om < kx_m && kx_m < ky_m);
      double code(double l, double Om, double kx_m, double ky_m) {
      	double tmp;
      	if (ky_m <= 8.5e+104) {
      		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))));
      	} else {
      		tmp = sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))));
      	}
      	return tmp;
      }
      
      kx_m = abs(kx)
      ky_m = abs(ky)
      NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
      real(8) function code(l, om, kx_m, ky_m)
          real(8), intent (in) :: l
          real(8), intent (in) :: om
          real(8), intent (in) :: kx_m
          real(8), intent (in) :: ky_m
          real(8) :: tmp
          if (ky_m <= 8.5d+104) then
              tmp = sqrt((0.5d0 + (0.5d0 / sqrt((1.0d0 + (((l * 4.0d0) * ((2.0d0 * (ky_m * ky_m)) * (l / (2.0d0 * om)))) / om))))))
          else
              tmp = sqrt((0.5d0 + (0.5d0 / (1.0d0 + (((l * l) * (1.0d0 - cos((ky_m * 2.0d0)))) / (om * om))))))
          end if
          code = tmp
      end function
      
      kx_m = Math.abs(kx);
      ky_m = Math.abs(ky);
      assert l < Om && Om < kx_m && kx_m < ky_m;
      public static double code(double l, double Om, double kx_m, double ky_m) {
      	double tmp;
      	if (ky_m <= 8.5e+104) {
      		tmp = Math.sqrt((0.5 + (0.5 / Math.sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))));
      	} else {
      		tmp = Math.sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - Math.cos((ky_m * 2.0)))) / (Om * Om))))));
      	}
      	return tmp;
      }
      
      kx_m = math.fabs(kx)
      ky_m = math.fabs(ky)
      [l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
      def code(l, Om, kx_m, ky_m):
      	tmp = 0
      	if ky_m <= 8.5e+104:
      		tmp = math.sqrt((0.5 + (0.5 / math.sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))))
      	else:
      		tmp = math.sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - math.cos((ky_m * 2.0)))) / (Om * Om))))))
      	return tmp
      
      kx_m = abs(kx)
      ky_m = abs(ky)
      l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
      function code(l, Om, kx_m, ky_m)
      	tmp = 0.0
      	if (ky_m <= 8.5e+104)
      		tmp = sqrt(Float64(0.5 + Float64(0.5 / sqrt(Float64(1.0 + Float64(Float64(Float64(l * 4.0) * Float64(Float64(2.0 * Float64(ky_m * ky_m)) * Float64(l / Float64(2.0 * Om)))) / Om))))));
      	else
      		tmp = sqrt(Float64(0.5 + Float64(0.5 / Float64(1.0 + Float64(Float64(Float64(l * l) * Float64(1.0 - cos(Float64(ky_m * 2.0)))) / Float64(Om * Om))))));
      	end
      	return tmp
      end
      
      kx_m = abs(kx);
      ky_m = abs(ky);
      l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
      function tmp_2 = code(l, Om, kx_m, ky_m)
      	tmp = 0.0;
      	if (ky_m <= 8.5e+104)
      		tmp = sqrt((0.5 + (0.5 / sqrt((1.0 + (((l * 4.0) * ((2.0 * (ky_m * ky_m)) * (l / (2.0 * Om)))) / Om))))));
      	else
      		tmp = sqrt((0.5 + (0.5 / (1.0 + (((l * l) * (1.0 - cos((ky_m * 2.0)))) / (Om * Om))))));
      	end
      	tmp_2 = tmp;
      end
      
      kx_m = N[Abs[kx], $MachinePrecision]
      ky_m = N[Abs[ky], $MachinePrecision]
      NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
      code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[ky$95$m, 8.5e+104], N[Sqrt[N[(0.5 + N[(0.5 / N[Sqrt[N[(1.0 + N[(N[(N[(l * 4.0), $MachinePrecision] * N[(N[(2.0 * N[(ky$95$m * ky$95$m), $MachinePrecision]), $MachinePrecision] * N[(l / N[(2.0 * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sqrt[N[(0.5 + N[(0.5 / N[(1.0 + N[(N[(N[(l * l), $MachinePrecision] * N[(1.0 - N[Cos[N[(ky$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(Om * Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
      
      \begin{array}{l}
      kx_m = \left|kx\right|
      \\
      ky_m = \left|ky\right|
      \\
      [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
      \\
      \begin{array}{l}
      \mathbf{if}\;ky\_m \leq 8.5 \cdot 10^{+104}:\\
      \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\left(\ell \cdot 4\right) \cdot \left(\left(2 \cdot \left(ky\_m \cdot ky\_m\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}\\
      
      \mathbf{else}:\\
      \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky\_m \cdot 2\right)\right)}{Om \cdot Om}}}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if ky < 8.4999999999999999e104

        1. Initial program 97.7%

          \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
        2. Step-by-step derivation
          1. sqrt-lowering-sqrt.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          2. *-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
          3. +-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
          4. distribute-rgt1-inN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
          5. +-lowering-+.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          6. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          7. associate-*l/N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          8. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          9. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          10. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        3. Simplified97.7%

          \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
        4. Add Preprocessing
        5. Taylor expanded in kx around 0

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

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          5. pow-lowering-pow.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          6. sin-lowering-sin.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          7. unpow2N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          8. *-lowering-*.f6482.4%

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        7. Simplified82.4%

          \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
        8. Step-by-step derivation
          1. pow2N/A

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
        9. Applied egg-rr78.1%

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

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

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

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \left(\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{Om \cdot 2}\right)\right), Om\right)\right)\right)\right)\right)\right) \]
          7. *-commutativeN/A

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

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\left(ky \cdot 2\right)\right)\right), \left(\frac{\ell}{Om \cdot 2}\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
          12. *-lowering-*.f64N/A

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \left(Om \cdot 2\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
          14. *-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \left(2 \cdot Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
          15. *-lowering-*.f6477.0%

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(ky, 2\right)\right)\right), \mathsf{/.f64}\left(\ell, \mathsf{*.f64}\left(2, Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
        11. Applied egg-rr77.0%

          \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \color{blue}{\frac{\left(\ell \cdot 4\right) \cdot \left(\left(1 - \cos \left(ky \cdot 2\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}} \]
        12. Taylor expanded in ky around 0

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \left(ky \cdot ky\right)\right), \mathsf{/.f64}\left(\ell, \mathsf{*.f64}\left(2, Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
          3. *-lowering-*.f6478.3%

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, 4\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(2, \mathsf{*.f64}\left(ky, ky\right)\right), \mathsf{/.f64}\left(\ell, \mathsf{*.f64}\left(2, Om\right)\right)\right)\right), Om\right)\right)\right)\right)\right)\right) \]
        14. Simplified78.3%

          \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\left(\ell \cdot 4\right) \cdot \left(\color{blue}{\left(2 \cdot \left(ky \cdot ky\right)\right)} \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}} \]

        if 8.4999999999999999e104 < ky

        1. Initial program 100.0%

          \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
        2. Step-by-step derivation
          1. sqrt-lowering-sqrt.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          2. *-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
          3. +-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
          4. distribute-rgt1-inN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
          5. +-lowering-+.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          6. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          7. associate-*l/N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          8. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          9. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          10. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        3. Simplified100.0%

          \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
        4. Add Preprocessing
        5. Taylor expanded in kx around 0

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

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\left({\sin ky}^{2}\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          5. pow-lowering-pow.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\sin ky, 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          6. sin-lowering-sin.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          7. unpow2N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
          8. *-lowering-*.f6498.0%

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{*.f64}\left(\ell, \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{sin.f64}\left(ky\right), 2\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
        7. Simplified98.0%

          \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \color{blue}{\left(4 \cdot \left(\ell \cdot \frac{{\sin ky}^{2}}{Om \cdot Om}\right)\right)}}}} \]
        8. Step-by-step derivation
          1. pow2N/A

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(1, \mathsf{*.f64}\left(\ell, \mathsf{*.f64}\left(4, \mathsf{/.f64}\left(\left(\frac{\ell \cdot \left(\sin ky \cdot \sin ky\right)}{Om}\right), Om\right)\right)\right)\right)\right)\right)\right)\right) \]
        9. Applied egg-rr100.0%

          \[\leadsto \sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(4 \cdot \color{blue}{\frac{\frac{\frac{\ell \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{2}}{Om}}{Om}}\right)}}} \]
        10. Taylor expanded in l around 0

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

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

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

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

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

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

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

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

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left({Om}^{2}\right)\right)\right)\right)\right)\right) \]
          9. unpow2N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \left(Om \cdot Om\right)\right)\right)\right)\right)\right) \]
          10. *-lowering-*.f6497.5%

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(\ell, \ell\right), \mathsf{\_.f64}\left(1, \mathsf{cos.f64}\left(\mathsf{*.f64}\left(2, ky\right)\right)\right)\right), \mathsf{*.f64}\left(Om, Om\right)\right)\right)\right)\right)\right) \]
        12. Simplified97.5%

          \[\leadsto \sqrt{0.5 + \frac{0.5}{\color{blue}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(2 \cdot ky\right)\right)}{Om \cdot Om}}}} \]
      3. Recombined 2 regimes into one program.
      4. Final simplification81.3%

        \[\leadsto \begin{array}{l} \mathbf{if}\;ky \leq 8.5 \cdot 10^{+104}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \frac{\left(\ell \cdot 4\right) \cdot \left(\left(2 \cdot \left(ky \cdot ky\right)\right) \cdot \frac{\ell}{2 \cdot Om}\right)}{Om}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 + \frac{0.5}{1 + \frac{\left(\ell \cdot \ell\right) \cdot \left(1 - \cos \left(ky \cdot 2\right)\right)}{Om \cdot Om}}}\\ \end{array} \]
      5. Add Preprocessing

      Alternative 9: 67.1% accurate, 6.8× speedup?

      \[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ \begin{array}{l} \mathbf{if}\;Om \leq 8.8 \cdot 10^{+33}:\\ \;\;\;\;\sqrt{0.5}\\ \mathbf{else}:\\ \;\;\;\;1\\ \end{array} \end{array} \]
      kx_m = (fabs.f64 kx)
      ky_m = (fabs.f64 ky)
      NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
      (FPCore (l Om kx_m ky_m)
       :precision binary64
       (if (<= Om 8.8e+33) (sqrt 0.5) 1.0))
      kx_m = fabs(kx);
      ky_m = fabs(ky);
      assert(l < Om && Om < kx_m && kx_m < ky_m);
      double code(double l, double Om, double kx_m, double ky_m) {
      	double tmp;
      	if (Om <= 8.8e+33) {
      		tmp = sqrt(0.5);
      	} else {
      		tmp = 1.0;
      	}
      	return tmp;
      }
      
      kx_m = abs(kx)
      ky_m = abs(ky)
      NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
      real(8) function code(l, om, kx_m, ky_m)
          real(8), intent (in) :: l
          real(8), intent (in) :: om
          real(8), intent (in) :: kx_m
          real(8), intent (in) :: ky_m
          real(8) :: tmp
          if (om <= 8.8d+33) then
              tmp = sqrt(0.5d0)
          else
              tmp = 1.0d0
          end if
          code = tmp
      end function
      
      kx_m = Math.abs(kx);
      ky_m = Math.abs(ky);
      assert l < Om && Om < kx_m && kx_m < ky_m;
      public static double code(double l, double Om, double kx_m, double ky_m) {
      	double tmp;
      	if (Om <= 8.8e+33) {
      		tmp = Math.sqrt(0.5);
      	} else {
      		tmp = 1.0;
      	}
      	return tmp;
      }
      
      kx_m = math.fabs(kx)
      ky_m = math.fabs(ky)
      [l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
      def code(l, Om, kx_m, ky_m):
      	tmp = 0
      	if Om <= 8.8e+33:
      		tmp = math.sqrt(0.5)
      	else:
      		tmp = 1.0
      	return tmp
      
      kx_m = abs(kx)
      ky_m = abs(ky)
      l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
      function code(l, Om, kx_m, ky_m)
      	tmp = 0.0
      	if (Om <= 8.8e+33)
      		tmp = sqrt(0.5);
      	else
      		tmp = 1.0;
      	end
      	return tmp
      end
      
      kx_m = abs(kx);
      ky_m = abs(ky);
      l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
      function tmp_2 = code(l, Om, kx_m, ky_m)
      	tmp = 0.0;
      	if (Om <= 8.8e+33)
      		tmp = sqrt(0.5);
      	else
      		tmp = 1.0;
      	end
      	tmp_2 = tmp;
      end
      
      kx_m = N[Abs[kx], $MachinePrecision]
      ky_m = N[Abs[ky], $MachinePrecision]
      NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
      code[l_, Om_, kx$95$m_, ky$95$m_] := If[LessEqual[Om, 8.8e+33], N[Sqrt[0.5], $MachinePrecision], 1.0]
      
      \begin{array}{l}
      kx_m = \left|kx\right|
      \\
      ky_m = \left|ky\right|
      \\
      [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
      \\
      \begin{array}{l}
      \mathbf{if}\;Om \leq 8.8 \cdot 10^{+33}:\\
      \;\;\;\;\sqrt{0.5}\\
      
      \mathbf{else}:\\
      \;\;\;\;1\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if Om < 8.79999999999999975e33

        1. Initial program 97.9%

          \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
        2. Add Preprocessing
        3. Taylor expanded in l around inf

          \[\leadsto \color{blue}{\sqrt{\frac{1}{2}}} \]
        4. Step-by-step derivation
          1. sqrt-lowering-sqrt.f6463.7%

            \[\leadsto \mathsf{sqrt.f64}\left(\frac{1}{2}\right) \]
        5. Simplified63.7%

          \[\leadsto \color{blue}{\sqrt{0.5}} \]

        if 8.79999999999999975e33 < Om

        1. Initial program 98.5%

          \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
        2. Step-by-step derivation
          1. sqrt-lowering-sqrt.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          2. *-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
          3. +-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
          4. distribute-rgt1-inN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
          5. +-lowering-+.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          6. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          7. associate-*l/N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          8. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          9. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          10. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        3. Simplified99.9%

          \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
        4. Add Preprocessing
        5. Taylor expanded in l around 0

          \[\leadsto \color{blue}{1} \]
        6. Step-by-step derivation
          1. Simplified84.2%

            \[\leadsto \color{blue}{1} \]
        7. Recombined 2 regimes into one program.
        8. Add Preprocessing

        Alternative 10: 62.4% accurate, 722.0× speedup?

        \[\begin{array}{l} kx_m = \left|kx\right| \\ ky_m = \left|ky\right| \\ [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\ \\ 1 \end{array} \]
        kx_m = (fabs.f64 kx)
        ky_m = (fabs.f64 ky)
        NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
        (FPCore (l Om kx_m ky_m) :precision binary64 1.0)
        kx_m = fabs(kx);
        ky_m = fabs(ky);
        assert(l < Om && Om < kx_m && kx_m < ky_m);
        double code(double l, double Om, double kx_m, double ky_m) {
        	return 1.0;
        }
        
        kx_m = abs(kx)
        ky_m = abs(ky)
        NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
        real(8) function code(l, om, kx_m, ky_m)
            real(8), intent (in) :: l
            real(8), intent (in) :: om
            real(8), intent (in) :: kx_m
            real(8), intent (in) :: ky_m
            code = 1.0d0
        end function
        
        kx_m = Math.abs(kx);
        ky_m = Math.abs(ky);
        assert l < Om && Om < kx_m && kx_m < ky_m;
        public static double code(double l, double Om, double kx_m, double ky_m) {
        	return 1.0;
        }
        
        kx_m = math.fabs(kx)
        ky_m = math.fabs(ky)
        [l, Om, kx_m, ky_m] = sort([l, Om, kx_m, ky_m])
        def code(l, Om, kx_m, ky_m):
        	return 1.0
        
        kx_m = abs(kx)
        ky_m = abs(ky)
        l, Om, kx_m, ky_m = sort([l, Om, kx_m, ky_m])
        function code(l, Om, kx_m, ky_m)
        	return 1.0
        end
        
        kx_m = abs(kx);
        ky_m = abs(ky);
        l, Om, kx_m, ky_m = num2cell(sort([l, Om, kx_m, ky_m])){:}
        function tmp = code(l, Om, kx_m, ky_m)
        	tmp = 1.0;
        end
        
        kx_m = N[Abs[kx], $MachinePrecision]
        ky_m = N[Abs[ky], $MachinePrecision]
        NOTE: l, Om, kx_m, and ky_m should be sorted in increasing order before calling this function.
        code[l_, Om_, kx$95$m_, ky$95$m_] := 1.0
        
        \begin{array}{l}
        kx_m = \left|kx\right|
        \\
        ky_m = \left|ky\right|
        \\
        [l, Om, kx_m, ky_m] = \mathsf{sort}([l, Om, kx_m, ky_m])\\
        \\
        1
        \end{array}
        
        Derivation
        1. Initial program 98.0%

          \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)} \]
        2. Step-by-step derivation
          1. sqrt-lowering-sqrt.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          2. *-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right) \cdot \frac{1}{2}\right)\right) \]
          3. +-commutativeN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} + 1\right) \cdot \frac{1}{2}\right)\right) \]
          4. distribute-rgt1-inN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\left(\frac{1}{2} + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right) \]
          5. +-lowering-+.f64N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\left(\frac{1}{2}\right), \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          6. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}} \cdot \frac{1}{2}\right)\right)\right) \]
          7. associate-*l/N/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          8. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          9. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
          10. metadata-evalN/A

            \[\leadsto \mathsf{sqrt.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\sin kx}^{2} + {\sin ky}^{2}\right)}}\right)\right)\right) \]
        3. Simplified98.1%

          \[\leadsto \color{blue}{\sqrt{0.5 + \frac{0.5}{\sqrt{1 + \ell \cdot \left(\left({\sin kx}^{2} + {\sin ky}^{2}\right) \cdot \frac{\frac{\ell \cdot 4}{Om}}{Om}\right)}}}} \]
        4. Add Preprocessing
        5. Taylor expanded in l around 0

          \[\leadsto \color{blue}{1} \]
        6. Step-by-step derivation
          1. Simplified62.3%

            \[\leadsto \color{blue}{1} \]
          2. Add Preprocessing

          Reproduce

          ?
          herbie shell --seed 2024145 
          (FPCore (l Om kx ky)
            :name "Toniolo and Linder, Equation (3a)"
            :precision binary64
            (sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))