Average Error: 30.9 → 17.1
Time: 29.2s
Precision: 64
Internal Precision: 128
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -1.6813385983305504 \cdot 10^{+75}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\ \mathbf{elif}\;re \le 1.588579464309484 \cdot 10^{+112}:\\ \;\;\;\;\frac{\left(\frac{\log \left(im \cdot im + re \cdot re\right)}{\sqrt{\log 10}} \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\right) \cdot \sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot \left({\left(\frac{1}{{\left(\log 10\right)}^{3}}\right)}^{\frac{1}{4}} \cdot \left(\log \left(\frac{1}{re}\right) \cdot \sqrt{\frac{1}{2}}\right)\right)\right) \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\\ \end{array}\]

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 3 regimes
  2. if re < -1.6813385983305504e+75

    1. Initial program 45.3

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

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

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

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

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

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

    if -1.6813385983305504e+75 < re < 1.588579464309484e+112

    1. Initial program 21.6

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

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

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

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

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

      \[\leadsto \color{blue}{\left(\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}} \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\right)} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\]
    9. Applied associate-*l*21.5

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

      \[\leadsto \color{blue}{\frac{\sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}} \cdot \left(\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right)\]
    12. Applied associate-*l/21.6

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

    if 1.588579464309484e+112 < re

    1. Initial program 51.4

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

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

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

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

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

      \[\leadsto \color{blue}{\left(\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}} \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\right)} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\]
    9. Applied associate-*l*51.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.6813385983305504 \cdot 10^{+75}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\ \mathbf{elif}\;re \le 1.588579464309484 \cdot 10^{+112}:\\ \;\;\;\;\frac{\left(\frac{\log \left(im \cdot im + re \cdot re\right)}{\sqrt{\log 10}} \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\right) \cdot \sqrt{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot \left({\left(\frac{1}{{\left(\log 10\right)}^{3}}\right)}^{\frac{1}{4}} \cdot \left(\log \left(\frac{1}{re}\right) \cdot \sqrt{\frac{1}{2}}\right)\right)\right) \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\\ \end{array}\]

Reproduce

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

Details

Time bar (total: 26.8s)Debug log

sample69.0ms

Algorithm
intervals

simplify8.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

8.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))

prune12.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 33.5b

localize33.0ms

Local error

Found 2 expressions with local error:

31.9b
(sqrt (+ (* re re) (* im im)))
0.6b
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))

rewrite11.0ms

Algorithm
rewrite-expression-head
Counts
2 → 51
Calls

2 calls. Slowest were:

8.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))
2.0ms
(sqrt (+ (* re re) (* im im)))

series168.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

137.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))
32.0ms
(sqrt (+ (* re re) (* im im)))

simplify936.0ms

Counts
51 → 57
Calls

51 calls. Slowest were:

150.0ms
(/ (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (log 10) (log 10)) (log 10)))
111.0ms
(sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))
107.0ms
(/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log 10))

prune763.0ms

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 9.2b

localize28.0ms

Local error

Found 3 expressions with local error:

33.2b
(log (+ (* re re) (* im im)))
0.4b
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
0.3b
(* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))

rewrite25.0ms

Algorithm
rewrite-expression-head
Counts
3 → 110
Calls

3 calls. Slowest were:

12.0ms
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
9.0ms
(* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))
3.0ms
(log (+ (* re re) (* im im)))

series358.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

169.0ms
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
136.0ms
(* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))
53.0ms
(log (+ (* re re) (* im im)))

simplify2.5s

Counts
114 → 119
Calls

114 calls. Slowest were:

540.0ms
(* (* (* (/ 1/2 (sqrt (log 10))) (/ 1/2 (sqrt (log 10)))) (/ 1/2 (sqrt (log 10)))) (* (* (/ (log (+ (* re re) (* im im))) (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
175.0ms
(/ (* (* (log (+ (* re re) (* im im))) (log (+ (* re re) (* im im)))) (log (+ (* re re) (* im im)))) (* (* (sqrt (log 10)) (sqrt (log 10))) (sqrt (log 10))))
165.0ms
(+ (log (/ 1/2 (sqrt (log 10)))) (- (log (log (+ (* re re) (* im im)))) (log (sqrt (log 10)))))

prune1.7s

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 9.1b

localize17.0ms

Local error

Found 4 expressions with local error:

33.2b
(log (+ (* re re) (* im im)))
0.4b
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
0.4b
(* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
0.3b
(* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))

rewrite67.0ms

Algorithm
rewrite-expression-head
Counts
4 → 144
Calls

4 calls. Slowest were:

29.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
16.0ms
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
15.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))

series990.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

529.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))
201.0ms
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
194.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
66.0ms
(log (+ (* re re) (* im im)))

simplify4.9s

Counts
146 → 156
Calls

146 calls. Slowest were:

658.0ms
(* (* (* (sqrt (/ 1/2 (sqrt (log 10)))) (sqrt (/ 1/2 (sqrt (log 10))))) (sqrt (/ 1/2 (sqrt (log 10))))) (* (* (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))))
519.0ms
(* 2 (/ (* (log im) (pow (sqrt 1/2) 2)) (log 10)))
313.0ms
(* -2 (/ (* (log (/ -1 re)) (pow (sqrt 1/2) 2)) (log 10)))

prune2.2s

Pruning

16 alts after pruning (16 fresh and 0 done)

Merged error: 9.0b

localize12.0ms

Local error

Found 4 expressions with local error:

33.2b
(log (+ (* re re) (* im im)))
1.0b
(sqrt (sqrt (log 10)))
0.5b
(/ (* (sqrt 1/2) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) (sqrt (sqrt (log 10))))
0.5b
(* (sqrt 1/2) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))

rewrite36.0ms

Algorithm
rewrite-expression-head
Counts
4 → 93
Calls

4 calls. Slowest were:

19.0ms
(/ (* (sqrt 1/2) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) (sqrt (sqrt (log 10))))
14.0ms
(* (sqrt 1/2) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
2.0ms
(log (+ (* re re) (* im im)))

series892.0ms

Counts
4 → 10
Calls

4 calls. Slowest were:

593.0ms
(* (sqrt 1/2) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
261.0ms
(/ (* (sqrt 1/2) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) (sqrt (sqrt (log 10))))
37.0ms
(log (+ (* re re) (* im im)))
0.0ms
(sqrt (sqrt (log 10)))

simplify7.0s

Counts
77 → 103
Calls

77 calls. Slowest were:

807.0ms
(* 2 (* (* (log im) (pow (sqrt 1/2) 2)) (pow (/ 1 (pow (log 10) 3)) 1/4)))
568.0ms
(* -2 (* (pow (/ 1 (pow (log 10) 3)) 1/4) (* (log (/ 1 re)) (pow (sqrt 1/2) 2))))
551.0ms
(* (* (* (sqrt 1/2) (sqrt 1/2)) (sqrt 1/2)) (* (* (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))))

prune1.4s

Pruning

19 alts after pruning (18 fresh and 1 done)

Merged error: 9.0b

regimes922.0ms

Accuracy

58.5% (9.8b remaining)

Error of 17.1b against oracle of 7.3b and baseline of 30.9b

bsearch241.0ms

end0.0ms

sample1.6s

Algorithm
intervals