\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(\sqrt[3]{{\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{Om}{Omc}\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\frac{Om}{Omc}\right)}^{2}}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r63454 = 1.0;
double r63455 = Om;
double r63456 = Omc;
double r63457 = r63455 / r63456;
double r63458 = 2.0;
double r63459 = pow(r63457, r63458);
double r63460 = r63454 - r63459;
double r63461 = t;
double r63462 = l;
double r63463 = r63461 / r63462;
double r63464 = pow(r63463, r63458);
double r63465 = r63458 * r63464;
double r63466 = r63454 + r63465;
double r63467 = r63460 / r63466;
double r63468 = sqrt(r63467);
double r63469 = asin(r63468);
return r63469;
}
double f(double t, double l, double Om, double Omc) {
double r63470 = 1.0;
double r63471 = Om;
double r63472 = Omc;
double r63473 = r63471 / r63472;
double r63474 = 2.0;
double r63475 = pow(r63473, r63474);
double r63476 = cbrt(r63475);
double r63477 = r63476 * r63476;
double r63478 = r63477 * r63476;
double r63479 = r63470 - r63478;
double r63480 = sqrt(r63479);
double r63481 = t;
double r63482 = l;
double r63483 = r63481 / r63482;
double r63484 = pow(r63483, r63474);
double r63485 = r63474 * r63484;
double r63486 = r63470 + r63485;
double r63487 = sqrt(r63486);
double r63488 = r63480 / r63487;
double r63489 = asin(r63488);
return r63489;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.7
rmApplied sqrt-div10.7
rmApplied add-cube-cbrt10.7
Final simplification10.7
herbie shell --seed 2020056 +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)))))))