Average Error: 31.4 → 0.3
Time: 19.0s
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{\tan^{-1}_* \frac{im}{re}}{\log base}\]
\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 r1922950 = im;
        double r1922951 = re;
        double r1922952 = atan2(r1922950, r1922951);
        double r1922953 = base;
        double r1922954 = log(r1922953);
        double r1922955 = r1922952 * r1922954;
        double r1922956 = r1922951 * r1922951;
        double r1922957 = r1922950 * r1922950;
        double r1922958 = r1922956 + r1922957;
        double r1922959 = sqrt(r1922958);
        double r1922960 = log(r1922959);
        double r1922961 = 0.0;
        double r1922962 = r1922960 * r1922961;
        double r1922963 = r1922955 - r1922962;
        double r1922964 = r1922954 * r1922954;
        double r1922965 = r1922961 * r1922961;
        double r1922966 = r1922964 + r1922965;
        double r1922967 = r1922963 / r1922966;
        return r1922967;
}

double f(double re, double im, double base) {
        double r1922968 = im;
        double r1922969 = re;
        double r1922970 = atan2(r1922968, r1922969);
        double r1922971 = base;
        double r1922972 = log(r1922971);
        double r1922973 = r1922970 / r1922972;
        return r1922973;
}

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 31.4

    \[\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. Final simplification0.3

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

Reproduce

herbie shell --seed 2019179 
(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))))