\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 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r53453 = 1.0;
double r53454 = Om;
double r53455 = Omc;
double r53456 = r53454 / r53455;
double r53457 = 2.0;
double r53458 = pow(r53456, r53457);
double r53459 = r53453 - r53458;
double r53460 = t;
double r53461 = l;
double r53462 = r53460 / r53461;
double r53463 = pow(r53462, r53457);
double r53464 = r53457 * r53463;
double r53465 = r53453 + r53464;
double r53466 = r53459 / r53465;
double r53467 = sqrt(r53466);
double r53468 = asin(r53467);
return r53468;
}
double f(double t, double l, double Om, double Omc) {
double r53469 = 1.0;
double r53470 = r53469 * r53469;
double r53471 = Om;
double r53472 = Omc;
double r53473 = r53471 / r53472;
double r53474 = 2.0;
double r53475 = pow(r53473, r53474);
double r53476 = r53475 * r53475;
double r53477 = r53470 - r53476;
double r53478 = t;
double r53479 = l;
double r53480 = r53478 / r53479;
double r53481 = pow(r53480, r53474);
double r53482 = fma(r53474, r53481, r53469);
double r53483 = r53469 + r53475;
double r53484 = r53482 * r53483;
double r53485 = r53477 / r53484;
double r53486 = sqrt(r53485);
double r53487 = asin(r53486);
return r53487;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.3
Simplified10.3
rmApplied flip--10.3
Applied associate-/l/10.3
Final simplification10.3
herbie shell --seed 2019347 +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)))))))