\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(\left(\sqrt[3]{\sqrt{\mathsf{hypot}\left(re, im\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{hypot}\left(re, im\right)}}\right) \cdot \left(\sqrt{\mathsf{hypot}\left(re, im\right)} \cdot \sqrt[3]{\sqrt{\mathsf{hypot}\left(re, im\right)}}\right)\right)}{\log base}double f(double re, double im, double base) {
double r1291969 = re;
double r1291970 = r1291969 * r1291969;
double r1291971 = im;
double r1291972 = r1291971 * r1291971;
double r1291973 = r1291970 + r1291972;
double r1291974 = sqrt(r1291973);
double r1291975 = log(r1291974);
double r1291976 = base;
double r1291977 = log(r1291976);
double r1291978 = r1291975 * r1291977;
double r1291979 = atan2(r1291971, r1291969);
double r1291980 = 0.0;
double r1291981 = r1291979 * r1291980;
double r1291982 = r1291978 + r1291981;
double r1291983 = r1291977 * r1291977;
double r1291984 = r1291980 * r1291980;
double r1291985 = r1291983 + r1291984;
double r1291986 = r1291982 / r1291985;
return r1291986;
}
double f(double re, double im, double base) {
double r1291987 = re;
double r1291988 = im;
double r1291989 = hypot(r1291987, r1291988);
double r1291990 = sqrt(r1291989);
double r1291991 = cbrt(r1291990);
double r1291992 = r1291991 * r1291991;
double r1291993 = r1291990 * r1291991;
double r1291994 = r1291992 * r1291993;
double r1291995 = log(r1291994);
double r1291996 = base;
double r1291997 = log(r1291996);
double r1291998 = r1291995 / r1291997;
return r1291998;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 30.5
Simplified0.4
rmApplied add-sqr-sqrt0.4
rmApplied add-cube-cbrt0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019152 +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))))