Average Error: 10.3 → 10.3
Time: 30.3s
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{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 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{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}\right)
double f(double t, double l, double Om, double Omc) {
        double r2158427 = 1.0;
        double r2158428 = Om;
        double r2158429 = Omc;
        double r2158430 = r2158428 / r2158429;
        double r2158431 = 2.0;
        double r2158432 = pow(r2158430, r2158431);
        double r2158433 = r2158427 - r2158432;
        double r2158434 = t;
        double r2158435 = l;
        double r2158436 = r2158434 / r2158435;
        double r2158437 = pow(r2158436, r2158431);
        double r2158438 = r2158431 * r2158437;
        double r2158439 = r2158427 + r2158438;
        double r2158440 = r2158433 / r2158439;
        double r2158441 = sqrt(r2158440);
        double r2158442 = asin(r2158441);
        return r2158442;
}

double f(double t, double l, double Om, double Omc) {
        double r2158443 = 1.0;
        double r2158444 = Om;
        double r2158445 = Omc;
        double r2158446 = r2158444 / r2158445;
        double r2158447 = r2158446 * r2158446;
        double r2158448 = exp(r2158447);
        double r2158449 = log(r2158448);
        double r2158450 = r2158443 - r2158449;
        double r2158451 = t;
        double r2158452 = l;
        double r2158453 = r2158451 / r2158452;
        double r2158454 = r2158453 * r2158453;
        double r2158455 = 2.0;
        double r2158456 = fma(r2158454, r2158455, r2158443);
        double r2158457 = r2158450 / r2158456;
        double r2158458 = sqrt(r2158457);
        double r2158459 = asin(r2158458);
        return r2158459;
}

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 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}\right)}\]
  3. Using strategy rm
  4. Applied add-log-exp10.3

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

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

Reproduce

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