Details

Time bar (total: 5.5s)

analyze52.0ms (1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
50%50%0.1%3
50%50%0.1%4
62.4%37.5%0.1%5
62.4%31.2%6.3%6
68.7%21.9%9.5%7
68.7%17.2%14.1%8
71.8%11.7%16.5%9
71.8%9%19.2%10
73.4%6%20.6%11
73.4%4.6%22%12
74.1%3.1%22.8%13
74.1%2.3%23.5%14
Compiler

Compiled 9 to 7 computations (22.2% saved)

sample84.0ms (1.5%)

Algorithm
intervals
Symmetry

(sort a x)

Results
11.0ms37×body2048valid
10.0ms55×body1024valid
4.0ms40×body512valid
3.0ms101×body128valid
1.0ms23×body256valid
0.0msbody128invalid
Compiler

Compiled 19 to 15 computations (21.1% saved)

simplify74.0ms (1.4%)

Algorithm
egg-herbie
Rules
571×fma-neg_binary64
455×*-commutative_binary64
440×unswap-sqr_binary64
344×associate-*l*_binary64
274×associate-+l+_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076
1166
2236
3356
4706
51606
64326
715646
834906
949546
1049936
1148746

prune3.0ms (0.1%)

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
(expm1.f64 (*.f64 a x))
Compiler

Compiled 24 to 15 computations (37.5% saved)

localize3.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 a x))

series7.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

7.0ms
(expm1.f64 (*.f64 a x))

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
log1p-expm1-u_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
1 → 11
Calls

1 calls:

0.0ms
(expm1.f64 (*.f64 a x))

simplify68.0ms (1.3%)

Algorithm
egg-herbie
Rules
910×fma-def_binary64
844×distribute-lft-out_binary64
785×fma-neg_binary64
383×*-commutative_binary64
308×unswap-sqr_binary64
Counts
35 → 19
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
040382
196369
2262363
3966347
42376333
53696333
64842333
75375333

prune12.0ms (0.2%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New18119
Fresh000
Picked011
Done000
Total18220
Error
0.0b
Counts
20 → 2
Alt Table
StatusErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
18.7b
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))
Compiler

Compiled 261 to 121 computations (53.6% saved)

localize7.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
0.1b
(*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))
0.2b
(*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))
18.7b
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))

series43.0ms (0.8%)

Counts
3 → 72
Calls

3 calls:

22.0ms
(*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))
14.0ms
(*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))
7.0ms
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))

rewrite14.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
29×pow1_binary64
13×add-cbrt-cube_binary64
11×add-sqr-sqrt_binary64
10×add-exp-log_binary64
*-un-lft-identity_binary64
Counts
3 → 70
Calls

3 calls:

5.0ms
(*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))
3.0ms
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))
3.0ms
(*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))

simplify116.0ms (2.1%)

Algorithm
egg-herbie
Rules
627×fma-neg_binary64
445×fma-def_binary64
248×distribute-neg-in_binary64
237×*-commutative_binary64
233×sqr-pow_binary64
Counts
142 → 112
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01071870
12461686
27781664
321261610
429091543
547661543
652511543

prune112.0ms (2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New1672169
Fresh000
Picked011
Done011
Total1674171
Error
0b
Counts
171 → 4
Alt Table
StatusErrorProgram
18.9b
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
0.0b
(expm1.f64 (*.f64 a x))
18.7b
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))
18.8b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (expm1.f64 (*.f64 a x))))
Compiler

Compiled 3663 to 1119 computations (69.5% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))
0.2b
(*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))))
18.6b
(cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))
18.7b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (expm1.f64 (*.f64 a x))))

series1.2s (21.6%)

Counts
3 → 72
Calls

3 calls:

587.0ms
(*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))))
583.0ms
(cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))
8.0ms
(cbrt.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (expm1.f64 (*.f64 a x))))

rewrite16.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
11×add-sqr-sqrt_binary64
10×cbrt-prod_binary64
10×pow1_binary64
pow1/3_binary64
*-un-lft-identity_binary64
Counts
3 → 58
Calls

3 calls:

7.0ms
(cbrt.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (expm1.f64 (*.f64 a x))))
4.0ms
(*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))))
2.0ms
(cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))

simplify110.0ms (2%)

Algorithm
egg-herbie
Rules
686×fma-def_binary64
422×*-commutative_binary64
340×distribute-rgt-in_binary64
321×distribute-lft-in_binary64
244×unswap-sqr_binary64
Counts
130 → 124
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01802889
13802517
210972002
325411943
447961907
549251907

prune282.0ms (5.2%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New3200320
Fresh011
Picked011
Done022
Total3204324
Error
0b
Counts
324 → 4
Alt Table
StatusErrorProgram
18.9b
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
0.0b
(expm1.f64 (*.f64 a x))
18.7b
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))
18.8b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (expm1.f64 (*.f64 a x))))
Compiler

Compiled 14547 to 3495 computations (76% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
0.3b
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
8.0b
(cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))
18.7b
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))

series1.1s (20.5%)

Counts
3 → 72
Calls

3 calls:

636.0ms
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
473.0ms
(cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))
9.0ms
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))

rewrite29.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
35×cbrt-prod_binary64
29×pow1_binary64
24×add-sqr-sqrt_binary64
16×pow1/3_binary64
14×associate-*r*_binary64
Counts
3 → 98
Calls

3 calls:

9.0ms
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
6.0ms
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
1.0ms
(cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))

simplify149.0ms (2.7%)

Algorithm
egg-herbie
Rules
732×fma-def_binary64
648×unswap-sqr_binary64
394×*-commutative_binary64
215×associate-*r*_binary64
199×distribute-lft-out_binary64
Counts
170 → 166
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01804606
14253586
211152496
324052157
444901843
548931843
649711843

prune209.0ms (3.8%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New3170317
Fresh000
Picked011
Done033
Total3174321
Error
0b
Counts
321 → 4
Alt Table
StatusErrorProgram
18.9b
(*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))))
0.0b
(expm1.f64 (*.f64 a x))
18.7b
(cbrt.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))))
18.8b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (cbrt.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))))) (expm1.f64 (*.f64 a x))))
Compiler

Compiled 16649 to 2089 computations (87.5% saved)

regimes416.0ms (7.6%)

Accuracy

Total 0.0b remaining (29.9%)

Threshold costs 0.0b (29.9%)

Counts
91 → 1
Compiler

Compiled 14501 to 5909 computations (59.3% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
166
266

end6.0ms (0.1%)

Remove

(sort a x)

Compiler

Compiled 18 to 12 computations (33.3% saved)

sample1.3s (24.3%)

Algorithm
intervals
Results
471.0ms1433×body2048valid
307.0ms1767×body1024valid
113.0ms1085×body512valid
96.0ms3060×body128valid
41.0ms655×body256valid
5.0ms143×body128invalid
Compiler

Compiled 132 to 44 computations (66.7% saved)

Profiling

Loading profile data...