\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}\log \left(\sqrt{re^2 + im^2}^*\right) \cdot \frac{1}{\log base}double f(double re, double im, double base) {
double r1246037 = re;
double r1246038 = r1246037 * r1246037;
double r1246039 = im;
double r1246040 = r1246039 * r1246039;
double r1246041 = r1246038 + r1246040;
double r1246042 = sqrt(r1246041);
double r1246043 = log(r1246042);
double r1246044 = base;
double r1246045 = log(r1246044);
double r1246046 = r1246043 * r1246045;
double r1246047 = atan2(r1246039, r1246037);
double r1246048 = 0.0;
double r1246049 = r1246047 * r1246048;
double r1246050 = r1246046 + r1246049;
double r1246051 = r1246045 * r1246045;
double r1246052 = r1246048 * r1246048;
double r1246053 = r1246051 + r1246052;
double r1246054 = r1246050 / r1246053;
return r1246054;
}
double f(double re, double im, double base) {
double r1246055 = re;
double r1246056 = im;
double r1246057 = hypot(r1246055, r1246056);
double r1246058 = log(r1246057);
double r1246059 = 1.0;
double r1246060 = base;
double r1246061 = log(r1246060);
double r1246062 = r1246059 / r1246061;
double r1246063 = r1246058 * r1246062;
return r1246063;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.0
Simplified0.4
rmApplied div-inv0.4
Final simplification0.4
herbie shell --seed 2019104 +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))))