\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(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{{\left(\frac{t}{\ell}\right)}^{2} \cdot 2 + 1}}\right)double f(double t, double l, double Om, double Omc) {
double r59559 = 1.0;
double r59560 = Om;
double r59561 = Omc;
double r59562 = r59560 / r59561;
double r59563 = 2.0;
double r59564 = pow(r59562, r59563);
double r59565 = r59559 - r59564;
double r59566 = t;
double r59567 = l;
double r59568 = r59566 / r59567;
double r59569 = pow(r59568, r59563);
double r59570 = r59563 * r59569;
double r59571 = r59559 + r59570;
double r59572 = r59565 / r59571;
double r59573 = sqrt(r59572);
double r59574 = asin(r59573);
return r59574;
}
double f(double t, double l, double Om, double Omc) {
double r59575 = 1.0;
double r59576 = Om;
double r59577 = Omc;
double r59578 = r59576 / r59577;
double r59579 = 2.0;
double r59580 = pow(r59578, r59579);
double r59581 = r59575 - r59580;
double r59582 = sqrt(r59581);
double r59583 = t;
double r59584 = l;
double r59585 = r59583 / r59584;
double r59586 = pow(r59585, r59579);
double r59587 = r59586 * r59579;
double r59588 = r59587 + r59575;
double r59589 = sqrt(r59588);
double r59590 = r59582 / r59589;
double r59591 = asin(r59590);
return r59591;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.5
Simplified10.5
rmApplied sqrt-div10.6
Simplified10.6
Final simplification10.6
herbie shell --seed 2019179
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))