\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.240082689521645815217683079061051755514 \cdot 10^{136}:\\
\;\;\;\;\frac{-1}{\sqrt{\log 10}} \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\
\mathbf{elif}\;re \le 2.758027754679775859452707209022012553709 \cdot 10^{-281}:\\
\;\;\;\;\sqrt{\sqrt{\frac{1}{\sqrt{\log 10}}}} \cdot \frac{{\left(\sqrt{\sqrt{\frac{1}{\sqrt{\log 10}}}}\right)}^{3} \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le 5.905921114591229872182552907648628199056 \cdot 10^{-176}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\\
\mathbf{elif}\;re \le 6.472106043627502342156948650503796470752 \cdot 10^{127}:\\
\;\;\;\;\sqrt{\sqrt{\frac{1}{\sqrt{\log 10}}}} \cdot \frac{{\left(\sqrt{\sqrt{\frac{1}{\sqrt{\log 10}}}}\right)}^{3} \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\left(\log re \cdot \sqrt{\frac{1}{\log 10}}\right) \cdot \frac{1}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r49195 = re;
double r49196 = r49195 * r49195;
double r49197 = im;
double r49198 = r49197 * r49197;
double r49199 = r49196 + r49198;
double r49200 = sqrt(r49199);
double r49201 = log(r49200);
double r49202 = 10.0;
double r49203 = log(r49202);
double r49204 = r49201 / r49203;
return r49204;
}
double f(double re, double im) {
double r49205 = re;
double r49206 = -1.2400826895216458e+136;
bool r49207 = r49205 <= r49206;
double r49208 = -1.0;
double r49209 = 10.0;
double r49210 = log(r49209);
double r49211 = sqrt(r49210);
double r49212 = r49208 / r49211;
double r49213 = r49208 / r49205;
double r49214 = log(r49213);
double r49215 = 1.0;
double r49216 = r49215 / r49210;
double r49217 = sqrt(r49216);
double r49218 = r49214 * r49217;
double r49219 = r49212 * r49218;
double r49220 = 2.758027754679776e-281;
bool r49221 = r49205 <= r49220;
double r49222 = r49215 / r49211;
double r49223 = sqrt(r49222);
double r49224 = sqrt(r49223);
double r49225 = 3.0;
double r49226 = pow(r49224, r49225);
double r49227 = r49205 * r49205;
double r49228 = im;
double r49229 = r49228 * r49228;
double r49230 = r49227 + r49229;
double r49231 = sqrt(r49230);
double r49232 = log(r49231);
double r49233 = r49226 * r49232;
double r49234 = r49233 / r49211;
double r49235 = r49224 * r49234;
double r49236 = 5.90592111459123e-176;
bool r49237 = r49205 <= r49236;
double r49238 = log(r49228);
double r49239 = r49238 * r49217;
double r49240 = r49222 * r49239;
double r49241 = 6.472106043627502e+127;
bool r49242 = r49205 <= r49241;
double r49243 = log(r49205);
double r49244 = r49243 * r49217;
double r49245 = r49244 * r49222;
double r49246 = r49242 ? r49235 : r49245;
double r49247 = r49237 ? r49240 : r49246;
double r49248 = r49221 ? r49235 : r49247;
double r49249 = r49207 ? r49219 : r49248;
return r49249;
}



Bits error versus re



Bits error versus im
Results
if re < -1.2400826895216458e+136Initial program 58.5
rmApplied add-sqr-sqrt58.5
Applied pow158.5
Applied log-pow58.5
Applied times-frac58.5
Taylor expanded around -inf 7.9
Simplified7.9
if -1.2400826895216458e+136 < re < 2.758027754679776e-281 or 5.90592111459123e-176 < re < 6.472106043627502e+127Initial program 20.3
rmApplied add-sqr-sqrt20.3
Applied pow120.3
Applied log-pow20.3
Applied times-frac20.3
rmApplied add-sqr-sqrt20.3
Applied associate-*l*20.4
rmApplied add-sqr-sqrt20.4
Applied sqrt-prod20.2
Applied associate-*l*20.2
rmApplied associate-*r/20.2
Applied associate-*r/20.2
Simplified20.2
if 2.758027754679776e-281 < re < 5.90592111459123e-176Initial program 32.1
rmApplied add-sqr-sqrt32.1
Applied pow132.1
Applied log-pow32.1
Applied times-frac32.1
Taylor expanded around 0 35.0
if 6.472106043627502e+127 < re Initial program 57.1
rmApplied add-sqr-sqrt57.1
Applied pow157.1
Applied log-pow57.1
Applied times-frac57.1
Taylor expanded around inf 7.5
Simplified7.5
Final simplification17.8
herbie shell --seed 2019212
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))