e^{-w} \cdot {\ell}^{\left(e^{w}\right)}
\begin{array}{l}
t_0 := \sqrt{e^{w}}\\
t_1 := \sqrt[3]{e^{-w}}\\
t_2 := \sqrt[3]{t_1}\\
t_3 := \sqrt[3]{t_2}\\
\left(\left(t_2 \cdot t_2\right) \cdot \left(\left(t_3 \cdot t_3\right) \cdot \left(t_1 \cdot t_3\right)\right)\right) \cdot \left(t_1 \cdot {\left({\ell}^{t_0}\right)}^{t_0}\right)
\end{array}
(FPCore (w l) :precision binary64 (* (exp (- w)) (pow l (exp w))))
(FPCore (w l)
:precision binary64
(let* ((t_0 (sqrt (exp w)))
(t_1 (cbrt (exp (- w))))
(t_2 (cbrt t_1))
(t_3 (cbrt t_2)))
(*
(* (* t_2 t_2) (* (* t_3 t_3) (* t_1 t_3)))
(* t_1 (pow (pow l t_0) t_0)))))double code(double w, double l) {
return exp(-w) * pow(l, exp(w));
}
double code(double w, double l) {
double t_0 = sqrt(exp(w));
double t_1 = cbrt(exp(-w));
double t_2 = cbrt(t_1);
double t_3 = cbrt(t_2);
return ((t_2 * t_2) * ((t_3 * t_3) * (t_1 * t_3))) * (t_1 * pow(pow(l, t_0), t_0));
}



Bits error versus w



Bits error versus l
Results
Initial program 0.3
Applied add-sqr-sqrt_binary640.3
Applied pow-unpow_binary640.3
Applied add-cube-cbrt_binary640.3
Applied associate-*l*_binary640.3
Applied add-cube-cbrt_binary640.3
Applied associate-*l*_binary640.3
Applied add-cube-cbrt_binary640.3
Applied associate-*l*_binary640.3
Final simplification0.3
herbie shell --seed 2022019
(FPCore (w l)
:name "exp-w crasher"
:precision binary64
(* (exp (- w)) (pow l (exp w))))