\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 + \log \left(e^{{\left(\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 r50176 = 1.0;
double r50177 = 2.0;
double r50178 = r50176 / r50177;
double r50179 = l;
double r50180 = r50177 * r50179;
double r50181 = Om;
double r50182 = r50180 / r50181;
double r50183 = pow(r50182, r50177);
double r50184 = kx;
double r50185 = sin(r50184);
double r50186 = pow(r50185, r50177);
double r50187 = ky;
double r50188 = sin(r50187);
double r50189 = pow(r50188, r50177);
double r50190 = r50186 + r50189;
double r50191 = r50183 * r50190;
double r50192 = r50176 + r50191;
double r50193 = sqrt(r50192);
double r50194 = r50176 / r50193;
double r50195 = r50176 + r50194;
double r50196 = r50178 * r50195;
double r50197 = sqrt(r50196);
return r50197;
}
double f(double l, double Om, double kx, double ky) {
double r50198 = 1.0;
double r50199 = 2.0;
double r50200 = r50198 / r50199;
double r50201 = l;
double r50202 = r50199 * r50201;
double r50203 = Om;
double r50204 = r50202 / r50203;
double r50205 = pow(r50204, r50199);
double r50206 = kx;
double r50207 = sin(r50206);
double r50208 = pow(r50207, r50199);
double r50209 = ky;
double r50210 = sin(r50209);
double r50211 = pow(r50210, r50199);
double r50212 = r50208 + r50211;
double r50213 = r50205 * r50212;
double r50214 = exp(r50213);
double r50215 = log(r50214);
double r50216 = r50198 + r50215;
double r50217 = sqrt(r50216);
double r50218 = r50198 / r50217;
double r50219 = r50198 + r50218;
double r50220 = r50200 * r50219;
double r50221 = sqrt(r50220);
return r50221;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-log-exp1.9
Final simplification1.9
herbie shell --seed 2020047
(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))))))))))