double f(double t, double l, double Om, double Omc) {
double r4522674 = 1.0;
double r4522675 = Om;
double r4522676 = Omc;
double r4522677 = r4522675 / r4522676;
double r4522678 = 2.0;
double r4522679 = pow(r4522677, r4522678);
double r4522680 = r4522674 - r4522679;
double r4522681 = t;
double r4522682 = l;
double r4522683 = r4522681 / r4522682;
double r4522684 = pow(r4522683, r4522678);
double r4522685 = r4522678 * r4522684;
double r4522686 = r4522674 + r4522685;
double r4522687 = r4522680 / r4522686;
double r4522688 = sqrt(r4522687);
double r4522689 = asin(r4522688);
return r4522689;
}
double f(double t, double l, double Om, double Omc) {
double r4522690 = 1.0;
double r4522691 = Om;
double r4522692 = Omc;
double r4522693 = r4522691 / r4522692;
double r4522694 = r4522693 * r4522693;
double r4522695 = exp(r4522694);
double r4522696 = log(r4522695);
double r4522697 = r4522690 - r4522696;
double r4522698 = t;
double r4522699 = l;
double r4522700 = r4522698 / r4522699;
double r4522701 = r4522700 * r4522700;
double r4522702 = 2.0;
double r4522703 = fma(r4522701, r4522702, r4522690);
double r4522704 = r4522697 / r4522703;
double r4522705 = sqrt(r4522704);
double r4522706 = asin(r4522705);
return r4522706;
}
\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 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}\right)


Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.1
Simplified10.1
rmApplied add-log-exp10.1
Final simplification10.1
herbie shell --seed 2019101 +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)))))))