\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}}{\sqrt[3]{\sqrt{1 + \left(\frac{\ell \cdot 2}{Om} \cdot \left(\left(\left(\sin ky \cdot \sin ky\right)\right) + \sin kx \cdot \sin kx\right)\right) \cdot \frac{\ell \cdot 2}{Om}}} \cdot \sqrt[3]{\sqrt{1 + \left(\frac{\ell \cdot 2}{Om} \cdot \left(\left(\left(\sin ky \cdot \sin ky\right)\right) + \sin kx \cdot \sin kx\right)\right) \cdot \frac{\ell \cdot 2}{Om}}}}}{\sqrt[3]{\sqrt{1 + \left(\frac{\ell \cdot 2}{Om} \cdot \left(\left(\left(\sin ky \cdot \sin ky\right)\right) + \sin kx \cdot \sin kx\right)\right) \cdot \frac{\ell \cdot 2}{Om}}}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r1863447 = 1.0;
double r1863448 = 2.0;
double r1863449 = r1863447 / r1863448;
double r1863450 = l;
double r1863451 = r1863448 * r1863450;
double r1863452 = Om;
double r1863453 = r1863451 / r1863452;
double r1863454 = pow(r1863453, r1863448);
double r1863455 = kx;
double r1863456 = sin(r1863455);
double r1863457 = pow(r1863456, r1863448);
double r1863458 = ky;
double r1863459 = sin(r1863458);
double r1863460 = pow(r1863459, r1863448);
double r1863461 = r1863457 + r1863460;
double r1863462 = r1863454 * r1863461;
double r1863463 = r1863447 + r1863462;
double r1863464 = sqrt(r1863463);
double r1863465 = r1863447 / r1863464;
double r1863466 = r1863447 + r1863465;
double r1863467 = r1863449 * r1863466;
double r1863468 = sqrt(r1863467);
return r1863468;
}
double f(double l, double Om, double kx, double ky) {
double r1863469 = 0.5;
double r1863470 = 1.0;
double r1863471 = l;
double r1863472 = 2.0;
double r1863473 = r1863471 * r1863472;
double r1863474 = Om;
double r1863475 = r1863473 / r1863474;
double r1863476 = ky;
double r1863477 = sin(r1863476);
double r1863478 = r1863477 * r1863477;
double r1863479 = /* ERROR: no posit support in C */;
double r1863480 = /* ERROR: no posit support in C */;
double r1863481 = kx;
double r1863482 = sin(r1863481);
double r1863483 = r1863482 * r1863482;
double r1863484 = r1863480 + r1863483;
double r1863485 = r1863475 * r1863484;
double r1863486 = r1863485 * r1863475;
double r1863487 = r1863470 + r1863486;
double r1863488 = sqrt(r1863487);
double r1863489 = cbrt(r1863488);
double r1863490 = r1863489 * r1863489;
double r1863491 = r1863469 / r1863490;
double r1863492 = r1863491 / r1863489;
double r1863493 = r1863492 + r1863469;
double r1863494 = sqrt(r1863493);
return r1863494;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
rmApplied associate-*r*1.3
rmApplied insert-posit162.1
rmApplied add-cube-cbrt2.1
Applied associate-/r*2.1
Final simplification2.1
herbie shell --seed 2019146
(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))))))))))