double code(double t, double l, double k) {
return ((double) (2.0 / ((double) (((double) (((double) (((double) (((double) pow(t, 3.0)) / ((double) (l * l)))) * ((double) sin(k)))) * ((double) tan(k)))) * ((double) (((double) (1.0 + ((double) pow(((double) (k / t)), 2.0)))) + 1.0))))));
}
double code(double t, double l, double k) {
double VAR;
if ((t <= -4.261306571800381e-154)) {
VAR = ((double) (2.0 / ((double) (((double) (((double) (1.0 + ((double) (1.0 + ((double) pow(((double) (k / t)), 2.0)))))) * ((double) (((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))) * ((double) (((double) sin(k)) * ((double) (((double) (((double) sin(k)) / l)) * ((double) pow(((double) (1.0 / ((double) pow(((double) (1.0 / ((double) pow(t, 1.0)))), 1.0)))), 1.0)))))))))) / ((double) (((double) (l / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))) * ((double) cos(k))))))));
} else {
double VAR_1;
if ((t <= 6.6296042558633e-55)) {
VAR_1 = ((double) (2.0 / ((double) (((double) (((double) (k * k)) / ((double) (l / ((double) pow(((double) sin(k)), 2.0)))))) / ((double) (((double) (l / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))) * ((double) cos(k))))))));
} else {
VAR_1 = ((double) (2.0 / ((double) (((double) (((double) (1.0 + ((double) (1.0 + ((double) pow(((double) (k / t)), 2.0)))))) * ((double) (((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))) * ((double) (((double) sin(k)) * ((double) (((double) pow(((double) cbrt(((double) sqrt(t)))), 3.0)) * ((double) (((double) sin(k)) * ((double) (((double) pow(((double) cbrt(((double) sqrt(t)))), 3.0)) / l)))))))))))) / ((double) (((double) (l / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))) * ((double) cos(k))))))));
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if t < -4.2613065718003809e-154Initial program 27.5
rmApplied add-cube-cbrt27.7
Applied unpow-prod-down27.7
Applied times-frac19.1
Applied associate-*l*16.8
rmApplied sqr-pow16.8
Applied associate-/l*11.9
rmApplied tan-quot12.0
Applied associate-*l/11.0
Applied frac-times9.6
Applied associate-*l/8.5
Simplified11.3
Taylor expanded around inf 64.0
Simplified12.2
if -4.2613065718003809e-154 < t < 6.6296042558632993e-55Initial program 59.5
rmApplied add-cube-cbrt59.6
Applied unpow-prod-down59.6
Applied times-frac53.3
Applied associate-*l*53.0
rmApplied sqr-pow53.0
Applied associate-/l*43.5
rmApplied tan-quot43.5
Applied associate-*l/43.5
Applied frac-times44.5
Applied associate-*l/40.8
Simplified40.8
Taylor expanded around inf 28.8
Simplified27.6
if 6.6296042558632993e-55 < t Initial program 22.4
rmApplied add-cube-cbrt22.6
Applied unpow-prod-down22.6
Applied times-frac15.8
Applied associate-*l*13.7
rmApplied sqr-pow13.7
Applied associate-/l*8.3
rmApplied tan-quot8.2
Applied associate-*l/7.3
Applied frac-times5.7
Applied associate-*l/5.0
Simplified7.6
rmApplied *-un-lft-identity7.6
Applied add-sqr-sqrt7.6
Applied cbrt-prod7.6
Applied unpow-prod-down7.6
Applied times-frac7.6
Applied associate-*l*7.5
Simplified7.5
Final simplification14.1
herbie shell --seed 2020192
(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))))