Average Error: 10.3 → 10.3
Time: 7.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(\sqrt{{\left(\frac{t}{\ell}\right)}^{2}} \cdot \sqrt{{\left(\frac{t}{\ell}\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(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot \left(\sqrt{{\left(\frac{t}{\ell}\right)}^{2}} \cdot \sqrt{{\left(\frac{t}{\ell}\right)}^{2}}\right)}}\right)
double f(double t, double l, double Om, double Omc) {
        double r60235 = 1.0;
        double r60236 = Om;
        double r60237 = Omc;
        double r60238 = r60236 / r60237;
        double r60239 = 2.0;
        double r60240 = pow(r60238, r60239);
        double r60241 = r60235 - r60240;
        double r60242 = t;
        double r60243 = l;
        double r60244 = r60242 / r60243;
        double r60245 = pow(r60244, r60239);
        double r60246 = r60239 * r60245;
        double r60247 = r60235 + r60246;
        double r60248 = r60241 / r60247;
        double r60249 = sqrt(r60248);
        double r60250 = asin(r60249);
        return r60250;
}

double f(double t, double l, double Om, double Omc) {
        double r60251 = 1.0;
        double r60252 = Om;
        double r60253 = Omc;
        double r60254 = r60252 / r60253;
        double r60255 = 2.0;
        double r60256 = pow(r60254, r60255);
        double r60257 = r60251 - r60256;
        double r60258 = sqrt(r60257);
        double r60259 = t;
        double r60260 = l;
        double r60261 = r60259 / r60260;
        double r60262 = pow(r60261, r60255);
        double r60263 = sqrt(r60262);
        double r60264 = r60263 * r60263;
        double r60265 = r60255 * r60264;
        double r60266 = r60251 + r60265;
        double r60267 = sqrt(r60266);
        double r60268 = r60258 / r60267;
        double r60269 = asin(r60268);
        return r60269;
}

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

    \[\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. Using strategy rm
  5. Applied add-sqr-sqrt10.3

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

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

Reproduce

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