Average Error: 32.0 → 17.6
Time: 11.6s
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 -8.2529321969344202 \cdot 10^{97}:\\ \;\;\;\;\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \left(-re\right)}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\ \mathbf{elif}\;re \le -7.7296027907141122 \cdot 10^{-226}:\\ \;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}\\ \mathbf{elif}\;re \le 6.31099625192104387 \cdot 10^{-197}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 3.1293650531822621 \cdot 10^{107}:\\ \;\;\;\;\frac{\frac{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \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 -8.2529321969344202 \cdot 10^{97}:\\
\;\;\;\;\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \left(-re\right)}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\

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

\mathbf{elif}\;re \le 6.31099625192104387 \cdot 10^{-197}:\\
\;\;\;\;\frac{\log im}{\log base}\\

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

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

\end{array}
double f(double re, double im, double base) {
        double r106157 = re;
        double r106158 = r106157 * r106157;
        double r106159 = im;
        double r106160 = r106159 * r106159;
        double r106161 = r106158 + r106160;
        double r106162 = sqrt(r106161);
        double r106163 = log(r106162);
        double r106164 = base;
        double r106165 = log(r106164);
        double r106166 = r106163 * r106165;
        double r106167 = atan2(r106159, r106157);
        double r106168 = 0.0;
        double r106169 = r106167 * r106168;
        double r106170 = r106166 + r106169;
        double r106171 = r106165 * r106165;
        double r106172 = r106168 * r106168;
        double r106173 = r106171 + r106172;
        double r106174 = r106170 / r106173;
        return r106174;
}

double f(double re, double im, double base) {
        double r106175 = re;
        double r106176 = -8.25293219693442e+97;
        bool r106177 = r106175 <= r106176;
        double r106178 = 1.0;
        double r106179 = 0.0;
        double r106180 = r106179 * r106179;
        double r106181 = base;
        double r106182 = log(r106181);
        double r106183 = 2.0;
        double r106184 = pow(r106182, r106183);
        double r106185 = r106180 + r106184;
        double r106186 = sqrt(r106185);
        double r106187 = r106178 / r106186;
        double r106188 = im;
        double r106189 = atan2(r106188, r106175);
        double r106190 = r106189 * r106179;
        double r106191 = -r106175;
        double r106192 = log(r106191);
        double r106193 = r106182 * r106192;
        double r106194 = r106190 + r106193;
        double r106195 = r106194 / r106186;
        double r106196 = r106187 * r106195;
        double r106197 = -7.729602790714112e-226;
        bool r106198 = r106175 <= r106197;
        double r106199 = r106175 * r106175;
        double r106200 = r106188 * r106188;
        double r106201 = r106199 + r106200;
        double r106202 = sqrt(r106201);
        double r106203 = log(r106202);
        double r106204 = r106203 * r106182;
        double r106205 = r106204 + r106190;
        double r106206 = r106178 / r106185;
        double r106207 = r106205 * r106206;
        double r106208 = 6.310996251921044e-197;
        bool r106209 = r106175 <= r106208;
        double r106210 = log(r106188);
        double r106211 = r106210 / r106182;
        double r106212 = 3.129365053182262e+107;
        bool r106213 = r106175 <= r106212;
        double r106214 = r106203 * r106203;
        double r106215 = r106214 * r106184;
        double r106216 = r106190 * r106190;
        double r106217 = r106215 - r106216;
        double r106218 = r106217 / r106185;
        double r106219 = r106204 - r106190;
        double r106220 = r106218 / r106219;
        double r106221 = log(r106175);
        double r106222 = -r106221;
        double r106223 = -r106182;
        double r106224 = r106222 / r106223;
        double r106225 = r106213 ? r106220 : r106224;
        double r106226 = r106209 ? r106211 : r106225;
        double r106227 = r106198 ? r106207 : r106226;
        double r106228 = r106177 ? r106196 : r106227;
        return r106228;
}

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 < -8.25293219693442e+97

    1. Initial program 51.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. Using strategy rm
    3. Applied add-sqr-sqrt51.4

      \[\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 *-un-lft-identity51.4

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

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \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}}}\]
    6. Simplified51.4

      \[\leadsto \color{blue}{\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}} \cdot \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}}\]
    7. Simplified51.4

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

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

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

    if -8.25293219693442e+97 < re < -7.729602790714112e-226

    1. Initial program 20.2

      \[\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 div-inv20.3

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

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

    if -7.729602790714112e-226 < re < 6.310996251921044e-197

    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. Taylor expanded around 0 34.5

      \[\leadsto \color{blue}{\frac{\log im}{\log base}}\]

    if 6.310996251921044e-197 < re < 3.129365053182262e+107

    1. Initial program 17.0

      \[\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 div-inv17.1

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

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

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

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

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

    if 3.129365053182262e+107 < re

    1. Initial program 53.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. Taylor expanded around inf 8.4

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

      \[\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 -8.2529321969344202 \cdot 10^{97}:\\ \;\;\;\;\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \left(-re\right)}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\ \mathbf{elif}\;re \le -7.7296027907141122 \cdot 10^{-226}:\\ \;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}\\ \mathbf{elif}\;re \le 6.31099625192104387 \cdot 10^{-197}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 3.1293650531822621 \cdot 10^{107}:\\ \;\;\;\;\frac{\frac{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 
(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))))