Average Error: 1.7 → 1.2
Time: 29.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{\frac{1}{2}}{\log \left(e^{\left(\left(\sqrt{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}\right)\right)}\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}}{\log \left(e^{\left(\left(\sqrt{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}\right)\right)}\right)} + \frac{1}{2}}
double f(double l, double Om, double kx, double ky) {
        double r739928 = 1.0;
        double r739929 = 2.0;
        double r739930 = r739928 / r739929;
        double r739931 = l;
        double r739932 = r739929 * r739931;
        double r739933 = Om;
        double r739934 = r739932 / r739933;
        double r739935 = pow(r739934, r739929);
        double r739936 = kx;
        double r739937 = sin(r739936);
        double r739938 = pow(r739937, r739929);
        double r739939 = ky;
        double r739940 = sin(r739939);
        double r739941 = pow(r739940, r739929);
        double r739942 = r739938 + r739941;
        double r739943 = r739935 * r739942;
        double r739944 = r739928 + r739943;
        double r739945 = sqrt(r739944);
        double r739946 = r739928 / r739945;
        double r739947 = r739928 + r739946;
        double r739948 = r739930 * r739947;
        double r739949 = sqrt(r739948);
        return r739949;
}

double f(double l, double Om, double kx, double ky) {
        double r739950 = 0.5;
        double r739951 = 2.0;
        double r739952 = l;
        double r739953 = r739951 * r739952;
        double r739954 = Om;
        double r739955 = r739953 / r739954;
        double r739956 = ky;
        double r739957 = sin(r739956);
        double r739958 = r739957 * r739957;
        double r739959 = kx;
        double r739960 = sin(r739959);
        double r739961 = r739960 * r739960;
        double r739962 = r739958 + r739961;
        double r739963 = r739955 * r739962;
        double r739964 = r739963 * r739955;
        double r739965 = 1.0;
        double r739966 = r739964 + r739965;
        double r739967 = sqrt(r739966);
        double r739968 = /* ERROR: no posit support in C */;
        double r739969 = /* ERROR: no posit support in C */;
        double r739970 = exp(r739969);
        double r739971 = log(r739970);
        double r739972 = r739950 / r739971;
        double r739973 = r739972 + r739950;
        double r739974 = sqrt(r739973);
        return r739974;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

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. Simplified1.7

    \[\leadsto \color{blue}{\sqrt{\frac{\frac{1}{2}}{\sqrt{\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \left(\frac{\ell \cdot 2}{Om} \cdot \frac{\ell \cdot 2}{Om}\right) + 1}} + \frac{1}{2}}}\]
  3. Using strategy rm
  4. Applied associate-*r*1.4

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

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\color{blue}{\log \left(e^{\sqrt{\left(\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \frac{\ell \cdot 2}{Om}\right) \cdot \frac{\ell \cdot 2}{Om} + 1}}\right)}} + \frac{1}{2}}\]
  7. Using strategy rm
  8. Applied insert-posit161.2

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\log \left(e^{\color{blue}{\left(\left(\sqrt{\left(\left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right) \cdot \frac{\ell \cdot 2}{Om}\right) \cdot \frac{\ell \cdot 2}{Om} + 1}\right)\right)}}\right)} + \frac{1}{2}}\]
  9. Final simplification1.2

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

Reproduce

herbie shell --seed 2019155 
(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))))))))))