Average Error: 1.5 → 0.6
Time: 23.3s
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 \cdot \ell}{Om}, \frac{\sin kx \cdot \ell}{Om}, \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 \cdot \ell}{Om}, \frac{\sin kx \cdot \ell}{Om}, \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 r1415965 = 1.0;
        double r1415966 = 2.0;
        double r1415967 = r1415965 / r1415966;
        double r1415968 = l;
        double r1415969 = r1415966 * r1415968;
        double r1415970 = Om;
        double r1415971 = r1415969 / r1415970;
        double r1415972 = pow(r1415971, r1415966);
        double r1415973 = kx;
        double r1415974 = sin(r1415973);
        double r1415975 = pow(r1415974, r1415966);
        double r1415976 = ky;
        double r1415977 = sin(r1415976);
        double r1415978 = pow(r1415977, r1415966);
        double r1415979 = r1415975 + r1415978;
        double r1415980 = r1415972 * r1415979;
        double r1415981 = r1415965 + r1415980;
        double r1415982 = sqrt(r1415981);
        double r1415983 = r1415965 / r1415982;
        double r1415984 = r1415965 + r1415983;
        double r1415985 = r1415967 * r1415984;
        double r1415986 = sqrt(r1415985);
        return r1415986;
}

double f(double l, double Om, double kx, double ky) {
        double r1415987 = 0.5;
        double r1415988 = kx;
        double r1415989 = sin(r1415988);
        double r1415990 = l;
        double r1415991 = r1415989 * r1415990;
        double r1415992 = Om;
        double r1415993 = r1415991 / r1415992;
        double r1415994 = ky;
        double r1415995 = sin(r1415994);
        double r1415996 = r1415990 / r1415992;
        double r1415997 = r1415995 * r1415996;
        double r1415998 = r1415997 * r1415997;
        double r1415999 = fma(r1415993, r1415993, r1415998);
        double r1416000 = 4.0;
        double r1416001 = 1.0;
        double r1416002 = fma(r1415999, r1416000, r1416001);
        double r1416003 = sqrt(r1416002);
        double r1416004 = r1415987 / r1416003;
        double r1416005 = r1416004 + r1415987;
        double r1416006 = sqrt(r1416005);
        return r1416006;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.5

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

    \[\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-posit165.1

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\color{blue}{\left(\left(\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)}\right)\right)}} + \frac{1}{2}}\]
  5. Taylor expanded around inf 6.7

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\left(\left(\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)}}\right)\right)} + \frac{1}{2}}\]
  6. Simplified5.4

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

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

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\sin kx \cdot \ell}{Om}, \frac{\sin kx \cdot \ell}{Om}, \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 2019164 +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))))))))))