Average Error: 9.9 → 9.9
Time: 11.1s
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 - \mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{Om}{Omc}\right)}^{2}\right)\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 - \mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{Om}{Omc}\right)}^{2}\right)\right)}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r75373 = 1.0;
        double r75374 = Om;
        double r75375 = Omc;
        double r75376 = r75374 / r75375;
        double r75377 = 2.0;
        double r75378 = pow(r75376, r75377);
        double r75379 = r75373 - r75378;
        double r75380 = t;
        double r75381 = l;
        double r75382 = r75380 / r75381;
        double r75383 = pow(r75382, r75377);
        double r75384 = r75377 * r75383;
        double r75385 = r75373 + r75384;
        double r75386 = r75379 / r75385;
        double r75387 = sqrt(r75386);
        double r75388 = asin(r75387);
        return r75388;
}

double f(double t, double l, double Om, double Omc) {
        double r75389 = 1.0;
        double r75390 = Om;
        double r75391 = Omc;
        double r75392 = r75390 / r75391;
        double r75393 = 2.0;
        double r75394 = pow(r75392, r75393);
        double r75395 = expm1(r75394);
        double r75396 = log1p(r75395);
        double r75397 = r75389 - r75396;
        double r75398 = t;
        double r75399 = l;
        double r75400 = r75398 / r75399;
        double r75401 = pow(r75400, r75393);
        double r75402 = r75393 * r75401;
        double r75403 = r75389 + r75402;
        double r75404 = r75397 / r75403;
        double r75405 = sqrt(r75404);
        double r75406 = asin(r75405);
        return r75406;
}

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 9.9

    \[\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 log1p-expm1-u9.9

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{Om}{Omc}\right)}^{2}\right)\right)}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  4. Final simplification9.9

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

Reproduce

herbie shell --seed 2019354 +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)))))))