Average Error: 10.0 → 10.1
Time: 23.6s
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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{{\left(\frac{t}{\ell}\right)}^{2} \cdot 2 + 1}}\right|\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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{{\left(\frac{t}{\ell}\right)}^{2} \cdot 2 + 1}}\right|\right)
double f(double t, double l, double Om, double Omc) {
        double r39051 = 1.0;
        double r39052 = Om;
        double r39053 = Omc;
        double r39054 = r39052 / r39053;
        double r39055 = 2.0;
        double r39056 = pow(r39054, r39055);
        double r39057 = r39051 - r39056;
        double r39058 = t;
        double r39059 = l;
        double r39060 = r39058 / r39059;
        double r39061 = pow(r39060, r39055);
        double r39062 = r39055 * r39061;
        double r39063 = r39051 + r39062;
        double r39064 = r39057 / r39063;
        double r39065 = sqrt(r39064);
        double r39066 = asin(r39065);
        return r39066;
}

double f(double t, double l, double Om, double Omc) {
        double r39067 = 1.0;
        double r39068 = Om;
        double r39069 = Omc;
        double r39070 = r39068 / r39069;
        double r39071 = 2.0;
        double r39072 = pow(r39070, r39071);
        double r39073 = r39067 - r39072;
        double r39074 = sqrt(r39073);
        double r39075 = t;
        double r39076 = l;
        double r39077 = r39075 / r39076;
        double r39078 = pow(r39077, r39071);
        double r39079 = r39078 * r39071;
        double r39080 = r39079 + r39067;
        double r39081 = sqrt(r39080);
        double r39082 = r39074 / r39081;
        double r39083 = fabs(r39082);
        double r39084 = asin(r39083);
        return r39084;
}

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

    \[\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-sqr-sqrt10.1

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

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

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

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

Reproduce

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