\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -6.8846914672875272 \cdot 10^{72}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\mathbf{elif}\;re \le -6.10111052612686754 \cdot 10^{-93}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le -3.3124292600034948 \cdot 10^{-125}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\mathbf{elif}\;re \le 45288348782303.5859:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \log \left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\end{array}double f(double re, double im) {
double r58168 = re;
double r58169 = r58168 * r58168;
double r58170 = im;
double r58171 = r58170 * r58170;
double r58172 = r58169 + r58171;
double r58173 = sqrt(r58172);
double r58174 = log(r58173);
double r58175 = 10.0;
double r58176 = log(r58175);
double r58177 = r58174 / r58176;
return r58177;
}
double f(double re, double im) {
double r58178 = re;
double r58179 = -6.884691467287527e+72;
bool r58180 = r58178 <= r58179;
double r58181 = 0.5;
double r58182 = 10.0;
double r58183 = log(r58182);
double r58184 = sqrt(r58183);
double r58185 = r58181 / r58184;
double r58186 = -2.0;
double r58187 = -1.0;
double r58188 = r58187 / r58178;
double r58189 = log(r58188);
double r58190 = 1.0;
double r58191 = r58190 / r58183;
double r58192 = sqrt(r58191);
double r58193 = r58189 * r58192;
double r58194 = r58186 * r58193;
double r58195 = r58185 * r58194;
double r58196 = -6.1011105261268675e-93;
bool r58197 = r58178 <= r58196;
double r58198 = r58178 * r58178;
double r58199 = im;
double r58200 = r58199 * r58199;
double r58201 = r58198 + r58200;
double r58202 = r58190 / r58184;
double r58203 = pow(r58201, r58202);
double r58204 = log(r58203);
double r58205 = r58185 * r58204;
double r58206 = -3.312429260003495e-125;
bool r58207 = r58178 <= r58206;
double r58208 = 2.0;
double r58209 = log(r58199);
double r58210 = r58209 * r58192;
double r58211 = r58208 * r58210;
double r58212 = r58185 * r58211;
double r58213 = 45288348782303.586;
bool r58214 = r58178 <= r58213;
double r58215 = r58190 / r58178;
double r58216 = log(r58215);
double r58217 = r58216 * r58192;
double r58218 = r58186 * r58217;
double r58219 = r58185 * r58218;
double r58220 = r58214 ? r58205 : r58219;
double r58221 = r58207 ? r58212 : r58220;
double r58222 = r58197 ? r58205 : r58221;
double r58223 = r58180 ? r58195 : r58222;
return r58223;
}



Bits error versus re



Bits error versus im
Results
if re < -6.884691467287527e+72Initial program 47.5
rmApplied add-sqr-sqrt47.5
Applied pow1/247.5
Applied log-pow47.5
Applied times-frac47.5
Taylor expanded around -inf 11.1
if -6.884691467287527e+72 < re < -6.1011105261268675e-93 or -3.312429260003495e-125 < re < 45288348782303.586Initial program 23.4
rmApplied add-sqr-sqrt23.4
Applied pow1/223.4
Applied log-pow23.4
Applied times-frac23.3
rmApplied add-log-exp23.3
Simplified23.2
if -6.1011105261268675e-93 < re < -3.312429260003495e-125Initial program 18.1
rmApplied add-sqr-sqrt18.1
Applied pow1/218.1
Applied log-pow18.1
Applied times-frac18.0
Taylor expanded around 0 38.5
if 45288348782303.586 < re Initial program 42.3
rmApplied add-sqr-sqrt42.3
Applied pow1/242.3
Applied log-pow42.3
Applied times-frac42.3
Taylor expanded around inf 12.9
Final simplification18.8
herbie shell --seed 2020083
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))