Average Error: 10.6 → 10.7
Time: 13.4s
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{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\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)
\sin^{-1} \left(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right|\right)
double f(double t, double l, double Om, double Omc) {
        double r53382 = 1.0;
        double r53383 = Om;
        double r53384 = Omc;
        double r53385 = r53383 / r53384;
        double r53386 = 2.0;
        double r53387 = pow(r53385, r53386);
        double r53388 = r53382 - r53387;
        double r53389 = t;
        double r53390 = l;
        double r53391 = r53389 / r53390;
        double r53392 = pow(r53391, r53386);
        double r53393 = r53386 * r53392;
        double r53394 = r53382 + r53393;
        double r53395 = r53388 / r53394;
        double r53396 = sqrt(r53395);
        double r53397 = asin(r53396);
        return r53397;
}

double f(double t, double l, double Om, double Omc) {
        double r53398 = 1.0;
        double r53399 = Om;
        double r53400 = Omc;
        double r53401 = r53399 / r53400;
        double r53402 = 2.0;
        double r53403 = pow(r53401, r53402);
        double r53404 = r53398 - r53403;
        double r53405 = sqrt(r53404);
        double r53406 = t;
        double r53407 = l;
        double r53408 = r53406 / r53407;
        double r53409 = pow(r53408, r53402);
        double r53410 = fma(r53402, r53409, r53398);
        double r53411 = sqrt(r53410);
        double r53412 = r53405 / r53411;
        double r53413 = fabs(r53412);
        double r53414 = asin(r53413);
        return r53414;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.6

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

    \[\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.7

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

    \[\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{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)} \cdot \sqrt{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}}\right)\]
  6. Applied times-frac10.7

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

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

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

Reproduce

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