Average Error: 10.3 → 10.3
Time: 23.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 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\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 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}\right)
double f(double t, double l, double Om, double Omc) {
        double r59842 = 1.0;
        double r59843 = Om;
        double r59844 = Omc;
        double r59845 = r59843 / r59844;
        double r59846 = 2.0;
        double r59847 = pow(r59845, r59846);
        double r59848 = r59842 - r59847;
        double r59849 = t;
        double r59850 = l;
        double r59851 = r59849 / r59850;
        double r59852 = pow(r59851, r59846);
        double r59853 = r59846 * r59852;
        double r59854 = r59842 + r59853;
        double r59855 = r59848 / r59854;
        double r59856 = sqrt(r59855);
        double r59857 = asin(r59856);
        return r59857;
}

double f(double t, double l, double Om, double Omc) {
        double r59858 = 1.0;
        double r59859 = r59858 * r59858;
        double r59860 = Om;
        double r59861 = Omc;
        double r59862 = r59860 / r59861;
        double r59863 = 2.0;
        double r59864 = pow(r59862, r59863);
        double r59865 = r59864 * r59864;
        double r59866 = r59859 - r59865;
        double r59867 = t;
        double r59868 = l;
        double r59869 = r59867 / r59868;
        double r59870 = pow(r59869, r59863);
        double r59871 = r59863 * r59870;
        double r59872 = r59858 + r59871;
        double r59873 = r59858 + r59864;
        double r59874 = r59872 * r59873;
        double r59875 = r59866 / r59874;
        double r59876 = sqrt(r59875);
        double r59877 = asin(r59876);
        return r59877;
}

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

    \[\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 flip--10.3

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\frac{1 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{1 + {\left(\frac{Om}{Omc}\right)}^{2}}}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  4. Applied associate-/l/10.3

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

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

Reproduce

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