Toniolo and Linder, Equation (2)

Percentage Accurate: 84.3% → 98.9%
Time: 7.0s
Alternatives: 6
Speedup: 1.0×

Specification

?
\[\begin{array}{l} \\ \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \end{array} \]
(FPCore (t l Om Omc)
 :precision binary64
 (asin
  (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))
double code(double t, double l, double Om, double Omc) {
	return asin(sqrt(((1.0 - pow((Om / Omc), 2.0)) / (1.0 + (2.0 * pow((t / l), 2.0))))));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

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

real(8) function code(t, l, om, omc)
use fmin_fmax_functions
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: omc
    code = asin(sqrt(((1.0d0 - ((om / omc) ** 2.0d0)) / (1.0d0 + (2.0d0 * ((t / l) ** 2.0d0))))))
end function
public static double code(double t, double l, double Om, double Omc) {
	return Math.asin(Math.sqrt(((1.0 - Math.pow((Om / Omc), 2.0)) / (1.0 + (2.0 * Math.pow((t / l), 2.0))))));
}
def code(t, l, Om, Omc):
	return math.asin(math.sqrt(((1.0 - math.pow((Om / Omc), 2.0)) / (1.0 + (2.0 * math.pow((t / l), 2.0))))))
function code(t, l, Om, Omc)
	return asin(sqrt(Float64(Float64(1.0 - (Float64(Om / Omc) ^ 2.0)) / Float64(1.0 + Float64(2.0 * (Float64(t / l) ^ 2.0))))))
end
function tmp = code(t, l, Om, Omc)
	tmp = asin(sqrt(((1.0 - ((Om / Omc) ^ 2.0)) / (1.0 + (2.0 * ((t / l) ^ 2.0))))));
end
code[t_, l_, Om_, Omc_] := N[ArcSin[N[Sqrt[N[(N[(1.0 - N[Power[N[(Om / Omc), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[(2.0 * N[Power[N[(t / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\end{array}

Local Percentage Accuracy vs ?

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

Accuracy vs Speed?

Herbie found 6 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: 84.3% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \end{array} \]
(FPCore (t l Om Omc)
 :precision binary64
 (asin
  (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))
double code(double t, double l, double Om, double Omc) {
	return asin(sqrt(((1.0 - pow((Om / Omc), 2.0)) / (1.0 + (2.0 * pow((t / l), 2.0))))));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

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

real(8) function code(t, l, om, omc)
use fmin_fmax_functions
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: om
    real(8), intent (in) :: omc
    code = asin(sqrt(((1.0d0 - ((om / omc) ** 2.0d0)) / (1.0d0 + (2.0d0 * ((t / l) ** 2.0d0))))))
end function
public static double code(double t, double l, double Om, double Omc) {
	return Math.asin(Math.sqrt(((1.0 - Math.pow((Om / Omc), 2.0)) / (1.0 + (2.0 * Math.pow((t / l), 2.0))))));
}
def code(t, l, Om, Omc):
	return math.asin(math.sqrt(((1.0 - math.pow((Om / Omc), 2.0)) / (1.0 + (2.0 * math.pow((t / l), 2.0))))))
function code(t, l, Om, Omc)
	return asin(sqrt(Float64(Float64(1.0 - (Float64(Om / Omc) ^ 2.0)) / Float64(1.0 + Float64(2.0 * (Float64(t / l) ^ 2.0))))))
end
function tmp = code(t, l, Om, Omc)
	tmp = asin(sqrt(((1.0 - ((Om / Omc) ^ 2.0)) / (1.0 + (2.0 * ((t / l) ^ 2.0))))));
end
code[t_, l_, Om_, Omc_] := N[ArcSin[N[Sqrt[N[(N[(1.0 - N[Power[N[(Om / Omc), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[(2.0 * N[Power[N[(t / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\end{array}

Alternative 1: 98.9% accurate, 0.6× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ l_m = \left|\ell\right| \\ \begin{array}{l} \mathbf{if}\;\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2}}}\right) \leq 10^{-93}:\\ \;\;\;\;\sin^{-1} \left(\frac{l\_m \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t\_m}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \frac{\frac{Om}{Omc} \cdot Om}{Omc}}{\mathsf{fma}\left(\frac{t\_m + t\_m}{l\_m}, \frac{t\_m}{l\_m}, 1\right)}}\right)\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
l_m = (fabs.f64 l)
(FPCore (t_m l_m Om Omc)
 :precision binary64
 (if (<=
      (asin
       (sqrt
        (/
         (- 1.0 (pow (/ Om Omc) 2.0))
         (+ 1.0 (* 2.0 (pow (/ t_m l_m) 2.0))))))
      1e-93)
   (asin
    (/ (* l_m (sqrt (* -0.5 (* (+ 1.0 (/ Om Omc)) (- (/ Om Omc) 1.0))))) t_m))
   (asin
    (sqrt
     (/
      (- 1.0 (/ (* (/ Om Omc) Om) Omc))
      (fma (/ (+ t_m t_m) l_m) (/ t_m l_m) 1.0))))))
t_m = fabs(t);
l_m = fabs(l);
double code(double t_m, double l_m, double Om, double Omc) {
	double tmp;
	if (asin(sqrt(((1.0 - pow((Om / Omc), 2.0)) / (1.0 + (2.0 * pow((t_m / l_m), 2.0)))))) <= 1e-93) {
		tmp = asin(((l_m * sqrt((-0.5 * ((1.0 + (Om / Omc)) * ((Om / Omc) - 1.0))))) / t_m));
	} else {
		tmp = asin(sqrt(((1.0 - (((Om / Omc) * Om) / Omc)) / fma(((t_m + t_m) / l_m), (t_m / l_m), 1.0))));
	}
	return tmp;
}
t_m = abs(t)
l_m = abs(l)
function code(t_m, l_m, Om, Omc)
	tmp = 0.0
	if (asin(sqrt(Float64(Float64(1.0 - (Float64(Om / Omc) ^ 2.0)) / Float64(1.0 + Float64(2.0 * (Float64(t_m / l_m) ^ 2.0)))))) <= 1e-93)
		tmp = asin(Float64(Float64(l_m * sqrt(Float64(-0.5 * Float64(Float64(1.0 + Float64(Om / Omc)) * Float64(Float64(Om / Omc) - 1.0))))) / t_m));
	else
		tmp = asin(sqrt(Float64(Float64(1.0 - Float64(Float64(Float64(Om / Omc) * Om) / Omc)) / fma(Float64(Float64(t_m + t_m) / l_m), Float64(t_m / l_m), 1.0))));
	end
	return tmp
end
t_m = N[Abs[t], $MachinePrecision]
l_m = N[Abs[l], $MachinePrecision]
code[t$95$m_, l$95$m_, Om_, Omc_] := If[LessEqual[N[ArcSin[N[Sqrt[N[(N[(1.0 - N[Power[N[(Om / Omc), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[(2.0 * N[Power[N[(t$95$m / l$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision], 1e-93], N[ArcSin[N[(N[(l$95$m * N[Sqrt[N[(-0.5 * N[(N[(1.0 + N[(Om / Omc), $MachinePrecision]), $MachinePrecision] * N[(N[(Om / Omc), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision], N[ArcSin[N[Sqrt[N[(N[(1.0 - N[(N[(N[(Om / Omc), $MachinePrecision] * Om), $MachinePrecision] / Omc), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(t$95$m + t$95$m), $MachinePrecision] / l$95$m), $MachinePrecision] * N[(t$95$m / l$95$m), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
l_m = \left|\ell\right|

\\
\begin{array}{l}
\mathbf{if}\;\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2}}}\right) \leq 10^{-93}:\\
\;\;\;\;\sin^{-1} \left(\frac{l\_m \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t\_m}\right)\\

\mathbf{else}:\\
\;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \frac{\frac{Om}{Omc} \cdot Om}{Omc}}{\mathsf{fma}\left(\frac{t\_m + t\_m}{l\_m}, \frac{t\_m}{l\_m}, 1\right)}}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (asin.f64 (sqrt.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 Om Omc) #s(literal 2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64))))))) < 9.999999999999999e-94

    1. Initial program 84.3%

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

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}\right) \]
      2. frac-2negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{neg}\left(\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      3. lift--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{neg}\left(\color{blue}{\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)}\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      4. sub-negate-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      5. lift-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      6. unpow2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc} \cdot \frac{Om}{Omc}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      7. difference-of-sqr-1N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \left(\frac{Om}{Omc} - 1\right)}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      8. associate-/l*N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      9. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      10. add-flipN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      11. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - \color{blue}{-1}\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      12. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      13. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \color{blue}{\frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      14. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\color{blue}{\frac{Om}{Omc} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      15. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)}}\right) \]
      16. +-commutativeN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)}}\right) \]
      17. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\color{blue}{\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)}}}\right) \]
    3. Applied rewrites73.0%

      \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{fma}\left(-2 \cdot t, \frac{t}{\ell \cdot \ell}, -1\right)}}}\right) \]
    4. Taylor expanded in t around inf

      \[\leadsto \sin^{-1} \color{blue}{\left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right)} \]
    5. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{\color{blue}{t}}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      3. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      4. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      5. lower-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      6. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      7. lower-+.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      8. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      9. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      10. lower-/.f6434.6

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{-0.5 \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
    6. Applied rewrites34.6%

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

      \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
    8. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      3. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      4. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      5. lower-+.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      6. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      8. lower-/.f6448.8

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
    9. Applied rewrites48.8%

      \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]

    if 9.999999999999999e-94 < (asin.f64 (sqrt.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 Om Omc) #s(literal 2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64)))))))

    1. Initial program 84.3%

      \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \]
    2. Step-by-step derivation
      1. remove-double-negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right)}}}\right) \]
      2. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)\right)\right)}}\right) \]
      3. +-commutativeN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)\right)\right)}}\right) \]
      4. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)\right)}\right)}}\right) \]
      5. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \color{blue}{-1}\right)\right)}}\right) \]
      6. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right) + \left(\mathsf{neg}\left(-1\right)\right)}}}\right) \]
      7. remove-double-negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      8. lift-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      9. lift-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{{\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      10. unpow2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      11. associate-*r*N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(2 \cdot \frac{t}{\ell}\right) \cdot \frac{t}{\ell}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      12. count-2-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right)} \cdot \frac{t}{\ell} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      13. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right) \cdot \frac{t}{\ell} + \color{blue}{1}}}\right) \]
      14. lower-fma.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t}{\ell} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
      15. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell}} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      16. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{t}{\ell} + \color{blue}{\frac{t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      17. div-add-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      18. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      19. lower-+.f6484.3

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{\color{blue}{t + t}}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
    3. Applied rewrites84.3%

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
    4. Step-by-step derivation
      1. lift-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{{\left(\frac{Om}{Omc}\right)}^{2}}}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      2. unpow2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      3. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \color{blue}{\frac{Om}{Omc}}}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      4. associate-*r/N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\frac{\frac{Om}{Omc} \cdot Om}{Omc}}}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      5. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\frac{\frac{Om}{Omc} \cdot Om}{Omc}}}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      6. lower-*.f6484.3

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \frac{\color{blue}{\frac{Om}{Omc} \cdot Om}}{Omc}}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
    5. Applied rewrites84.3%

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\frac{\frac{Om}{Omc} \cdot Om}{Omc}}}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 2: 98.9% accurate, 0.6× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ l_m = \left|\ell\right| \\ \begin{array}{l} \mathbf{if}\;\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2}}}\right) \leq 5 \cdot 10^{-6}:\\ \;\;\;\;\sin^{-1} \left(\frac{l\_m \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t\_m}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{-2 \cdot t\_m}{l\_m}}{l\_m}, t\_m, -1\right)}}\right)\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
l_m = (fabs.f64 l)
(FPCore (t_m l_m Om Omc)
 :precision binary64
 (if (<=
      (asin
       (sqrt
        (/
         (- 1.0 (pow (/ Om Omc) 2.0))
         (+ 1.0 (* 2.0 (pow (/ t_m l_m) 2.0))))))
      5e-6)
   (asin
    (/ (* l_m (sqrt (* -0.5 (* (+ 1.0 (/ Om Omc)) (- (/ Om Omc) 1.0))))) t_m))
   (asin
    (sqrt
     (/
      (fma (/ Om Omc) (/ Om Omc) -1.0)
      (fma (/ (/ (* -2.0 t_m) l_m) l_m) t_m -1.0))))))
t_m = fabs(t);
l_m = fabs(l);
double code(double t_m, double l_m, double Om, double Omc) {
	double tmp;
	if (asin(sqrt(((1.0 - pow((Om / Omc), 2.0)) / (1.0 + (2.0 * pow((t_m / l_m), 2.0)))))) <= 5e-6) {
		tmp = asin(((l_m * sqrt((-0.5 * ((1.0 + (Om / Omc)) * ((Om / Omc) - 1.0))))) / t_m));
	} else {
		tmp = asin(sqrt((fma((Om / Omc), (Om / Omc), -1.0) / fma((((-2.0 * t_m) / l_m) / l_m), t_m, -1.0))));
	}
	return tmp;
}
t_m = abs(t)
l_m = abs(l)
function code(t_m, l_m, Om, Omc)
	tmp = 0.0
	if (asin(sqrt(Float64(Float64(1.0 - (Float64(Om / Omc) ^ 2.0)) / Float64(1.0 + Float64(2.0 * (Float64(t_m / l_m) ^ 2.0)))))) <= 5e-6)
		tmp = asin(Float64(Float64(l_m * sqrt(Float64(-0.5 * Float64(Float64(1.0 + Float64(Om / Omc)) * Float64(Float64(Om / Omc) - 1.0))))) / t_m));
	else
		tmp = asin(sqrt(Float64(fma(Float64(Om / Omc), Float64(Om / Omc), -1.0) / fma(Float64(Float64(Float64(-2.0 * t_m) / l_m) / l_m), t_m, -1.0))));
	end
	return tmp
end
t_m = N[Abs[t], $MachinePrecision]
l_m = N[Abs[l], $MachinePrecision]
code[t$95$m_, l$95$m_, Om_, Omc_] := If[LessEqual[N[ArcSin[N[Sqrt[N[(N[(1.0 - N[Power[N[(Om / Omc), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[(2.0 * N[Power[N[(t$95$m / l$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision], 5e-6], N[ArcSin[N[(N[(l$95$m * N[Sqrt[N[(-0.5 * N[(N[(1.0 + N[(Om / Omc), $MachinePrecision]), $MachinePrecision] * N[(N[(Om / Omc), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision], N[ArcSin[N[Sqrt[N[(N[(N[(Om / Omc), $MachinePrecision] * N[(Om / Omc), $MachinePrecision] + -1.0), $MachinePrecision] / N[(N[(N[(N[(-2.0 * t$95$m), $MachinePrecision] / l$95$m), $MachinePrecision] / l$95$m), $MachinePrecision] * t$95$m + -1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
l_m = \left|\ell\right|

\\
\begin{array}{l}
\mathbf{if}\;\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2}}}\right) \leq 5 \cdot 10^{-6}:\\
\;\;\;\;\sin^{-1} \left(\frac{l\_m \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t\_m}\right)\\

\mathbf{else}:\\
\;\;\;\;\sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{-2 \cdot t\_m}{l\_m}}{l\_m}, t\_m, -1\right)}}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (asin.f64 (sqrt.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 Om Omc) #s(literal 2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64))))))) < 5.00000000000000041e-6

    1. Initial program 84.3%

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

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}\right) \]
      2. frac-2negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{neg}\left(\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      3. lift--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{neg}\left(\color{blue}{\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)}\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      4. sub-negate-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      5. lift-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      6. unpow2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc} \cdot \frac{Om}{Omc}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      7. difference-of-sqr-1N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \left(\frac{Om}{Omc} - 1\right)}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      8. associate-/l*N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      9. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      10. add-flipN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      11. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - \color{blue}{-1}\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      12. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      13. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \color{blue}{\frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      14. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\color{blue}{\frac{Om}{Omc} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      15. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)}}\right) \]
      16. +-commutativeN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)}}\right) \]
      17. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\color{blue}{\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)}}}\right) \]
    3. Applied rewrites73.0%

      \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{fma}\left(-2 \cdot t, \frac{t}{\ell \cdot \ell}, -1\right)}}}\right) \]
    4. Taylor expanded in t around inf

      \[\leadsto \sin^{-1} \color{blue}{\left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right)} \]
    5. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{\color{blue}{t}}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      3. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      4. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      5. lower-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      6. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      7. lower-+.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      8. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      9. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      10. lower-/.f6434.6

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{-0.5 \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
    6. Applied rewrites34.6%

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

      \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
    8. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      3. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      4. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      5. lower-+.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      6. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      8. lower-/.f6448.8

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
    9. Applied rewrites48.8%

      \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]

    if 5.00000000000000041e-6 < (asin.f64 (sqrt.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 Om Omc) #s(literal 2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64)))))))

    1. Initial program 84.3%

      \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \]
    2. Step-by-step derivation
      1. remove-double-negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right)}}}\right) \]
      2. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)\right)\right)}}\right) \]
      3. +-commutativeN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)\right)\right)}}\right) \]
      4. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)\right)}\right)}}\right) \]
      5. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \color{blue}{-1}\right)\right)}}\right) \]
      6. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right) + \left(\mathsf{neg}\left(-1\right)\right)}}}\right) \]
      7. remove-double-negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      8. lift-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      9. lift-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{{\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      10. unpow2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      11. associate-*r*N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(2 \cdot \frac{t}{\ell}\right) \cdot \frac{t}{\ell}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      12. count-2-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right)} \cdot \frac{t}{\ell} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      13. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right) \cdot \frac{t}{\ell} + \color{blue}{1}}}\right) \]
      14. lower-fma.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t}{\ell} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
      15. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell}} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      16. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{t}{\ell} + \color{blue}{\frac{t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      17. div-add-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      18. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      19. lower-+.f6484.3

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{\color{blue}{t + t}}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
    3. Applied rewrites84.3%

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
    4. Applied rewrites73.1%

      \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{t}{\ell \cdot \ell} \cdot -2, t, -1\right)}}}\right) \]
    5. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell \cdot \ell} \cdot -2}, t, -1\right)}}\right) \]
      2. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell \cdot \ell}} \cdot -2, t, -1\right)}}\right) \]
      3. associate-*l/N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\color{blue}{\frac{t \cdot -2}{\ell \cdot \ell}}, t, -1\right)}}\right) \]
      4. lift-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{t \cdot -2}{\color{blue}{\ell \cdot \ell}}, t, -1\right)}}\right) \]
      5. associate-/r*N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\color{blue}{\frac{\frac{t \cdot -2}{\ell}}{\ell}}, t, -1\right)}}\right) \]
      6. *-commutativeN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{-2 \cdot t}}{\ell}}{\ell}, t, -1\right)}}\right) \]
      7. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{\left(\mathsf{neg}\left(2\right)\right)} \cdot t}{\ell}}{\ell}, t, -1\right)}}\right) \]
      8. distribute-lft-neg-outN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{\mathsf{neg}\left(2 \cdot t\right)}}{\ell}}{\ell}, t, -1\right)}}\right) \]
      9. count-2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\mathsf{neg}\left(\color{blue}{\left(t + t\right)}\right)}{\ell}}{\ell}, t, -1\right)}}\right) \]
      10. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\mathsf{neg}\left(\color{blue}{\left(t + t\right)}\right)}{\ell}}{\ell}, t, -1\right)}}\right) \]
      11. distribute-neg-fracN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\color{blue}{\mathsf{neg}\left(\frac{t + t}{\ell}\right)}}{\ell}, t, -1\right)}}\right) \]
      12. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\mathsf{neg}\left(\color{blue}{\frac{t + t}{\ell}}\right)}{\ell}, t, -1\right)}}\right) \]
      13. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(\frac{t + t}{\ell}\right)}{\ell}}, t, -1\right)}}\right) \]
      14. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\mathsf{neg}\left(\color{blue}{\frac{t + t}{\ell}}\right)}{\ell}, t, -1\right)}}\right) \]
      15. distribute-neg-fracN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\color{blue}{\frac{\mathsf{neg}\left(\left(t + t\right)\right)}{\ell}}}{\ell}, t, -1\right)}}\right) \]
      16. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\color{blue}{\frac{\mathsf{neg}\left(\left(t + t\right)\right)}{\ell}}}{\ell}, t, -1\right)}}\right) \]
      17. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\mathsf{neg}\left(\color{blue}{\left(t + t\right)}\right)}{\ell}}{\ell}, t, -1\right)}}\right) \]
      18. count-2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\mathsf{neg}\left(\color{blue}{2 \cdot t}\right)}{\ell}}{\ell}, t, -1\right)}}\right) \]
      19. distribute-lft-neg-outN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{\left(\mathsf{neg}\left(2\right)\right) \cdot t}}{\ell}}{\ell}, t, -1\right)}}\right) \]
      20. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{-2} \cdot t}{\ell}}{\ell}, t, -1\right)}}\right) \]
      21. lower-*.f6481.1

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{-2 \cdot t}}{\ell}}{\ell}, t, -1\right)}}\right) \]
    6. Applied rewrites81.1%

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\color{blue}{\frac{\frac{-2 \cdot t}{\ell}}{\ell}}, t, -1\right)}}\right) \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 3: 97.9% accurate, 0.6× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ l_m = \left|\ell\right| \\ \begin{array}{l} \mathbf{if}\;\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2}}}\right) \leq 1:\\ \;\;\;\;\sin^{-1} \left(\frac{l\_m \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t\_m}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{-1}}\right)\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
l_m = (fabs.f64 l)
(FPCore (t_m l_m Om Omc)
 :precision binary64
 (if (<=
      (asin
       (sqrt
        (/
         (- 1.0 (pow (/ Om Omc) 2.0))
         (+ 1.0 (* 2.0 (pow (/ t_m l_m) 2.0))))))
      1.0)
   (asin
    (/ (* l_m (sqrt (* -0.5 (* (+ 1.0 (/ Om Omc)) (- (/ Om Omc) 1.0))))) t_m))
   (asin (sqrt (/ (fma (/ Om Omc) (/ Om Omc) -1.0) -1.0)))))
t_m = fabs(t);
l_m = fabs(l);
double code(double t_m, double l_m, double Om, double Omc) {
	double tmp;
	if (asin(sqrt(((1.0 - pow((Om / Omc), 2.0)) / (1.0 + (2.0 * pow((t_m / l_m), 2.0)))))) <= 1.0) {
		tmp = asin(((l_m * sqrt((-0.5 * ((1.0 + (Om / Omc)) * ((Om / Omc) - 1.0))))) / t_m));
	} else {
		tmp = asin(sqrt((fma((Om / Omc), (Om / Omc), -1.0) / -1.0)));
	}
	return tmp;
}
t_m = abs(t)
l_m = abs(l)
function code(t_m, l_m, Om, Omc)
	tmp = 0.0
	if (asin(sqrt(Float64(Float64(1.0 - (Float64(Om / Omc) ^ 2.0)) / Float64(1.0 + Float64(2.0 * (Float64(t_m / l_m) ^ 2.0)))))) <= 1.0)
		tmp = asin(Float64(Float64(l_m * sqrt(Float64(-0.5 * Float64(Float64(1.0 + Float64(Om / Omc)) * Float64(Float64(Om / Omc) - 1.0))))) / t_m));
	else
		tmp = asin(sqrt(Float64(fma(Float64(Om / Omc), Float64(Om / Omc), -1.0) / -1.0)));
	end
	return tmp
end
t_m = N[Abs[t], $MachinePrecision]
l_m = N[Abs[l], $MachinePrecision]
code[t$95$m_, l$95$m_, Om_, Omc_] := If[LessEqual[N[ArcSin[N[Sqrt[N[(N[(1.0 - N[Power[N[(Om / Omc), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[(2.0 * N[Power[N[(t$95$m / l$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision], 1.0], N[ArcSin[N[(N[(l$95$m * N[Sqrt[N[(-0.5 * N[(N[(1.0 + N[(Om / Omc), $MachinePrecision]), $MachinePrecision] * N[(N[(Om / Omc), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision], N[ArcSin[N[Sqrt[N[(N[(N[(Om / Omc), $MachinePrecision] * N[(Om / Omc), $MachinePrecision] + -1.0), $MachinePrecision] / -1.0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
l_m = \left|\ell\right|

\\
\begin{array}{l}
\mathbf{if}\;\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2}}}\right) \leq 1:\\
\;\;\;\;\sin^{-1} \left(\frac{l\_m \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t\_m}\right)\\

\mathbf{else}:\\
\;\;\;\;\sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{-1}}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (asin.f64 (sqrt.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 Om Omc) #s(literal 2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64))))))) < 1

    1. Initial program 84.3%

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

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}\right) \]
      2. frac-2negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{neg}\left(\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      3. lift--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{neg}\left(\color{blue}{\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)}\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      4. sub-negate-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      5. lift-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      6. unpow2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc} \cdot \frac{Om}{Omc}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      7. difference-of-sqr-1N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \left(\frac{Om}{Omc} - 1\right)}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      8. associate-/l*N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      9. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      10. add-flipN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      11. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - \color{blue}{-1}\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      12. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      13. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \color{blue}{\frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
      14. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\color{blue}{\frac{Om}{Omc} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
      15. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)}}\right) \]
      16. +-commutativeN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)}}\right) \]
      17. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\color{blue}{\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)}}}\right) \]
    3. Applied rewrites73.0%

      \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{fma}\left(-2 \cdot t, \frac{t}{\ell \cdot \ell}, -1\right)}}}\right) \]
    4. Taylor expanded in t around inf

      \[\leadsto \sin^{-1} \color{blue}{\left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right)} \]
    5. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{\color{blue}{t}}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      3. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      4. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      5. lower-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      6. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      7. lower-+.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      8. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      9. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
      10. lower-/.f6434.6

        \[\leadsto \sin^{-1} \left(\frac{\sqrt{-0.5 \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
    6. Applied rewrites34.6%

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

      \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
    8. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      2. lower-sqrt.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      3. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      4. lower-*.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      5. lower-+.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      6. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      7. lower--.f64N/A

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
      8. lower-/.f6448.8

        \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]
    9. Applied rewrites48.8%

      \[\leadsto \sin^{-1} \left(\frac{\ell \cdot \sqrt{-0.5 \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)}}{t}\right) \]

    if 1 < (asin.f64 (sqrt.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 Om Omc) #s(literal 2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64)))))))

    1. Initial program 84.3%

      \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \]
    2. Step-by-step derivation
      1. remove-double-negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right)}}}\right) \]
      2. lift-+.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)\right)\right)}}\right) \]
      3. +-commutativeN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)\right)\right)}}\right) \]
      4. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)\right)}\right)}}\right) \]
      5. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \color{blue}{-1}\right)\right)}}\right) \]
      6. distribute-neg-inN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right) + \left(\mathsf{neg}\left(-1\right)\right)}}}\right) \]
      7. remove-double-negN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      8. lift-*.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      9. lift-pow.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{{\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      10. unpow2N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      11. associate-*r*N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(2 \cdot \frac{t}{\ell}\right) \cdot \frac{t}{\ell}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      12. count-2-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right)} \cdot \frac{t}{\ell} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
      13. metadata-evalN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right) \cdot \frac{t}{\ell} + \color{blue}{1}}}\right) \]
      14. lower-fma.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t}{\ell} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
      15. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell}} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      16. lift-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{t}{\ell} + \color{blue}{\frac{t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      17. div-add-revN/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      18. lower-/.f64N/A

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
      19. lower-+.f6484.3

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{\color{blue}{t + t}}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
    3. Applied rewrites84.3%

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
    4. Applied rewrites73.1%

      \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{t}{\ell \cdot \ell} \cdot -2, t, -1\right)}}}\right) \]
    5. Taylor expanded in t around 0

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]
    6. Step-by-step derivation
      1. Applied rewrites51.6%

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]
    7. Recombined 2 regimes into one program.
    8. Add Preprocessing

    Alternative 4: 95.3% accurate, 1.0× speedup?

    \[\begin{array}{l} t_m = \left|t\right| \\ l_m = \left|\ell\right| \\ \begin{array}{l} \mathbf{if}\;1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2} \leq 4:\\ \;\;\;\;\sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{-1}}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\frac{\sqrt{-0.5 \cdot \mathsf{fma}\left(\frac{Om}{Omc \cdot Omc}, Om, -1\right)} \cdot \left|l\_m\right|}{t\_m}\right)\\ \end{array} \end{array} \]
    t_m = (fabs.f64 t)
    l_m = (fabs.f64 l)
    (FPCore (t_m l_m Om Omc)
     :precision binary64
     (if (<= (+ 1.0 (* 2.0 (pow (/ t_m l_m) 2.0))) 4.0)
       (asin (sqrt (/ (fma (/ Om Omc) (/ Om Omc) -1.0) -1.0)))
       (asin
        (/ (* (sqrt (* -0.5 (fma (/ Om (* Omc Omc)) Om -1.0))) (fabs l_m)) t_m))))
    t_m = fabs(t);
    l_m = fabs(l);
    double code(double t_m, double l_m, double Om, double Omc) {
    	double tmp;
    	if ((1.0 + (2.0 * pow((t_m / l_m), 2.0))) <= 4.0) {
    		tmp = asin(sqrt((fma((Om / Omc), (Om / Omc), -1.0) / -1.0)));
    	} else {
    		tmp = asin(((sqrt((-0.5 * fma((Om / (Omc * Omc)), Om, -1.0))) * fabs(l_m)) / t_m));
    	}
    	return tmp;
    }
    
    t_m = abs(t)
    l_m = abs(l)
    function code(t_m, l_m, Om, Omc)
    	tmp = 0.0
    	if (Float64(1.0 + Float64(2.0 * (Float64(t_m / l_m) ^ 2.0))) <= 4.0)
    		tmp = asin(sqrt(Float64(fma(Float64(Om / Omc), Float64(Om / Omc), -1.0) / -1.0)));
    	else
    		tmp = asin(Float64(Float64(sqrt(Float64(-0.5 * fma(Float64(Om / Float64(Omc * Omc)), Om, -1.0))) * abs(l_m)) / t_m));
    	end
    	return tmp
    end
    
    t_m = N[Abs[t], $MachinePrecision]
    l_m = N[Abs[l], $MachinePrecision]
    code[t$95$m_, l$95$m_, Om_, Omc_] := If[LessEqual[N[(1.0 + N[(2.0 * N[Power[N[(t$95$m / l$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 4.0], N[ArcSin[N[Sqrt[N[(N[(N[(Om / Omc), $MachinePrecision] * N[(Om / Omc), $MachinePrecision] + -1.0), $MachinePrecision] / -1.0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision], N[ArcSin[N[(N[(N[Sqrt[N[(-0.5 * N[(N[(Om / N[(Omc * Omc), $MachinePrecision]), $MachinePrecision] * Om + -1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[Abs[l$95$m], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    t_m = \left|t\right|
    \\
    l_m = \left|\ell\right|
    
    \\
    \begin{array}{l}
    \mathbf{if}\;1 + 2 \cdot {\left(\frac{t\_m}{l\_m}\right)}^{2} \leq 4:\\
    \;\;\;\;\sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{-1}}\right)\\
    
    \mathbf{else}:\\
    \;\;\;\;\sin^{-1} \left(\frac{\sqrt{-0.5 \cdot \mathsf{fma}\left(\frac{Om}{Omc \cdot Omc}, Om, -1\right)} \cdot \left|l\_m\right|}{t\_m}\right)\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64)))) < 4

      1. Initial program 84.3%

        \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \]
      2. Step-by-step derivation
        1. remove-double-negN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right)}}}\right) \]
        2. lift-+.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)\right)\right)}}\right) \]
        3. +-commutativeN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)\right)\right)}}\right) \]
        4. distribute-neg-inN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)\right)}\right)}}\right) \]
        5. metadata-evalN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \color{blue}{-1}\right)\right)}}\right) \]
        6. distribute-neg-inN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right) + \left(\mathsf{neg}\left(-1\right)\right)}}}\right) \]
        7. remove-double-negN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        8. lift-*.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        9. lift-pow.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{{\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        10. unpow2N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        11. associate-*r*N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(2 \cdot \frac{t}{\ell}\right) \cdot \frac{t}{\ell}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        12. count-2-revN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right)} \cdot \frac{t}{\ell} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        13. metadata-evalN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right) \cdot \frac{t}{\ell} + \color{blue}{1}}}\right) \]
        14. lower-fma.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t}{\ell} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
        15. lift-/.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell}} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
        16. lift-/.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{t}{\ell} + \color{blue}{\frac{t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
        17. div-add-revN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
        18. lower-/.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
        19. lower-+.f6484.3

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{\color{blue}{t + t}}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      3. Applied rewrites84.3%

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
      4. Applied rewrites73.1%

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{t}{\ell \cdot \ell} \cdot -2, t, -1\right)}}}\right) \]
      5. Taylor expanded in t around 0

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]
      6. Step-by-step derivation
        1. Applied rewrites51.6%

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]

        if 4 < (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 (/.f64 t l) #s(literal 2 binary64))))

        1. Initial program 84.3%

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

            \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}\right) \]
          2. frac-2negN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{neg}\left(\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
          3. lift--.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{neg}\left(\color{blue}{\left(1 - {\left(\frac{Om}{Omc}\right)}^{2}\right)}\right)}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          4. sub-negate-revN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          5. lift-pow.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{{\left(\frac{Om}{Omc}\right)}^{2}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          6. unpow2N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc} \cdot \frac{Om}{Omc}} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          7. difference-of-sqr-1N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \left(\frac{Om}{Omc} - 1\right)}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          8. associate-/l*N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
          9. lower-*.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} + 1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
          10. add-flipN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - \left(\mathsf{neg}\left(1\right)\right)\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          11. metadata-evalN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - \color{blue}{-1}\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          12. lower--.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right)} \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          13. lower-/.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \color{blue}{\frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}}\right) \]
          14. lower--.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\color{blue}{\frac{Om}{Omc} - 1}}{\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)}}\right) \]
          15. lift-+.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)}}\right) \]
          16. +-commutativeN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)}}\right) \]
          17. distribute-neg-inN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\color{blue}{\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)}}}\right) \]
        3. Applied rewrites73.0%

          \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\left(\frac{Om}{Omc} - -1\right) \cdot \frac{\frac{Om}{Omc} - 1}{\mathsf{fma}\left(-2 \cdot t, \frac{t}{\ell \cdot \ell}, -1\right)}}}\right) \]
        4. Taylor expanded in t around inf

          \[\leadsto \sin^{-1} \color{blue}{\left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right)} \]
        5. Step-by-step derivation
          1. lower-/.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{\color{blue}{t}}\right) \]
          2. lower-sqrt.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          3. lower-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          4. lower-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          5. lower-pow.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          6. lower-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          7. lower-+.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          8. lower-/.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          9. lower--.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          10. lower-/.f6434.6

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{-0.5 \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
        6. Applied rewrites34.6%

          \[\leadsto \sin^{-1} \color{blue}{\left(\frac{\sqrt{-0.5 \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right)} \]
        7. Step-by-step derivation
          1. lift-sqrt.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          2. lift-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          3. lift-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          4. lift-pow.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left({\ell}^{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          5. pow2N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(\ell \cdot \ell\right) \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          6. lift-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(\ell \cdot \ell\right) \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right)}}{t}\right) \]
          7. *-commutativeN/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right) \cdot \left(\ell \cdot \ell\right)\right)}}{t}\right) \]
          8. associate-*r*N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\left(\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)\right) \cdot \left(\ell \cdot \ell\right)}}{t}\right) \]
          9. sqrt-prodN/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)} \cdot \sqrt{\ell \cdot \ell}}{t}\right) \]
          10. lower-unsound-sqrt.f32N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)} \cdot \sqrt{\ell \cdot \ell}}{t}\right) \]
          11. lower-sqrt.f32N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)} \cdot \sqrt{\ell \cdot \ell}}{t}\right) \]
          12. lift-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)} \cdot \sqrt{\ell \cdot \ell}}{t}\right) \]
          13. rem-sqrt-square-revN/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)} \cdot \left|\ell\right|}{t}\right) \]
          14. lower-unsound-*.f64N/A

            \[\leadsto \sin^{-1} \left(\frac{\sqrt{\frac{-1}{2} \cdot \left(\left(1 + \frac{Om}{Omc}\right) \cdot \left(\frac{Om}{Omc} - 1\right)\right)} \cdot \left|\ell\right|}{t}\right) \]
        8. Applied rewrites46.1%

          \[\leadsto \sin^{-1} \left(\frac{\sqrt{-0.5 \cdot \mathsf{fma}\left(\frac{Om}{Omc \cdot Omc}, Om, -1\right)} \cdot \left|\ell\right|}{t}\right) \]
      7. Recombined 2 regimes into one program.
      8. Add Preprocessing

      Alternative 5: 51.6% accurate, 2.6× speedup?

      \[\begin{array}{l} t_m = \left|t\right| \\ l_m = \left|\ell\right| \\ \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{-1}}\right) \end{array} \]
      t_m = (fabs.f64 t)
      l_m = (fabs.f64 l)
      (FPCore (t_m l_m Om Omc)
       :precision binary64
       (asin (sqrt (/ (fma (/ Om Omc) (/ Om Omc) -1.0) -1.0))))
      t_m = fabs(t);
      l_m = fabs(l);
      double code(double t_m, double l_m, double Om, double Omc) {
      	return asin(sqrt((fma((Om / Omc), (Om / Omc), -1.0) / -1.0)));
      }
      
      t_m = abs(t)
      l_m = abs(l)
      function code(t_m, l_m, Om, Omc)
      	return asin(sqrt(Float64(fma(Float64(Om / Omc), Float64(Om / Omc), -1.0) / -1.0)))
      end
      
      t_m = N[Abs[t], $MachinePrecision]
      l_m = N[Abs[l], $MachinePrecision]
      code[t$95$m_, l$95$m_, Om_, Omc_] := N[ArcSin[N[Sqrt[N[(N[(N[(Om / Omc), $MachinePrecision] * N[(Om / Omc), $MachinePrecision] + -1.0), $MachinePrecision] / -1.0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]
      
      \begin{array}{l}
      t_m = \left|t\right|
      \\
      l_m = \left|\ell\right|
      
      \\
      \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{-1}}\right)
      \end{array}
      
      Derivation
      1. Initial program 84.3%

        \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \]
      2. Step-by-step derivation
        1. remove-double-negN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right)}}}\right) \]
        2. lift-+.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)\right)\right)}}\right) \]
        3. +-commutativeN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)\right)\right)}}\right) \]
        4. distribute-neg-inN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)\right)}\right)}}\right) \]
        5. metadata-evalN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \color{blue}{-1}\right)\right)}}\right) \]
        6. distribute-neg-inN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right) + \left(\mathsf{neg}\left(-1\right)\right)}}}\right) \]
        7. remove-double-negN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        8. lift-*.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        9. lift-pow.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{{\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        10. unpow2N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        11. associate-*r*N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(2 \cdot \frac{t}{\ell}\right) \cdot \frac{t}{\ell}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        12. count-2-revN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right)} \cdot \frac{t}{\ell} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
        13. metadata-evalN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right) \cdot \frac{t}{\ell} + \color{blue}{1}}}\right) \]
        14. lower-fma.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t}{\ell} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
        15. lift-/.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell}} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
        16. lift-/.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{t}{\ell} + \color{blue}{\frac{t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
        17. div-add-revN/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
        18. lower-/.f64N/A

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
        19. lower-+.f6484.3

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{\color{blue}{t + t}}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
      3. Applied rewrites84.3%

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
      4. Applied rewrites73.1%

        \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{t}{\ell \cdot \ell} \cdot -2, t, -1\right)}}}\right) \]
      5. Taylor expanded in t around 0

        \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]
      6. Step-by-step derivation
        1. Applied rewrites51.6%

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]
        2. Add Preprocessing

        Alternative 6: 48.4% accurate, 2.6× speedup?

        \[\begin{array}{l} t_m = \left|t\right| \\ l_m = \left|\ell\right| \\ \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc \cdot Omc}, Om, -1\right)}{-1}}\right) \end{array} \]
        t_m = (fabs.f64 t)
        l_m = (fabs.f64 l)
        (FPCore (t_m l_m Om Omc)
         :precision binary64
         (asin (sqrt (/ (fma (/ Om (* Omc Omc)) Om -1.0) -1.0))))
        t_m = fabs(t);
        l_m = fabs(l);
        double code(double t_m, double l_m, double Om, double Omc) {
        	return asin(sqrt((fma((Om / (Omc * Omc)), Om, -1.0) / -1.0)));
        }
        
        t_m = abs(t)
        l_m = abs(l)
        function code(t_m, l_m, Om, Omc)
        	return asin(sqrt(Float64(fma(Float64(Om / Float64(Omc * Omc)), Om, -1.0) / -1.0)))
        end
        
        t_m = N[Abs[t], $MachinePrecision]
        l_m = N[Abs[l], $MachinePrecision]
        code[t$95$m_, l$95$m_, Om_, Omc_] := N[ArcSin[N[Sqrt[N[(N[(N[(Om / N[(Omc * Omc), $MachinePrecision]), $MachinePrecision] * Om + -1.0), $MachinePrecision] / -1.0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]
        
        \begin{array}{l}
        t_m = \left|t\right|
        \\
        l_m = \left|\ell\right|
        
        \\
        \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc \cdot Omc}, Om, -1\right)}{-1}}\right)
        \end{array}
        
        Derivation
        1. Initial program 84.3%

          \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right) \]
        2. Step-by-step derivation
          1. remove-double-negN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right)}}}\right) \]
          2. lift-+.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)}\right)\right)\right)}}\right) \]
          3. +-commutativeN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\color{blue}{\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2} + 1\right)}\right)\right)\right)}}\right) \]
          4. distribute-neg-inN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \left(\mathsf{neg}\left(1\right)\right)\right)}\right)}}\right) \]
          5. metadata-evalN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{neg}\left(\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right) + \color{blue}{-1}\right)\right)}}\right) \]
          6. distribute-neg-inN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right)\right)\right)\right) + \left(\mathsf{neg}\left(-1\right)\right)}}}\right) \]
          7. remove-double-negN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
          8. lift-*.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
          9. lift-pow.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{{\left(\frac{t}{\ell}\right)}^{2}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
          10. unpow2N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{2 \cdot \color{blue}{\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
          11. associate-*r*N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(2 \cdot \frac{t}{\ell}\right) \cdot \frac{t}{\ell}} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
          12. count-2-revN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right)} \cdot \frac{t}{\ell} + \left(\mathsf{neg}\left(-1\right)\right)}}\right) \]
          13. metadata-evalN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\left(\frac{t}{\ell} + \frac{t}{\ell}\right) \cdot \frac{t}{\ell} + \color{blue}{1}}}\right) \]
          14. lower-fma.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t}{\ell} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
          15. lift-/.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t}{\ell}} + \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
          16. lift-/.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{t}{\ell} + \color{blue}{\frac{t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
          17. div-add-revN/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
          18. lower-/.f64N/A

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\color{blue}{\frac{t + t}{\ell}}, \frac{t}{\ell}, 1\right)}}\right) \]
          19. lower-+.f6484.3

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(\frac{\color{blue}{t + t}}{\ell}, \frac{t}{\ell}, 1\right)}}\right) \]
        3. Applied rewrites84.3%

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\mathsf{fma}\left(\frac{t + t}{\ell}, \frac{t}{\ell}, 1\right)}}}\right) \]
        4. Applied rewrites73.1%

          \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\mathsf{fma}\left(\frac{t}{\ell \cdot \ell} \cdot -2, t, -1\right)}}}\right) \]
        5. Taylor expanded in t around 0

          \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]
        6. Step-by-step derivation
          1. Applied rewrites51.6%

            \[\leadsto \sin^{-1} \left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc}, \frac{Om}{Omc}, -1\right)}{\color{blue}{-1}}}\right) \]
          2. Step-by-step derivation
            1. lift-fma.f64N/A

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc} \cdot \frac{Om}{Omc} + -1}}{-1}}\right) \]
            2. lift-/.f64N/A

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc}} \cdot \frac{Om}{Omc} + -1}{-1}}\right) \]
            3. lift-/.f64N/A

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\frac{Om}{Omc} \cdot \color{blue}{\frac{Om}{Omc}} + -1}{-1}}\right) \]
            4. frac-timesN/A

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om \cdot Om}{Omc \cdot Omc}} + -1}{-1}}\right) \]
            5. lift-*.f64N/A

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\frac{Om \cdot Om}{\color{blue}{Omc \cdot Omc}} + -1}{-1}}\right) \]
            6. associate-*l/N/A

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc \cdot Omc} \cdot Om} + -1}{-1}}\right) \]
            7. lift-/.f64N/A

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{Om}{Omc \cdot Omc}} \cdot Om + -1}{-1}}\right) \]
            8. lift-fma.f6448.4

              \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\mathsf{fma}\left(\frac{Om}{Omc \cdot Omc}, Om, -1\right)}}{-1}}\right) \]
          3. Applied rewrites48.4%

            \[\leadsto \sin^{-1} \color{blue}{\left(\sqrt{\frac{\mathsf{fma}\left(\frac{Om}{Omc \cdot Omc}, Om, -1\right)}{-1}}\right)} \]
          4. Add Preprocessing

          Reproduce

          ?
          herbie shell --seed 2025155 
          (FPCore (t l Om Omc)
            :name "Toniolo and Linder, Equation (2)"
            :precision binary64
            (asin (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))