\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\frac{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r1959236 = im;
double r1959237 = re;
double r1959238 = atan2(r1959236, r1959237);
double r1959239 = base;
double r1959240 = log(r1959239);
double r1959241 = r1959238 * r1959240;
double r1959242 = r1959237 * r1959237;
double r1959243 = r1959236 * r1959236;
double r1959244 = r1959242 + r1959243;
double r1959245 = sqrt(r1959244);
double r1959246 = log(r1959245);
double r1959247 = 0.0;
double r1959248 = r1959246 * r1959247;
double r1959249 = r1959241 - r1959248;
double r1959250 = r1959240 * r1959240;
double r1959251 = r1959247 * r1959247;
double r1959252 = r1959250 + r1959251;
double r1959253 = r1959249 / r1959252;
return r1959253;
}
double f(double re, double im, double base) {
double r1959254 = im;
double r1959255 = re;
double r1959256 = atan2(r1959254, r1959255);
double r1959257 = base;
double r1959258 = log(r1959257);
double r1959259 = r1959256 / r1959258;
return r1959259;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2019164
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))))