\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 + \log \left(e^{\frac{1}{\sqrt[3]{{\left(\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right)}^{3}}}}\right)\right)}double f(double l, double Om, double kx, double ky) {
double r80200 = 1.0;
double r80201 = 2.0;
double r80202 = r80200 / r80201;
double r80203 = l;
double r80204 = r80201 * r80203;
double r80205 = Om;
double r80206 = r80204 / r80205;
double r80207 = pow(r80206, r80201);
double r80208 = kx;
double r80209 = sin(r80208);
double r80210 = pow(r80209, r80201);
double r80211 = ky;
double r80212 = sin(r80211);
double r80213 = pow(r80212, r80201);
double r80214 = r80210 + r80213;
double r80215 = r80207 * r80214;
double r80216 = r80200 + r80215;
double r80217 = sqrt(r80216);
double r80218 = r80200 / r80217;
double r80219 = r80200 + r80218;
double r80220 = r80202 * r80219;
double r80221 = sqrt(r80220);
return r80221;
}
double f(double l, double Om, double kx, double ky) {
double r80222 = 1.0;
double r80223 = 2.0;
double r80224 = r80222 / r80223;
double r80225 = l;
double r80226 = r80223 * r80225;
double r80227 = Om;
double r80228 = r80226 / r80227;
double r80229 = pow(r80228, r80223);
double r80230 = kx;
double r80231 = sin(r80230);
double r80232 = pow(r80231, r80223);
double r80233 = ky;
double r80234 = sin(r80233);
double r80235 = pow(r80234, r80223);
double r80236 = r80232 + r80235;
double r80237 = r80229 * r80236;
double r80238 = r80222 + r80237;
double r80239 = sqrt(r80238);
double r80240 = 3.0;
double r80241 = pow(r80239, r80240);
double r80242 = cbrt(r80241);
double r80243 = r80222 / r80242;
double r80244 = exp(r80243);
double r80245 = log(r80244);
double r80246 = r80222 + r80245;
double r80247 = r80224 * r80246;
double r80248 = sqrt(r80247);
return r80248;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-cbrt-cube1.7
Simplified1.7
rmApplied add-log-exp1.7
Final simplification1.7
herbie shell --seed 2020021
(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))))))))))