Average Error: 1.6 → 0.5
Time: 25.9s
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{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\sin kx}{\frac{Om}{\ell}}, \frac{\sin kx}{\frac{Om}{\ell}}, \left(\sin ky \cdot \frac{\ell}{Om}\right) \cdot \left(\sin ky \cdot \frac{\ell}{Om}\right)\right), 4, 1\right)}} + \frac{1}{2}}\]
\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{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\sin kx}{\frac{Om}{\ell}}, \frac{\sin kx}{\frac{Om}{\ell}}, \left(\sin ky \cdot \frac{\ell}{Om}\right) \cdot \left(\sin ky \cdot \frac{\ell}{Om}\right)\right), 4, 1\right)}} + \frac{1}{2}}
double f(double l, double Om, double kx, double ky) {
        double r1371856 = 1.0;
        double r1371857 = 2.0;
        double r1371858 = r1371856 / r1371857;
        double r1371859 = l;
        double r1371860 = r1371857 * r1371859;
        double r1371861 = Om;
        double r1371862 = r1371860 / r1371861;
        double r1371863 = pow(r1371862, r1371857);
        double r1371864 = kx;
        double r1371865 = sin(r1371864);
        double r1371866 = pow(r1371865, r1371857);
        double r1371867 = ky;
        double r1371868 = sin(r1371867);
        double r1371869 = pow(r1371868, r1371857);
        double r1371870 = r1371866 + r1371869;
        double r1371871 = r1371863 * r1371870;
        double r1371872 = r1371856 + r1371871;
        double r1371873 = sqrt(r1371872);
        double r1371874 = r1371856 / r1371873;
        double r1371875 = r1371856 + r1371874;
        double r1371876 = r1371858 * r1371875;
        double r1371877 = sqrt(r1371876);
        return r1371877;
}

double f(double l, double Om, double kx, double ky) {
        double r1371878 = 0.5;
        double r1371879 = kx;
        double r1371880 = sin(r1371879);
        double r1371881 = Om;
        double r1371882 = l;
        double r1371883 = r1371881 / r1371882;
        double r1371884 = r1371880 / r1371883;
        double r1371885 = ky;
        double r1371886 = sin(r1371885);
        double r1371887 = r1371882 / r1371881;
        double r1371888 = r1371886 * r1371887;
        double r1371889 = r1371888 * r1371888;
        double r1371890 = fma(r1371884, r1371884, r1371889);
        double r1371891 = 4.0;
        double r1371892 = 1.0;
        double r1371893 = fma(r1371890, r1371891, r1371892);
        double r1371894 = sqrt(r1371893);
        double r1371895 = r1371878 / r1371894;
        double r1371896 = r1371895 + r1371878;
        double r1371897 = sqrt(r1371896);
        return r1371897;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.6

    \[\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.6

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

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\left(\frac{2}{Om} \cdot \ell\right) \cdot \left(\frac{2}{Om} \cdot \ell\right), \mathsf{fma}\left(\sin kx, \sin kx, \color{blue}{\left(\left(\sin ky \cdot \sin ky\right)\right)}\right), 1\right)}} + \frac{1}{2}}\]
  5. Taylor expanded around inf 16.3

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\color{blue}{4 \cdot \frac{{\left(\sin kx\right)}^{2} \cdot {\ell}^{2}}{{Om}^{2}} + \left(4 \cdot \frac{{\ell}^{2} \cdot {\left(\sin ky\right)}^{2}}{{Om}^{2}} + 1\right)}}} + \frac{1}{2}}\]
  6. Simplified0.5

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\sin kx}{\frac{Om}{\ell}}, \frac{\sin kx}{\frac{Om}{\ell}}, \left(\frac{\ell}{Om} \cdot \sin ky\right) \cdot \left(\frac{\ell}{Om} \cdot \sin ky\right)\right), 4, 1\right)}}} + \frac{1}{2}}\]
  7. Final simplification0.5

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

Reproduce

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