Details

Time bar (total: 5.6s)

analyze710.0ms (12.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
0%99.9%0.1%6
12.5%87.4%0.1%7
31.2%68.6%0.1%8
37.4%59.3%3.3%9
45.2%48.4%6.4%10
56.9%36.7%6.4%11
60.5%30.8%8.7%12
64.2%24.8%11.1%13
70.3%18.6%11.1%14
Compiler

Compiled 11 to 8 computations (27.3% saved)

sample1.6s (28.3%)

Symmetry

(sort y z)

Results
1.4s8256×body128valid
96.0ms611×body128invalid
Compiler

Compiled 32 to 23 computations (28.1% saved)

simplify32.0ms (0.6%)

Algorithm
egg-herbie
Rules
419×fma-def_binary64
121×fma-neg_binary64
46×distribute-rgt-in_binary64
45×associate-*r*_binary64
43×associate-*l*_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
11710
23210
37310
417510
521610
629010
741110
843110
948110
1048410
1150410
1245310

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
4.1b
Counts
2 → 1
Alt Table
StatusErrorProgram
4.1b
(*.f64 x (-.f64 1 (*.f64 y z)))
Compiler

Compiled 30 to 21 computations (30% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 1 (*.f64 y z))
3.8b
(*.f64 x (-.f64 1 (*.f64 y z)))

series27.0ms (0.5%)

Counts
2 → 42
Calls

2 calls:

20.0ms
(*.f64 x (-.f64 1 (*.f64 y z)))
6.0ms
(-.f64 1 (*.f64 y z))

rewrite79.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
760×log1p-expm1-u_binary64
760×expm1-log1p-u_binary64
423×prod-diff_binary64
83×add-sqr-sqrt_binary64
76×add-cbrt-cube_binary64
Counts
2 → 51
Calls

2 calls:

77.0ms
(-.f64 1 (*.f64 y z))
77.0ms
(*.f64 x (-.f64 1 (*.f64 y z)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
116417
2194717
3544717
000
100

simplify78.0ms (1.4%)

Algorithm
egg-herbie
Rules
428×fma-def_binary64
125×fma-neg_binary64
48×cancel-sign-sub-inv_binary64
47×associate-*l*_binary64
42×associate-*r*_binary64
Counts
93 → 59
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014364
135364
271364
3108364
4200364
5310364
6396364
7480364
8491364
9509364
10458364

prune80.0ms (1.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New56359
Fresh000
Picked011
Done000
Total56460
Error
0.0b
Counts
60 → 4
Alt Table
StatusErrorProgram
4.8b
(-.f64 x (*.f64 y (*.f64 z x)))
4.1b
(*.f64 x (-.f64 1 (*.f64 y z)))
13.6b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 2)) x) (+.f64 1 (*.f64 y z)))
17.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))))
Compiler

Compiled 814 to 445 computations (45.3% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (*.f64 y (*.f64 z x)))
6.0b
(*.f64 y (*.f64 z x))

series40.0ms (0.7%)

Counts
2 → 18
Calls

2 calls:

24.0ms
(-.f64 x (*.f64 y (*.f64 z x)))
16.0ms
(*.f64 y (*.f64 z x))

rewrite126.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
808×expm1-log1p-u_binary64
760×prod-diff_binary64
140×egg-rr
83×associate-*r*_binary64
81×add-sqr-sqrt_binary64
Counts
2 → 140
Calls

2 calls:

117.0ms
(-.f64 x (*.f64 y (*.f64 z x)))
117.0ms
(*.f64 y (*.f64 z x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
115417
2203517
3501417
000
100

simplify52.0ms (0.9%)

Algorithm
egg-herbie
Rules
409×fma-def_binary64
113×fma-neg_binary64
89×associate-*l*_binary64
56×distribute-rgt-in_binary64
46×associate-*r*_binary64
Counts
158 → 145
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015158
139158
288158
3137158
4234158
5394158
6477158
7518158
8514158
9463158

prune165.0ms (3%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1432145
Fresh112
Picked011
Done011
Total1445149
Error
0b
Counts
149 → 5
Alt Table
StatusErrorProgram
4.8b
(-.f64 x (*.f64 y (*.f64 z x)))
32.0b
(+.f64 (fma.f64 x 1 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y) (sqrt.f64 (*.f64 z x))))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y)) (sqrt.f64 (*.f64 z x)) (*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y) (sqrt.f64 (*.f64 z x)))))
4.1b
(*.f64 x (-.f64 1 (*.f64 y z)))
5.8b
(+.f64 (fma.f64 x 1 (neg.f64 (*.f64 (*.f64 x y) z))) (fma.f64 (neg.f64 (*.f64 x y)) z (*.f64 (*.f64 x y) z)))
17.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))))
Compiler

Compiled 3976 to 758 computations (80.9% saved)

localize18.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x 1 (neg.f64 (*.f64 (*.f64 x y) z)))
7.4b
(*.f64 (*.f64 x y) z)
50.1b
(fma.f64 (neg.f64 (*.f64 x y)) z (*.f64 (*.f64 x y) z))

series74.0ms (1.3%)

Counts
3 → 108
Calls

3 calls:

41.0ms
(fma.f64 (neg.f64 (*.f64 x y)) z (*.f64 (*.f64 x y) z))
18.0ms
(fma.f64 x 1 (neg.f64 (*.f64 (*.f64 x y) z)))
15.0ms
(*.f64 (*.f64 x y) z)

rewrite77.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
836×log1p-expm1-u_binary64
836×expm1-log1p-u_binary64
110×add-sqr-sqrt_binary64
107×associate-*r*_binary64
100×add-cbrt-cube_binary64
Counts
3 → 70
Calls

3 calls:

75.0ms
(fma.f64 x 1 (neg.f64 (*.f64 (*.f64 x y) z)))
75.0ms
(*.f64 (*.f64 x y) z)
75.0ms
(fma.f64 (neg.f64 (*.f64 x y)) z (*.f64 (*.f64 x y) z))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
122327
2222327
3507227
000
100

simplify75.0ms (1.4%)

Algorithm
egg-herbie
Rules
412×fma-def_binary64
114×fma-neg_binary64
87×associate-*l*_binary64
54×distribute-rgt-in_binary64
46×associate-*r*_binary64
Counts
178 → 79
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017626
143626
291626
3148626
4234626
5394626
6477626
7518626
8514626
9463626

prune159.0ms (2.8%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1000100
Fresh022
Picked011
Done022
Total1005105
Error
0b
Counts
105 → 5
Alt Table
StatusErrorProgram
4.8b
(-.f64 x (*.f64 y (*.f64 z x)))
32.0b
(+.f64 (fma.f64 x 1 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y) (sqrt.f64 (*.f64 z x))))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y)) (sqrt.f64 (*.f64 z x)) (*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y) (sqrt.f64 (*.f64 z x)))))
4.1b
(*.f64 x (-.f64 1 (*.f64 y z)))
5.8b
(+.f64 (fma.f64 x 1 (neg.f64 (*.f64 (*.f64 x y) z))) (fma.f64 (neg.f64 (*.f64 x y)) z (*.f64 (*.f64 x y) z)))
17.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))))
Compiler

Compiled 2523 to 711 computations (71.8% saved)

localize23.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 y z) 3)
1.0b
(+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))
2.1b
(*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x)
14.7b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))))

series439.0ms (7.9%)

Counts
4 → 120
Calls

4 calls:

315.0ms
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))))
81.0ms
(*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x)
23.0ms
(pow.f64 (*.f64 y z) 3)
19.0ms
(+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))

rewrite170.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
274×expm1-udef_binary64
273×log1p-udef_binary64
159×log1p-expm1-u_binary64
159×expm1-log1p-u_binary64
157×add-sqr-sqrt_binary64
Counts
4 → 136
Calls

4 calls:

154.0ms
(pow.f64 (*.f64 y z) 3)
154.0ms
(+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))
154.0ms
(*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x)
154.0ms
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01560
134160
2417860
3488760
000
100

simplify154.0ms (2.8%)

Algorithm
egg-herbie
Rules
747×unswap-sqr_binary64
591×fma-def_binary64
460×distribute-rgt-neg-in_binary64
452×distribute-lft-neg-in_binary64
381×*-commutative_binary64
Counts
256 → 153
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0281720
1841720
22501630
310801606
424121606
549891606
650971606

prune266.0ms (4.8%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New1530153
Fresh011
Picked011
Done033
Total1535158
Error
0b
Counts
158 → 5
Alt Table
StatusErrorProgram
4.8b
(-.f64 x (*.f64 y (*.f64 z x)))
32.0b
(+.f64 (fma.f64 x 1 (neg.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y) (sqrt.f64 (*.f64 z x))))) (fma.f64 (neg.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y)) (sqrt.f64 (*.f64 z x)) (*.f64 (*.f64 (sqrt.f64 (*.f64 z x)) y) (sqrt.f64 (*.f64 z x)))))
4.1b
(*.f64 x (-.f64 1 (*.f64 y z)))
5.8b
(+.f64 (fma.f64 x 1 (neg.f64 (*.f64 (*.f64 x y) z))) (fma.f64 (neg.f64 (*.f64 x y)) z (*.f64 (*.f64 x y) z)))
17.3b
(/.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 y z) 3)) x) (+.f64 1 (+.f64 (*.f64 y z) (pow.f64 (*.f64 y z) 2))))
Compiler

Compiled 4134 to 2293 computations (44.5% saved)

regimes1.0s (18.7%)

Accuracy

Total 0.1b remaining (85.6%)

Threshold costs 0.1b (85.6%)

Counts
43 → 3
Compiler

Compiled 5652 to 3267 computations (42.2% saved)

bsearch3.0ms (0.1%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
distribute-rgt-neg-in_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01846
13546
25446
36546
47246
57446
67346

end89.0ms (1.6%)

Remove

(sort y z)

Compiler

Compiled 246 to 116 computations (52.8% saved)

Profiling

Loading profile data...