\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}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}\right) \cdot \left(\sqrt[3]{\left|\sqrt[3]{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}\right|} \cdot \sqrt[3]{\sqrt{\sqrt[3]{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}}\right)}\right)}double f(double l, double Om, double kx, double ky) {
double r32464 = 1.0;
double r32465 = 2.0;
double r32466 = r32464 / r32465;
double r32467 = l;
double r32468 = r32465 * r32467;
double r32469 = Om;
double r32470 = r32468 / r32469;
double r32471 = pow(r32470, r32465);
double r32472 = kx;
double r32473 = sin(r32472);
double r32474 = pow(r32473, r32465);
double r32475 = ky;
double r32476 = sin(r32475);
double r32477 = pow(r32476, r32465);
double r32478 = r32474 + r32477;
double r32479 = r32471 * r32478;
double r32480 = r32464 + r32479;
double r32481 = sqrt(r32480);
double r32482 = r32464 / r32481;
double r32483 = r32464 + r32482;
double r32484 = r32466 * r32483;
double r32485 = sqrt(r32484);
return r32485;
}
double f(double l, double Om, double kx, double ky) {
double r32486 = 1.0;
double r32487 = 2.0;
double r32488 = r32486 / r32487;
double r32489 = kx;
double r32490 = sin(r32489);
double r32491 = pow(r32490, r32487);
double r32492 = ky;
double r32493 = sin(r32492);
double r32494 = pow(r32493, r32487);
double r32495 = r32491 + r32494;
double r32496 = l;
double r32497 = r32487 * r32496;
double r32498 = Om;
double r32499 = r32497 / r32498;
double r32500 = pow(r32499, r32487);
double r32501 = fma(r32495, r32500, r32486);
double r32502 = sqrt(r32501);
double r32503 = cbrt(r32502);
double r32504 = r32503 * r32503;
double r32505 = cbrt(r32501);
double r32506 = fabs(r32505);
double r32507 = cbrt(r32506);
double r32508 = sqrt(r32505);
double r32509 = cbrt(r32508);
double r32510 = r32507 * r32509;
double r32511 = r32504 * r32510;
double r32512 = r32486 / r32511;
double r32513 = r32486 + r32512;
double r32514 = r32488 * r32513;
double r32515 = sqrt(r32514);
return r32515;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.8
rmApplied add-cube-cbrt1.8
Simplified1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
Applied sqrt-prod1.8
Applied cbrt-prod1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019326 +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))))))))))