\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}\frac{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r2708851 = im;
double r2708852 = re;
double r2708853 = atan2(r2708851, r2708852);
double r2708854 = base;
double r2708855 = log(r2708854);
double r2708856 = r2708853 * r2708855;
double r2708857 = r2708852 * r2708852;
double r2708858 = r2708851 * r2708851;
double r2708859 = r2708857 + r2708858;
double r2708860 = sqrt(r2708859);
double r2708861 = log(r2708860);
double r2708862 = 0.0;
double r2708863 = r2708861 * r2708862;
double r2708864 = r2708856 - r2708863;
double r2708865 = r2708855 * r2708855;
double r2708866 = r2708862 * r2708862;
double r2708867 = r2708865 + r2708866;
double r2708868 = r2708864 / r2708867;
return r2708868;
}
double f(double re, double im, double base) {
double r2708869 = im;
double r2708870 = re;
double r2708871 = atan2(r2708869, r2708870);
double r2708872 = base;
double r2708873 = log(r2708872);
double r2708874 = r2708871 / r2708873;
return r2708874;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 32.0
Simplified0.4
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019169 +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.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))