\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{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)}} \cdot \sqrt[3]{\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) \cdot \sqrt[3]{\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 r58250 = 1.0;
double r58251 = 2.0;
double r58252 = r58250 / r58251;
double r58253 = l;
double r58254 = r58251 * r58253;
double r58255 = Om;
double r58256 = r58254 / r58255;
double r58257 = pow(r58256, r58251);
double r58258 = kx;
double r58259 = sin(r58258);
double r58260 = pow(r58259, r58251);
double r58261 = ky;
double r58262 = sin(r58261);
double r58263 = pow(r58262, r58251);
double r58264 = r58260 + r58263;
double r58265 = r58257 * r58264;
double r58266 = r58250 + r58265;
double r58267 = sqrt(r58266);
double r58268 = r58250 / r58267;
double r58269 = r58250 + r58268;
double r58270 = r58252 * r58269;
double r58271 = sqrt(r58270);
return r58271;
}
double f(double l, double Om, double kx, double ky) {
double r58272 = 1.0;
double r58273 = 2.0;
double r58274 = r58272 / r58273;
double r58275 = l;
double r58276 = r58273 * r58275;
double r58277 = Om;
double r58278 = r58276 / r58277;
double r58279 = 2.0;
double r58280 = r58273 / r58279;
double r58281 = pow(r58278, r58280);
double r58282 = kx;
double r58283 = sin(r58282);
double r58284 = pow(r58283, r58273);
double r58285 = ky;
double r58286 = sin(r58285);
double r58287 = pow(r58286, r58273);
double r58288 = r58284 + r58287;
double r58289 = r58281 * r58288;
double r58290 = r58281 * r58289;
double r58291 = r58272 + r58290;
double r58292 = sqrt(r58291);
double r58293 = cbrt(r58292);
double r58294 = r58293 * r58293;
double r58295 = r58294 * r58293;
double r58296 = r58272 / r58295;
double r58297 = r58272 + r58296;
double r58298 = r58274 * r58297;
double r58299 = sqrt(r58298);
return r58299;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied sqr-pow1.7
Applied associate-*l*1.4
rmApplied add-cube-cbrt1.5
Final simplification1.5
herbie shell --seed 2020002 +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))))))))))