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 <= -7.301962593525272e-305)) {
VAR = ((double) (l * ((double) (((double) (((double) cbrt(((double) (1.0 / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))))) * ((double) cbrt(((double) (1.0 / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))))))) * ((double) (l * ((double) (((double) cbrt(((double) (1.0 / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))))) * ((double) (2.0 / ((double) (((double) sin(k)) * ((double) (((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))) * ((double) (((double) tan(k)) * ((double) (((double) (1.0 + ((double) (1.0 + ((double) pow(((double) (k / t)), 2.0)))))) * ((double) pow(((double) cbrt(t)), 3.0))))))))))))))))))));
} else {
double VAR_1;
if ((t <= 4.363544639733127e+136)) {
VAR_1 = ((double) (l * ((double) (l * ((double) (2.0 / ((double) (((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))) * ((double) (((double) sin(k)) * ((double) (((double) (2.0 * ((double) (((double) pow(((double) (1.0 / ((double) pow(((double) (1.0 / ((double) pow(t, 2.0)))), 1.0)))), 1.0)) * ((double) (((double) sin(k)) / ((double) cos(k)))))))) + ((double) (((double) sin(k)) * ((double) (((double) (k * k)) / ((double) cos(k))))))))))))))))));
} else {
VAR_1 = ((double) (l * ((double) (((double) (1.0 / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))) * ((double) (((double) (l * ((double) (((double) cbrt(2.0)) * ((double) (((double) cbrt(2.0)) / ((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), ((double) (3.0 / 2.0)))))))))) * ((double) (((double) cbrt(2.0)) / ((double) (((double) sin(k)) * ((double) (((double) tan(k)) * ((double) (((double) (1.0 + ((double) (1.0 + ((double) pow(((double) (k / t)), 2.0)))))) * ((double) pow(((double) cbrt(t)), 3.0))))))))))))))));
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if t < -7.30196259352527177e-305Initial program 32.2
Simplified32.6
rmApplied add-cube-cbrt32.8
Applied unpow-prod-down32.8
Applied associate-*l*29.8
Simplified26.9
rmApplied sqr-pow26.9
Applied associate-*l*22.2
Simplified20.6
rmApplied *-un-lft-identity20.6
Applied times-frac20.4
Applied associate-*l*18.3
Simplified19.0
rmApplied add-cube-cbrt19.0
Applied associate-*l*19.0
Simplified18.7
if -7.30196259352527177e-305 < t < 4.3635446397331268e136Initial program 38.8
Simplified38.6
rmApplied add-cube-cbrt38.8
Applied unpow-prod-down38.8
Applied associate-*l*35.1
Simplified33.7
rmApplied sqr-pow33.7
Applied associate-*l*27.9
Simplified26.6
Taylor expanded around inf 20.5
Simplified19.9
if 4.3635446397331268e136 < t Initial program 22.5
Simplified25.8
rmApplied add-cube-cbrt25.8
Applied unpow-prod-down25.8
Applied associate-*l*25.4
Simplified19.4
rmApplied sqr-pow19.4
Applied associate-*l*15.6
Simplified12.6
rmApplied *-un-lft-identity12.6
Applied times-frac12.5
Applied associate-*l*10.2
Simplified11.8
rmApplied add-cube-cbrt11.8
Applied times-frac12.2
Applied associate-*r*11.3
Simplified11.3
Final simplification17.7
herbie shell --seed 2020191
(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))))