\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}{\left(\sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}} \cdot \sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right) \cdot \sqrt[3]{\sqrt[3]{\sqrt{1 + {\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 r50501 = 1.0;
double r50502 = 2.0;
double r50503 = r50501 / r50502;
double r50504 = l;
double r50505 = r50502 * r50504;
double r50506 = Om;
double r50507 = r50505 / r50506;
double r50508 = pow(r50507, r50502);
double r50509 = kx;
double r50510 = sin(r50509);
double r50511 = pow(r50510, r50502);
double r50512 = ky;
double r50513 = sin(r50512);
double r50514 = pow(r50513, r50502);
double r50515 = r50511 + r50514;
double r50516 = r50508 * r50515;
double r50517 = r50501 + r50516;
double r50518 = sqrt(r50517);
double r50519 = r50501 / r50518;
double r50520 = r50501 + r50519;
double r50521 = r50503 * r50520;
double r50522 = sqrt(r50521);
return r50522;
}
double f(double l, double Om, double kx, double ky) {
double r50523 = 1.0;
double r50524 = 2.0;
double r50525 = r50523 / r50524;
double r50526 = l;
double r50527 = r50524 * r50526;
double r50528 = Om;
double r50529 = r50527 / r50528;
double r50530 = pow(r50529, r50524);
double r50531 = kx;
double r50532 = sin(r50531);
double r50533 = pow(r50532, r50524);
double r50534 = ky;
double r50535 = sin(r50534);
double r50536 = pow(r50535, r50524);
double r50537 = r50533 + r50536;
double r50538 = r50530 * r50537;
double r50539 = r50523 + r50538;
double r50540 = sqrt(r50539);
double r50541 = cbrt(r50540);
double r50542 = r50541 * r50541;
double r50543 = cbrt(r50541);
double r50544 = r50543 * r50543;
double r50545 = r50544 * r50543;
double r50546 = r50542 * r50545;
double r50547 = r50523 / r50546;
double r50548 = r50523 + r50547;
double r50549 = r50525 * r50548;
double r50550 = sqrt(r50549);
return r50550;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
rmApplied add-cube-cbrt1.6
Final simplification1.6
herbie shell --seed 2020060 +o rules:numerics
(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))))))))))