Details

Time bar (total: 6.2s)

analyze980.0ms (15.7%)

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
6.2%93.7%0.1%6
9.4%90.5%0.1%7
14%85.9%0.1%8
16.4%83.5%0.1%9
19.1%80.8%0.1%10
20.5%79.4%0.1%11
22%78%0.1%12
22.7%77.2%0.1%13
23.4%76.5%0.1%14
Compiler

Compiled 9 to 7 computations (22.2% saved)

sample3.8s (60.7%)

Symmetry

(sort a x)

Results
1.4s2661×body8192exit
945.0ms1516×body2048valid
642.0ms1767×body1024valid
333.0ms3176×body128valid
288.0ms1142×body512valid
115.0ms655×body256valid
Compiler

Compiled 26 to 20 computations (23.1% saved)

simplify72.0ms (1.2%)

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)

localize4.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))

simplify70.0ms (1.1%)

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

prune14.0ms (0.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New16319
Fresh000
Picked011
Done000
Total16420
Error
0.0b
Counts
20 → 4
Alt Table
StatusErrorProgram
27.3b
(*.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a))
0.0b
(expm1.f64 (*.f64 a x))
41.4b
(*.f64 (sqrt.f64 (expm1.f64 (*.f64 a x))) (sqrt.f64 (expm1.f64 (*.f64 a x))))
16.1b
(cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))
Compiler

Compiled 295 to 147 computations (50.2% saved)

localize6.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
0.1b
(pow.f64 (expm1.f64 (*.f64 a x)) 3)
16.2b
(cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))

series29.0ms (0.5%)

Counts
2 → 48
Calls

2 calls:

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

rewrite6.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×cbrt-prod_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
cube-prod_binary64
Counts
2 → 48
Calls

2 calls:

2.0ms
(cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))
2.0ms
(pow.f64 (expm1.f64 (*.f64 a x)) 3)

simplify84.0ms (1.4%)

Algorithm
egg-herbie
Rules
674×associate-*l*_binary64
587×associate-*r*_binary64
337×log-prod_binary64
288×fma-def_binary64
278×exp-prod_binary64
Counts
96 → 70
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0941262
12021199
26291177
330981171
447911171
549621171

prune49.0ms (0.8%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New87289
Fresh112
Picked101
Done011
Total89493
Error
0.0b
Counts
93 → 4
Alt Table
StatusErrorProgram
27.3b
(*.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a))
16.1b
(cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))
26.8b
(cbrt.f64 (pow.f64 (-.f64 (exp.f64 (*.f64 a x)) 1) 3))
0.0b
(expm1.f64 (*.f64 a x))
Compiler

Compiled 1351 to 728 computations (46.1% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))
0.0b
(expm1.f64 (*.f64 a x))
0.1b
(pow.f64 (expm1.f64 (*.f64 a x)) 3)
16.2b
(cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))

series30.0ms (0.5%)

Counts
2 → 48
Calls

2 calls:

23.0ms
(expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))
7.0ms
(cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))

rewrite2.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
cbrt-prod_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
2 → 24
Calls

2 calls:

1.0ms
(cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))
0.0ms
(expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))

simplify85.0ms (1.4%)

Algorithm
egg-herbie
Rules
443×distribute-rgt-in_binary64
438×distribute-lft-in_binary64
418×associate-*l*_binary64
394×associate-*r*_binary64
286×fma-def_binary64
Counts
72 → 58
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
073995
1162911
2478897
32083887
44633848
54989848
64995848

prune86.0ms (1.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1092111
Fresh112
Picked101
Done011
Total1114115
Error
0.0b
Counts
115 → 4
Alt Table
StatusErrorProgram
23.6b
(cbrt.f64 (expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (*.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3) (pow.f64 (expm1.f64 (*.f64 a x)) 3)) (pow.f64 (expm1.f64 (*.f64 a x)) 3))))))
16.2b
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))))
27.3b
(*.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a))
0.0b
(expm1.f64 (*.f64 a x))
Compiler

Compiled 1894 to 1140 computations (39.8% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(pow.f64 (expm1.f64 (*.f64 a x)) 3)
0.1b
(*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))))
16.2b
(cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))
16.2b
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))))

series23.0ms (0.4%)

Counts
2 → 48
Calls

2 calls:

15.0ms
(*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))))
8.0ms
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))))

rewrite15.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
18×add-sqr-sqrt_binary64
17×cbrt-prod_binary64
10×*-un-lft-identity_binary64
10×add-cube-cbrt_binary64
pow1_binary64
Counts
2 → 54
Calls

2 calls:

6.0ms
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))))
5.0ms
(*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))))

simplify90.0ms (1.4%)

Algorithm
egg-herbie
Rules
616×unswap-sqr_binary64
543×distribute-rgt-in_binary64
415×associate-*l*_binary64
348×associate-*r*_binary64
277×fma-def_binary64
Counts
102 → 100
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0971846
11981382
25431322
320461300
447511279
550141279

prune322.0ms (5.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2932295
Fresh112
Picked101
Done011
Total2954299
Error
0.0b
Counts
299 → 4
Alt Table
StatusErrorProgram
27.3b
(*.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a))
16.2b
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3)))) (cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))))
20.8b
(cbrt.f64 (*.f64 (cbrt.f64 (*.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))) (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))) (cbrt.f64 (expm1.f64 (log1p.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))))))
0.0b
(expm1.f64 (*.f64 a x))
Compiler

Compiled 10447 to 6256 computations (40.1% saved)

regimes361.0ms (5.8%)

Accuracy

Total 0.0b remaining (29.2%)

Threshold costs 0.0b (29.2%)

Counts
71 → 1
Compiler

Compiled 6962 to 4896 computations (29.7% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
166
266

end85.0ms (1.4%)

Remove

(sort a x)

Compiler

Compiled 103 to 68 computations (34% saved)

Profiling

Loading profile data...