\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left(e^{\log \left({base}^{\frac{1}{3}}\right)}\right) + \log \left(\frac{1}{\sqrt[3]{base}}\right)}double f(double re, double im, double base) {
double r99161 = im;
double r99162 = re;
double r99163 = atan2(r99161, r99162);
double r99164 = base;
double r99165 = log(r99164);
double r99166 = r99163 * r99165;
double r99167 = r99162 * r99162;
double r99168 = r99161 * r99161;
double r99169 = r99167 + r99168;
double r99170 = sqrt(r99169);
double r99171 = log(r99170);
double r99172 = 0.0;
double r99173 = r99171 * r99172;
double r99174 = r99166 - r99173;
double r99175 = r99165 * r99165;
double r99176 = r99172 * r99172;
double r99177 = r99175 + r99176;
double r99178 = r99174 / r99177;
return r99178;
}
double f(double re, double im, double base) {
double r99179 = -1.0;
double r99180 = im;
double r99181 = re;
double r99182 = atan2(r99180, r99181);
double r99183 = 2.0;
double r99184 = -r99183;
double r99185 = base;
double r99186 = 0.3333333333333333;
double r99187 = pow(r99185, r99186);
double r99188 = log(r99187);
double r99189 = exp(r99188);
double r99190 = log(r99189);
double r99191 = r99184 * r99190;
double r99192 = 1.0;
double r99193 = cbrt(r99185);
double r99194 = r99192 / r99193;
double r99195 = log(r99194);
double r99196 = r99191 + r99195;
double r99197 = r99182 / r99196;
double r99198 = r99179 * r99197;
return r99198;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.9
Taylor expanded around inf 0.3
rmApplied add-cube-cbrt0.3
Applied add-cube-cbrt0.3
Applied times-frac0.3
Applied log-prod0.4
Simplified0.4
Simplified0.4
rmApplied add-exp-log0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020047 +o rules:numerics
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
:precision binary64
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))