Average Error: 10.7 → 10.7
Time: 7.9s
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 - {\left(\sqrt[3]{\frac{Om}{Omc}} \cdot \sqrt[3]{\frac{Om}{Omc}}\right)}^{2} \cdot {\left(\sqrt[3]{\frac{Om}{Omc}}\right)}^{2}}}{\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 - {\left(\sqrt[3]{\frac{Om}{Omc}} \cdot \sqrt[3]{\frac{Om}{Omc}}\right)}^{2} \cdot {\left(\sqrt[3]{\frac{Om}{Omc}}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r60009 = 1.0;
        double r60010 = Om;
        double r60011 = Omc;
        double r60012 = r60010 / r60011;
        double r60013 = 2.0;
        double r60014 = pow(r60012, r60013);
        double r60015 = r60009 - r60014;
        double r60016 = t;
        double r60017 = l;
        double r60018 = r60016 / r60017;
        double r60019 = pow(r60018, r60013);
        double r60020 = r60013 * r60019;
        double r60021 = r60009 + r60020;
        double r60022 = r60015 / r60021;
        double r60023 = sqrt(r60022);
        double r60024 = asin(r60023);
        return r60024;
}

double f(double t, double l, double Om, double Omc) {
        double r60025 = 1.0;
        double r60026 = Om;
        double r60027 = Omc;
        double r60028 = r60026 / r60027;
        double r60029 = cbrt(r60028);
        double r60030 = r60029 * r60029;
        double r60031 = 2.0;
        double r60032 = pow(r60030, r60031);
        double r60033 = pow(r60029, r60031);
        double r60034 = r60032 * r60033;
        double r60035 = r60025 - r60034;
        double r60036 = sqrt(r60035);
        double r60037 = t;
        double r60038 = l;
        double r60039 = r60037 / r60038;
        double r60040 = pow(r60039, r60031);
        double r60041 = r60031 * r60040;
        double r60042 = r60025 + r60041;
        double r60043 = sqrt(r60042);
        double r60044 = r60036 / r60043;
        double r60045 = asin(r60044);
        return r60045;
}

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-cube-cbrt10.7

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

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

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

Reproduce

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