Details

Time bar (total: 6.2s)

analyze665.0ms (10.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
23.4%51.5%25.1%7
24.2%50.7%25.1%8
24.6%50.3%25.1%9
36.9%25.5%37.6%10
37.2%25.3%37.6%11
37.3%25.1%37.6%12
43.5%12.7%43.8%13
43.6%12.6%43.8%14
Compiler

Compiled 32 to 21 computations (34.4% saved)

sample147.0ms (2.4%)

Algorithm
intervals
Results
35.0ms256×body128valid
5.0ms41×body128nan
Compiler

Compiled 66 to 44 computations (33.3% saved)

simplify150.0ms (2.4%)

Algorithm
egg-herbie
Rules
1042×fma-def_binary64
693×fma-neg_binary64
662×cube-prod_binary64
522×pow-sqr_binary64
453×associate-/l*_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01920
13519
25712
3809
4899
52169
64869
79789
812969
919969
1022879
1133119
1243679
1346449
1447219
1549869
1648269

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))
31.6b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
Compiler

Compiled 117 to 73 computations (37.6% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))

series495.0ms (8%)

Counts
1 → 8
Calls

1 calls:

495.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))

rewrite4.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×times-frac_binary64
10×*-un-lft-identity_binary64
10×add-sqr-sqrt_binary64
10×add-cube-cbrt_binary64
pow1_binary64
Counts
1 → 33
Calls

1 calls:

3.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))

simplify107.0ms (1.7%)

Algorithm
egg-herbie
Rules
763×fma-neg_binary64
574×neg-mul-1_binary64
543×neg-sub0_binary64
429×sub-neg_binary64
336×div-sub_binary64
Counts
41 → 35
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
065663
1108615
2213585
3384585
41312585
52948585
63524585
74593585
84969585

prune42.0ms (0.7%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New231235
Fresh011
Picked101
Done000
Total241337
Error
0.1b
Counts
37 → 13
Alt Table
StatusErrorProgram
31.2b
(/.f64 (/.f64 (atan2.f64 im re) (sqrt.f64 (log.f64 base))) (sqrt.f64 (log.f64 base)))
1.4b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base)))) (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
0.3b
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))
27.6b
(*.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
7.6b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (atan2.f64 im re) (atan2.f64 im re)) (atan2.f64 im re)) (*.f64 (*.f64 (log.f64 base) (log.f64 base)) (log.f64 base))))
7.6b
(cbrt.f64 (pow.f64 (/.f64 (atan2.f64 im re) (log.f64 base)) 3))
29.1b
(/.f64 (sqrt.f64 (atan2.f64 im re)) (/.f64 (log.f64 base) (sqrt.f64 (atan2.f64 im re))))
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
0.8b
(/.f64 1 (/.f64 (log.f64 base) (atan2.f64 im re)))
31.6b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
1.3b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
29.3b
(*.f64 (/.f64 (sqrt.f64 (atan2.f64 im re)) (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (sqrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
1.8b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (atan2.f64 im re)) (cbrt.f64 (atan2.f64 im re))) (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (cbrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
Compiler

Compiled 953 to 376 computations (60.5% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))

series465.0ms (7.5%)

Counts
1 → 36
Calls

1 calls:

465.0ms
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))

rewrite22.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
120×times-frac_binary64
83×distribute-lft-neg-in_binary64
83×distribute-rgt-neg-in_binary64
73×*-un-lft-identity_binary64
73×add-sqr-sqrt_binary64
Counts
1 → 158
Calls

1 calls:

6.0ms
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))

simplify252.0ms (4.1%)

Algorithm
egg-herbie
Rules
737×div-sub_binary64
596×neg-mul-1_binary64
552×sub-neg_binary64
504×associate-/l*_binary64
478×associate-/r*_binary64
Counts
194 → 178
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01924170
13774053
212723906
330453906
440623906
541573906
647813906
748053906

prune124.0ms (2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New1762178
Fresh11112
Picked011
Done000
Total17714191
Error
0.0b
Counts
191 → 14
Alt Table
StatusErrorProgram
32.3b
(*.f64 (sqrt.f64 (neg.f64 (atan2.f64 im re))) (/.f64 (sqrt.f64 (neg.f64 (atan2.f64 im re))) (neg.f64 (log.f64 base))))
1.4b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base)))) (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
31.2b
(/.f64 (/.f64 (atan2.f64 im re) (sqrt.f64 (log.f64 base))) (sqrt.f64 (log.f64 base)))
0.3b
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))
27.6b
(*.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
7.6b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (atan2.f64 im re) (atan2.f64 im re)) (atan2.f64 im re)) (*.f64 (*.f64 (log.f64 base) (log.f64 base)) (log.f64 base))))
29.1b
(/.f64 (sqrt.f64 (atan2.f64 im re)) (/.f64 (log.f64 base) (sqrt.f64 (atan2.f64 im re))))
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
0.8b
(/.f64 1 (/.f64 (log.f64 base) (atan2.f64 im re)))
31.6b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
1.3b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
29.3b
(*.f64 (/.f64 (sqrt.f64 (atan2.f64 im re)) (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (sqrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
33.4b
(/.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (sqrt.f64 (neg.f64 (log.f64 base)))) (sqrt.f64 (neg.f64 (log.f64 base))))
1.8b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (atan2.f64 im re)) (cbrt.f64 (atan2.f64 im re))) (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (cbrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
Compiler

Compiled 3681 to 808 computations (78% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (log.f64 base))
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))

series496.0ms (8%)

Counts
2 → 44
Calls

2 calls:

458.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
38.0ms
(/.f64 1 (log.f64 base))

rewrite13.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
27×add-sqr-sqrt_binary64
26×times-frac_binary64
21×*-un-lft-identity_binary64
20×add-cube-cbrt_binary64
16×associate-*r*_binary64
Counts
2 → 78
Calls

2 calls:

6.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
3.0ms
(/.f64 1 (log.f64 base))

simplify95.0ms (1.5%)

Algorithm
egg-herbie
Rules
460×unsub-neg_binary64
434×div-sub_binary64
409×sub-neg_binary64
351×associate-*r/_binary64
251×times-frac_binary64
Counts
122 → 97
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0801290
11451159
23201159
37491159
418281159
538501159
649461159

prune94.0ms (1.5%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New92597
Fresh4812
Picked101
Done011
Total9714111
Error
0.0b
Counts
111 → 14
Alt Table
StatusErrorProgram
7.6b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (atan2.f64 im re) (atan2.f64 im re)) (atan2.f64 im re)) (/.f64 (*.f64 (*.f64 1 1) 1) (*.f64 (*.f64 (log.f64 base) (log.f64 base)) (log.f64 base)))))
31.2b
(/.f64 (/.f64 (atan2.f64 im re) (sqrt.f64 (log.f64 base))) (sqrt.f64 (log.f64 base)))
32.3b
(*.f64 (sqrt.f64 (neg.f64 (atan2.f64 im re))) (/.f64 (sqrt.f64 (neg.f64 (atan2.f64 im re))) (neg.f64 (log.f64 base))))
0.8b
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3)))
1.3b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
0.4b
(*.f64 (atan2.f64 im re) (log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base)))))
0.3b
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))
31.3b
(*.f64 (*.f64 (atan2.f64 im re) (sqrt.f64 (/.f64 1 (log.f64 base)))) (sqrt.f64 (/.f64 1 (log.f64 base))))
0.8b
(/.f64 1 (/.f64 (log.f64 base) (atan2.f64 im re)))
31.6b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
29.3b
(*.f64 (/.f64 (sqrt.f64 (atan2.f64 im re)) (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (sqrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
31.4b
(*.f64 (atan2.f64 im re) (exp.f64 (neg.f64 (log.f64 (log.f64 base)))))
33.4b
(/.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (sqrt.f64 (neg.f64 (log.f64 base)))) (sqrt.f64 (neg.f64 (log.f64 base))))
1.8b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (atan2.f64 im re)) (cbrt.f64 (atan2.f64 im re))) (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (cbrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
Compiler

Compiled 1866 to 889 computations (52.4% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (log.f64 base))
0.3b
(expm1.f64 (/.f64 1 (log.f64 base)))
0.3b
(log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base))))
0.4b
(*.f64 (atan2.f64 im re) (log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base)))))

series547.0ms (8.9%)

Counts
3 → 60
Calls

3 calls:

466.0ms
(*.f64 (atan2.f64 im re) (log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base)))))
42.0ms
(log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base))))
39.0ms
(expm1.f64 (/.f64 1 (log.f64 base)))

rewrite5.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
3 → 42
Calls

3 calls:

3.0ms
(*.f64 (atan2.f64 im re) (log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base)))))
0.0ms
(expm1.f64 (/.f64 1 (log.f64 base)))
0.0ms
(log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base))))

simplify73.0ms (1.2%)

Algorithm
egg-herbie
Rules
525×distribute-rgt-in_binary64
432×distribute-lft-in_binary64
413×associate-/l/_binary64
389×associate-/l*_binary64
291×fma-def_binary64
Counts
102 → 71
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0701071
1115954
2283939
3474939
41378939
54393939
64882939

prune86.0ms (1.4%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New1091110
Fresh21012
Picked011
Done011
Total11113124
Error
0.0b
Counts
124 → 13
Alt Table
StatusErrorProgram
7.6b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (atan2.f64 im re) (atan2.f64 im re)) (atan2.f64 im re)) (/.f64 (*.f64 (*.f64 1 1) 1) (*.f64 (*.f64 (log.f64 base) (log.f64 base)) (log.f64 base)))))
32.3b
(*.f64 (sqrt.f64 (neg.f64 (atan2.f64 im re))) (/.f64 (sqrt.f64 (neg.f64 (atan2.f64 im re))) (neg.f64 (log.f64 base))))
0.8b
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3)))
1.3b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
0.4b
(*.f64 (atan2.f64 im re) (log1p.f64 (expm1.f64 (/.f64 1 (log.f64 base)))))
0.3b
(/.f64 (neg.f64 (atan2.f64 im re)) (neg.f64 (log.f64 base)))
31.3b
(*.f64 (*.f64 (atan2.f64 im re) (sqrt.f64 (/.f64 1 (log.f64 base)))) (sqrt.f64 (/.f64 1 (log.f64 base))))
0.7b
(*.f64 (atan2.f64 im re) (log1p.f64 (cbrt.f64 (pow.f64 (expm1.f64 (/.f64 1 (log.f64 base))) 3))))
0.8b
(/.f64 1 (/.f64 (log.f64 base) (atan2.f64 im re)))
31.6b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
29.3b
(*.f64 (/.f64 (sqrt.f64 (atan2.f64 im re)) (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base)))) (/.f64 (sqrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
31.4b
(*.f64 (atan2.f64 im re) (exp.f64 (neg.f64 (log.f64 (log.f64 base)))))
33.4b
(/.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (sqrt.f64 (neg.f64 (log.f64 base)))) (sqrt.f64 (neg.f64 (log.f64 base))))
Compiler

Compiled 1877 to 1043 computations (44.4% saved)

regimes420.0ms (6.8%)

Accuracy

Total 0.3b remaining (83.9%)

Threshold costs 0.3b (83.9%)

Counts
77 → 1
Compiler

Compiled 6686 to 4336 computations (35.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
11713
22313
32713
42813
52813

end0.0ms (0%)

Compiler

Compiled 11 to 8 computations (27.3% saved)

sample1.8s (29.6%)

Algorithm
intervals
Results
1.1s8000×body128valid
141.0ms973×body128nan
Compiler

Compiled 281 to 183 computations (34.9% saved)

Profiling

Loading profile data...