Details

Time bar (total: 6.7s)

analyze560.0ms (8.3%)

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
50%50%0.1%5
50%50%0.1%6
50%40.6%9.5%7
50%39%11%8
50%33.6%16.5%9
50%32.4%17.7%10
50%29.5%20.6%11
50%28.8%21.3%12
50%27.3%22.8%13
50%26.9%23.1%14
Compiler

Compiled 15 to 12 computations (20% saved)

sample4.7s (70.5%)

Results
1.5s2048×body1024valid
1.2s2026×body1024invalid
771.0ms4649×body128valid
422.0ms1055×body512valid
328.0ms889×body512invalid
145.0ms807×body128invalid
135.0ms503×body256valid
131.0ms492×body256invalid
3.0msbody2048valid
Compiler

Compiled 44 to 35 computations (20.5% saved)

simplify77.0ms (1.2%)

Algorithm
egg-herbie
Rules
778×unswap-sqr_binary64
536×fma-def_binary64
491×associate-/r*_binary64
476×fabs-mul_binary64
360×associate-/l*_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01218
12718
26518
310417
413717
519617
632917
773617
8224217
9225017
10261917
11412817
12456317
13539117

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
Compiler

Compiled 51 to 34 computations (33.3% saved)

localize7.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
0.0b
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
0.0b
(/.f64 1/2 (exp.f64 im))

series37.0ms (0.5%)

Counts
3 → 40
Calls

3 calls:

24.0ms
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
7.0ms
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
6.0ms
(/.f64 1/2 (exp.f64 im))

rewrite49.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
804×log1p-expm1-u_binary64
804×expm1-log1p-u_binary64
116×prod-diff_binary64
92×add-sqr-sqrt_binary64
86×add-log-exp_binary64
Counts
3 → 63
Calls

3 calls:

48.0ms
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
48.0ms
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
48.0ms
(/.f64 1/2 (exp.f64 im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0935
118235
2211535
3512035

simplify47.0ms (0.7%)

Algorithm
egg-herbie
Rules
685×fma-neg_binary64
601×associate--r+_binary64
447×fma-def_binary64
298×sub-neg_binary64
175×associate-*l*_binary64
Counts
103 → 96
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
083796
1250739
2748715
32524700
45057700

prune89.0ms (1.3%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New94296
Fresh000
Picked101
Done000
Total95297
Error
0b
Counts
97 → 2
Alt Table
StatusErrorProgram
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))))
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (log.f64 (+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im)))))))
Compiler

Compiled 1660 to 963 computations (42% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (/.f64 1/2 (exp.f64 im)))
0.0b
(+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im))))
0.0b
(/.f64 1/2 (exp.f64 im))
0.0b
(log.f64 (+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im)))))

series187.0ms (2.8%)

Counts
3 → 36
Calls

3 calls:

170.0ms
(log.f64 (+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im)))))
9.0ms
(expm1.f64 (/.f64 1/2 (exp.f64 im)))
7.0ms
(+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im))))

rewrite46.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
713×log1p-expm1-u_binary64
713×expm1-log1p-u_binary64
153×prod-diff_binary64
136×expm1-udef_binary64
135×log1p-udef_binary64
Counts
3 → 96
Calls

3 calls:

44.0ms
(expm1.f64 (/.f64 1/2 (exp.f64 im)))
44.0ms
(+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im))))
44.0ms
(log.f64 (+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0922
116122
2185922
3502022

simplify78.0ms (1.2%)

Algorithm
egg-herbie
Rules
748×fma-def_binary64
656×distribute-rgt-neg-in_binary64
630×cancel-sign-sub-inv_binary64
486×fma-neg_binary64
462×sub-neg_binary64
Counts
132 → 119
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
042399
1128384
2353363
31095327
43685327
54343327
65076327

prune127.0ms (1.9%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1480148
Fresh011
Picked011
Done000
Total1482150
Error
0b
Counts
150 → 2
Alt Table
StatusErrorProgram
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))))
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (log.f64 (+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im)))))))
Compiler

Compiled 2871 to 1886 computations (34.3% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))))
0.0b
(fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im)))))
0.0b
(expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))
0.0b
(/.f64 1/2 (exp.f64 im))

series37.0ms (0.5%)

Counts
3 → 48
Calls

3 calls:

22.0ms
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))))
9.0ms
(fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im)))))
6.0ms
(expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
879×expm1-log1p-u_binary64
878×log1p-expm1-u_binary64
196×prod-diff_binary64
100×add-sqr-sqrt_binary64
93×add-log-exp_binary64
Counts
3 → 74
Calls

3 calls:

54.0ms
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))))
54.0ms
(fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im)))))
54.0ms
(expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01135
120135
2230835
3567535

simplify50.0ms (0.8%)

Algorithm
egg-herbie
Rules
685×fma-neg_binary64
601×associate--r+_binary64
447×fma-def_binary64
298×sub-neg_binary64
175×associate-*l*_binary64
Counts
122 → 107
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
084844
1250787
2748763
32524748
45057748

prune90.0ms (1.3%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New1360136
Fresh000
Picked011
Done011
Total1362138
Error
0b
Counts
138 → 2
Alt Table
StatusErrorProgram
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (expm1.f64 (log1p.f64 (/.f64 1/2 (exp.f64 im))))))
0.0b
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (log.f64 (+.f64 1 (expm1.f64 (/.f64 1/2 (exp.f64 im)))))))
Compiler

Compiled 2311 to 1359 computations (41.2% saved)

regimes352.0ms (5.2%)

Accuracy

Total 0.2b remaining (83.4%)

Threshold costs 0.2b (83.4%)

Counts
62 → 1
Compiler

Compiled 5490 to 4113 computations (25.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
1-exp_binary64
e-exp-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01223
11523
21723
31623

end64.0ms (1%)

Compiler

Compiled 64 to 48 computations (25% saved)

Profiling

Loading profile data...