\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 r23154 = im;
double r23155 = re;
double r23156 = atan2(r23154, r23155);
double r23157 = base;
double r23158 = log(r23157);
double r23159 = r23156 * r23158;
double r23160 = r23155 * r23155;
double r23161 = r23154 * r23154;
double r23162 = r23160 + r23161;
double r23163 = sqrt(r23162);
double r23164 = log(r23163);
double r23165 = 0.0;
double r23166 = r23164 * r23165;
double r23167 = r23159 - r23166;
double r23168 = r23158 * r23158;
double r23169 = r23165 * r23165;
double r23170 = r23168 + r23169;
double r23171 = r23167 / r23170;
return r23171;
}
double f(double re, double im, double base) {
double r23172 = im;
double r23173 = re;
double r23174 = atan2(r23172, r23173);
double r23175 = base;
double r23176 = log(r23175);
double r23177 = r23174 / r23176;
return r23177;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.5
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019325
(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))))