Average Error: 9.9 → 9.9
Time: 8.0s
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{1 - e^{\log \left({\left(\frac{Om}{Omc}\right)}^{2}\right)}}{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{1 - e^{\log \left({\left(\frac{Om}{Omc}\right)}^{2}\right)}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r65642 = 1.0;
        double r65643 = Om;
        double r65644 = Omc;
        double r65645 = r65643 / r65644;
        double r65646 = 2.0;
        double r65647 = pow(r65645, r65646);
        double r65648 = r65642 - r65647;
        double r65649 = t;
        double r65650 = l;
        double r65651 = r65649 / r65650;
        double r65652 = pow(r65651, r65646);
        double r65653 = r65646 * r65652;
        double r65654 = r65642 + r65653;
        double r65655 = r65648 / r65654;
        double r65656 = sqrt(r65655);
        double r65657 = asin(r65656);
        return r65657;
}

double f(double t, double l, double Om, double Omc) {
        double r65658 = 1.0;
        double r65659 = Om;
        double r65660 = Omc;
        double r65661 = r65659 / r65660;
        double r65662 = 2.0;
        double r65663 = pow(r65661, r65662);
        double r65664 = log(r65663);
        double r65665 = exp(r65664);
        double r65666 = r65658 - r65665;
        double r65667 = t;
        double r65668 = l;
        double r65669 = r65667 / r65668;
        double r65670 = pow(r65669, r65662);
        double r65671 = r65662 * r65670;
        double r65672 = r65658 + r65671;
        double r65673 = r65666 / r65672;
        double r65674 = sqrt(r65673);
        double r65675 = asin(r65674);
        return r65675;
}

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

    \[\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-exp-log37.5

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

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

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

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

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

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

Reproduce

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