\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 + \sqrt[3]{\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)}}} \cdot \frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{1 + {\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 r59218 = 1.0;
double r59219 = 2.0;
double r59220 = r59218 / r59219;
double r59221 = l;
double r59222 = r59219 * r59221;
double r59223 = Om;
double r59224 = r59222 / r59223;
double r59225 = pow(r59224, r59219);
double r59226 = kx;
double r59227 = sin(r59226);
double r59228 = pow(r59227, r59219);
double r59229 = ky;
double r59230 = sin(r59229);
double r59231 = pow(r59230, r59219);
double r59232 = r59228 + r59231;
double r59233 = r59225 * r59232;
double r59234 = r59218 + r59233;
double r59235 = sqrt(r59234);
double r59236 = r59218 / r59235;
double r59237 = r59218 + r59236;
double r59238 = r59220 * r59237;
double r59239 = sqrt(r59238);
return r59239;
}
double f(double l, double Om, double kx, double ky) {
double r59240 = 1.0;
double r59241 = 2.0;
double r59242 = r59240 / r59241;
double r59243 = l;
double r59244 = r59241 * r59243;
double r59245 = Om;
double r59246 = r59244 / r59245;
double r59247 = pow(r59246, r59241);
double r59248 = kx;
double r59249 = sin(r59248);
double r59250 = pow(r59249, r59241);
double r59251 = ky;
double r59252 = sin(r59251);
double r59253 = pow(r59252, r59241);
double r59254 = r59250 + r59253;
double r59255 = r59247 * r59254;
double r59256 = r59240 + r59255;
double r59257 = sqrt(r59256);
double r59258 = r59240 / r59257;
double r59259 = cbrt(r59258);
double r59260 = cbrt(r59240);
double r59261 = r59260 * r59260;
double r59262 = cbrt(r59256);
double r59263 = r59261 / r59262;
double r59264 = r59259 * r59263;
double r59265 = r59240 + r59264;
double r59266 = r59242 * r59265;
double r59267 = sqrt(r59266);
return r59267;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cbrt-cube1.6
Applied add-cbrt-cube1.6
Applied cbrt-undiv1.6
Simplified1.6
rmApplied cube-mult1.6
Applied cbrt-prod1.6
Simplified1.6
Final simplification1.6
herbie shell --seed 2020089
(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))))))))))