Average Error: 10.1 → 10.2
Time: 15.7s
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 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{\frac{-1}{\ell}}{-1} \cdot t\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(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{\frac{-1}{\ell}}{-1} \cdot t\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r66988 = 1.0;
        double r66989 = Om;
        double r66990 = Omc;
        double r66991 = r66989 / r66990;
        double r66992 = 2.0;
        double r66993 = pow(r66991, r66992);
        double r66994 = r66988 - r66993;
        double r66995 = t;
        double r66996 = l;
        double r66997 = r66995 / r66996;
        double r66998 = pow(r66997, r66992);
        double r66999 = r66992 * r66998;
        double r67000 = r66988 + r66999;
        double r67001 = r66994 / r67000;
        double r67002 = sqrt(r67001);
        double r67003 = asin(r67002);
        return r67003;
}

double f(double t, double l, double Om, double Omc) {
        double r67004 = 1.0;
        double r67005 = Om;
        double r67006 = Omc;
        double r67007 = r67005 / r67006;
        double r67008 = 2.0;
        double r67009 = pow(r67007, r67008);
        double r67010 = r67004 - r67009;
        double r67011 = -1.0;
        double r67012 = l;
        double r67013 = r67011 / r67012;
        double r67014 = r67013 / r67011;
        double r67015 = t;
        double r67016 = r67014 * r67015;
        double r67017 = pow(r67016, r67008);
        double r67018 = r67008 * r67017;
        double r67019 = r67004 + r67018;
        double r67020 = r67010 / r67019;
        double r67021 = sqrt(r67020);
        double r67022 = asin(r67021);
        return r67022;
}

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.1

    \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  2. Taylor expanded around -inf 51.1

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot \color{blue}{e^{2 \cdot \left(\log \left(\frac{-1}{\ell}\right) - \log \left(\frac{-1}{t}\right)\right)}}}}\right)\]
  3. Simplified10.2

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

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

Reproduce

herbie shell --seed 2019351 
(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)))))))