\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\frac{2}{\left(\tan k \cdot \frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\sqrt[3]{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3} \cdot \sin k}} \cdot \sqrt[3]{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3} \cdot \sin k}}}\right) \cdot \left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\sqrt[3]{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3} \cdot \sin k}}} \cdot \mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)\right)} \cdot \elldouble f(double t, double l, double k) {
double r73647 = 2.0;
double r73648 = t;
double r73649 = 3.0;
double r73650 = pow(r73648, r73649);
double r73651 = l;
double r73652 = r73651 * r73651;
double r73653 = r73650 / r73652;
double r73654 = k;
double r73655 = sin(r73654);
double r73656 = r73653 * r73655;
double r73657 = tan(r73654);
double r73658 = r73656 * r73657;
double r73659 = 1.0;
double r73660 = r73654 / r73648;
double r73661 = pow(r73660, r73647);
double r73662 = r73659 + r73661;
double r73663 = r73662 + r73659;
double r73664 = r73658 * r73663;
double r73665 = r73647 / r73664;
return r73665;
}
double f(double t, double l, double k) {
double r73666 = 2.0;
double r73667 = k;
double r73668 = tan(r73667);
double r73669 = t;
double r73670 = cbrt(r73669);
double r73671 = r73670 * r73670;
double r73672 = 3.0;
double r73673 = 2.0;
double r73674 = r73672 / r73673;
double r73675 = pow(r73671, r73674);
double r73676 = l;
double r73677 = pow(r73670, r73672);
double r73678 = sin(r73667);
double r73679 = r73677 * r73678;
double r73680 = r73676 / r73679;
double r73681 = cbrt(r73680);
double r73682 = r73681 * r73681;
double r73683 = r73675 / r73682;
double r73684 = r73668 * r73683;
double r73685 = r73675 / r73681;
double r73686 = 1.0;
double r73687 = r73667 / r73669;
double r73688 = pow(r73687, r73666);
double r73689 = fma(r73673, r73686, r73688);
double r73690 = r73685 * r73689;
double r73691 = r73684 * r73690;
double r73692 = r73666 / r73691;
double r73693 = r73692 * r73676;
return r73693;
}



Bits error versus t



Bits error versus l



Bits error versus k
Initial program 32.1
Simplified27.6
rmApplied add-cube-cbrt27.9
Applied unpow-prod-down27.9
Applied associate-*l*26.8
rmApplied associate-/l*23.9
rmApplied add-cube-cbrt23.9
Applied sqr-pow23.9
Applied times-frac21.7
Applied associate-*r*19.5
rmApplied associate-*l*16.3
Final simplification16.3
herbie shell --seed 2020045 +o rules:numerics
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10+)"
:precision binary64
(/ 2 (* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))))