\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(2, \left(\sqrt[3]{\frac{t}{\ell}} \cdot \sqrt[3]{\frac{t}{\ell}}\right) \cdot \left(\frac{t}{\ell} \cdot \sqrt[3]{\frac{t}{\ell}}\right), 1\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r2544687 = 1.0;
double r2544688 = Om;
double r2544689 = Omc;
double r2544690 = r2544688 / r2544689;
double r2544691 = 2.0;
double r2544692 = pow(r2544690, r2544691);
double r2544693 = r2544687 - r2544692;
double r2544694 = t;
double r2544695 = l;
double r2544696 = r2544694 / r2544695;
double r2544697 = pow(r2544696, r2544691);
double r2544698 = r2544691 * r2544697;
double r2544699 = r2544687 + r2544698;
double r2544700 = r2544693 / r2544699;
double r2544701 = sqrt(r2544700);
double r2544702 = asin(r2544701);
return r2544702;
}
double f(double t, double l, double Om, double Omc) {
double r2544703 = 1.0;
double r2544704 = Om;
double r2544705 = Omc;
double r2544706 = r2544704 / r2544705;
double r2544707 = r2544706 * r2544706;
double r2544708 = r2544703 - r2544707;
double r2544709 = 2.0;
double r2544710 = t;
double r2544711 = l;
double r2544712 = r2544710 / r2544711;
double r2544713 = cbrt(r2544712);
double r2544714 = r2544713 * r2544713;
double r2544715 = r2544712 * r2544713;
double r2544716 = r2544714 * r2544715;
double r2544717 = fma(r2544709, r2544716, r2544703);
double r2544718 = r2544708 / r2544717;
double r2544719 = sqrt(r2544718);
double r2544720 = asin(r2544719);
return r2544720;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.1
Simplified10.1
rmApplied add-cube-cbrt10.2
Applied associate-*l*10.2
Final simplification10.2
herbie shell --seed 2019164 +o rules:numerics
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))