Average Error: 30.8 → 0.3
Time: 2.6m
Precision: 64
\[\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}\]
\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 r2002949 = im;
        double r2002950 = re;
        double r2002951 = atan2(r2002949, r2002950);
        double r2002952 = base;
        double r2002953 = log(r2002952);
        double r2002954 = r2002951 * r2002953;
        double r2002955 = r2002950 * r2002950;
        double r2002956 = r2002949 * r2002949;
        double r2002957 = r2002955 + r2002956;
        double r2002958 = sqrt(r2002957);
        double r2002959 = log(r2002958);
        double r2002960 = 0.0;
        double r2002961 = r2002959 * r2002960;
        double r2002962 = r2002954 - r2002961;
        double r2002963 = r2002953 * r2002953;
        double r2002964 = r2002960 * r2002960;
        double r2002965 = r2002963 + r2002964;
        double r2002966 = r2002962 / r2002965;
        return r2002966;
}

double f(double re, double im, double base) {
        double r2002967 = im;
        double r2002968 = re;
        double r2002969 = atan2(r2002967, r2002968);
        double r2002970 = base;
        double r2002971 = log(r2002970);
        double r2002972 = r2002969 / r2002971;
        return r2002972;
}

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 30.8

    \[\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}\]
  2. Simplified0.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 2019152 +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))))