\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(\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 r42105 = 1.0;
double r42106 = 2.0;
double r42107 = r42105 / r42106;
double r42108 = l;
double r42109 = r42106 * r42108;
double r42110 = Om;
double r42111 = r42109 / r42110;
double r42112 = pow(r42111, r42106);
double r42113 = kx;
double r42114 = sin(r42113);
double r42115 = pow(r42114, r42106);
double r42116 = ky;
double r42117 = sin(r42116);
double r42118 = pow(r42117, r42106);
double r42119 = r42115 + r42118;
double r42120 = r42112 * r42119;
double r42121 = r42105 + r42120;
double r42122 = sqrt(r42121);
double r42123 = r42105 / r42122;
double r42124 = r42105 + r42123;
double r42125 = r42107 * r42124;
double r42126 = sqrt(r42125);
return r42126;
}
double f(double l, double Om, double kx, double ky) {
double r42127 = 1.0;
double r42128 = 2.0;
double r42129 = r42127 / r42128;
double r42130 = l;
double r42131 = r42128 * r42130;
double r42132 = Om;
double r42133 = r42131 / r42132;
double r42134 = 2.0;
double r42135 = r42128 / r42134;
double r42136 = pow(r42133, r42135);
double r42137 = kx;
double r42138 = sin(r42137);
double r42139 = pow(r42138, r42128);
double r42140 = ky;
double r42141 = sin(r42140);
double r42142 = pow(r42141, r42128);
double r42143 = r42139 + r42142;
double r42144 = r42136 * r42143;
double r42145 = r42136 * r42144;
double r42146 = r42127 + r42145;
double r42147 = sqrt(r42146);
double r42148 = r42127 / r42147;
double r42149 = r42127 + r42148;
double r42150 = r42129 * r42149;
double r42151 = sqrt(r42150);
return r42151;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.1
rmApplied sqr-pow1.1
Applied associate-*l*0.8
Final simplification0.8
herbie shell --seed 2020057
(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))))))))))