\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}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)}}\right)}double f(double l, double Om, double kx, double ky) {
double r3093454 = 1.0;
double r3093455 = 2.0;
double r3093456 = r3093454 / r3093455;
double r3093457 = l;
double r3093458 = r3093455 * r3093457;
double r3093459 = Om;
double r3093460 = r3093458 / r3093459;
double r3093461 = pow(r3093460, r3093455);
double r3093462 = kx;
double r3093463 = sin(r3093462);
double r3093464 = pow(r3093463, r3093455);
double r3093465 = ky;
double r3093466 = sin(r3093465);
double r3093467 = pow(r3093466, r3093455);
double r3093468 = r3093464 + r3093467;
double r3093469 = r3093461 * r3093468;
double r3093470 = r3093454 + r3093469;
double r3093471 = sqrt(r3093470);
double r3093472 = r3093454 / r3093471;
double r3093473 = r3093454 + r3093472;
double r3093474 = r3093456 * r3093473;
double r3093475 = sqrt(r3093474);
return r3093475;
}
double f(double l, double Om, double kx, double ky) {
double r3093476 = 1.0;
double r3093477 = 2.0;
double r3093478 = r3093476 / r3093477;
double r3093479 = l;
double r3093480 = r3093477 * r3093479;
double r3093481 = Om;
double r3093482 = r3093480 / r3093481;
double r3093483 = 2.0;
double r3093484 = r3093477 / r3093483;
double r3093485 = pow(r3093482, r3093484);
double r3093486 = kx;
double r3093487 = sin(r3093486);
double r3093488 = pow(r3093487, r3093477);
double r3093489 = ky;
double r3093490 = sin(r3093489);
double r3093491 = pow(r3093490, r3093477);
double r3093492 = r3093488 + r3093491;
double r3093493 = r3093485 * r3093492;
double r3093494 = r3093485 * r3093493;
double r3093495 = r3093476 + r3093494;
double r3093496 = sqrt(r3093495);
double r3093497 = r3093476 / r3093496;
double r3093498 = r3093476 + r3093497;
double r3093499 = r3093478 * r3093498;
double r3093500 = sqrt(r3093499);
return r3093500;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied sqr-pow1.6
Applied associate-*l*1.3
Final simplification1.3
herbie shell --seed 2019173
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))