Average Error: 32.0 → 0.4
Time: 18.6s
Precision: 64
\[\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{1}{\log base} \cdot \tan^{-1}_* \frac{im}{re}\]
\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{1}{\log base} \cdot \tan^{-1}_* \frac{im}{re}
double f(double re, double im, double base) {
        double r2093956 = im;
        double r2093957 = re;
        double r2093958 = atan2(r2093956, r2093957);
        double r2093959 = base;
        double r2093960 = log(r2093959);
        double r2093961 = r2093958 * r2093960;
        double r2093962 = r2093957 * r2093957;
        double r2093963 = r2093956 * r2093956;
        double r2093964 = r2093962 + r2093963;
        double r2093965 = sqrt(r2093964);
        double r2093966 = log(r2093965);
        double r2093967 = 0.0;
        double r2093968 = r2093966 * r2093967;
        double r2093969 = r2093961 - r2093968;
        double r2093970 = r2093960 * r2093960;
        double r2093971 = r2093967 * r2093967;
        double r2093972 = r2093970 + r2093971;
        double r2093973 = r2093969 / r2093972;
        return r2093973;
}

double f(double re, double im, double base) {
        double r2093974 = 1.0;
        double r2093975 = base;
        double r2093976 = log(r2093975);
        double r2093977 = r2093974 / r2093976;
        double r2093978 = im;
        double r2093979 = re;
        double r2093980 = atan2(r2093978, r2093979);
        double r2093981 = r2093977 * r2093980;
        return r2093981;
}

Error

Bits error versus re

Bits error versus im

Bits error versus base

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 32.0

    \[\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}\]
  2. Taylor expanded around 0 0.3

    \[\leadsto \color{blue}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base}}\]
  3. Using strategy rm
  4. Applied div-inv0.4

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{im}{re} \cdot \frac{1}{\log base}}\]
  5. Final simplification0.4

    \[\leadsto \frac{1}{\log base} \cdot \tan^{-1}_* \frac{im}{re}\]

Reproduce

herbie shell --seed 2019192 
(FPCore (re im base)
  :name "math.log/2 on complex, imaginary part"
  (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))