Details

Time bar (total: 4.7s)

analyze114.0ms (2.4%)

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)

sample51.0ms (1.1%)

Algorithm
intervals
Results
16.0ms49×body2048valid
10.0ms53×body1024valid
4.0ms36×body512valid
3.0ms24×body256valid
3.0ms94×body128valid
0.0msbody128invalid
Compiler

Compiled 19 to 15 computations (21.1% saved)

simplify79.0ms (1.7%)

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

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
30.2b
(-.f64 (exp.f64 (*.f64 a x)) 1)
Compiler

Compiled 40 to 27 computations (32.5% saved)

localize3.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

rewrite10.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt_binary64
expm1-udef_binary64
pow1_binary64
add-sqr-sqrt_binary64
log1p-expm1-u_binary64
Counts
1 → 32
Calls

1 calls:

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

series8.0ms (0.2%)

Counts
1 → 24
Calls

1 calls:

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

simplify109.0ms (2.3%)

Algorithm
egg-herbie
Rules
450×fma-neg_binary64
419×*-commutative_binary64
328×unswap-sqr_binary64
262×cancel-sign-sub-inv_binary64
223×sqr-pow_binary64
Counts
56 → 85
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
057533
1133511
2353502
31186498
42098484
53131484
64771472
74996472
84931472

prune21.0ms (0.5%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New83285
Fresh101
Picked011
Done000
Total84387
Error
0.0b
Counts
87 → 3
Alt Table
StatusErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
44.0b
(pow.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))) 1/3)
20.8b
(fma.f64 a x (*.f64 1/2 (pow.f64 (*.f64 a x) 2)))
Compiler

Compiled 490 to 208 computations (57.6% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a x (*.f64 1/2 (pow.f64 (*.f64 a x) 2)))
0.2b
(pow.f64 (*.f64 a x) 2)

rewrite26.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt_binary64
pow1_binary64
add-sqr-sqrt_binary64
add-exp-log_binary64
add-cbrt-cube_binary64
Counts
2 → 74
Calls

2 calls:

14.0ms
(pow.f64 (*.f64 a x) 2)
9.0ms
(fma.f64 a x (*.f64 1/2 (pow.f64 (*.f64 a x) 2)))

series99.0ms (2.1%)

Counts
2 → 48
Calls

2 calls:

75.0ms
(fma.f64 a x (*.f64 1/2 (pow.f64 (*.f64 a x) 2)))
24.0ms
(pow.f64 (*.f64 a x) 2)

simplify114.0ms (2.4%)

Algorithm
egg-herbie
Rules
465×unswap-sqr_binary64
347×cancel-sign-sub-inv_binary64
309×fma-neg_binary64
288×distribute-rgt-neg-in_binary64
281×distribute-lft-neg-in_binary64
Counts
122 → 201
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0721181
11591136
25921126
317111126
445941126
549891126
649571126

prune45.0ms (0.9%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New2010201
Fresh011
Picked011
Done011
Total2013204
Error
0.0b
Counts
204 → 3
Alt Table
StatusErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
44.0b
(pow.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))) 1/3)
20.8b
(fma.f64 a x (*.f64 1/2 (pow.f64 (*.f64 a x) 2)))
Compiler

Compiled 1433 to 803 computations (44% saved)

localize7.0ms (0.2%)

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)))
25.0b
(pow.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))) 1/3)

rewrite45.0ms (1%)

Algorithm
rewrite-expression-head
Rules
23×pow1_binary64
19×add-exp-log_binary64
15×add-sqr-sqrt_binary64
14×add-cbrt-cube_binary64
14×add-cube-cbrt_binary64
Counts
3 → 121
Calls

3 calls:

14.0ms
(pow.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))) 1/3)
12.0ms
(*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))
12.0ms
(*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))

series776.0ms (16.5%)

Counts
3 → 72
Calls

3 calls:

721.0ms
(pow.f64 (*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x))) 1/3)
38.0ms
(*.f64 (*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x))) (expm1.f64 (*.f64 a x)))
17.0ms
(*.f64 (expm1.f64 (*.f64 a x)) (expm1.f64 (*.f64 a x)))

simplify129.0ms (2.7%)

Algorithm
egg-herbie
Rules
618×fma-def_binary64
471×unswap-sqr_binary64
466×exp-prod_binary64
365×*-commutative_binary64
338×log-prod_binary64
Counts
193 → 339
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01742399
13542178
210351867
331351770
443861760
550631760

prune108.0ms (2.3%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New4222424
Fresh000
Picked101
Done022
Total4234427
Error
0.0b
Counts
427 → 4
Alt Table
StatusErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
20.8b
(fma.f64 a x (*.f64 1/2 (pow.f64 (*.f64 a x) 2)))
38.8b
(*.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 2/3) (cbrt.f64 (expm1.f64 (*.f64 a x))))
50.8b
(pow.f64 (pow.f64 (-.f64 (exp.f64 (*.f64 a x)) 1) 3) 1/3)
Compiler

Compiled 4176 to 1526 computations (63.5% saved)

localize7.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
0.1b
(*.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 2/3) (cbrt.f64 (expm1.f64 (*.f64 a x))))
10.2b
(pow.f64 (expm1.f64 (*.f64 a x)) 2/3)
10.3b
(cbrt.f64 (expm1.f64 (*.f64 a x)))

rewrite73.0ms (1.5%)

Algorithm
rewrite-expression-head
Rules
20×add-cube-cbrt_binary64
16×add-sqr-sqrt_binary64
10×pow1/3_binary64
add-exp-log_binary64
log1p-expm1-u_binary64
Counts
3 → 104
Calls

3 calls:

42.0ms
(cbrt.f64 (expm1.f64 (*.f64 a x)))
13.0ms
(*.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 2/3) (cbrt.f64 (expm1.f64 (*.f64 a x))))
11.0ms
(pow.f64 (expm1.f64 (*.f64 a x)) 2/3)

series1.3s (27.7%)

Counts
3 → 72
Calls

3 calls:

671.0ms
(cbrt.f64 (expm1.f64 (*.f64 a x)))
631.0ms
(pow.f64 (expm1.f64 (*.f64 a x)) 2/3)
6.0ms
(*.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 2/3) (cbrt.f64 (expm1.f64 (*.f64 a x))))

simplify118.0ms (2.5%)

Algorithm
egg-herbie
Rules
598×fma-def_binary64
524×distribute-rgt-in_binary64
521×unswap-sqr_binary64
491×distribute-lft-in_binary64
378×*-commutative_binary64
Counts
176 → 295
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01542248
13672140
210311810
325331697
449281697
550201697

prune94.0ms (2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New4641465
Fresh011
Picked101
Done022
Total4654469
Error
0.0b
Counts
469 → 4
Alt Table
StatusErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
38.8b
(*.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 2/3) (pow.f64 (sqrt.f64 (cbrt.f64 (expm1.f64 (*.f64 a x)))) 2))
20.8b
(fma.f64 a x (*.f64 1/2 (pow.f64 (*.f64 a x) 2)))
50.8b
(pow.f64 (pow.f64 (-.f64 (exp.f64 (*.f64 a x)) 1) 3) 1/3)
Compiler

Compiled 3328 to 1300 computations (60.9% saved)

regimes57.0ms (1.2%)

Accuracy

Total 0.0b remaining (45.3%)

Threshold costs 0.0b (45.3%)

Compiler

Compiled 708 to 471 computations (33.5% saved)

simplify3.0ms (0.1%)

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 (27.5%)

Algorithm
intervals
Results
459.0ms1455×body2048valid
292.0ms1727×body1024valid
109.0ms1093×body512valid
97.0ms3070×body128valid
42.0ms655×body256valid
5.0ms128×body128invalid
Compiler

Compiled 64 to 46 computations (28.1% saved)

Profiling

Loading profile data...