Average Error: 1.6 → 0.5
Time: 25.6s
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}{\frac{Om}{\ell}}, \frac{\sin kx}{\frac{Om}{\ell}}, \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}{\frac{Om}{\ell}}, \frac{\sin kx}{\frac{Om}{\ell}}, \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 r1360365 = 1.0;
        double r1360366 = 2.0;
        double r1360367 = r1360365 / r1360366;
        double r1360368 = l;
        double r1360369 = r1360366 * r1360368;
        double r1360370 = Om;
        double r1360371 = r1360369 / r1360370;
        double r1360372 = pow(r1360371, r1360366);
        double r1360373 = kx;
        double r1360374 = sin(r1360373);
        double r1360375 = pow(r1360374, r1360366);
        double r1360376 = ky;
        double r1360377 = sin(r1360376);
        double r1360378 = pow(r1360377, r1360366);
        double r1360379 = r1360375 + r1360378;
        double r1360380 = r1360372 * r1360379;
        double r1360381 = r1360365 + r1360380;
        double r1360382 = sqrt(r1360381);
        double r1360383 = r1360365 / r1360382;
        double r1360384 = r1360365 + r1360383;
        double r1360385 = r1360367 * r1360384;
        double r1360386 = sqrt(r1360385);
        return r1360386;
}

double f(double l, double Om, double kx, double ky) {
        double r1360387 = 0.5;
        double r1360388 = kx;
        double r1360389 = sin(r1360388);
        double r1360390 = Om;
        double r1360391 = l;
        double r1360392 = r1360390 / r1360391;
        double r1360393 = r1360389 / r1360392;
        double r1360394 = ky;
        double r1360395 = sin(r1360394);
        double r1360396 = r1360391 / r1360390;
        double r1360397 = r1360395 * r1360396;
        double r1360398 = r1360397 * r1360397;
        double r1360399 = fma(r1360393, r1360393, r1360398);
        double r1360400 = 4.0;
        double r1360401 = 1.0;
        double r1360402 = fma(r1360399, r1360400, r1360401);
        double r1360403 = sqrt(r1360402);
        double r1360404 = r1360387 / r1360403;
        double r1360405 = r1360404 + r1360387;
        double r1360406 = sqrt(r1360405);
        return r1360406;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.6

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

    \[\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-posit162.3

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

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\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)}}} + \frac{1}{2}}\]
  6. Simplified0.5

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

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