\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\frac{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r1767146 = im;
double r1767147 = re;
double r1767148 = atan2(r1767146, r1767147);
double r1767149 = base;
double r1767150 = log(r1767149);
double r1767151 = r1767148 * r1767150;
double r1767152 = r1767147 * r1767147;
double r1767153 = r1767146 * r1767146;
double r1767154 = r1767152 + r1767153;
double r1767155 = sqrt(r1767154);
double r1767156 = log(r1767155);
double r1767157 = 0.0;
double r1767158 = r1767156 * r1767157;
double r1767159 = r1767151 - r1767158;
double r1767160 = r1767150 * r1767150;
double r1767161 = r1767157 * r1767157;
double r1767162 = r1767160 + r1767161;
double r1767163 = r1767159 / r1767162;
return r1767163;
}
double f(double re, double im, double base) {
double r1767164 = im;
double r1767165 = re;
double r1767166 = atan2(r1767164, r1767165);
double r1767167 = base;
double r1767168 = log(r1767167);
double r1767169 = r1767166 / r1767168;
return r1767169;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 30.7
Simplified0.3
Final simplification0.3
herbie shell --seed 2019162 +o rules:numerics
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))))