Average Error: 32.0 → 17.6
Time: 24.2s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -1.359664342997624889944602942441258789071 \cdot 10^{126}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le -6.530852052484567489281937792340136827842 \cdot 10^{-279}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le 5.01797673029504236891856937010767397753 \cdot 10^{-258}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le 8.566260784588985126260951805758235341469 \cdot 10^{102}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({re}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -1.359664342997624889944602942441258789071 \cdot 10^{126}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\

\mathbf{elif}\;re \le -6.530852052484567489281937792340136827842 \cdot 10^{-279}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\

\mathbf{elif}\;re \le 5.01797673029504236891856937010767397753 \cdot 10^{-258}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\

\mathbf{elif}\;re \le 8.566260784588985126260951805758235341469 \cdot 10^{102}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({re}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\

\end{array}
double f(double re, double im) {
        double r38320 = re;
        double r38321 = r38320 * r38320;
        double r38322 = im;
        double r38323 = r38322 * r38322;
        double r38324 = r38321 + r38323;
        double r38325 = sqrt(r38324);
        double r38326 = log(r38325);
        double r38327 = 10.0;
        double r38328 = log(r38327);
        double r38329 = r38326 / r38328;
        return r38329;
}

double f(double re, double im) {
        double r38330 = re;
        double r38331 = -1.359664342997625e+126;
        bool r38332 = r38330 <= r38331;
        double r38333 = 1.0;
        double r38334 = 10.0;
        double r38335 = log(r38334);
        double r38336 = sqrt(r38335);
        double r38337 = r38333 / r38336;
        double r38338 = -r38330;
        double r38339 = pow(r38338, r38337);
        double r38340 = log(r38339);
        double r38341 = r38337 * r38340;
        double r38342 = -6.5308520524845675e-279;
        bool r38343 = r38330 <= r38342;
        double r38344 = r38330 * r38330;
        double r38345 = im;
        double r38346 = r38345 * r38345;
        double r38347 = r38344 + r38346;
        double r38348 = sqrt(r38347);
        double r38349 = pow(r38348, r38337);
        double r38350 = log(r38349);
        double r38351 = r38337 * r38350;
        double r38352 = 5.017976730295042e-258;
        bool r38353 = r38330 <= r38352;
        double r38354 = r38333 / r38335;
        double r38355 = sqrt(r38354);
        double r38356 = pow(r38345, r38355);
        double r38357 = log(r38356);
        double r38358 = r38337 * r38357;
        double r38359 = 8.566260784588985e+102;
        bool r38360 = r38330 <= r38359;
        double r38361 = pow(r38330, r38337);
        double r38362 = log(r38361);
        double r38363 = r38337 * r38362;
        double r38364 = r38360 ? r38351 : r38363;
        double r38365 = r38353 ? r38358 : r38364;
        double r38366 = r38343 ? r38351 : r38365;
        double r38367 = r38332 ? r38341 : r38366;
        return r38367;
}

Error

Bits error versus re

Bits error versus im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 4 regimes
  2. if re < -1.359664342997625e+126

    1. Initial program 56.9

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt56.9

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow156.9

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{1}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow56.9

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    6. Applied times-frac56.9

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied div-inv56.9

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    9. Using strategy rm
    10. Applied add-log-exp56.9

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\log \left(e^{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}}\right)}\]
    11. Simplified56.9

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}\]
    12. Taylor expanded around -inf 7.6

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \left({\color{blue}{\left(-1 \cdot re\right)}}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\]
    13. Simplified7.6

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

    if -1.359664342997625e+126 < re < -6.5308520524845675e-279 or 5.017976730295042e-258 < re < 8.566260784588985e+102

    1. Initial program 21.0

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt21.0

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow121.0

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{1}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow21.0

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    6. Applied times-frac21.0

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied div-inv20.9

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    9. Using strategy rm
    10. Applied add-log-exp20.9

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\log \left(e^{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}}\right)}\]
    11. Simplified20.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}\]

    if -6.5308520524845675e-279 < re < 5.017976730295042e-258

    1. Initial program 30.9

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt30.9

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow130.9

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{1}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow30.9

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    6. Applied times-frac30.9

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied div-inv30.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    9. Using strategy rm
    10. Applied add-log-exp30.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\log \left(e^{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}}\right)}\]
    11. Simplified30.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}\]
    12. Taylor expanded around 0 32.7

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \color{blue}{\left(e^{\log im \cdot \sqrt{\frac{1}{\log 10}}}\right)}\]
    13. Simplified32.7

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \color{blue}{\left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)}\]

    if 8.566260784588985e+102 < re

    1. Initial program 51.2

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt51.2

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow151.2

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{1}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow51.2

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    6. Applied times-frac51.2

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied div-inv51.2

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    9. Using strategy rm
    10. Applied add-log-exp51.2

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\log \left(e^{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}}\right)}\]
    11. Simplified51.1

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}\]
    12. Taylor expanded around inf 8.6

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \log \left({\color{blue}{re}}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\]
  3. Recombined 4 regimes into one program.
  4. Final simplification17.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.359664342997624889944602942441258789071 \cdot 10^{126}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le -6.530852052484567489281937792340136827842 \cdot 10^{-279}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le 5.01797673029504236891856937010767397753 \cdot 10^{-258}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le 8.566260784588985126260951805758235341469 \cdot 10^{102}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({re}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019306 
(FPCore (re im)
  :name "math.log10 on complex, real part"
  :precision binary64
  (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))