Average Error: 10.3 → 10.3
Time: 36.2s
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{\sqrt{1} + \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}}{\frac{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}{\sqrt{1} - \sqrt{{\left(\frac{Om}{Omc}\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{\sqrt{1} + \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}}{\frac{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}{\sqrt{1} - \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r73481 = 1.0;
        double r73482 = Om;
        double r73483 = Omc;
        double r73484 = r73482 / r73483;
        double r73485 = 2.0;
        double r73486 = pow(r73484, r73485);
        double r73487 = r73481 - r73486;
        double r73488 = t;
        double r73489 = l;
        double r73490 = r73488 / r73489;
        double r73491 = pow(r73490, r73485);
        double r73492 = r73485 * r73491;
        double r73493 = r73481 + r73492;
        double r73494 = r73487 / r73493;
        double r73495 = sqrt(r73494);
        double r73496 = asin(r73495);
        return r73496;
}

double f(double t, double l, double Om, double Omc) {
        double r73497 = 1.0;
        double r73498 = sqrt(r73497);
        double r73499 = Om;
        double r73500 = Omc;
        double r73501 = r73499 / r73500;
        double r73502 = 2.0;
        double r73503 = pow(r73501, r73502);
        double r73504 = sqrt(r73503);
        double r73505 = r73498 + r73504;
        double r73506 = t;
        double r73507 = l;
        double r73508 = r73506 / r73507;
        double r73509 = pow(r73508, r73502);
        double r73510 = fma(r73502, r73509, r73497);
        double r73511 = r73498 - r73504;
        double r73512 = r73510 / r73511;
        double r73513 = r73505 / r73512;
        double r73514 = sqrt(r73513);
        double r73515 = asin(r73514);
        return r73515;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.3

    \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  2. Simplified10.3

    \[\leadsto \color{blue}{\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt10.3

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\sqrt{{\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)\]
  5. Applied add-sqr-sqrt10.3

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}} - \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)\]
  6. Applied difference-of-squares10.3

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\left(\sqrt{1} + \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}\right) \cdot \left(\sqrt{1} - \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)\]
  7. Applied associate-/l*10.3

    \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\sqrt{1} + \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}}{\frac{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}{\sqrt{1} - \sqrt{{\left(\frac{Om}{Omc}\right)}^{2}}}}}}\right)\]
  8. Final simplification10.3

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

Reproduce

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