\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{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}double f(double re, double im, double base) {
double r93808 = im;
double r93809 = re;
double r93810 = atan2(r93808, r93809);
double r93811 = base;
double r93812 = log(r93811);
double r93813 = r93810 * r93812;
double r93814 = r93809 * r93809;
double r93815 = r93808 * r93808;
double r93816 = r93814 + r93815;
double r93817 = sqrt(r93816);
double r93818 = log(r93817);
double r93819 = 0.0;
double r93820 = r93818 * r93819;
double r93821 = r93813 - r93820;
double r93822 = r93812 * r93812;
double r93823 = r93819 * r93819;
double r93824 = r93822 + r93823;
double r93825 = r93821 / r93824;
return r93825;
}
double f(double re, double im, double base) {
double r93826 = 1.0;
double r93827 = base;
double r93828 = log(r93827);
double r93829 = im;
double r93830 = re;
double r93831 = atan2(r93829, r93830);
double r93832 = r93828 / r93831;
double r93833 = r93826 / r93832;
return r93833;
}



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
Final simplification0.5
herbie shell --seed 2019326
(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))))