\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\frac{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r26646 = im;
double r26647 = re;
double r26648 = atan2(r26646, r26647);
double r26649 = base;
double r26650 = log(r26649);
double r26651 = r26648 * r26650;
double r26652 = r26647 * r26647;
double r26653 = r26646 * r26646;
double r26654 = r26652 + r26653;
double r26655 = sqrt(r26654);
double r26656 = log(r26655);
double r26657 = 0.0;
double r26658 = r26656 * r26657;
double r26659 = r26651 - r26658;
double r26660 = r26650 * r26650;
double r26661 = r26657 * r26657;
double r26662 = r26660 + r26661;
double r26663 = r26659 / r26662;
return r26663;
}
double f(double re, double im, double base) {
double r26664 = im;
double r26665 = re;
double r26666 = atan2(r26664, r26665);
double r26667 = base;
double r26668 = log(r26667);
double r26669 = r26666 / r26668;
return r26669;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019323
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
:precision binary64
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))