\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}{\log \left(e^{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \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 r78422 = 1.0;
double r78423 = 2.0;
double r78424 = r78422 / r78423;
double r78425 = l;
double r78426 = r78423 * r78425;
double r78427 = Om;
double r78428 = r78426 / r78427;
double r78429 = pow(r78428, r78423);
double r78430 = kx;
double r78431 = sin(r78430);
double r78432 = pow(r78431, r78423);
double r78433 = ky;
double r78434 = sin(r78433);
double r78435 = pow(r78434, r78423);
double r78436 = r78432 + r78435;
double r78437 = r78429 * r78436;
double r78438 = r78422 + r78437;
double r78439 = sqrt(r78438);
double r78440 = r78422 / r78439;
double r78441 = r78422 + r78440;
double r78442 = r78424 * r78441;
double r78443 = sqrt(r78442);
return r78443;
}
double f(double l, double Om, double kx, double ky) {
double r78444 = 1.0;
double r78445 = 2.0;
double r78446 = r78444 / r78445;
double r78447 = l;
double r78448 = r78445 * r78447;
double r78449 = Om;
double r78450 = r78448 / r78449;
double r78451 = pow(r78450, r78445);
double r78452 = kx;
double r78453 = sin(r78452);
double r78454 = pow(r78453, r78445);
double r78455 = ky;
double r78456 = sin(r78455);
double r78457 = pow(r78456, r78445);
double r78458 = r78454 + r78457;
double r78459 = r78451 * r78458;
double r78460 = r78444 + r78459;
double r78461 = sqrt(r78460);
double r78462 = exp(r78461);
double r78463 = log(r78462);
double r78464 = r78444 / r78463;
double r78465 = r78444 + r78464;
double r78466 = r78446 * r78465;
double r78467 = sqrt(r78466);
return r78467;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.9
rmApplied add-log-exp2.0
Final simplification2.0
herbie shell --seed 2020036 +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))))))))))