Average Error: 10.0 → 10.1
Time: 23.2s
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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{{\left(\frac{t}{\ell}\right)}^{2} \cdot 2 + 1}}\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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{{\left(\frac{t}{\ell}\right)}^{2} \cdot 2 + 1}}\right|\right)
double f(double t, double l, double Om, double Omc) {
        double r38935 = 1.0;
        double r38936 = Om;
        double r38937 = Omc;
        double r38938 = r38936 / r38937;
        double r38939 = 2.0;
        double r38940 = pow(r38938, r38939);
        double r38941 = r38935 - r38940;
        double r38942 = t;
        double r38943 = l;
        double r38944 = r38942 / r38943;
        double r38945 = pow(r38944, r38939);
        double r38946 = r38939 * r38945;
        double r38947 = r38935 + r38946;
        double r38948 = r38941 / r38947;
        double r38949 = sqrt(r38948);
        double r38950 = asin(r38949);
        return r38950;
}

double f(double t, double l, double Om, double Omc) {
        double r38951 = 1.0;
        double r38952 = Om;
        double r38953 = Omc;
        double r38954 = r38952 / r38953;
        double r38955 = 2.0;
        double r38956 = pow(r38954, r38955);
        double r38957 = r38951 - r38956;
        double r38958 = sqrt(r38957);
        double r38959 = t;
        double r38960 = l;
        double r38961 = r38959 / r38960;
        double r38962 = pow(r38961, r38955);
        double r38963 = r38962 * r38955;
        double r38964 = r38963 + r38951;
        double r38965 = sqrt(r38964);
        double r38966 = r38958 / r38965;
        double r38967 = fabs(r38966);
        double r38968 = asin(r38967);
        return r38968;
}

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

    \[\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 add-sqr-sqrt10.1

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

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

    \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}} \cdot \frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}}}\right)\]
  6. Applied rem-sqrt-square10.1

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

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

Reproduce

herbie shell --seed 2019194 
(FPCore (t l Om Omc)
  :name "Toniolo and Linder, Equation (2)"
  (asin (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))