\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\begin{array}{l}
\mathbf{if}\;re \le -2.49575566169960319 \cdot 10^{123}:\\
\;\;\;\;\frac{\log \left(-1 \cdot re\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\\
\mathbf{elif}\;re \le 4.3665212724914114 \cdot 10^{58}:\\
\;\;\;\;\frac{\frac{\log \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}\\
\end{array}double f(double re, double im, double base) {
double r40275 = re;
double r40276 = r40275 * r40275;
double r40277 = im;
double r40278 = r40277 * r40277;
double r40279 = r40276 + r40278;
double r40280 = sqrt(r40279);
double r40281 = log(r40280);
double r40282 = base;
double r40283 = log(r40282);
double r40284 = r40281 * r40283;
double r40285 = atan2(r40277, r40275);
double r40286 = 0.0;
double r40287 = r40285 * r40286;
double r40288 = r40284 + r40287;
double r40289 = r40283 * r40283;
double r40290 = r40286 * r40286;
double r40291 = r40289 + r40290;
double r40292 = r40288 / r40291;
return r40292;
}
double f(double re, double im, double base) {
double r40293 = re;
double r40294 = -2.4957556616996032e+123;
bool r40295 = r40293 <= r40294;
double r40296 = -1.0;
double r40297 = r40296 * r40293;
double r40298 = log(r40297);
double r40299 = base;
double r40300 = log(r40299);
double r40301 = r40298 * r40300;
double r40302 = im;
double r40303 = atan2(r40302, r40293);
double r40304 = 0.0;
double r40305 = r40303 * r40304;
double r40306 = r40301 + r40305;
double r40307 = r40300 * r40300;
double r40308 = r40304 * r40304;
double r40309 = r40307 + r40308;
double r40310 = r40306 / r40309;
double r40311 = 4.3665212724914114e+58;
bool r40312 = r40293 <= r40311;
double r40313 = r40293 * r40293;
double r40314 = r40302 * r40302;
double r40315 = r40313 + r40314;
double r40316 = sqrt(r40315);
double r40317 = cbrt(r40316);
double r40318 = r40317 * r40317;
double r40319 = r40318 * r40317;
double r40320 = log(r40319);
double r40321 = r40320 * r40300;
double r40322 = r40321 + r40305;
double r40323 = sqrt(r40309);
double r40324 = r40322 / r40323;
double r40325 = r40324 / r40323;
double r40326 = 1.0;
double r40327 = r40326 / r40293;
double r40328 = log(r40327);
double r40329 = r40326 / r40299;
double r40330 = log(r40329);
double r40331 = r40328 / r40330;
double r40332 = r40312 ? r40325 : r40331;
double r40333 = r40295 ? r40310 : r40332;
return r40333;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -2.4957556616996032e+123Initial program 54.4
Taylor expanded around -inf 8.0
if -2.4957556616996032e+123 < re < 4.3665212724914114e+58Initial program 22.2
rmApplied add-sqr-sqrt22.2
Applied associate-/r*22.2
rmApplied add-cube-cbrt22.2
if 4.3665212724914114e+58 < re Initial program 46.4
Taylor expanded around inf 11.2
Final simplification17.9
herbie shell --seed 2020018
(FPCore (re im base)
:name "math.log/2 on complex, real part"
:precision binary64
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))