\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(\sqrt[3]{\frac{2 \cdot \ell}{Om}} \cdot \sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sqrt[3]{\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 r43316 = 1.0;
double r43317 = 2.0;
double r43318 = r43316 / r43317;
double r43319 = l;
double r43320 = r43317 * r43319;
double r43321 = Om;
double r43322 = r43320 / r43321;
double r43323 = pow(r43322, r43317);
double r43324 = kx;
double r43325 = sin(r43324);
double r43326 = pow(r43325, r43317);
double r43327 = ky;
double r43328 = sin(r43327);
double r43329 = pow(r43328, r43317);
double r43330 = r43326 + r43329;
double r43331 = r43323 * r43330;
double r43332 = r43316 + r43331;
double r43333 = sqrt(r43332);
double r43334 = r43316 / r43333;
double r43335 = r43316 + r43334;
double r43336 = r43318 * r43335;
double r43337 = sqrt(r43336);
return r43337;
}
double f(double l, double Om, double kx, double ky) {
double r43338 = 1.0;
double r43339 = 2.0;
double r43340 = r43338 / r43339;
double r43341 = l;
double r43342 = r43339 * r43341;
double r43343 = Om;
double r43344 = r43342 / r43343;
double r43345 = cbrt(r43344);
double r43346 = r43345 * r43345;
double r43347 = pow(r43346, r43339);
double r43348 = pow(r43345, r43339);
double r43349 = kx;
double r43350 = sin(r43349);
double r43351 = pow(r43350, r43339);
double r43352 = ky;
double r43353 = sin(r43352);
double r43354 = pow(r43353, r43339);
double r43355 = r43351 + r43354;
double r43356 = r43348 * r43355;
double r43357 = r43347 * r43356;
double r43358 = r43338 + r43357;
double r43359 = sqrt(r43358);
double r43360 = r43338 / r43359;
double r43361 = r43338 + r43360;
double r43362 = r43340 * r43361;
double r43363 = sqrt(r43362);
return r43363;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
Applied unpow-prod-down1.6
Applied associate-*l*1.5
Final simplification1.5
herbie shell --seed 2019353
(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))))))))))