Average Error: 10.1 → 10.1
Time: 30.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{1 - \log \left(e^{{\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 - \log \left(e^{{\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 r54803 = 1.0;
        double r54804 = Om;
        double r54805 = Omc;
        double r54806 = r54804 / r54805;
        double r54807 = 2.0;
        double r54808 = pow(r54806, r54807);
        double r54809 = r54803 - r54808;
        double r54810 = t;
        double r54811 = l;
        double r54812 = r54810 / r54811;
        double r54813 = pow(r54812, r54807);
        double r54814 = r54807 * r54813;
        double r54815 = r54803 + r54814;
        double r54816 = r54809 / r54815;
        double r54817 = sqrt(r54816);
        double r54818 = asin(r54817);
        return r54818;
}

double f(double t, double l, double Om, double Omc) {
        double r54819 = 1.0;
        double r54820 = Om;
        double r54821 = Omc;
        double r54822 = r54820 / r54821;
        double r54823 = 2.0;
        double r54824 = pow(r54822, r54823);
        double r54825 = exp(r54824);
        double r54826 = log(r54825);
        double r54827 = r54819 - r54826;
        double r54828 = t;
        double r54829 = l;
        double r54830 = r54828 / r54829;
        double r54831 = pow(r54830, r54823);
        double r54832 = r54823 * r54831;
        double r54833 = r54819 + r54832;
        double r54834 = r54827 / r54833;
        double r54835 = sqrt(r54834);
        double r54836 = asin(r54835);
        return r54836;
}

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 add-log-exp10.1

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

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

Reproduce

herbie shell --seed 2019199 
(FPCore (t l Om Omc)
  :name "Toniolo and Linder, Equation (2)"
  (asin (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))