Average Error: 10.2 → 10.2
Time: 9.3s
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{1 + 2 \cdot {\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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)
double f(double t, double l, double Om, double Omc) {
        double r68253 = 1.0;
        double r68254 = Om;
        double r68255 = Omc;
        double r68256 = r68254 / r68255;
        double r68257 = 2.0;
        double r68258 = pow(r68256, r68257);
        double r68259 = r68253 - r68258;
        double r68260 = t;
        double r68261 = l;
        double r68262 = r68260 / r68261;
        double r68263 = pow(r68262, r68257);
        double r68264 = r68257 * r68263;
        double r68265 = r68253 + r68264;
        double r68266 = r68259 / r68265;
        double r68267 = sqrt(r68266);
        double r68268 = asin(r68267);
        return r68268;
}

double f(double t, double l, double Om, double Omc) {
        double r68269 = 1.0;
        double r68270 = Om;
        double r68271 = Omc;
        double r68272 = r68270 / r68271;
        double r68273 = 2.0;
        double r68274 = pow(r68272, r68273);
        double r68275 = r68269 - r68274;
        double r68276 = sqrt(r68275);
        double r68277 = t;
        double r68278 = l;
        double r68279 = r68277 / r68278;
        double r68280 = pow(r68279, r68273);
        double r68281 = r68273 * r68280;
        double r68282 = r68269 + r68281;
        double r68283 = sqrt(r68282);
        double r68284 = r68276 / r68283;
        double r68285 = fabs(r68284);
        double r68286 = asin(r68285);
        return r68286;
}

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 add-sqr-sqrt10.2

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

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

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

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

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

Reproduce

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