Average Error: 10.5 → 10.6
Time: 30.3s
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{\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}} \cdot \sqrt{\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 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(\sqrt{\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}} \cdot \sqrt{\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r1447734 = 1.0;
        double r1447735 = Om;
        double r1447736 = Omc;
        double r1447737 = r1447735 / r1447736;
        double r1447738 = 2.0;
        double r1447739 = pow(r1447737, r1447738);
        double r1447740 = r1447734 - r1447739;
        double r1447741 = t;
        double r1447742 = l;
        double r1447743 = r1447741 / r1447742;
        double r1447744 = pow(r1447743, r1447738);
        double r1447745 = r1447738 * r1447744;
        double r1447746 = r1447734 + r1447745;
        double r1447747 = r1447740 / r1447746;
        double r1447748 = sqrt(r1447747);
        double r1447749 = asin(r1447748);
        return r1447749;
}

double f(double t, double l, double Om, double Omc) {
        double r1447750 = 1.0;
        double r1447751 = Om;
        double r1447752 = Omc;
        double r1447753 = r1447751 / r1447752;
        double r1447754 = r1447753 * r1447753;
        double r1447755 = r1447750 - r1447754;
        double r1447756 = t;
        double r1447757 = l;
        double r1447758 = r1447756 / r1447757;
        double r1447759 = r1447758 * r1447758;
        double r1447760 = 2.0;
        double r1447761 = fma(r1447759, r1447760, r1447750);
        double r1447762 = r1447755 / r1447761;
        double r1447763 = sqrt(r1447762);
        double r1447764 = sqrt(r1447763);
        double r1447765 = r1447764 * r1447764;
        double r1447766 = asin(r1447765);
        return r1447766;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.5

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

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

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

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

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

Reproduce

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