Average Error: 10.4 → 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{\frac{Om}{Omc} + 1}{\sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)}} \cdot \frac{1 - \frac{Om}{Omc}}{\sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\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(\sqrt{\frac{\frac{Om}{Omc} + 1}{\sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)}} \cdot \frac{1 - \frac{Om}{Omc}}{\sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r2430417 = 1.0;
        double r2430418 = Om;
        double r2430419 = Omc;
        double r2430420 = r2430418 / r2430419;
        double r2430421 = 2.0;
        double r2430422 = pow(r2430420, r2430421);
        double r2430423 = r2430417 - r2430422;
        double r2430424 = t;
        double r2430425 = l;
        double r2430426 = r2430424 / r2430425;
        double r2430427 = pow(r2430426, r2430421);
        double r2430428 = r2430421 * r2430427;
        double r2430429 = r2430417 + r2430428;
        double r2430430 = r2430423 / r2430429;
        double r2430431 = sqrt(r2430430);
        double r2430432 = asin(r2430431);
        return r2430432;
}

double f(double t, double l, double Om, double Omc) {
        double r2430433 = Om;
        double r2430434 = Omc;
        double r2430435 = r2430433 / r2430434;
        double r2430436 = 1.0;
        double r2430437 = r2430435 + r2430436;
        double r2430438 = 2.0;
        double r2430439 = t;
        double r2430440 = l;
        double r2430441 = r2430439 / r2430440;
        double r2430442 = r2430441 * r2430441;
        double r2430443 = fma(r2430438, r2430442, r2430436);
        double r2430444 = sqrt(r2430443);
        double r2430445 = r2430437 / r2430444;
        double r2430446 = r2430436 - r2430435;
        double r2430447 = r2430446 / r2430444;
        double r2430448 = r2430445 * r2430447;
        double r2430449 = sqrt(r2430448);
        double r2430450 = asin(r2430449);
        return r2430450;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.4

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

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

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\color{blue}{\sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)} \cdot \sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)}}}}\right)\]
  5. Applied *-un-lft-identity10.4

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

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\left(1 + \frac{Om}{Omc}\right) \cdot \left(1 - \frac{Om}{Omc}\right)}}{\sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)} \cdot \sqrt{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)}}}\right)\]
  7. Applied times-frac10.5

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

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

Reproduce

herbie shell --seed 2019163 +o rules:numerics
(FPCore (t l Om Omc)
  :name "Toniolo and Linder, Equation (2)"
  (asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))