Average Error: 10.2 → 10.3
Time: 13.8s
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 r73586 = 1.0;
        double r73587 = Om;
        double r73588 = Omc;
        double r73589 = r73587 / r73588;
        double r73590 = 2.0;
        double r73591 = pow(r73589, r73590);
        double r73592 = r73586 - r73591;
        double r73593 = t;
        double r73594 = l;
        double r73595 = r73593 / r73594;
        double r73596 = pow(r73595, r73590);
        double r73597 = r73590 * r73596;
        double r73598 = r73586 + r73597;
        double r73599 = r73592 / r73598;
        double r73600 = sqrt(r73599);
        double r73601 = asin(r73600);
        return r73601;
}

double f(double t, double l, double Om, double Omc) {
        double r73602 = 1.0;
        double r73603 = Om;
        double r73604 = Omc;
        double r73605 = r73603 / r73604;
        double r73606 = 2.0;
        double r73607 = pow(r73605, r73606);
        double r73608 = r73602 - r73607;
        double r73609 = sqrt(r73608);
        double r73610 = t;
        double r73611 = l;
        double r73612 = r73610 / r73611;
        double r73613 = pow(r73612, r73606);
        double r73614 = r73606 * r73613;
        double r73615 = r73602 + r73614;
        double r73616 = sqrt(r73615);
        double r73617 = r73609 / r73616;
        double r73618 = fabs(r73617);
        double r73619 = asin(r73618);
        return r73619;
}

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

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

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

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

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

    \[\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 2020047 
(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)))))))