\frac{\tan^{-1}_* \frac{im}{re}}{\log 10}
\begin{array}{l}
t_0 := \sqrt{\log 10}\\
\frac{\frac{1}{t_0}}{\frac{\sqrt{{\log 10}^{0.6666666666666666}}}{\frac{\tan^{-1}_* \frac{im}{re}}{\sqrt[3]{t_0}}}}
\end{array}
(FPCore (re im) :precision binary64 (/ (atan2 im re) (log 10.0)))
(FPCore (re im)
:precision binary64
(let* ((t_0 (sqrt (log 10.0))))
(/
(/ 1.0 t_0)
(/
(sqrt (pow (log 10.0) 0.6666666666666666))
(/ (atan2 im re) (cbrt t_0))))))double code(double re, double im) {
return atan2(im, re) / log(10.0);
}
double code(double re, double im) {
double t_0 = sqrt(log(10.0));
return (1.0 / t_0) / (sqrt(pow(log(10.0), 0.6666666666666666)) / (atan2(im, re) / cbrt(t_0)));
}



Bits error versus re



Bits error versus im
Results
Initial program 0.8
Applied clear-num_binary641.0
Applied *-un-lft-identity_binary641.0
Applied add-sqr-sqrt_binary641.0
Applied times-frac_binary641.0
Applied associate-/r*_binary641.0
Simplified1.0
Applied add-cube-cbrt_binary641.5
Applied sqrt-prod_binary641.5
Applied associate-/l*_binary641.5
Simplified0.2
Applied pow1/3_binary640.2
Applied pow1/3_binary640.2
Applied pow-sqr_binary640.2
Final simplification0.2
herbie shell --seed 2022077
(FPCore (re im)
:name "math.log10 on complex, imaginary part"
:precision binary64
(/ (atan2 im re) (log 10.0)))