\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{\left(\sqrt[3]{1 - {\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt[3]{1 - {\left(\frac{Om}{Omc}\right)}^{2}}\right) \cdot \frac{\sqrt[3]{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{1 + 2 \cdot \left({\left(\sqrt{\frac{t}{\ell}}\right)}^{2} \cdot {\left(\sqrt{\frac{t}{\ell}}\right)}^{2}\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r72629 = 1.0;
double r72630 = Om;
double r72631 = Omc;
double r72632 = r72630 / r72631;
double r72633 = 2.0;
double r72634 = pow(r72632, r72633);
double r72635 = r72629 - r72634;
double r72636 = t;
double r72637 = l;
double r72638 = r72636 / r72637;
double r72639 = pow(r72638, r72633);
double r72640 = r72633 * r72639;
double r72641 = r72629 + r72640;
double r72642 = r72635 / r72641;
double r72643 = sqrt(r72642);
double r72644 = asin(r72643);
return r72644;
}
double f(double t, double l, double Om, double Omc) {
double r72645 = 1.0;
double r72646 = Om;
double r72647 = Omc;
double r72648 = r72646 / r72647;
double r72649 = 2.0;
double r72650 = pow(r72648, r72649);
double r72651 = r72645 - r72650;
double r72652 = cbrt(r72651);
double r72653 = r72652 * r72652;
double r72654 = t;
double r72655 = l;
double r72656 = r72654 / r72655;
double r72657 = sqrt(r72656);
double r72658 = pow(r72657, r72649);
double r72659 = r72658 * r72658;
double r72660 = r72649 * r72659;
double r72661 = r72645 + r72660;
double r72662 = r72652 / r72661;
double r72663 = r72653 * r72662;
double r72664 = sqrt(r72663);
double r72665 = asin(r72664);
return r72665;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 9.9
rmApplied *-un-lft-identity9.9
Applied add-cube-cbrt10.0
Applied times-frac10.0
Simplified10.0
rmApplied add-sqr-sqrt10.1
Applied unpow-prod-down10.1
Final simplification10.1
herbie shell --seed 2020046 +o rules:numerics
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
:precision binary64
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))