Average Error: 1.7 → 1.6
Time: 9.5s
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} \cdot \left(1 + \frac{1}{\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)\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} \cdot \left(1 + \frac{1}{\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)\right)}}\right)}
double f(double l, double Om, double kx, double ky) {
        double r57913 = 1.0;
        double r57914 = 2.0;
        double r57915 = r57913 / r57914;
        double r57916 = l;
        double r57917 = r57914 * r57916;
        double r57918 = Om;
        double r57919 = r57917 / r57918;
        double r57920 = pow(r57919, r57914);
        double r57921 = kx;
        double r57922 = sin(r57921);
        double r57923 = pow(r57922, r57914);
        double r57924 = ky;
        double r57925 = sin(r57924);
        double r57926 = pow(r57925, r57914);
        double r57927 = r57923 + r57926;
        double r57928 = r57920 * r57927;
        double r57929 = r57913 + r57928;
        double r57930 = sqrt(r57929);
        double r57931 = r57913 / r57930;
        double r57932 = r57913 + r57931;
        double r57933 = r57915 * r57932;
        double r57934 = sqrt(r57933);
        return r57934;
}

double f(double l, double Om, double kx, double ky) {
        double r57935 = 1.0;
        double r57936 = 2.0;
        double r57937 = r57935 / r57936;
        double r57938 = l;
        double r57939 = r57936 * r57938;
        double r57940 = Om;
        double r57941 = r57939 / r57940;
        double r57942 = 2.0;
        double r57943 = r57936 / r57942;
        double r57944 = pow(r57941, r57943);
        double r57945 = kx;
        double r57946 = sin(r57945);
        double r57947 = pow(r57946, r57936);
        double r57948 = ky;
        double r57949 = sin(r57948);
        double r57950 = pow(r57949, r57936);
        double r57951 = r57947 + r57950;
        double r57952 = sqrt(r57951);
        double r57953 = r57944 * r57952;
        double r57954 = expm1(r57953);
        double r57955 = log1p(r57954);
        double r57956 = r57953 * r57955;
        double r57957 = r57935 + r57956;
        double r57958 = sqrt(r57957);
        double r57959 = r57935 / r57958;
        double r57960 = r57935 + r57959;
        double r57961 = r57937 * r57960;
        double r57962 = sqrt(r57961);
        return r57962;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.7

    \[\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. Using strategy rm
  3. Applied add-sqr-sqrt1.7

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \color{blue}{\left(\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}}\right)}\]
  4. Applied sqr-pow1.7

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \color{blue}{\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \left(\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}\right)}\]
  5. Applied unswap-sqr1.5

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \color{blue}{\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}}\right)}\]
  6. Using strategy rm
  7. Applied log1p-expm1-u1.6

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

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)\right)}}\right)}\]

Reproduce

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