\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -6312992236024163726688387878937257276604000:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\
\mathbf{elif}\;re \le 1.949891623707017456131986292760721140859 \cdot 10^{80}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right)\\
\end{array}double f(double re, double im) {
double r41259 = re;
double r41260 = r41259 * r41259;
double r41261 = im;
double r41262 = r41261 * r41261;
double r41263 = r41260 + r41262;
double r41264 = sqrt(r41263);
double r41265 = log(r41264);
double r41266 = 10.0;
double r41267 = log(r41266);
double r41268 = r41265 / r41267;
return r41268;
}
double f(double re, double im) {
double r41269 = re;
double r41270 = -6.312992236024164e+42;
bool r41271 = r41269 <= r41270;
double r41272 = 1.0;
double r41273 = 10.0;
double r41274 = log(r41273);
double r41275 = sqrt(r41274);
double r41276 = r41272 / r41275;
double r41277 = -1.0;
double r41278 = r41277 / r41269;
double r41279 = log(r41278);
double r41280 = r41272 / r41274;
double r41281 = sqrt(r41280);
double r41282 = r41279 * r41281;
double r41283 = -r41282;
double r41284 = r41276 * r41283;
double r41285 = 1.9498916237070175e+80;
bool r41286 = r41269 <= r41285;
double r41287 = r41269 * r41269;
double r41288 = im;
double r41289 = r41288 * r41288;
double r41290 = r41287 + r41289;
double r41291 = sqrt(r41290);
double r41292 = log(r41291);
double r41293 = r41292 * r41276;
double r41294 = r41276 * r41293;
double r41295 = log(r41269);
double r41296 = r41281 * r41295;
double r41297 = r41276 * r41296;
double r41298 = r41286 ? r41294 : r41297;
double r41299 = r41271 ? r41284 : r41298;
return r41299;
}



Bits error versus re



Bits error versus im
Results
if re < -6.312992236024164e+42Initial program 43.6
rmApplied add-sqr-sqrt43.6
Applied pow143.6
Applied log-pow43.6
Applied times-frac43.6
Taylor expanded around -inf 11.2
Simplified11.2
if -6.312992236024164e+42 < re < 1.9498916237070175e+80Initial program 22.9
rmApplied add-sqr-sqrt22.9
Applied pow122.9
Applied log-pow22.9
Applied times-frac22.9
rmApplied div-inv22.8
if 1.9498916237070175e+80 < re Initial program 48.7
rmApplied add-sqr-sqrt48.7
Applied pow148.7
Applied log-pow48.7
Applied times-frac48.7
rmApplied div-inv48.6
Taylor expanded around inf 8.8
Simplified8.8
Final simplification17.8
herbie shell --seed 2019351
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))