\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\begin{array}{l}
\mathbf{if}\;\frac{t}{\ell} \le 1.3226963208817615 \cdot 10^{+73}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\frac{t}{\ell} \cdot \frac{t}{\ell} + \left(1 + \frac{t}{\ell} \cdot \frac{t}{\ell}\right)}}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\frac{t \cdot \sqrt{2}}{\ell}}\right)\\
\end{array}double f(double t, double l, double Om, double Omc) {
double r909106 = 1.0;
double r909107 = Om;
double r909108 = Omc;
double r909109 = r909107 / r909108;
double r909110 = 2.0;
double r909111 = pow(r909109, r909110);
double r909112 = r909106 - r909111;
double r909113 = t;
double r909114 = l;
double r909115 = r909113 / r909114;
double r909116 = pow(r909115, r909110);
double r909117 = r909110 * r909116;
double r909118 = r909106 + r909117;
double r909119 = r909112 / r909118;
double r909120 = sqrt(r909119);
double r909121 = asin(r909120);
return r909121;
}
double f(double t, double l, double Om, double Omc) {
double r909122 = t;
double r909123 = l;
double r909124 = r909122 / r909123;
double r909125 = 1.3226963208817615e+73;
bool r909126 = r909124 <= r909125;
double r909127 = 1.0;
double r909128 = Om;
double r909129 = Omc;
double r909130 = r909128 / r909129;
double r909131 = r909130 * r909130;
double r909132 = r909127 - r909131;
double r909133 = sqrt(r909132);
double r909134 = r909124 * r909124;
double r909135 = r909127 + r909134;
double r909136 = r909134 + r909135;
double r909137 = sqrt(r909136);
double r909138 = r909133 / r909137;
double r909139 = asin(r909138);
double r909140 = 2.0;
double r909141 = sqrt(r909140);
double r909142 = r909122 * r909141;
double r909143 = r909142 / r909123;
double r909144 = r909133 / r909143;
double r909145 = asin(r909144);
double r909146 = r909126 ? r909139 : r909145;
return r909146;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 1.3226963208817615e+73Initial program 6.9
Simplified6.9
rmApplied add-sqr-sqrt6.9
rmApplied sqrt-div6.9
Simplified6.9
if 1.3226963208817615e+73 < (/ t l) Initial program 25.3
Simplified25.3
rmApplied add-sqr-sqrt25.3
rmApplied sqrt-div25.3
Simplified25.3
Taylor expanded around inf 1.3
Final simplification5.9
herbie shell --seed 2019153
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))