(FPCore (x y) :precision binary64 (exp (* (* x y) y)))
(FPCore (x y) :precision binary64 (let* ((t_0 (exp (* y (* x y))))) (* (* (cbrt (sqrt t_0)) (sqrt (exp (* x (* y y))))) (cbrt t_0))))
double code(double x, double y) {
return exp(((x * y) * y));
}
double code(double x, double y) {
double t_0 = exp((y * (x * y)));
return (cbrt(sqrt(t_0)) * sqrt(exp((x * (y * y))))) * cbrt(t_0);
}
public static double code(double x, double y) {
return Math.exp(((x * y) * y));
}
public static double code(double x, double y) {
double t_0 = Math.exp((y * (x * y)));
return (Math.cbrt(Math.sqrt(t_0)) * Math.sqrt(Math.exp((x * (y * y))))) * Math.cbrt(t_0);
}
function code(x, y) return exp(Float64(Float64(x * y) * y)) end
function code(x, y) t_0 = exp(Float64(y * Float64(x * y))) return Float64(Float64(cbrt(sqrt(t_0)) * sqrt(exp(Float64(x * Float64(y * y))))) * cbrt(t_0)) end
code[x_, y_] := N[Exp[N[(N[(x * y), $MachinePrecision] * y), $MachinePrecision]], $MachinePrecision]
code[x_, y_] := Block[{t$95$0 = N[Exp[N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, N[(N[(N[Power[N[Sqrt[t$95$0], $MachinePrecision], 1/3], $MachinePrecision] * N[Sqrt[N[Exp[N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[Power[t$95$0, 1/3], $MachinePrecision]), $MachinePrecision]]
e^{\left(x \cdot y\right) \cdot y}
\begin{array}{l}
t_0 := e^{y \cdot \left(x \cdot y\right)}\\
\left(\sqrt[3]{\sqrt{t_0}} \cdot \sqrt{e^{x \cdot \left(y \cdot y\right)}}\right) \cdot \sqrt[3]{t_0}
\end{array}



Bits error versus x



Bits error versus y
Results
Initial program 0.0
Applied add-cube-cbrt_binary640.0
Applied add-sqr-sqrt_binary640.0
Applied cbrt-prod_binary640.0
Applied associate-*l*_binary640.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2022129
(FPCore (x y)
:name "Data.Random.Distribution.Normal:normalF from random-fu-0.2.6.2"
:precision binary64
(exp (* (* x y) y)))