Average Error: 10.5 → 10.5
Time: 22.9s
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 r52384 = 1.0;
        double r52385 = Om;
        double r52386 = Omc;
        double r52387 = r52385 / r52386;
        double r52388 = 2.0;
        double r52389 = pow(r52387, r52388);
        double r52390 = r52384 - r52389;
        double r52391 = t;
        double r52392 = l;
        double r52393 = r52391 / r52392;
        double r52394 = pow(r52393, r52388);
        double r52395 = r52388 * r52394;
        double r52396 = r52384 + r52395;
        double r52397 = r52390 / r52396;
        double r52398 = sqrt(r52397);
        double r52399 = asin(r52398);
        return r52399;
}

double f(double t, double l, double Om, double Omc) {
        double r52400 = 1.0;
        double r52401 = Om;
        double r52402 = Omc;
        double r52403 = r52401 / r52402;
        double r52404 = 2.0;
        double r52405 = pow(r52403, r52404);
        double r52406 = exp(r52405);
        double r52407 = log(r52406);
        double r52408 = r52400 - r52407;
        double r52409 = t;
        double r52410 = l;
        double r52411 = r52409 / r52410;
        double r52412 = pow(r52411, r52404);
        double r52413 = r52404 * r52412;
        double r52414 = r52400 + r52413;
        double r52415 = r52408 / r52414;
        double r52416 = sqrt(r52415);
        double r52417 = asin(r52416);
        return r52417;
}

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.5

    \[\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.5

    \[\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.5

    \[\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 2019306 
(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)))))))