\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.567655793297945903315979089691981730874 \cdot 10^{135}:\\
\;\;\;\;\frac{-1}{\sqrt{\log 10}} \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\
\mathbf{elif}\;re \le 6.558844456481168673429335625584593485645 \cdot 10^{63}:\\
\;\;\;\;\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)}{\log 10}\\
\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 r31200 = re;
double r31201 = r31200 * r31200;
double r31202 = im;
double r31203 = r31202 * r31202;
double r31204 = r31201 + r31203;
double r31205 = sqrt(r31204);
double r31206 = log(r31205);
double r31207 = 10.0;
double r31208 = log(r31207);
double r31209 = r31206 / r31208;
return r31209;
}
double f(double re, double im) {
double r31210 = re;
double r31211 = -5.567655793297946e+135;
bool r31212 = r31210 <= r31211;
double r31213 = -1.0;
double r31214 = 10.0;
double r31215 = log(r31214);
double r31216 = sqrt(r31215);
double r31217 = r31213 / r31216;
double r31218 = r31213 / r31210;
double r31219 = log(r31218);
double r31220 = 1.0;
double r31221 = r31220 / r31215;
double r31222 = sqrt(r31221);
double r31223 = r31219 * r31222;
double r31224 = r31217 * r31223;
double r31225 = 6.558844456481169e+63;
bool r31226 = r31210 <= r31225;
double r31227 = r31210 * r31210;
double r31228 = im;
double r31229 = r31228 * r31228;
double r31230 = r31227 + r31229;
double r31231 = sqrt(r31230);
double r31232 = cbrt(r31231);
double r31233 = r31232 * r31232;
double r31234 = r31233 * r31232;
double r31235 = log(r31234);
double r31236 = r31235 / r31215;
double r31237 = r31220 / r31216;
double r31238 = log(r31210);
double r31239 = r31222 * r31238;
double r31240 = r31237 * r31239;
double r31241 = r31226 ? r31236 : r31240;
double r31242 = r31212 ? r31224 : r31241;
return r31242;
}



Bits error versus re



Bits error versus im
Results
if re < -5.567655793297946e+135Initial program 58.9
rmApplied add-sqr-sqrt58.9
Applied pow158.9
Applied log-pow58.9
Applied times-frac58.9
Taylor expanded around -inf 7.5
Simplified7.5
if -5.567655793297946e+135 < re < 6.558844456481169e+63Initial program 22.0
rmApplied add-cube-cbrt22.0
if 6.558844456481169e+63 < re Initial program 46.0
rmApplied add-sqr-sqrt46.0
Applied pow146.0
Applied log-pow46.0
Applied times-frac46.0
Taylor expanded around inf 10.3
Simplified10.3
Final simplification17.6
herbie shell --seed 2019208
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))