Average Error: 10.2 → 10.2
Time: 8.9s
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 r67871 = 1.0;
        double r67872 = Om;
        double r67873 = Omc;
        double r67874 = r67872 / r67873;
        double r67875 = 2.0;
        double r67876 = pow(r67874, r67875);
        double r67877 = r67871 - r67876;
        double r67878 = t;
        double r67879 = l;
        double r67880 = r67878 / r67879;
        double r67881 = pow(r67880, r67875);
        double r67882 = r67875 * r67881;
        double r67883 = r67871 + r67882;
        double r67884 = r67877 / r67883;
        double r67885 = sqrt(r67884);
        double r67886 = asin(r67885);
        return r67886;
}

double f(double t, double l, double Om, double Omc) {
        double r67887 = 1.0;
        double r67888 = Om;
        double r67889 = Omc;
        double r67890 = r67888 / r67889;
        double r67891 = 2.0;
        double r67892 = pow(r67890, r67891);
        double r67893 = r67887 - r67892;
        double r67894 = sqrt(r67893);
        double r67895 = t;
        double r67896 = l;
        double r67897 = r67895 / r67896;
        double r67898 = pow(r67897, r67891);
        double r67899 = r67891 * r67898;
        double r67900 = r67887 + r67899;
        double r67901 = sqrt(r67900);
        double r67902 = r67894 / r67901;
        double r67903 = asin(r67902);
        return r67903;
}

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

    \[\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.2

    \[\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.2

    \[\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 2020064 +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)))))))