Average Error: 1.8 → 1.8
Time: 27.2s
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(\sqrt[3]{\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[3]{\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) \cdot \sqrt[3]{\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}}}\]
\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(\sqrt[3]{\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[3]{\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) \cdot \sqrt[3]{\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}}}
double f(double l, double Om, double kx, double ky) {
        double r42957 = 1.0;
        double r42958 = 2.0;
        double r42959 = r42957 / r42958;
        double r42960 = l;
        double r42961 = r42958 * r42960;
        double r42962 = Om;
        double r42963 = r42961 / r42962;
        double r42964 = pow(r42963, r42958);
        double r42965 = kx;
        double r42966 = sin(r42965);
        double r42967 = pow(r42966, r42958);
        double r42968 = ky;
        double r42969 = sin(r42968);
        double r42970 = pow(r42969, r42958);
        double r42971 = r42967 + r42970;
        double r42972 = r42964 * r42971;
        double r42973 = r42957 + r42972;
        double r42974 = sqrt(r42973);
        double r42975 = r42957 / r42974;
        double r42976 = r42957 + r42975;
        double r42977 = r42959 * r42976;
        double r42978 = sqrt(r42977);
        return r42978;
}

double f(double l, double Om, double kx, double ky) {
        double r42979 = 1.0;
        double r42980 = 2.0;
        double r42981 = l;
        double r42982 = r42980 * r42981;
        double r42983 = Om;
        double r42984 = r42982 / r42983;
        double r42985 = pow(r42984, r42980);
        double r42986 = kx;
        double r42987 = sin(r42986);
        double r42988 = pow(r42987, r42980);
        double r42989 = ky;
        double r42990 = sin(r42989);
        double r42991 = pow(r42990, r42980);
        double r42992 = r42988 + r42991;
        double r42993 = fma(r42985, r42992, r42979);
        double r42994 = sqrt(r42993);
        double r42995 = r42979 / r42994;
        double r42996 = cbrt(r42995);
        double r42997 = r42996 * r42996;
        double r42998 = r42997 * r42996;
        double r42999 = r42998 + r42979;
        double r43000 = r42980 / r42999;
        double r43001 = r42979 / r43000;
        double r43002 = sqrt(r43001);
        return r43002;
}

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-cube-cbrt1.8

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\color{blue}{\left(\sqrt[3]{\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[3]{\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) \cdot \sqrt[3]{\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}}}\]
  5. Final simplification1.8

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\left(\sqrt[3]{\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[3]{\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) \cdot \sqrt[3]{\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}}}\]

Reproduce

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