\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]{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)} \cdot \sqrt[3]{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right) \cdot \sqrt[3]{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r38305 = 1.0;
double r38306 = 2.0;
double r38307 = r38305 / r38306;
double r38308 = l;
double r38309 = r38306 * r38308;
double r38310 = Om;
double r38311 = r38309 / r38310;
double r38312 = pow(r38311, r38306);
double r38313 = kx;
double r38314 = sin(r38313);
double r38315 = pow(r38314, r38306);
double r38316 = ky;
double r38317 = sin(r38316);
double r38318 = pow(r38317, r38306);
double r38319 = r38315 + r38318;
double r38320 = r38312 * r38319;
double r38321 = r38305 + r38320;
double r38322 = sqrt(r38321);
double r38323 = r38305 / r38322;
double r38324 = r38305 + r38323;
double r38325 = r38307 * r38324;
double r38326 = sqrt(r38325);
return r38326;
}
double f(double l, double Om, double kx, double ky) {
double r38327 = 1.0;
double r38328 = 2.0;
double r38329 = r38327 / r38328;
double r38330 = l;
double r38331 = r38328 * r38330;
double r38332 = Om;
double r38333 = r38331 / r38332;
double r38334 = pow(r38333, r38328);
double r38335 = kx;
double r38336 = sin(r38335);
double r38337 = pow(r38336, r38328);
double r38338 = ky;
double r38339 = sin(r38338);
double r38340 = pow(r38339, r38328);
double r38341 = r38337 + r38340;
double r38342 = r38334 * r38341;
double r38343 = cbrt(r38342);
double r38344 = r38343 * r38343;
double r38345 = r38344 * r38343;
double r38346 = r38327 + r38345;
double r38347 = sqrt(r38346);
double r38348 = r38327 / r38347;
double r38349 = r38327 + r38348;
double r38350 = r38329 * r38349;
double r38351 = sqrt(r38350);
return r38351;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 0.8
rmApplied add-cube-cbrt0.8
Final simplification0.8
herbie shell --seed 2020065 +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))))))))))