Average Error: 10.5 → 10.5
Time: 2.6m
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{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\sqrt{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}}{\sqrt{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}}\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{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\sqrt{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}}{\sqrt{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r8429013 = 1.0;
        double r8429014 = Om;
        double r8429015 = Omc;
        double r8429016 = r8429014 / r8429015;
        double r8429017 = 2.0;
        double r8429018 = pow(r8429016, r8429017);
        double r8429019 = r8429013 - r8429018;
        double r8429020 = t;
        double r8429021 = l;
        double r8429022 = r8429020 / r8429021;
        double r8429023 = pow(r8429022, r8429017);
        double r8429024 = r8429017 * r8429023;
        double r8429025 = r8429013 + r8429024;
        double r8429026 = r8429019 / r8429025;
        double r8429027 = sqrt(r8429026);
        double r8429028 = asin(r8429027);
        return r8429028;
}

double f(double t, double l, double Om, double Omc) {
        double r8429029 = 1.0;
        double r8429030 = Om;
        double r8429031 = Omc;
        double r8429032 = r8429030 / r8429031;
        double r8429033 = r8429032 * r8429032;
        double r8429034 = r8429029 - r8429033;
        double r8429035 = t;
        double r8429036 = l;
        double r8429037 = r8429035 / r8429036;
        double r8429038 = r8429037 * r8429037;
        double r8429039 = 2.0;
        double r8429040 = fma(r8429038, r8429039, r8429029);
        double r8429041 = sqrt(r8429040);
        double r8429042 = r8429034 / r8429041;
        double r8429043 = r8429042 / r8429041;
        double r8429044 = sqrt(r8429043);
        double r8429045 = asin(r8429044);
        return r8429045;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.5

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

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

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\color{blue}{\sqrt{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*} \cdot \sqrt{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}}}\right)\]
  5. Applied associate-/r*10.5

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

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

Reproduce

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