\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 -1.6633647338752457 \cdot 10^{+69}:\\
\;\;\;\;\frac{0 \cdot \tan^{-1}_* \frac{im}{re} + \log base \cdot \log \left(-re\right)}{\log base \cdot \log base}\\
\mathbf{elif}\;re \le 3.581675146123889 \cdot 10^{-235}:\\
\;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left|\log base\right|}}{\sqrt{\log base \cdot \log base}}\\
\mathbf{elif}\;re \le 6.649021261519885 \cdot 10^{-193}:\\
\;\;\;\;\frac{\log im}{\log base}\\
\mathbf{elif}\;re \le 7.455578618187527 \cdot 10^{+81}:\\
\;\;\;\;\left(\frac{\log base}{\log base \cdot \log base} \cdot \frac{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)}\right) \cdot \left(\left(\log base \cdot \log base\right) \cdot 0 + \left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-\frac{\log base}{\frac{\left|\log base\right|}{-\log re}}}{\sqrt{\log base \cdot \log base}}\\
\end{array}double f(double re, double im, double base) {
double r862172 = re;
double r862173 = r862172 * r862172;
double r862174 = im;
double r862175 = r862174 * r862174;
double r862176 = r862173 + r862175;
double r862177 = sqrt(r862176);
double r862178 = log(r862177);
double r862179 = base;
double r862180 = log(r862179);
double r862181 = r862178 * r862180;
double r862182 = atan2(r862174, r862172);
double r862183 = 0.0;
double r862184 = r862182 * r862183;
double r862185 = r862181 + r862184;
double r862186 = r862180 * r862180;
double r862187 = r862183 * r862183;
double r862188 = r862186 + r862187;
double r862189 = r862185 / r862188;
return r862189;
}
double f(double re, double im, double base) {
double r862190 = re;
double r862191 = -1.6633647338752457e+69;
bool r862192 = r862190 <= r862191;
double r862193 = 0.0;
double r862194 = im;
double r862195 = atan2(r862194, r862190);
double r862196 = r862193 * r862195;
double r862197 = base;
double r862198 = log(r862197);
double r862199 = -r862190;
double r862200 = log(r862199);
double r862201 = r862198 * r862200;
double r862202 = r862196 + r862201;
double r862203 = r862198 * r862198;
double r862204 = r862202 / r862203;
double r862205 = 3.581675146123889e-235;
bool r862206 = r862190 <= r862205;
double r862207 = r862194 * r862194;
double r862208 = r862190 * r862190;
double r862209 = r862207 + r862208;
double r862210 = sqrt(r862209);
double r862211 = log(r862210);
double r862212 = r862198 * r862211;
double r862213 = fabs(r862198);
double r862214 = r862212 / r862213;
double r862215 = sqrt(r862203);
double r862216 = r862214 / r862215;
double r862217 = 6.649021261519885e-193;
bool r862218 = r862190 <= r862217;
double r862219 = log(r862194);
double r862220 = r862219 / r862198;
double r862221 = 7.455578618187527e+81;
bool r862222 = r862190 <= r862221;
double r862223 = r862198 / r862203;
double r862224 = r862203 * r862203;
double r862225 = r862211 / r862224;
double r862226 = r862223 * r862225;
double r862227 = r862203 * r862193;
double r862228 = r862227 + r862224;
double r862229 = r862226 * r862228;
double r862230 = log(r862190);
double r862231 = -r862230;
double r862232 = r862213 / r862231;
double r862233 = r862198 / r862232;
double r862234 = -r862233;
double r862235 = r862234 / r862215;
double r862236 = r862222 ? r862229 : r862235;
double r862237 = r862218 ? r862220 : r862236;
double r862238 = r862206 ? r862216 : r862237;
double r862239 = r862192 ? r862204 : r862238;
return r862239;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -1.6633647338752457e+69Initial program 45.9
Taylor expanded around -inf 9.9
Simplified9.9
if -1.6633647338752457e+69 < re < 3.581675146123889e-235Initial program 22.0
rmApplied add-sqr-sqrt22.0
Applied associate-/r*21.9
Simplified21.9
if 3.581675146123889e-235 < re < 6.649021261519885e-193Initial program 32.8
Simplified32.8
rmApplied div-inv32.8
Taylor expanded around 0 30.1
if 6.649021261519885e-193 < re < 7.455578618187527e+81Initial program 17.7
rmApplied flip3-+17.8
Applied associate-/r/17.8
Simplified17.7
if 7.455578618187527e+81 < re Initial program 47.3
rmApplied add-sqr-sqrt47.3
Applied associate-/r*47.3
Simplified47.3
Taylor expanded around inf 9.2
Simplified9.2
Final simplification16.6
herbie shell --seed 2019153
(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))))