\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 r2023731 = im;
double r2023732 = re;
double r2023733 = atan2(r2023731, r2023732);
double r2023734 = base;
double r2023735 = log(r2023734);
double r2023736 = r2023733 * r2023735;
double r2023737 = r2023732 * r2023732;
double r2023738 = r2023731 * r2023731;
double r2023739 = r2023737 + r2023738;
double r2023740 = sqrt(r2023739);
double r2023741 = log(r2023740);
double r2023742 = 0.0;
double r2023743 = r2023741 * r2023742;
double r2023744 = r2023736 - r2023743;
double r2023745 = r2023735 * r2023735;
double r2023746 = r2023742 * r2023742;
double r2023747 = r2023745 + r2023746;
double r2023748 = r2023744 / r2023747;
return r2023748;
}
double f(double re, double im, double base) {
double r2023749 = im;
double r2023750 = re;
double r2023751 = atan2(r2023749, r2023750);
double r2023752 = base;
double r2023753 = log(r2023752);
double r2023754 = r2023751 / r2023753;
return r2023754;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.1
Simplified0.3
rmApplied div-inv0.4
rmApplied *-un-lft-identity0.4
Applied associate-*l*0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2019146 +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))))