Average Error: 31.8 → 17.6
Time: 25.0s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
\[\begin{array}{l} \mathbf{if}\;re \le -1.860564632808157146272715482474331974986 \cdot 10^{70}:\\ \;\;\;\;\frac{\frac{-1}{3} \cdot \log \left(\frac{-1}{re}\right)}{\log \left(\sqrt[3]{-base} \cdot \sqrt[3]{-1}\right)}\\ \mathbf{elif}\;re \le -2.550928749919678760355455544426569849248 \cdot 10^{-162}:\\ \;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}} \cdot \frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\ \mathbf{elif}\;re \le 4.352011132147789479254882523295138287074 \cdot 10^{-295}:\\ \;\;\;\;\frac{\log im \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base + \log \left(\sqrt[3]{base}\right) \cdot \log base\right) + 0.0 \cdot 0.0}\\ \mathbf{elif}\;re \le 5.983180677799418047864441563914340286047 \cdot 10^{93}:\\ \;\;\;\;\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}
\begin{array}{l}
\mathbf{if}\;re \le -1.860564632808157146272715482474331974986 \cdot 10^{70}:\\
\;\;\;\;\frac{\frac{-1}{3} \cdot \log \left(\frac{-1}{re}\right)}{\log \left(\sqrt[3]{-base} \cdot \sqrt[3]{-1}\right)}\\

\mathbf{elif}\;re \le -2.550928749919678760355455544426569849248 \cdot 10^{-162}:\\
\;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}} \cdot \frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\

\mathbf{elif}\;re \le 4.352011132147789479254882523295138287074 \cdot 10^{-295}:\\
\;\;\;\;\frac{\log im \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base + \log \left(\sqrt[3]{base}\right) \cdot \log base\right) + 0.0 \cdot 0.0}\\

\mathbf{elif}\;re \le 5.983180677799418047864441563914340286047 \cdot 10^{93}:\\
\;\;\;\;\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

\mathbf{else}:\\
\;\;\;\;\frac{-\log re}{-\log base}\\

\end{array}
double f(double re, double im, double base) {
        double r100781 = re;
        double r100782 = r100781 * r100781;
        double r100783 = im;
        double r100784 = r100783 * r100783;
        double r100785 = r100782 + r100784;
        double r100786 = sqrt(r100785);
        double r100787 = log(r100786);
        double r100788 = base;
        double r100789 = log(r100788);
        double r100790 = r100787 * r100789;
        double r100791 = atan2(r100783, r100781);
        double r100792 = 0.0;
        double r100793 = r100791 * r100792;
        double r100794 = r100790 + r100793;
        double r100795 = r100789 * r100789;
        double r100796 = r100792 * r100792;
        double r100797 = r100795 + r100796;
        double r100798 = r100794 / r100797;
        return r100798;
}

double f(double re, double im, double base) {
        double r100799 = re;
        double r100800 = -1.860564632808157e+70;
        bool r100801 = r100799 <= r100800;
        double r100802 = -0.3333333333333333;
        double r100803 = -1.0;
        double r100804 = r100803 / r100799;
        double r100805 = log(r100804);
        double r100806 = r100802 * r100805;
        double r100807 = base;
        double r100808 = -r100807;
        double r100809 = cbrt(r100808);
        double r100810 = cbrt(r100803);
        double r100811 = r100809 * r100810;
        double r100812 = log(r100811);
        double r100813 = r100806 / r100812;
        double r100814 = -2.550928749919679e-162;
        bool r100815 = r100799 <= r100814;
        double r100816 = r100799 * r100799;
        double r100817 = im;
        double r100818 = r100817 * r100817;
        double r100819 = r100816 + r100818;
        double r100820 = sqrt(r100819);
        double r100821 = log(r100820);
        double r100822 = log(r100807);
        double r100823 = r100821 * r100822;
        double r100824 = atan2(r100817, r100799);
        double r100825 = 0.0;
        double r100826 = r100824 * r100825;
        double r100827 = r100823 + r100826;
        double r100828 = 2.0;
        double r100829 = pow(r100822, r100828);
        double r100830 = r100825 * r100825;
        double r100831 = r100829 + r100830;
        double r100832 = sqrt(r100831);
        double r100833 = r100827 / r100832;
        double r100834 = 1.0;
        double r100835 = r100830 + r100829;
        double r100836 = sqrt(r100835);
        double r100837 = r100834 / r100836;
        double r100838 = r100833 * r100837;
        double r100839 = 4.3520111321477895e-295;
        bool r100840 = r100799 <= r100839;
        double r100841 = log(r100817);
        double r100842 = r100841 * r100822;
        double r100843 = r100842 + r100826;
        double r100844 = cbrt(r100807);
        double r100845 = log(r100844);
        double r100846 = r100828 * r100845;
        double r100847 = r100846 * r100822;
        double r100848 = r100845 * r100822;
        double r100849 = r100847 + r100848;
        double r100850 = r100849 + r100830;
        double r100851 = r100843 / r100850;
        double r100852 = 5.983180677799418e+93;
        bool r100853 = r100799 <= r100852;
        double r100854 = r100822 * r100822;
        double r100855 = r100854 + r100830;
        double r100856 = sqrt(r100855);
        double r100857 = r100833 / r100856;
        double r100858 = log(r100799);
        double r100859 = -r100858;
        double r100860 = -r100822;
        double r100861 = r100859 / r100860;
        double r100862 = r100853 ? r100857 : r100861;
        double r100863 = r100840 ? r100851 : r100862;
        double r100864 = r100815 ? r100838 : r100863;
        double r100865 = r100801 ? r100813 : r100864;
        return r100865;
}

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. Split input into 5 regimes
  2. if re < -1.860564632808157e+70

    1. Initial program 46.7

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt46.7

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log \color{blue}{\left(\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}\right)} + 0.0 \cdot 0.0}\]
    4. Applied log-prod46.7

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \color{blue}{\left(\log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    5. Applied distribute-lft-in46.7

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\color{blue}{\left(\log base \cdot \log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    6. Simplified46.7

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\color{blue}{\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base} + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\]
    7. Simplified46.7

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base + \color{blue}{\log \left(\sqrt[3]{base}\right) \cdot \log base}\right) + 0.0 \cdot 0.0}\]
    8. Taylor expanded around -inf 64.0

      \[\leadsto \color{blue}{\frac{-1}{3} \cdot \frac{\log \left(\frac{-1}{re}\right)}{\log \left({\left(-1 \cdot base\right)}^{\frac{1}{3}} \cdot \sqrt[3]{-1}\right)}}\]
    9. Simplified10.2

      \[\leadsto \color{blue}{\frac{\frac{-1}{3} \cdot \log \left(\frac{-1}{re}\right)}{\log \left(\sqrt[3]{-base} \cdot \sqrt[3]{-1}\right)}}\]

    if -1.860564632808157e+70 < re < -2.550928749919679e-162

    1. Initial program 15.6

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt15.6

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\color{blue}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0} \cdot \sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    4. Applied associate-/r*15.5

      \[\leadsto \color{blue}{\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    5. Simplified15.5

      \[\leadsto \frac{\color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    6. Using strategy rm
    7. Applied div-inv15.6

      \[\leadsto \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}} \cdot \frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    8. Simplified15.6

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}} \cdot \color{blue}{\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}}\]

    if -2.550928749919679e-162 < re < 4.3520111321477895e-295

    1. Initial program 32.3

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt32.3

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log \color{blue}{\left(\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}\right)} + 0.0 \cdot 0.0}\]
    4. Applied log-prod32.3

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \color{blue}{\left(\log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    5. Applied distribute-lft-in32.3

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\color{blue}{\left(\log base \cdot \log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    6. Simplified32.3

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\color{blue}{\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base} + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\]
    7. Simplified32.3

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base + \color{blue}{\log \left(\sqrt[3]{base}\right) \cdot \log base}\right) + 0.0 \cdot 0.0}\]
    8. Taylor expanded around 0 34.9

      \[\leadsto \frac{\log \color{blue}{im} \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base + \log \left(\sqrt[3]{base}\right) \cdot \log base\right) + 0.0 \cdot 0.0}\]

    if 4.3520111321477895e-295 < re < 5.983180677799418e+93

    1. Initial program 21.5

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt21.5

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\color{blue}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0} \cdot \sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    4. Applied associate-/r*21.5

      \[\leadsto \color{blue}{\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    5. Simplified21.5

      \[\leadsto \frac{\color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]

    if 5.983180677799418e+93 < re

    1. Initial program 50.4

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Taylor expanded around inf 8.2

      \[\leadsto \color{blue}{\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}}\]
    3. Simplified8.2

      \[\leadsto \color{blue}{\frac{-\log re}{-\log base}}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification17.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.860564632808157146272715482474331974986 \cdot 10^{70}:\\ \;\;\;\;\frac{\frac{-1}{3} \cdot \log \left(\frac{-1}{re}\right)}{\log \left(\sqrt[3]{-base} \cdot \sqrt[3]{-1}\right)}\\ \mathbf{elif}\;re \le -2.550928749919678760355455544426569849248 \cdot 10^{-162}:\\ \;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}} \cdot \frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\ \mathbf{elif}\;re \le 4.352011132147789479254882523295138287074 \cdot 10^{-295}:\\ \;\;\;\;\frac{\log im \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) \cdot \log base + \log \left(\sqrt[3]{base}\right) \cdot \log base\right) + 0.0 \cdot 0.0}\\ \mathbf{elif}\;re \le 5.983180677799418047864441563914340286047 \cdot 10^{93}:\\ \;\;\;\;\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]

Reproduce

herbie shell --seed 2019304 
(FPCore (re im base)
  :name "math.log/2 on complex, real part"
  :precision binary64
  (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))