\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{\frac{1}{\log base}}{\frac{1}{\tan^{-1}_* \frac{im}{re}}}double f(double re, double im, double base) {
double r83496 = im;
double r83497 = re;
double r83498 = atan2(r83496, r83497);
double r83499 = base;
double r83500 = log(r83499);
double r83501 = r83498 * r83500;
double r83502 = r83497 * r83497;
double r83503 = r83496 * r83496;
double r83504 = r83502 + r83503;
double r83505 = sqrt(r83504);
double r83506 = log(r83505);
double r83507 = 0.0;
double r83508 = r83506 * r83507;
double r83509 = r83501 - r83508;
double r83510 = r83500 * r83500;
double r83511 = r83507 * r83507;
double r83512 = r83510 + r83511;
double r83513 = r83509 / r83512;
return r83513;
}
double f(double re, double im, double base) {
double r83514 = 1.0;
double r83515 = base;
double r83516 = log(r83515);
double r83517 = r83514 / r83516;
double r83518 = im;
double r83519 = re;
double r83520 = atan2(r83518, r83519);
double r83521 = r83514 / r83520;
double r83522 = r83517 / r83521;
return r83522;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 32.0
Taylor expanded around 0 0.3
rmApplied clear-num0.5
rmApplied div-inv0.6
Applied associate-/r*0.6
Final simplification0.6
herbie shell --seed 2020062
(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))))