\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(\left|\frac{\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}}{\sqrt{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}\right|\right)double f(double t, double l, double Om, double Omc) {
double r75165 = 1.0;
double r75166 = Om;
double r75167 = Omc;
double r75168 = r75166 / r75167;
double r75169 = 2.0;
double r75170 = pow(r75168, r75169);
double r75171 = r75165 - r75170;
double r75172 = t;
double r75173 = l;
double r75174 = r75172 / r75173;
double r75175 = pow(r75174, r75169);
double r75176 = r75169 * r75175;
double r75177 = r75165 + r75176;
double r75178 = r75171 / r75177;
double r75179 = sqrt(r75178);
double r75180 = asin(r75179);
return r75180;
}
double f(double t, double l, double Om, double Omc) {
double r75181 = 1.0;
double r75182 = Om;
double r75183 = Omc;
double r75184 = r75182 / r75183;
double r75185 = 2.0;
double r75186 = pow(r75184, r75185);
double r75187 = r75181 - r75186;
double r75188 = t;
double r75189 = l;
double r75190 = r75188 / r75189;
double r75191 = pow(r75190, r75185);
double r75192 = r75185 * r75191;
double r75193 = r75181 + r75192;
double r75194 = sqrt(r75193);
double r75195 = r75187 / r75194;
double r75196 = sqrt(r75195);
double r75197 = sqrt(r75194);
double r75198 = r75196 / r75197;
double r75199 = fabs(r75198);
double r75200 = asin(r75199);
return r75200;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.6
rmApplied add-sqr-sqrt10.7
Applied associate-/r*10.7
rmApplied add-sqr-sqrt10.7
Applied sqrt-prod10.7
Applied add-sqr-sqrt10.7
Applied times-frac10.7
Applied rem-sqrt-square10.7
Final simplification10.7
herbie shell --seed 2020060
(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)))))))