\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}-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\log \left(\left(\sqrt[3]{\frac{1}{base}} \cdot {base}^{\frac{-1}{3}}\right) \cdot {base}^{\frac{-1}{3}}\right)}double f(double re, double im, double base) {
double r105164 = im;
double r105165 = re;
double r105166 = atan2(r105164, r105165);
double r105167 = base;
double r105168 = log(r105167);
double r105169 = r105166 * r105168;
double r105170 = r105165 * r105165;
double r105171 = r105164 * r105164;
double r105172 = r105170 + r105171;
double r105173 = sqrt(r105172);
double r105174 = log(r105173);
double r105175 = 0.0;
double r105176 = r105174 * r105175;
double r105177 = r105169 - r105176;
double r105178 = r105168 * r105168;
double r105179 = r105175 * r105175;
double r105180 = r105178 + r105179;
double r105181 = r105177 / r105180;
return r105181;
}
double f(double re, double im, double base) {
double r105182 = -1.0;
double r105183 = im;
double r105184 = re;
double r105185 = atan2(r105183, r105184);
double r105186 = 1.0;
double r105187 = base;
double r105188 = r105186 / r105187;
double r105189 = cbrt(r105188);
double r105190 = -0.3333333333333333;
double r105191 = pow(r105187, r105190);
double r105192 = r105189 * r105191;
double r105193 = r105192 * r105191;
double r105194 = log(r105193);
double r105195 = r105185 / r105194;
double r105196 = r105182 * r105195;
return r105196;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around inf 0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.4
Simplified0.4
Taylor expanded around 0 0.3
rmApplied add-log-exp0.3
Applied sum-log0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019294
(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))))