Average Error: 31.1 → 17.6
Time: 26.9s
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.747299818609954 \cdot 10^{+153}:\\ \;\;\;\;\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.0209258191409414 \cdot 10^{+147}:\\ \;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right) \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \left(2 \cdot \log re\right)\right) \cdot \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.747299818609954e+153

    1. Initial program 61.6

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt61.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/261.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-pow61.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-frac61.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. Taylor expanded around -inf 7.1

      \[\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.747299818609954e+153 < re < 1.0209258191409414e+147

    1. Initial program 21.2

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

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

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

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

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

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

      \[\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 associate-*r/21.1

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

    if 1.0209258191409414e+147 < re

    1. Initial program 60.3

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt60.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/260.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-pow60.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-frac60.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 6.9

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.747299818609954 \cdot 10^{+153}:\\ \;\;\;\;\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.0209258191409414 \cdot 10^{+147}:\\ \;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right) \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \left(2 \cdot \log re\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\ \end{array}\]

Reproduce

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

Details

Time bar (total: 24.8s)Debug log

sample40.0ms

Algorithm
intervals

simplify4.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune12.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 30.6b

localize40.0ms

Local error

Found 3 expressions with local error:

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

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
3 → 62
Calls

3 calls. Slowest were:

17.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))
4.0ms
(+ (* re re) (* im im))
4.0ms
(sqrt (+ (* re re) (* im im)))

series226.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

161.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))
48.0ms
(sqrt (+ (* re re) (* im im)))
16.0ms
(+ (* re re) (* im im))

simplify902.0ms

Counts
55 → 71
Calls

55 calls. Slowest were:

143.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)))
143.0ms
(/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log 10))
123.0ms
(sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))

prune907.0ms

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 8.2b

localize14.0ms

Local error

Found 4 expressions with local error:

30.3b
(log (+ (* re re) (* im im)))
0.5b
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
0.3b
(* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))
0.0b
(+ (* re re) (* im im))

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
4 → 121
Calls

4 calls. Slowest were:

10.0ms
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
6.0ms
(* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))
2.0ms
(+ (* re re) (* im im))

series399.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

186.0ms
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
141.0ms
(* (/ 1/2 (sqrt (log 10))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))
48.0ms
(log (+ (* re re) (* im im)))
24.0ms
(+ (* re re) (* im im))

simplify2.9s

Counts
118 → 133
Calls

118 calls. Slowest were:

455.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)))))
412.0ms
(/ 1 (sqrt (sqrt (log 10))))
181.0ms
(log (- (* (* re re) (* re re)) (* (* im im) (* im im))))

prune1.7s

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 8.0b

localize17.0ms

Local error

Found 4 expressions with local error:

30.3b
(log (+ (* re re) (* im im)))
0.5b
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
0.4b
(* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (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)))))

rewrite72.0ms

Algorithm
rewrite-expression-head
Counts
4 → 144
Calls

4 calls. Slowest were:

33.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
15.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))))

series981.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

564.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10))))
193.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (log (+ (* re re) (* im im))) (sqrt (log 10)))))
186.0ms
(/ (log (+ (* re re) (* im im))) (sqrt (log 10)))
38.0ms
(log (+ (* re re) (* im im)))

simplify4.6s

Counts
146 → 156
Calls

146 calls. Slowest were:

599.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))))))
367.0ms
(* -2 (/ (* (log (/ -1 re)) (pow (sqrt 1/2) 2)) (log 10)))
252.0ms
(* 2 (/ (* (log im) (pow (sqrt 1/2) 2)) (log 10)))

prune2.0s

Pruning

15 alts after pruning (15 fresh and 0 done)

Merged error: 7.9b

localize8.0ms

Local error

Found 4 expressions with local error:

30.3b
(log (+ (* re re) (* im im)))
0.4b
(/ (* (sqrt (/ 1/2 (sqrt (log 10)))) (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))))

rewrite54.0ms

Algorithm
rewrite-expression-head
Counts
4 → 106
Calls

4 calls. Slowest were:

20.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im)))) (sqrt (log 10))))
17.0ms
(/ (* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im)))) (sqrt (log 10)))
13.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im))))

series1.2s

Counts
4 → 12
Calls

4 calls. Slowest were:

543.0ms
(/ (* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im)))) (sqrt (log 10)))
351.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im))))
232.0ms
(* (sqrt (/ 1/2 (sqrt (log 10)))) (/ (* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im)))) (sqrt (log 10))))
60.0ms
(log (+ (* re re) (* im im)))

simplify4.8s

Counts
89 → 118
Calls

89 calls. Slowest were:

604.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)))))
582.0ms
(/ (* (* (* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im)))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im))))) (* (sqrt (/ 1/2 (sqrt (log 10)))) (log (+ (* re re) (* im im))))) (* (* (sqrt (log 10)) (sqrt (log 10))) (sqrt (log 10))))
329.0ms
(* -2 (/ (* (log (/ -1 re)) (pow (sqrt 1/2) 2)) (log 10)))

prune1.6s

Pruning

15 alts after pruning (14 fresh and 1 done)

Merged error: 7.9b

regimes861.0ms

Accuracy

56.7% (10.3b remaining)

Error of 17.6b against oracle of 7.3b and baseline of 31.1b

bsearch94.0ms

end0.0ms

sample1.4s

Algorithm
intervals