\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)}\ell \cdot \left(2 \cdot \left({\left({\left({k}^{\left(\frac{-2}{2}\right)}\right)}^{1}\right)}^{1} \cdot \left(\left(\ell \cdot \frac{\cos k}{{\left(\sin k\right)}^{2}}\right) \cdot {\left({\left({k}^{\left(\frac{-2}{2}\right)}\right)}^{1} \cdot {\left({t}^{\left(-1\right)}\right)}^{1}\right)}^{1}\right)\right)\right)(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
(FPCore (t l k)
:precision binary64
(*
l
(*
2.0
(*
(pow (pow (pow k (/ (- 2.0) 2.0)) 1.0) 1.0)
(*
(* l (/ (cos k) (pow (sin k) 2.0)))
(pow
(* (pow (pow k (/ (- 2.0) 2.0)) 1.0) (pow (pow t (- 1.0)) 1.0))
1.0))))))double code(double t, double l, double k) {
return (2.0 / ((double) (((double) (((double) ((((double) pow(t, 3.0)) / ((double) (l * l))) * ((double) sin(k)))) * ((double) tan(k)))) * ((double) (((double) (1.0 + ((double) pow((k / t), 2.0)))) - 1.0)))));
}
double code(double t, double l, double k) {
return ((double) (l * ((double) (2.0 * ((double) (((double) pow(((double) pow(((double) pow(k, (((double) -(2.0)) / 2.0))), 1.0)), 1.0)) * ((double) (((double) (l * (((double) cos(k)) / ((double) pow(((double) sin(k)), 2.0))))) * ((double) pow(((double) (((double) pow(((double) pow(k, (((double) -(2.0)) / 2.0))), 1.0)) * ((double) pow(((double) pow(t, ((double) -(1.0)))), 1.0)))), 1.0))))))))));
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
Initial program 48.2
Simplified39.1
Taylor expanded around inf 52.0
Simplified15.8
rmApplied sqr-pow15.8
Applied unpow-prod-down15.8
Applied associate-*l*12.5
Simplified12.5
rmApplied unpow-prod-down12.5
Applied associate-*l*8.2
Simplified9.3
rmApplied associate-*r*8.2
Final simplification8.2
herbie shell --seed 2020198
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10-)"
:precision binary64
(/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))