\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\begin{array}{l}
\mathbf{if}\;re \le -2.64611237521982681 \cdot 10^{91}:\\
\;\;\;\;\frac{\frac{\log \left(-1 \cdot re\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\
\mathbf{elif}\;re \le 2.5876152026746802 \cdot 10^{-272}:\\
\;\;\;\;\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\sqrt[3]{{\left(\log base\right)}^{6}} + 0.0 \cdot 0.0}}\\
\mathbf{elif}\;re \le 3.9287804843970234 \cdot 10^{-231}:\\
\;\;\;\;\frac{\log im}{\log base}\\
\mathbf{elif}\;re \le 3.3307607333950567 \cdot 10^{116}:\\
\;\;\;\;\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}}}{\sqrt{\sqrt[3]{{\left(\log base\right)}^{6}} + 0.0 \cdot 0.0}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}\\
\end{array}double f(double re, double im, double base) {
double r43179 = re;
double r43180 = r43179 * r43179;
double r43181 = im;
double r43182 = r43181 * r43181;
double r43183 = r43180 + r43182;
double r43184 = sqrt(r43183);
double r43185 = log(r43184);
double r43186 = base;
double r43187 = log(r43186);
double r43188 = r43185 * r43187;
double r43189 = atan2(r43181, r43179);
double r43190 = 0.0;
double r43191 = r43189 * r43190;
double r43192 = r43188 + r43191;
double r43193 = r43187 * r43187;
double r43194 = r43190 * r43190;
double r43195 = r43193 + r43194;
double r43196 = r43192 / r43195;
return r43196;
}
double f(double re, double im, double base) {
double r43197 = re;
double r43198 = -2.6461123752198268e+91;
bool r43199 = r43197 <= r43198;
double r43200 = -1.0;
double r43201 = r43200 * r43197;
double r43202 = log(r43201);
double r43203 = base;
double r43204 = log(r43203);
double r43205 = r43202 * r43204;
double r43206 = im;
double r43207 = atan2(r43206, r43197);
double r43208 = 0.0;
double r43209 = r43207 * r43208;
double r43210 = r43205 + r43209;
double r43211 = r43204 * r43204;
double r43212 = r43208 * r43208;
double r43213 = r43211 + r43212;
double r43214 = sqrt(r43213);
double r43215 = r43210 / r43214;
double r43216 = r43215 / r43214;
double r43217 = 2.5876152026746802e-272;
bool r43218 = r43197 <= r43217;
double r43219 = r43197 * r43197;
double r43220 = r43206 * r43206;
double r43221 = r43219 + r43220;
double r43222 = sqrt(r43221);
double r43223 = log(r43222);
double r43224 = r43223 * r43204;
double r43225 = r43224 + r43209;
double r43226 = r43225 / r43214;
double r43227 = 6.0;
double r43228 = pow(r43204, r43227);
double r43229 = cbrt(r43228);
double r43230 = r43229 + r43212;
double r43231 = sqrt(r43230);
double r43232 = r43226 / r43231;
double r43233 = 3.9287804843970234e-231;
bool r43234 = r43197 <= r43233;
double r43235 = log(r43206);
double r43236 = r43235 / r43204;
double r43237 = 3.330760733395057e+116;
bool r43238 = r43197 <= r43237;
double r43239 = 2.0;
double r43240 = cbrt(r43203);
double r43241 = log(r43240);
double r43242 = r43239 * r43241;
double r43243 = r43204 * r43242;
double r43244 = r43204 * r43241;
double r43245 = r43243 + r43244;
double r43246 = r43245 + r43212;
double r43247 = sqrt(r43246);
double r43248 = r43225 / r43247;
double r43249 = r43248 / r43231;
double r43250 = 1.0;
double r43251 = r43250 / r43197;
double r43252 = log(r43251);
double r43253 = r43250 / r43203;
double r43254 = log(r43253);
double r43255 = r43252 / r43254;
double r43256 = r43238 ? r43249 : r43255;
double r43257 = r43234 ? r43236 : r43256;
double r43258 = r43218 ? r43232 : r43257;
double r43259 = r43199 ? r43216 : r43258;
return r43259;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -2.6461123752198268e+91Initial program 49.2
rmApplied add-sqr-sqrt49.2
Applied associate-/r*49.2
Taylor expanded around -inf 8.9
if -2.6461123752198268e+91 < re < 2.5876152026746802e-272Initial program 22.1
rmApplied add-sqr-sqrt22.1
Applied associate-/r*22.1
rmApplied add-cbrt-cube22.2
Applied add-cbrt-cube22.3
Applied cbrt-unprod22.2
Simplified22.1
if 2.5876152026746802e-272 < re < 3.9287804843970234e-231Initial program 34.1
Taylor expanded around 0 33.8
if 3.9287804843970234e-231 < re < 3.330760733395057e+116Initial program 19.1
rmApplied add-sqr-sqrt19.1
Applied associate-/r*19.0
rmApplied add-cbrt-cube19.1
Applied add-cbrt-cube19.2
Applied cbrt-unprod19.1
Simplified19.1
rmApplied add-cube-cbrt19.1
Applied log-prod19.1
Applied distribute-lft-in19.1
Simplified19.1
if 3.330760733395057e+116 < re Initial program 55.2
Taylor expanded around inf 8.2
Final simplification17.2
herbie shell --seed 2020035
(FPCore (re im base)
:name "math.log/2 on complex, real part"
:precision binary64
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))