Average Error: 10.4 → 10.4
Time: 9.3s
Precision: 64
\[\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^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
\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^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r65357 = 1.0;
        double r65358 = Om;
        double r65359 = Omc;
        double r65360 = r65358 / r65359;
        double r65361 = 2.0;
        double r65362 = pow(r65360, r65361);
        double r65363 = r65357 - r65362;
        double r65364 = t;
        double r65365 = l;
        double r65366 = r65364 / r65365;
        double r65367 = pow(r65366, r65361);
        double r65368 = r65361 * r65367;
        double r65369 = r65357 + r65368;
        double r65370 = r65363 / r65369;
        double r65371 = sqrt(r65370);
        double r65372 = asin(r65371);
        return r65372;
}

double f(double t, double l, double Om, double Omc) {
        double r65373 = 1.0;
        double r65374 = Om;
        double r65375 = Omc;
        double r65376 = r65374 / r65375;
        double r65377 = 2.0;
        double r65378 = pow(r65376, r65377);
        double r65379 = exp(r65378);
        double r65380 = log(r65379);
        double r65381 = r65373 - r65380;
        double r65382 = t;
        double r65383 = l;
        double r65384 = r65382 / r65383;
        double r65385 = pow(r65384, r65377);
        double r65386 = r65377 * r65385;
        double r65387 = r65373 + r65386;
        double r65388 = r65381 / r65387;
        double r65389 = sqrt(r65388);
        double r65390 = asin(r65389);
        return r65390;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 10.4

    \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  2. Using strategy rm
  3. Applied add-log-exp10.4

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  4. Final simplification10.4

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]

Reproduce

herbie shell --seed 2020018 
(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)))))))