Average Error: 10.9 → 10.9
Time: 9.0s
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(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\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(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r70255 = 1.0;
        double r70256 = Om;
        double r70257 = Omc;
        double r70258 = r70256 / r70257;
        double r70259 = 2.0;
        double r70260 = pow(r70258, r70259);
        double r70261 = r70255 - r70260;
        double r70262 = t;
        double r70263 = l;
        double r70264 = r70262 / r70263;
        double r70265 = pow(r70264, r70259);
        double r70266 = r70259 * r70265;
        double r70267 = r70255 + r70266;
        double r70268 = r70261 / r70267;
        double r70269 = sqrt(r70268);
        double r70270 = asin(r70269);
        return r70270;
}

double f(double t, double l, double Om, double Omc) {
        double r70271 = 1.0;
        double r70272 = Om;
        double r70273 = Omc;
        double r70274 = r70272 / r70273;
        double r70275 = 2.0;
        double r70276 = pow(r70274, r70275);
        double r70277 = r70271 - r70276;
        double r70278 = sqrt(r70277);
        double r70279 = t;
        double r70280 = l;
        double r70281 = r70279 / r70280;
        double r70282 = pow(r70281, r70275);
        double r70283 = r70275 * r70282;
        double r70284 = r70271 + r70283;
        double r70285 = sqrt(r70284);
        double r70286 = r70278 / r70285;
        double r70287 = asin(r70286);
        return r70287;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 10.9

    \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  2. Using strategy rm
  3. Applied sqrt-div10.9

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

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

Reproduce

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