\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 r2061086 = im;
double r2061087 = re;
double r2061088 = atan2(r2061086, r2061087);
double r2061089 = base;
double r2061090 = log(r2061089);
double r2061091 = r2061088 * r2061090;
double r2061092 = r2061087 * r2061087;
double r2061093 = r2061086 * r2061086;
double r2061094 = r2061092 + r2061093;
double r2061095 = sqrt(r2061094);
double r2061096 = log(r2061095);
double r2061097 = 0.0;
double r2061098 = r2061096 * r2061097;
double r2061099 = r2061091 - r2061098;
double r2061100 = r2061090 * r2061090;
double r2061101 = r2061097 * r2061097;
double r2061102 = r2061100 + r2061101;
double r2061103 = r2061099 / r2061102;
return r2061103;
}
double f(double re, double im, double base) {
double r2061104 = im;
double r2061105 = re;
double r2061106 = atan2(r2061104, r2061105);
double r2061107 = base;
double r2061108 = log(r2061107);
double r2061109 = r2061106 / r2061108;
return r2061109;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.5
Simplified0.3
Final simplification0.3
herbie shell --seed 2019168 +o rules:numerics
(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))))