Details

Time bar (total: 4.7s)

analyze60.0ms (1.3%)

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)

sample2.3s (49.4%)

Symmetry

(sort a x)

Results
833.0ms1510×body2048valid
685.0ms1818×body1024valid
296.0ms3142×body128valid
292.0ms1151×body512valid
104.0ms635×body256valid
13.0ms143×body128invalid
Compiler

Compiled 26 to 20 computations (23.1% saved)

simplify73.0ms (1.6%)

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

series6.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

6.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.5%)

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

prune15.0ms (0.3%)

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
0.8b
(*.f64 (*.f64 (cbrt.f64 (expm1.f64 (*.f64 a x))) (cbrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
22.1b
(cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))
21.5b
(fma.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a) (fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4))))
0.0b
(expm1.f64 (*.f64 a x))
Compiler

Compiled 335 to 167 computations (50.1% saved)

localize7.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 a x))
0.2b
(*.f64 (*.f64 (cbrt.f64 (expm1.f64 (*.f64 a x))) (cbrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
0.3b
(*.f64 (cbrt.f64 (expm1.f64 (*.f64 a x))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
10.4b
(cbrt.f64 (expm1.f64 (*.f64 a x)))

series1.2s (24.8%)

Counts
3 → 72
Calls

3 calls:

695.0ms
(*.f64 (cbrt.f64 (expm1.f64 (*.f64 a x))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
455.0ms
(cbrt.f64 (expm1.f64 (*.f64 a x)))
7.0ms
(*.f64 (*.f64 (cbrt.f64 (expm1.f64 (*.f64 a x))) (cbrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (expm1.f64 (*.f64 a x))))

rewrite21.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
29×pow1_binary64
24×add-sqr-sqrt_binary64
23×cbrt-prod_binary64
16×pow1/3_binary64
14×*-un-lft-identity_binary64
Counts
3 → 93
Calls

3 calls:

10.0ms
(*.f64 (*.f64 (cbrt.f64 (expm1.f64 (*.f64 a x))) (cbrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
5.0ms
(*.f64 (cbrt.f64 (expm1.f64 (*.f64 a x))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
1.0ms
(cbrt.f64 (expm1.f64 (*.f64 a x)))

simplify135.0ms (2.9%)

Algorithm
egg-herbie
Rules
739×fma-def_binary64
437×*-commutative_binary64
358×distribute-rgt-in_binary64
343×distribute-lft-in_binary64
260×unswap-sqr_binary64
Counts
165 → 151
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01682948
14092621
211542203
326372016
448491965
549621965
649321965

prune159.0ms (3.4%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New2633266
Fresh022
Picked101
Done101
Total2655270
Error
0.0b
Counts
270 → 5
Alt Table
StatusErrorProgram
40.2b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x))))) (*.f64 (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
21.5b
(fma.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a) (fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4))))
20.1b
(fma.f64 a x (*.f64 (pow.f64 (*.f64 a x) 2) 1/2))
30.6b
(*.f64 (pow.f64 (pow.f64 (-.f64 (exp.f64 (*.f64 a x)) 1) 2) 1/3) (cbrt.f64 (expm1.f64 (*.f64 a x))))
22.1b
(cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))
Compiler

Compiled 6991 to 1991 computations (71.5% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series23.0ms (0.5%)

Counts
2 → 48
Calls

2 calls:

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

rewrite4.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-exp-log_binary64
pow1_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
pow-unpow_binary64
Counts
2 → 30
Calls

2 calls:

3.0ms
(pow.f64 (*.f64 a x) 2)
0.0ms
(fma.f64 a x (*.f64 (pow.f64 (*.f64 a x) 2) 1/2))

simplify76.0ms (1.6%)

Algorithm
egg-herbie
Rules
576×distribute-rgt-in_binary64
550×distribute-lft-in_binary64
367×unswap-sqr_binary64
296×*-commutative_binary64
294×exp-prod_binary64
Counts
78 → 44
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047963
180790
2180790
3761787
42197787
54910787
64938787

prune35.0ms (0.7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New44044
Fresh044
Picked011
Done000
Total44549
Error
0.0b
Counts
49 → 5
Alt Table
StatusErrorProgram
40.2b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x))))) (*.f64 (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
21.5b
(fma.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a) (fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4))))
20.1b
(fma.f64 a x (*.f64 (pow.f64 (*.f64 a x) 2) 1/2))
30.6b
(*.f64 (pow.f64 (pow.f64 (-.f64 (exp.f64 (*.f64 a x)) 1) 2) 1/3) (cbrt.f64 (expm1.f64 (*.f64 a x))))
22.1b
(cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))
Compiler

Compiled 832 to 480 computations (42.3% saved)

localize14.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 a x) 4)
0.2b
(fma.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a) (fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4))))
4.5b
(fma.f64 x (*.f64 1/2 (*.f64 a a)) a)
10.8b
(fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4)))

series84.0ms (1.8%)

Counts
4 → 96
Calls

4 calls:

36.0ms
(fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4)))
19.0ms
(fma.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a) (fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4))))
18.0ms
(pow.f64 (*.f64 a x) 4)
12.0ms
(fma.f64 x (*.f64 1/2 (*.f64 a a)) a)

rewrite5.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-exp-log_binary64
pow1_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
4 → 49
Calls

4 calls:

2.0ms
(pow.f64 (*.f64 a x) 4)
0.0ms
(fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4)))
0.0ms
(fma.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a) (fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4))))
0.0ms
(fma.f64 x (*.f64 1/2 (*.f64 a a)) a)

simplify89.0ms (1.9%)

Algorithm
egg-herbie
Rules
581×exp-prod_binary64
519×associate-*l*_binary64
435×associate-*r*_binary64
337×distribute-rgt-out_binary64
324×swap-sqr_binary64
Counts
145 → 96
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0962650
11762274
24752252
325362220
452842220

prune88.0ms (1.9%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New96096
Fresh033
Picked011
Done011
Total965101
Error
0.0b
Counts
101 → 5
Alt Table
StatusErrorProgram
40.2b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x))))) (*.f64 (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))) (cbrt.f64 (sqrt.f64 (expm1.f64 (*.f64 a x)))))) (cbrt.f64 (expm1.f64 (*.f64 a x))))
21.5b
(fma.f64 x (fma.f64 x (*.f64 1/2 (*.f64 a a)) a) (fma.f64 1/6 (pow.f64 (*.f64 a x) 3) (*.f64 1/24 (pow.f64 (*.f64 a x) 4))))
20.1b
(fma.f64 a x (*.f64 (pow.f64 (*.f64 a x) 2) 1/2))
30.6b
(*.f64 (pow.f64 (pow.f64 (-.f64 (exp.f64 (*.f64 a x)) 1) 2) 1/3) (cbrt.f64 (expm1.f64 (*.f64 a x))))
22.1b
(cbrt.f64 (pow.f64 (expm1.f64 (*.f64 a x)) 3))
Compiler

Compiled 2914 to 1583 computations (45.7% saved)

regimes138.0ms (3%)

Accuracy

Total 0.0b remaining (5.9%)

Threshold costs 0.0b (5.9%)

Counts
32 → 1
Compiler

Compiled 2875 to 1494 computations (48% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
1-exp_binary64
unpow1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076
1106
296

end87.0ms (1.9%)

Remove

(sort a x)

Compiler

Compiled 124 to 70 computations (43.5% saved)

Profiling

Loading profile data...