\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]{{\left(\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)}^{3}}\right)}double f(double l, double Om, double kx, double ky) {
double r34130 = 1.0;
double r34131 = 2.0;
double r34132 = r34130 / r34131;
double r34133 = l;
double r34134 = r34131 * r34133;
double r34135 = Om;
double r34136 = r34134 / r34135;
double r34137 = pow(r34136, r34131);
double r34138 = kx;
double r34139 = sin(r34138);
double r34140 = pow(r34139, r34131);
double r34141 = ky;
double r34142 = sin(r34141);
double r34143 = pow(r34142, r34131);
double r34144 = r34140 + r34143;
double r34145 = r34137 * r34144;
double r34146 = r34130 + r34145;
double r34147 = sqrt(r34146);
double r34148 = r34130 / r34147;
double r34149 = r34130 + r34148;
double r34150 = r34132 * r34149;
double r34151 = sqrt(r34150);
return r34151;
}
double f(double l, double Om, double kx, double ky) {
double r34152 = 1.0;
double r34153 = 2.0;
double r34154 = r34152 / r34153;
double r34155 = l;
double r34156 = r34153 * r34155;
double r34157 = Om;
double r34158 = r34156 / r34157;
double r34159 = pow(r34158, r34153);
double r34160 = kx;
double r34161 = sin(r34160);
double r34162 = pow(r34161, r34153);
double r34163 = ky;
double r34164 = sin(r34163);
double r34165 = pow(r34164, r34153);
double r34166 = r34162 + r34165;
double r34167 = r34159 * r34166;
double r34168 = r34152 + r34167;
double r34169 = sqrt(r34168);
double r34170 = r34152 / r34169;
double r34171 = 3.0;
double r34172 = pow(r34170, r34171);
double r34173 = cbrt(r34172);
double r34174 = r34152 + r34173;
double r34175 = r34154 * r34174;
double r34176 = sqrt(r34175);
return r34176;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.2
rmApplied add-cbrt-cube1.2
Applied add-cbrt-cube1.2
Applied cbrt-undiv1.2
Simplified1.2
Final simplification1.2
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))))))))))