Average Error: 31.4 → 0.6
Time: 2.4m
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{1}{\frac{\log base}{\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}{\log base \cdot \log base + 0 \cdot 0}
\frac{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}
double f(double re, double im, double base) {
        double r1770947 = im;
        double r1770948 = re;
        double r1770949 = atan2(r1770947, r1770948);
        double r1770950 = base;
        double r1770951 = log(r1770950);
        double r1770952 = r1770949 * r1770951;
        double r1770953 = r1770948 * r1770948;
        double r1770954 = r1770947 * r1770947;
        double r1770955 = r1770953 + r1770954;
        double r1770956 = sqrt(r1770955);
        double r1770957 = log(r1770956);
        double r1770958 = 0.0;
        double r1770959 = r1770957 * r1770958;
        double r1770960 = r1770952 - r1770959;
        double r1770961 = r1770951 * r1770951;
        double r1770962 = r1770958 * r1770958;
        double r1770963 = r1770961 + r1770962;
        double r1770964 = r1770960 / r1770963;
        return r1770964;
}

double f(double re, double im, double base) {
        double r1770965 = 1.0;
        double r1770966 = base;
        double r1770967 = log(r1770966);
        double r1770968 = im;
        double r1770969 = re;
        double r1770970 = atan2(r1770968, r1770969);
        double r1770971 = r1770967 / r1770970;
        double r1770972 = r1770965 / r1770971;
        return r1770972;
}

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}{\log base \cdot \log base + 0 \cdot 0}\]
  2. Simplified0.3

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

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

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

Reproduce

herbie shell --seed 2019151 +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))))