\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 r1291247 = re;
double r1291248 = r1291247 * r1291247;
double r1291249 = im;
double r1291250 = r1291249 * r1291249;
double r1291251 = r1291248 + r1291250;
double r1291252 = sqrt(r1291251);
double r1291253 = log(r1291252);
double r1291254 = base;
double r1291255 = log(r1291254);
double r1291256 = r1291253 * r1291255;
double r1291257 = atan2(r1291249, r1291247);
double r1291258 = 0.0;
double r1291259 = r1291257 * r1291258;
double r1291260 = r1291256 + r1291259;
double r1291261 = r1291255 * r1291255;
double r1291262 = r1291258 * r1291258;
double r1291263 = r1291261 + r1291262;
double r1291264 = r1291260 / r1291263;
return r1291264;
}
double f(double re, double im, double base) {
double r1291265 = re;
double r1291266 = im;
double r1291267 = hypot(r1291265, r1291266);
double r1291268 = log(r1291267);
double r1291269 = base;
double r1291270 = log(r1291269);
double r1291271 = r1291268 / r1291270;
return r1291271;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019135 +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))))