Average Error: 10.1 → 10.1
Time: 9.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(\sqrt{\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{1}} \cdot \sqrt{\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{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(\sqrt{\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{1}} \cdot \sqrt{\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r72129 = 1.0;
        double r72130 = Om;
        double r72131 = Omc;
        double r72132 = r72130 / r72131;
        double r72133 = 2.0;
        double r72134 = pow(r72132, r72133);
        double r72135 = r72129 - r72134;
        double r72136 = t;
        double r72137 = l;
        double r72138 = r72136 / r72137;
        double r72139 = pow(r72138, r72133);
        double r72140 = r72133 * r72139;
        double r72141 = r72129 + r72140;
        double r72142 = r72135 / r72141;
        double r72143 = sqrt(r72142);
        double r72144 = asin(r72143);
        return r72144;
}

double f(double t, double l, double Om, double Omc) {
        double r72145 = 1.0;
        double r72146 = Om;
        double r72147 = Omc;
        double r72148 = r72146 / r72147;
        double r72149 = 2.0;
        double r72150 = pow(r72148, r72149);
        double r72151 = r72145 - r72150;
        double r72152 = sqrt(r72151);
        double r72153 = 1.0;
        double r72154 = r72152 / r72153;
        double r72155 = sqrt(r72154);
        double r72156 = t;
        double r72157 = l;
        double r72158 = r72156 / r72157;
        double r72159 = pow(r72158, r72149);
        double r72160 = r72149 * r72159;
        double r72161 = r72145 + r72160;
        double r72162 = r72152 / r72161;
        double r72163 = sqrt(r72162);
        double r72164 = r72155 * r72163;
        double r72165 = asin(r72164);
        return r72165;
}

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

    \[\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 *-un-lft-identity10.1

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

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

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

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

Reproduce

herbie shell --seed 2019362 +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)))))))