\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\frac{\log \left(\mathsf{hypot}\left(re, im\right)\right)}{\log base}double f(double re, double im, double base) {
double r1151844 = re;
double r1151845 = r1151844 * r1151844;
double r1151846 = im;
double r1151847 = r1151846 * r1151846;
double r1151848 = r1151845 + r1151847;
double r1151849 = sqrt(r1151848);
double r1151850 = log(r1151849);
double r1151851 = base;
double r1151852 = log(r1151851);
double r1151853 = r1151850 * r1151852;
double r1151854 = atan2(r1151846, r1151844);
double r1151855 = 0.0;
double r1151856 = r1151854 * r1151855;
double r1151857 = r1151853 + r1151856;
double r1151858 = r1151852 * r1151852;
double r1151859 = r1151855 * r1151855;
double r1151860 = r1151858 + r1151859;
double r1151861 = r1151857 / r1151860;
return r1151861;
}
double f(double re, double im, double base) {
double r1151862 = re;
double r1151863 = im;
double r1151864 = hypot(r1151862, r1151863);
double r1151865 = log(r1151864);
double r1151866 = base;
double r1151867 = log(r1151866);
double r1151868 = r1151865 / r1151867;
return r1151868;
}



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 2019142 +o rules:numerics
(FPCore (re im base)
:name "math.log/2 on complex, real part"
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))))