Average Error: 10.7 → 10.7
Time: 8.4s
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(\frac{\sqrt{1 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}}{\sqrt{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(\frac{\sqrt{1 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r64063 = 1.0;
        double r64064 = Om;
        double r64065 = Omc;
        double r64066 = r64064 / r64065;
        double r64067 = 2.0;
        double r64068 = pow(r64066, r64067);
        double r64069 = r64063 - r64068;
        double r64070 = t;
        double r64071 = l;
        double r64072 = r64070 / r64071;
        double r64073 = pow(r64072, r64067);
        double r64074 = r64067 * r64073;
        double r64075 = r64063 + r64074;
        double r64076 = r64069 / r64075;
        double r64077 = sqrt(r64076);
        double r64078 = asin(r64077);
        return r64078;
}

double f(double t, double l, double Om, double Omc) {
        double r64079 = 1.0;
        double r64080 = Om;
        double r64081 = Omc;
        double r64082 = r64080 / r64081;
        double r64083 = 2.0;
        double r64084 = pow(r64082, r64083);
        double r64085 = exp(r64084);
        double r64086 = log(r64085);
        double r64087 = r64079 - r64086;
        double r64088 = sqrt(r64087);
        double r64089 = t;
        double r64090 = l;
        double r64091 = r64089 / r64090;
        double r64092 = pow(r64091, r64083);
        double r64093 = r64083 * r64092;
        double r64094 = r64079 + r64093;
        double r64095 = sqrt(r64094);
        double r64096 = r64088 / r64095;
        double r64097 = asin(r64096);
        return r64097;
}

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.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 sqrt-div10.7

    \[\leadsto \sin^{-1} \color{blue}{\left(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)}\]
  4. Using strategy rm
  5. Applied add-log-exp10.7

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

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

Reproduce

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