\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\begin{array}{l}
\mathbf{if}\;re \le -9.275512899723917 \cdot 10^{+106}:\\
\;\;\;\;\frac{\log \left(\frac{-1}{re}\right)}{\log base} \cdot -1\\
\mathbf{elif}\;re \le -1.361373372799871 \cdot 10^{-285}:\\
\;\;\;\;\frac{1}{\frac{\log base}{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}}\\
\mathbf{elif}\;re \le 1.7444208998420076 \cdot 10^{-211}:\\
\;\;\;\;\frac{1}{\frac{\log base}{\log im}}\\
\mathbf{elif}\;re \le 1.0886698489818444 \cdot 10^{+124}:\\
\;\;\;\;\frac{1}{\frac{\log base}{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log base \cdot \log re}{\log base \cdot \log base}\\
\end{array}double f(double re, double im, double base) {
double r2484219 = re;
double r2484220 = r2484219 * r2484219;
double r2484221 = im;
double r2484222 = r2484221 * r2484221;
double r2484223 = r2484220 + r2484222;
double r2484224 = sqrt(r2484223);
double r2484225 = log(r2484224);
double r2484226 = base;
double r2484227 = log(r2484226);
double r2484228 = r2484225 * r2484227;
double r2484229 = atan2(r2484221, r2484219);
double r2484230 = 0.0;
double r2484231 = r2484229 * r2484230;
double r2484232 = r2484228 + r2484231;
double r2484233 = r2484227 * r2484227;
double r2484234 = r2484230 * r2484230;
double r2484235 = r2484233 + r2484234;
double r2484236 = r2484232 / r2484235;
return r2484236;
}
double f(double re, double im, double base) {
double r2484237 = re;
double r2484238 = -9.275512899723917e+106;
bool r2484239 = r2484237 <= r2484238;
double r2484240 = -1.0;
double r2484241 = r2484240 / r2484237;
double r2484242 = log(r2484241);
double r2484243 = base;
double r2484244 = log(r2484243);
double r2484245 = r2484242 / r2484244;
double r2484246 = r2484245 * r2484240;
double r2484247 = -1.361373372799871e-285;
bool r2484248 = r2484237 <= r2484247;
double r2484249 = 1.0;
double r2484250 = im;
double r2484251 = r2484250 * r2484250;
double r2484252 = r2484237 * r2484237;
double r2484253 = r2484251 + r2484252;
double r2484254 = sqrt(r2484253);
double r2484255 = log(r2484254);
double r2484256 = r2484244 / r2484255;
double r2484257 = r2484249 / r2484256;
double r2484258 = 1.7444208998420076e-211;
bool r2484259 = r2484237 <= r2484258;
double r2484260 = log(r2484250);
double r2484261 = r2484244 / r2484260;
double r2484262 = r2484249 / r2484261;
double r2484263 = 1.0886698489818444e+124;
bool r2484264 = r2484237 <= r2484263;
double r2484265 = log(r2484237);
double r2484266 = r2484244 * r2484265;
double r2484267 = r2484244 * r2484244;
double r2484268 = r2484266 / r2484267;
double r2484269 = r2484264 ? r2484257 : r2484268;
double r2484270 = r2484259 ? r2484262 : r2484269;
double r2484271 = r2484248 ? r2484257 : r2484270;
double r2484272 = r2484239 ? r2484246 : r2484271;
return r2484272;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -9.275512899723917e+106Initial program 51.0
Simplified51.0
Taylor expanded around -inf 62.8
Simplified9.1
if -9.275512899723917e+106 < re < -1.361373372799871e-285 or 1.7444208998420076e-211 < re < 1.0886698489818444e+124Initial program 19.1
Simplified19.1
rmApplied clear-num19.1
Simplified19.1
if -1.361373372799871e-285 < re < 1.7444208998420076e-211Initial program 30.8
Simplified30.8
rmApplied clear-num30.8
Simplified30.7
Taylor expanded around 0 33.5
if 1.0886698489818444e+124 < re Initial program 54.2
Simplified54.2
Taylor expanded around inf 8.1
Final simplification17.2
herbie shell --seed 2019143
(FPCore (re im base)
:name "math.log/2 on complex, real part"
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))))