\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 r902843 = im;
double r902844 = re;
double r902845 = atan2(r902843, r902844);
double r902846 = base;
double r902847 = log(r902846);
double r902848 = r902845 * r902847;
double r902849 = r902844 * r902844;
double r902850 = r902843 * r902843;
double r902851 = r902849 + r902850;
double r902852 = sqrt(r902851);
double r902853 = log(r902852);
double r902854 = 0.0;
double r902855 = r902853 * r902854;
double r902856 = r902848 - r902855;
double r902857 = r902847 * r902847;
double r902858 = r902854 * r902854;
double r902859 = r902857 + r902858;
double r902860 = r902856 / r902859;
return r902860;
}
double f(double re, double im, double base) {
double r902861 = im;
double r902862 = re;
double r902863 = atan2(r902861, r902862);
double r902864 = base;
double r902865 = log(r902864);
double r902866 = r902863 / r902865;
return r902866;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.2
Simplified0.3
Final simplification0.3
herbie shell --seed 2019156
(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))))