Average Error: 1.8 → 1.8
Time: 35.4s
Precision: 64
\[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\]
\[\sqrt{\frac{1}{\frac{2}{\left(\log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right) + \log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right)\right) + 1}}}\]
\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}
\sqrt{\frac{1}{\frac{2}{\left(\log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right) + \log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right)\right) + 1}}}
double f(double l, double Om, double kx, double ky) {
        double r57821 = 1.0;
        double r57822 = 2.0;
        double r57823 = r57821 / r57822;
        double r57824 = l;
        double r57825 = r57822 * r57824;
        double r57826 = Om;
        double r57827 = r57825 / r57826;
        double r57828 = pow(r57827, r57822);
        double r57829 = kx;
        double r57830 = sin(r57829);
        double r57831 = pow(r57830, r57822);
        double r57832 = ky;
        double r57833 = sin(r57832);
        double r57834 = pow(r57833, r57822);
        double r57835 = r57831 + r57834;
        double r57836 = r57828 * r57835;
        double r57837 = r57821 + r57836;
        double r57838 = sqrt(r57837);
        double r57839 = r57821 / r57838;
        double r57840 = r57821 + r57839;
        double r57841 = r57823 * r57840;
        double r57842 = sqrt(r57841);
        return r57842;
}

double f(double l, double Om, double kx, double ky) {
        double r57843 = 1.0;
        double r57844 = 2.0;
        double r57845 = l;
        double r57846 = r57844 * r57845;
        double r57847 = Om;
        double r57848 = r57846 / r57847;
        double r57849 = pow(r57848, r57844);
        double r57850 = kx;
        double r57851 = sin(r57850);
        double r57852 = pow(r57851, r57844);
        double r57853 = ky;
        double r57854 = sin(r57853);
        double r57855 = pow(r57854, r57844);
        double r57856 = r57852 + r57855;
        double r57857 = fma(r57849, r57856, r57843);
        double r57858 = sqrt(r57857);
        double r57859 = r57843 / r57858;
        double r57860 = exp(r57859);
        double r57861 = sqrt(r57860);
        double r57862 = log(r57861);
        double r57863 = r57862 + r57862;
        double r57864 = r57863 + r57843;
        double r57865 = r57844 / r57864;
        double r57866 = r57843 / r57865;
        double r57867 = sqrt(r57866);
        return r57867;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.8

    \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\]
  2. Simplified1.8

    \[\leadsto \color{blue}{\sqrt{\frac{1}{\frac{2}{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} + 1}}}}\]
  3. Using strategy rm
  4. Applied add-log-exp1.8

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\color{blue}{\log \left(e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}\right)} + 1}}}\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt1.8

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\log \color{blue}{\left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}} \cdot \sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right)} + 1}}}\]
  7. Applied log-prod1.8

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\color{blue}{\left(\log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right) + \log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right)\right)} + 1}}}\]
  8. Final simplification1.8

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\left(\log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right) + \log \left(\sqrt{e^{\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}}\right)\right) + 1}}}\]

Reproduce

herbie shell --seed 2019199 +o rules:numerics
(FPCore (l Om kx ky)
  :name "Toniolo and Linder, Equation (3a)"
  (sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))