Average Error: 9.7 → 9.7
Time: 9.5s
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{1 - {\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt{\frac{1}{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{1 - {\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt{\frac{1}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r72445 = 1.0;
        double r72446 = Om;
        double r72447 = Omc;
        double r72448 = r72446 / r72447;
        double r72449 = 2.0;
        double r72450 = pow(r72448, r72449);
        double r72451 = r72445 - r72450;
        double r72452 = t;
        double r72453 = l;
        double r72454 = r72452 / r72453;
        double r72455 = pow(r72454, r72449);
        double r72456 = r72449 * r72455;
        double r72457 = r72445 + r72456;
        double r72458 = r72451 / r72457;
        double r72459 = sqrt(r72458);
        double r72460 = asin(r72459);
        return r72460;
}

double f(double t, double l, double Om, double Omc) {
        double r72461 = 1.0;
        double r72462 = Om;
        double r72463 = Omc;
        double r72464 = r72462 / r72463;
        double r72465 = 2.0;
        double r72466 = pow(r72464, r72465);
        double r72467 = r72461 - r72466;
        double r72468 = sqrt(r72467);
        double r72469 = 1.0;
        double r72470 = t;
        double r72471 = l;
        double r72472 = r72470 / r72471;
        double r72473 = pow(r72472, r72465);
        double r72474 = r72465 * r72473;
        double r72475 = r72461 + r72474;
        double r72476 = r72469 / r72475;
        double r72477 = sqrt(r72476);
        double r72478 = r72468 * r72477;
        double r72479 = asin(r72478);
        return r72479;
}

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 9.7

    \[\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 div-inv9.7

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

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

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

Reproduce

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