\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.156407601863717509012505141513837828653 \cdot 10^{112}:\\
\;\;\;\;\frac{1}{\sqrt[3]{{\left(\frac{\log 10}{\log \left(-re\right)}\right)}^{3}}}\\
\mathbf{elif}\;re \le 1.244988213884062755522549209945596691708 \cdot 10^{138}:\\
\;\;\;\;\frac{1}{\sqrt[3]{\frac{1}{27} \cdot {\left(\frac{\log 10}{\log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}\right)}^{3}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{-\frac{\log 10}{-\log re}}\\
\end{array}double f(double re, double im) {
double r31247 = re;
double r31248 = r31247 * r31247;
double r31249 = im;
double r31250 = r31249 * r31249;
double r31251 = r31248 + r31250;
double r31252 = sqrt(r31251);
double r31253 = log(r31252);
double r31254 = 10.0;
double r31255 = log(r31254);
double r31256 = r31253 / r31255;
return r31256;
}
double f(double re, double im) {
double r31257 = re;
double r31258 = -1.1564076018637175e+112;
bool r31259 = r31257 <= r31258;
double r31260 = 1.0;
double r31261 = 10.0;
double r31262 = log(r31261);
double r31263 = -r31257;
double r31264 = log(r31263);
double r31265 = r31262 / r31264;
double r31266 = 3.0;
double r31267 = pow(r31265, r31266);
double r31268 = cbrt(r31267);
double r31269 = r31260 / r31268;
double r31270 = 1.2449882138840628e+138;
bool r31271 = r31257 <= r31270;
double r31272 = 0.037037037037037035;
double r31273 = r31257 * r31257;
double r31274 = im;
double r31275 = r31274 * r31274;
double r31276 = r31273 + r31275;
double r31277 = sqrt(r31276);
double r31278 = cbrt(r31277);
double r31279 = log(r31278);
double r31280 = r31262 / r31279;
double r31281 = pow(r31280, r31266);
double r31282 = r31272 * r31281;
double r31283 = cbrt(r31282);
double r31284 = r31260 / r31283;
double r31285 = log(r31257);
double r31286 = -r31285;
double r31287 = r31262 / r31286;
double r31288 = -r31287;
double r31289 = r31260 / r31288;
double r31290 = r31271 ? r31284 : r31289;
double r31291 = r31259 ? r31269 : r31290;
return r31291;
}



Bits error versus re



Bits error versus im
Results
if re < -1.1564076018637175e+112Initial program 52.8
rmApplied clear-num52.8
rmApplied add-cbrt-cube52.9
Applied add-cbrt-cube53.0
Applied cbrt-undiv52.9
Simplified52.9
Taylor expanded around -inf 8.7
Simplified8.7
if -1.1564076018637175e+112 < re < 1.2449882138840628e+138Initial program 22.1
rmApplied clear-num22.1
rmApplied add-cbrt-cube22.1
Applied add-cbrt-cube22.6
Applied cbrt-undiv22.1
Simplified22.1
rmApplied add-cube-cbrt22.1
rmApplied pow122.1
Applied pow122.1
Applied pow122.1
Applied pow-prod-up22.1
Applied pow-prod-up22.1
Applied log-pow22.2
Applied pow122.2
Applied log-pow22.2
Applied times-frac22.2
Applied unpow-prod-down22.2
Simplified22.1
if 1.2449882138840628e+138 < re Initial program 58.8
rmApplied clear-num58.8
Taylor expanded around inf 8.1
Simplified8.1
Final simplification18.0
herbie shell --seed 2019323
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))