Average Error: 10.2 → 10.3
Time: 15.6s
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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)
double f(double t, double l, double Om, double Omc) {
        double r72518 = 1.0;
        double r72519 = Om;
        double r72520 = Omc;
        double r72521 = r72519 / r72520;
        double r72522 = 2.0;
        double r72523 = pow(r72521, r72522);
        double r72524 = r72518 - r72523;
        double r72525 = t;
        double r72526 = l;
        double r72527 = r72525 / r72526;
        double r72528 = pow(r72527, r72522);
        double r72529 = r72522 * r72528;
        double r72530 = r72518 + r72529;
        double r72531 = r72524 / r72530;
        double r72532 = sqrt(r72531);
        double r72533 = asin(r72532);
        return r72533;
}

double f(double t, double l, double Om, double Omc) {
        double r72534 = 1.0;
        double r72535 = Om;
        double r72536 = Omc;
        double r72537 = r72535 / r72536;
        double r72538 = 2.0;
        double r72539 = pow(r72537, r72538);
        double r72540 = r72534 - r72539;
        double r72541 = sqrt(r72540);
        double r72542 = t;
        double r72543 = l;
        double r72544 = r72542 / r72543;
        double r72545 = pow(r72544, r72538);
        double r72546 = r72538 * r72545;
        double r72547 = r72534 + r72546;
        double r72548 = sqrt(r72547);
        double r72549 = r72541 / r72548;
        double r72550 = fabs(r72549);
        double r72551 = asin(r72550);
        return r72551;
}

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

    \[\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-sqr-sqrt10.3

    \[\leadsto \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)\]
  4. Applied add-sqr-sqrt10.3

    \[\leadsto \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)\]
  5. Applied times-frac10.3

    \[\leadsto \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)\]
  6. Applied rem-sqrt-square10.3

    \[\leadsto \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)}\]
  7. Final simplification10.3

    \[\leadsto \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)\]

Reproduce

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