Average Error: 9.8 → 9.8
Time: 11.0s
Precision: 64
\[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
\[\mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)\right)\right)\]
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)\right)\right)
double f(double t, double l, double Om, double Omc) {
        double r70567 = 1.0;
        double r70568 = Om;
        double r70569 = Omc;
        double r70570 = r70568 / r70569;
        double r70571 = 2.0;
        double r70572 = pow(r70570, r70571);
        double r70573 = r70567 - r70572;
        double r70574 = t;
        double r70575 = l;
        double r70576 = r70574 / r70575;
        double r70577 = pow(r70576, r70571);
        double r70578 = r70571 * r70577;
        double r70579 = r70567 + r70578;
        double r70580 = r70573 / r70579;
        double r70581 = sqrt(r70580);
        double r70582 = asin(r70581);
        return r70582;
}

double f(double t, double l, double Om, double Omc) {
        double r70583 = 1.0;
        double r70584 = Om;
        double r70585 = Omc;
        double r70586 = r70584 / r70585;
        double r70587 = 2.0;
        double r70588 = pow(r70586, r70587);
        double r70589 = r70583 - r70588;
        double r70590 = sqrt(r70589);
        double r70591 = t;
        double r70592 = l;
        double r70593 = r70591 / r70592;
        double r70594 = pow(r70593, r70587);
        double r70595 = r70587 * r70594;
        double r70596 = r70583 + r70595;
        double r70597 = sqrt(r70596);
        double r70598 = r70590 / r70597;
        double r70599 = fabs(r70598);
        double r70600 = asin(r70599);
        double r70601 = log1p(r70600);
        double r70602 = expm1(r70601);
        return r70602;
}

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

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

    \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\right)\right)}\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt9.8

    \[\leadsto \mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\color{blue}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} \cdot \sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}}\right)\right)\right)\]
  6. Applied add-sqr-sqrt9.8

    \[\leadsto \mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\sqrt{\frac{\color{blue}{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} \cdot \sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}\right)\right)\right)\]
  7. Applied times-frac9.8

    \[\leadsto \mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\sqrt{\color{blue}{\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}} \cdot \frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}}\right)\right)\right)\]
  8. Applied rem-sqrt-square9.8

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

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

Reproduce

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