Average Error: 10.1 → 10.2
Time: 21.2s
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 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(2, \left(\sqrt[3]{\frac{t}{\ell}} \cdot \sqrt[3]{\frac{t}{\ell}}\right) \cdot \left(\frac{t}{\ell} \cdot \sqrt[3]{\frac{t}{\ell}}\right), 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(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(2, \left(\sqrt[3]{\frac{t}{\ell}} \cdot \sqrt[3]{\frac{t}{\ell}}\right) \cdot \left(\frac{t}{\ell} \cdot \sqrt[3]{\frac{t}{\ell}}\right), 1\right)}}\right)
double f(double t, double l, double Om, double Omc) {
        double r2544687 = 1.0;
        double r2544688 = Om;
        double r2544689 = Omc;
        double r2544690 = r2544688 / r2544689;
        double r2544691 = 2.0;
        double r2544692 = pow(r2544690, r2544691);
        double r2544693 = r2544687 - r2544692;
        double r2544694 = t;
        double r2544695 = l;
        double r2544696 = r2544694 / r2544695;
        double r2544697 = pow(r2544696, r2544691);
        double r2544698 = r2544691 * r2544697;
        double r2544699 = r2544687 + r2544698;
        double r2544700 = r2544693 / r2544699;
        double r2544701 = sqrt(r2544700);
        double r2544702 = asin(r2544701);
        return r2544702;
}

double f(double t, double l, double Om, double Omc) {
        double r2544703 = 1.0;
        double r2544704 = Om;
        double r2544705 = Omc;
        double r2544706 = r2544704 / r2544705;
        double r2544707 = r2544706 * r2544706;
        double r2544708 = r2544703 - r2544707;
        double r2544709 = 2.0;
        double r2544710 = t;
        double r2544711 = l;
        double r2544712 = r2544710 / r2544711;
        double r2544713 = cbrt(r2544712);
        double r2544714 = r2544713 * r2544713;
        double r2544715 = r2544712 * r2544713;
        double r2544716 = r2544714 * r2544715;
        double r2544717 = fma(r2544709, r2544716, r2544703);
        double r2544718 = r2544708 / r2544717;
        double r2544719 = sqrt(r2544718);
        double r2544720 = asin(r2544719);
        return r2544720;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

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. Simplified10.1

    \[\leadsto \color{blue}{\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(2, \frac{t}{\ell} \cdot \frac{t}{\ell}, 1\right)}}\right)}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt10.2

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(2, \color{blue}{\left(\left(\sqrt[3]{\frac{t}{\ell}} \cdot \sqrt[3]{\frac{t}{\ell}}\right) \cdot \sqrt[3]{\frac{t}{\ell}}\right)} \cdot \frac{t}{\ell}, 1\right)}}\right)\]
  5. Applied associate-*l*10.2

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

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

Reproduce

herbie shell --seed 2019164 +o rules:numerics
(FPCore (t l Om Omc)
  :name "Toniolo and Linder, Equation (2)"
  (asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))