\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\frac{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r26134 = im;
double r26135 = re;
double r26136 = atan2(r26134, r26135);
double r26137 = base;
double r26138 = log(r26137);
double r26139 = r26136 * r26138;
double r26140 = r26135 * r26135;
double r26141 = r26134 * r26134;
double r26142 = r26140 + r26141;
double r26143 = sqrt(r26142);
double r26144 = log(r26143);
double r26145 = 0.0;
double r26146 = r26144 * r26145;
double r26147 = r26139 - r26146;
double r26148 = r26138 * r26138;
double r26149 = r26145 * r26145;
double r26150 = r26148 + r26149;
double r26151 = r26147 / r26150;
return r26151;
}
double f(double re, double im, double base) {
double r26152 = im;
double r26153 = re;
double r26154 = atan2(r26152, r26153);
double r26155 = base;
double r26156 = log(r26155);
double r26157 = r26154 / r26156;
return r26157;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around 0 0.3
rmApplied clear-num0.5
rmApplied div-inv0.5
Applied add-cube-cbrt0.5
Applied times-frac0.5
Simplified0.5
Simplified0.4
rmApplied pow10.4
Applied pow10.4
Applied pow-prod-down0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020018
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
:precision binary64
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))