double f(double re, double im, double base) {
double r2468820 = re;
double r2468821 = r2468820 * r2468820;
double r2468822 = im;
double r2468823 = r2468822 * r2468822;
double r2468824 = r2468821 + r2468823;
double r2468825 = sqrt(r2468824);
double r2468826 = log(r2468825);
double r2468827 = base;
double r2468828 = log(r2468827);
double r2468829 = r2468826 * r2468828;
double r2468830 = atan2(r2468822, r2468820);
double r2468831 = 0.0;
double r2468832 = r2468830 * r2468831;
double r2468833 = r2468829 + r2468832;
double r2468834 = r2468828 * r2468828;
double r2468835 = r2468831 * r2468831;
double r2468836 = r2468834 + r2468835;
double r2468837 = r2468833 / r2468836;
return r2468837;
}
double f(double re, double im, double base) {
double r2468838 = 1.0;
double r2468839 = base;
double r2468840 = log(r2468839);
double r2468841 = r2468838 / r2468840;
double r2468842 = re;
double r2468843 = im;
double r2468844 = hypot(r2468842, r2468843);
double r2468845 = log(r2468844);
double r2468846 = r2468838 / r2468845;
double r2468847 = r2468841 / r2468846;
return r2468847;
}
\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{\frac{1}{\log base}}{\frac{1}{\log \left(\sqrt{re^2 + im^2}^*\right)}}


Bits error versus re



Bits error versus im



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