\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{\left(\frac{1}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}\right) \cdot \sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}\right)} + 1\right) \cdot \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r2492052 = 1.0;
double r2492053 = 2.0;
double r2492054 = r2492052 / r2492053;
double r2492055 = l;
double r2492056 = r2492053 * r2492055;
double r2492057 = Om;
double r2492058 = r2492056 / r2492057;
double r2492059 = pow(r2492058, r2492053);
double r2492060 = kx;
double r2492061 = sin(r2492060);
double r2492062 = pow(r2492061, r2492053);
double r2492063 = ky;
double r2492064 = sin(r2492063);
double r2492065 = pow(r2492064, r2492053);
double r2492066 = r2492062 + r2492065;
double r2492067 = r2492059 * r2492066;
double r2492068 = r2492052 + r2492067;
double r2492069 = sqrt(r2492068);
double r2492070 = r2492052 / r2492069;
double r2492071 = r2492052 + r2492070;
double r2492072 = r2492054 * r2492071;
double r2492073 = sqrt(r2492072);
return r2492073;
}
double f(double l, double Om, double kx, double ky) {
double r2492074 = 1.0;
double r2492075 = 2.0;
double r2492076 = l;
double r2492077 = r2492075 * r2492076;
double r2492078 = Om;
double r2492079 = r2492077 / r2492078;
double r2492080 = pow(r2492079, r2492075);
double r2492081 = kx;
double r2492082 = sin(r2492081);
double r2492083 = pow(r2492082, r2492075);
double r2492084 = ky;
double r2492085 = sin(r2492084);
double r2492086 = pow(r2492085, r2492075);
double r2492087 = r2492083 + r2492086;
double r2492088 = fma(r2492080, r2492087, r2492074);
double r2492089 = sqrt(r2492088);
double r2492090 = cbrt(r2492089);
double r2492091 = r2492090 * r2492090;
double r2492092 = cbrt(r2492090);
double r2492093 = r2492092 * r2492092;
double r2492094 = r2492093 * r2492092;
double r2492095 = r2492091 * r2492094;
double r2492096 = r2492074 / r2492095;
double r2492097 = r2492096 + r2492074;
double r2492098 = r2492074 / r2492075;
double r2492099 = r2492097 * r2492098;
double r2492100 = sqrt(r2492099);
return r2492100;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
rmApplied add-cube-cbrt1.6
rmApplied add-cube-cbrt1.6
Final simplification1.6
herbie shell --seed 2019174 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))