Average Error: 31.2 → 0.3
Time: 2.2m
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 r1127588 = im;
        double r1127589 = re;
        double r1127590 = atan2(r1127588, r1127589);
        double r1127591 = base;
        double r1127592 = log(r1127591);
        double r1127593 = r1127590 * r1127592;
        double r1127594 = r1127589 * r1127589;
        double r1127595 = r1127588 * r1127588;
        double r1127596 = r1127594 + r1127595;
        double r1127597 = sqrt(r1127596);
        double r1127598 = log(r1127597);
        double r1127599 = 0.0;
        double r1127600 = r1127598 * r1127599;
        double r1127601 = r1127593 - r1127600;
        double r1127602 = r1127592 * r1127592;
        double r1127603 = r1127599 * r1127599;
        double r1127604 = r1127602 + r1127603;
        double r1127605 = r1127601 / r1127604;
        return r1127605;
}

double f(double re, double im, double base) {
        double r1127606 = im;
        double r1127607 = re;
        double r1127608 = atan2(r1127606, r1127607);
        double r1127609 = base;
        double r1127610 = log(r1127609);
        double r1127611 = r1127608 / r1127610;
        return r1127611;
}

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

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