Average Error: 31.3 → 0.3
Time: 15.2s
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 r773002 = im;
        double r773003 = re;
        double r773004 = atan2(r773002, r773003);
        double r773005 = base;
        double r773006 = log(r773005);
        double r773007 = r773004 * r773006;
        double r773008 = r773003 * r773003;
        double r773009 = r773002 * r773002;
        double r773010 = r773008 + r773009;
        double r773011 = sqrt(r773010);
        double r773012 = log(r773011);
        double r773013 = 0.0;
        double r773014 = r773012 * r773013;
        double r773015 = r773007 - r773014;
        double r773016 = r773006 * r773006;
        double r773017 = r773013 * r773013;
        double r773018 = r773016 + r773017;
        double r773019 = r773015 / r773018;
        return r773019;
}

double f(double re, double im, double base) {
        double r773020 = im;
        double r773021 = re;
        double r773022 = atan2(r773020, r773021);
        double r773023 = base;
        double r773024 = log(r773023);
        double r773025 = r773022 / r773024;
        return r773025;
}

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.3

    \[\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 2019154 +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))))