Average Error: 1.7 → 1.0
Time: 28.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{\frac{1}{2}}{\left(\left(\sqrt{\sqrt{\mathsf{fma}\left(\frac{\ell \cdot 2}{Om} \cdot \frac{\ell \cdot 2}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}\right)\right)}}{\left(\left(\sqrt{\sqrt{\mathsf{fma}\left(\frac{\ell \cdot 2}{Om} \cdot \frac{\ell \cdot 2}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 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{\frac{1}{2}}{\left(\left(\sqrt{\sqrt{\mathsf{fma}\left(\frac{\ell \cdot 2}{Om} \cdot \frac{\ell \cdot 2}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}\right)\right)}}{\left(\left(\sqrt{\sqrt{\mathsf{fma}\left(\frac{\ell \cdot 2}{Om} \cdot \frac{\ell \cdot 2}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}\right)\right)} + \frac{1}{2}}
double f(double l, double Om, double kx, double ky) {
        double r647427 = 1.0;
        double r647428 = 2.0;
        double r647429 = r647427 / r647428;
        double r647430 = l;
        double r647431 = r647428 * r647430;
        double r647432 = Om;
        double r647433 = r647431 / r647432;
        double r647434 = pow(r647433, r647428);
        double r647435 = kx;
        double r647436 = sin(r647435);
        double r647437 = pow(r647436, r647428);
        double r647438 = ky;
        double r647439 = sin(r647438);
        double r647440 = pow(r647439, r647428);
        double r647441 = r647437 + r647440;
        double r647442 = r647434 * r647441;
        double r647443 = r647427 + r647442;
        double r647444 = sqrt(r647443);
        double r647445 = r647427 / r647444;
        double r647446 = r647427 + r647445;
        double r647447 = r647429 * r647446;
        double r647448 = sqrt(r647447);
        return r647448;
}

double f(double l, double Om, double kx, double ky) {
        double r647449 = 0.5;
        double r647450 = l;
        double r647451 = 2.0;
        double r647452 = r647450 * r647451;
        double r647453 = Om;
        double r647454 = r647452 / r647453;
        double r647455 = r647454 * r647454;
        double r647456 = kx;
        double r647457 = sin(r647456);
        double r647458 = ky;
        double r647459 = sin(r647458);
        double r647460 = r647459 * r647459;
        double r647461 = fma(r647457, r647457, r647460);
        double r647462 = 1.0;
        double r647463 = fma(r647455, r647461, r647462);
        double r647464 = sqrt(r647463);
        double r647465 = sqrt(r647464);
        double r647466 = /* ERROR: no posit support in C */;
        double r647467 = /* ERROR: no posit support in C */;
        double r647468 = r647449 / r647467;
        double r647469 = r647468 / r647467;
        double r647470 = r647469 + r647449;
        double r647471 = sqrt(r647470);
        return r647471;
}

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{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}} + \frac{1}{2}}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt1.7

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

    \[\leadsto \sqrt{\frac{\frac{1}{2}}{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}}} + \frac{1}{2}}\]
  6. Applied associate-/r*1.7

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

    \[\leadsto \sqrt{\frac{\frac{\frac{1}{2}}{\color{blue}{\left(\left(\sqrt{\sqrt{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}\right)\right)}}}{\sqrt{\sqrt{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}} + \frac{1}{2}}\]
  9. Using strategy rm
  10. Applied insert-posit161.0

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

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

Reproduce

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