Average Error: 1.8 → 0.6
Time: 39.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}{2} + \frac{\frac{1}{2}}{\sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\ell}{\frac{Om}{\sin ky}} \cdot \frac{\ell}{\frac{Om}{\sin ky}}, 1\right)}} \cdot \left(\sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\ell}{\frac{Om}{\sin ky}} \cdot \frac{\ell}{\frac{Om}{\sin ky}}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\ell}{\frac{Om}{\sin ky}} \cdot \frac{\ell}{\frac{Om}{\sin ky}}, 1\right)}}\right)}}\]
\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}{2} + \frac{\frac{1}{2}}{\sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\ell}{\frac{Om}{\sin ky}} \cdot \frac{\ell}{\frac{Om}{\sin ky}}, 1\right)}} \cdot \left(\sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\ell}{\frac{Om}{\sin ky}} \cdot \frac{\ell}{\frac{Om}{\sin ky}}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\ell}{\frac{Om}{\sin ky}} \cdot \frac{\ell}{\frac{Om}{\sin ky}}, 1\right)}}\right)}}
double f(double l, double Om, double kx, double ky) {
        double r974969 = 1.0;
        double r974970 = 2.0;
        double r974971 = r974969 / r974970;
        double r974972 = l;
        double r974973 = r974970 * r974972;
        double r974974 = Om;
        double r974975 = r974973 / r974974;
        double r974976 = pow(r974975, r974970);
        double r974977 = kx;
        double r974978 = sin(r974977);
        double r974979 = pow(r974978, r974970);
        double r974980 = ky;
        double r974981 = sin(r974980);
        double r974982 = pow(r974981, r974970);
        double r974983 = r974979 + r974982;
        double r974984 = r974976 * r974983;
        double r974985 = r974969 + r974984;
        double r974986 = sqrt(r974985);
        double r974987 = r974969 / r974986;
        double r974988 = r974969 + r974987;
        double r974989 = r974971 * r974988;
        double r974990 = sqrt(r974989);
        return r974990;
}

double f(double l, double Om, double kx, double ky) {
        double r974991 = 0.5;
        double r974992 = 4.0;
        double r974993 = kx;
        double r974994 = sin(r974993);
        double r974995 = Om;
        double r974996 = l;
        double r974997 = r974995 / r974996;
        double r974998 = r974994 / r974997;
        double r974999 = r974998 * r974998;
        double r975000 = ky;
        double r975001 = sin(r975000);
        double r975002 = r974995 / r975001;
        double r975003 = r974996 / r975002;
        double r975004 = r975003 * r975003;
        double r975005 = r974999 + r975004;
        double r975006 = 1.0;
        double r975007 = fma(r974992, r975005, r975006);
        double r975008 = sqrt(r975007);
        double r975009 = cbrt(r975008);
        double r975010 = r975009 * r975009;
        double r975011 = r975009 * r975010;
        double r975012 = r974991 / r975011;
        double r975013 = r974991 + r975012;
        double r975014 = sqrt(r975013);
        return r975014;
}

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}{2} + \frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\frac{\ell}{\frac{Om}{2}} \cdot \frac{\ell}{\frac{Om}{2}}, \mathsf{fma}\left(\sin ky, \sin ky, \sin kx \cdot \sin kx\right), 1\right)}}}}\]
  3. Taylor expanded around -inf 16.8

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

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

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

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

Reproduce

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