\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 -5.95406134530710368 \cdot 10^{129}:\\
\;\;\;\;\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 -3.33174441901366952 \cdot 10^{-227}:\\
\;\;\;\;\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{elif}\;re \le 4.64866265485152755 \cdot 10^{-207}:\\
\;\;\;\;\frac{\log im}{\log base}\\
\mathbf{elif}\;re \le 6.5581120662639028 \cdot 10^{120}:\\
\;\;\;\;\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 r92279 = re;
double r92280 = r92279 * r92279;
double r92281 = im;
double r92282 = r92281 * r92281;
double r92283 = r92280 + r92282;
double r92284 = sqrt(r92283);
double r92285 = log(r92284);
double r92286 = base;
double r92287 = log(r92286);
double r92288 = r92285 * r92287;
double r92289 = atan2(r92281, r92279);
double r92290 = 0.0;
double r92291 = r92289 * r92290;
double r92292 = r92288 + r92291;
double r92293 = r92287 * r92287;
double r92294 = r92290 * r92290;
double r92295 = r92293 + r92294;
double r92296 = r92292 / r92295;
return r92296;
}
double f(double re, double im, double base) {
double r92297 = re;
double r92298 = -5.954061345307104e+129;
bool r92299 = r92297 <= r92298;
double r92300 = -1.0;
double r92301 = r92300 * r92297;
double r92302 = log(r92301);
double r92303 = base;
double r92304 = log(r92303);
double r92305 = r92302 * r92304;
double r92306 = im;
double r92307 = atan2(r92306, r92297);
double r92308 = 0.0;
double r92309 = r92307 * r92308;
double r92310 = r92305 + r92309;
double r92311 = r92304 * r92304;
double r92312 = r92308 * r92308;
double r92313 = r92311 + r92312;
double r92314 = r92310 / r92313;
double r92315 = -3.3317444190136695e-227;
bool r92316 = r92297 <= r92315;
double r92317 = r92297 * r92297;
double r92318 = r92306 * r92306;
double r92319 = r92317 + r92318;
double r92320 = sqrt(r92319);
double r92321 = cbrt(r92320);
double r92322 = r92321 * r92321;
double r92323 = r92322 * r92321;
double r92324 = log(r92323);
double r92325 = r92324 * r92304;
double r92326 = r92325 + r92309;
double r92327 = sqrt(r92313);
double r92328 = r92326 / r92327;
double r92329 = r92328 / r92327;
double r92330 = 4.6486626548515276e-207;
bool r92331 = r92297 <= r92330;
double r92332 = log(r92306);
double r92333 = r92332 / r92304;
double r92334 = 6.558112066263903e+120;
bool r92335 = r92297 <= r92334;
double r92336 = 1.0;
double r92337 = r92336 / r92297;
double r92338 = log(r92337);
double r92339 = r92336 / r92303;
double r92340 = log(r92339);
double r92341 = r92338 / r92340;
double r92342 = r92335 ? r92329 : r92341;
double r92343 = r92331 ? r92333 : r92342;
double r92344 = r92316 ? r92329 : r92343;
double r92345 = r92299 ? r92314 : r92344;
return r92345;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -5.954061345307104e+129Initial program 57.3
Taylor expanded around -inf 8.0
if -5.954061345307104e+129 < re < -3.3317444190136695e-227 or 4.6486626548515276e-207 < re < 6.558112066263903e+120Initial program 19.2
rmApplied add-sqr-sqrt19.2
Applied associate-/r*19.2
rmApplied add-cube-cbrt19.2
if -3.3317444190136695e-227 < re < 4.6486626548515276e-207Initial program 31.5
Taylor expanded around 0 33.6
if 6.558112066263903e+120 < re Initial program 55.8
Taylor expanded around inf 8.9
Final simplification18.2
herbie shell --seed 2020024
(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))))