Details

Time bar (total: 13.4s)

analyze681.0ms (5.1%)

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
12.5%87.4%0.1%5
18.7%81.1%0.1%6
21.8%71.8%6.4%7
31.2%62.4%6.4%8
35.9%55.4%8.7%9
37.8%48.8%13.4%10
42.7%42.3%15%11
47.7%34.2%18.1%12
49.1%30.4%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.4s (17.8%)

Results
730.0ms5388×body128valid
630.0ms1157×body2048valid
336.0ms759×body1024valid
280.0ms431×body4096valid
145.0ms1019×body128invalid
117.0ms358×body512valid
38.0ms163×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify426.0ms (3.2%)

Algorithm
egg-herbie
Rules
2009×fma-neg_binary64
1508×div-sub_binary64
1334×associate-/l*_binary64
1156×fma-def_binary64
685×associate-/l/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
13422
26422
313222
419822
532522
655222
791822
8135222
9155422
10235922
11315822
12256522
13265322
14321922
15336122
16346122
17398522
18417122
19443922
20465922
21470122
22475722
23494122
24494122
25336522
26305922
27298322
28298522
29299722
30299722
31299722
32299722
33273622

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
32.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
32.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
32.7b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
0.2b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
0.4b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
20.9b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series208.0ms (1.6%)

Counts
4 → 96
Calls

4 calls:

86.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
67.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
46.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
10.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite366.0ms (2.7%)

Algorithm
egg-rewrite
Rules
232×egg
64×egg
57×egg
27×egg
Counts
4 → 380
Calls

4 calls:

112.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
109.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
73.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
61.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01015
121913
2262113
3504113
01220
127216
2324015
3486515
0913
120011
2242811
3497411
4494111
01526
133822
2415322
3497922
4534922

simplify101.0ms (0.8%)

Algorithm
egg-herbie
Rules
742×times-frac_binary64
467×associate-/l*_binary64
436×fma-def_binary64
432×fma-neg_binary64
426×associate-/r*_binary64
Counts
476 → 449
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212241
13982164
213272078
349542078
452182078

prune357.0ms (2.7%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New4418449
Fresh011
Picked101
Done000
Total4429451
Error
4.2b
Counts
451 → 9
Alt Table
StatusErrorProgram
32.9b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 4 (*.f64 a c))) 2) (neg.f64 (cbrt.f64 (*.f64 4 (*.f64 a c)))) (*.f64 b b)))) (*.f64 2 a))
36.2b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a c) -4)))) (*.f64 2 a))
48.8b
(/.f64 (+.f64 (fma.f64 b b (*.f64 b b)) (*.f64 4 (*.f64 a c))) (*.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))))
32.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
47.1b
(/.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
47.5b
(/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a c) -4)))))) (*.f64 2 a))
44.3b
(/.f64 (neg.f64 b) a)
39.3b
(neg.f64 (/.f64 c b))
46.8b
(/.f64 (*.f64 (+.f64 (fma.f64 b b (*.f64 b b)) (*.f64 4 (*.f64 a c))) (/.f64 1/2 a)) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))))
Compiler

Compiled 13889 to 7379 computations (46.9% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
0.4b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
20.9b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series179.0ms (1.3%)

Counts
3 → 60
Calls

3 calls:

84.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
52.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
42.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

rewrite260.0ms (1.9%)

Algorithm
egg-rewrite
Rules
105×egg
61×egg
23×egg
Counts
3 → 189
Calls

3 calls:

132.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
68.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
55.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
117813
2191313
3506713
01016
121016
2248615
3467115
4474915
5523415
01322
127922
2338522
3510222

simplify85.0ms (0.6%)

Algorithm
egg-herbie
Rules
728×times-frac_binary64
467×associate-/l*_binary64
430×fma-neg_binary64
421×fma-def_binary64
410×associate-/r*_binary64
Counts
249 → 255
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01181839
13931816
213171730
348881730
451521730

prune211.0ms (1.6%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New2505255
Fresh358
Picked101
Done000
Total25410264
Error
4.2b
Counts
264 → 10
Alt Table
StatusErrorProgram
44.3b
(/.f64 (neg.f64 b) a)
31.8b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (/.f64 1/2 a))
32.7b
(/.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (*.f64 a 2))
47.1b
(/.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
50.0b
(exp.f64 (log.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))))
47.5b
(/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a c) -4)))))) (*.f64 2 a))
50.2b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a)) 3))
36.7b
(*.f64 (fma.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/2 a))
39.3b
(neg.f64 (/.f64 c b))
46.8b
(/.f64 (*.f64 (+.f64 (fma.f64 b b (*.f64 b b)) (*.f64 4 (*.f64 a c))) (/.f64 1/2 a)) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))))
Compiler

Compiled 6710 to 4038 computations (39.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))
0.2b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (/.f64 1/2 a))
0.3b
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2)
13.1b
(sqrt.f64 (*.f64 a (*.f64 c -4)))

series976.0ms (7.3%)

Counts
4 → 20
Calls

4 calls:

402.0ms
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2)
296.0ms
(sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))
256.0ms
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (/.f64 1/2 a))
22.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))

rewrite359.0ms (2.7%)

Algorithm
egg-rewrite
Rules
97×egg
63×egg
30×egg
27×egg
Counts
4 → 217
Calls

4 calls:

125.0ms
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2)
115.0ms
(sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b))
70.0ms
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (/.f64 1/2 a))
44.0ms
(sqrt.f64 (*.f64 a (*.f64 c -4)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11419
215729
350039
01315
125815
2290315
3491815
4490715
5490215
01621
132721
2380221
3488021
01117
123117
2272717
3479917
4478717
5497417

simplify119.0ms (0.9%)

Algorithm
egg-herbie
Rules
600×times-frac_binary64
317×associate-/r*_binary64
292×associate-/l*_binary64
272×fma-def_binary64
259×associate-*r*_binary64
Counts
237 → 251
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0100833
1297792
2894762
34334739
44893739
54997739
64998739
74938739

prune186.0ms (1.4%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2483251
Fresh369
Picked011
Done000
Total25110261
Error
2.8b
Counts
261 → 10
Alt Table
StatusErrorProgram
44.3b
(/.f64 (neg.f64 b) a)
31.8b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (/.f64 1/2 a))
39.3b
(neg.f64 (/.f64 c b))
45.6b
(/.f64 (*.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) (*.f64 b b)) (/.f64 1/2 a)) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
47.4b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 c -4)))) b)) 2) (/.f64 1/2 a))
47.1b
(/.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
47.5b
(/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a c) -4)))))) (*.f64 2 a))
31.7b
(/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 a 2))
50.2b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a)) 3))
36.7b
(*.f64 (fma.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (fma.f64 (neg.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 b) 2) b)) (/.f64 1/2 a))
Compiler

Compiled 7009 to 4589 computations (34.5% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)
0.1b
(/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 a 2))
13.1b
(sqrt.f64 (*.f64 a (*.f64 c -4)))

series383.0ms (2.9%)

Counts
2 → 24
Calls

2 calls:

236.0ms
(/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 a 2))
147.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)

rewrite300.0ms (2.2%)

Algorithm
egg-rewrite
Rules
388×egg
89×egg
Counts
2 → 477
Calls

2 calls:

156.0ms
(/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 a 2))
123.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01321
128521
2373421
3561321
01015
121315
2256015
3482315
4485515
5499315

simplify90.0ms (0.7%)

Algorithm
egg-herbie
Rules
728×times-frac_binary64
683×fma-neg_binary64
388×associate-/l*_binary64
364×associate-/r*_binary64
279×associate-*r*_binary64
Counts
501 → 522
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0102988
1320908
21000857
34953857
45443857

prune532.0ms (4%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New5502552
Fresh268
Picked011
Done011
Total55210562
Error
2.8b
Counts
562 → 10
Alt Table
StatusErrorProgram
47.3b
(/.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 (*.f64 c -4)) (sqrt.f64 a))) b) (*.f64 a 2))
31.7b
(/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b) (*.f64 a 2))
44.3b
(/.f64 (neg.f64 b) a)
31.8b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) b)) 2) (/.f64 1/2 a))
39.3b
(neg.f64 (/.f64 c b))
45.6b
(/.f64 (*.f64 (-.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) (*.f64 b b)) (/.f64 1/2 a)) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))
47.1b
(/.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
47.5b
(/.f64 (exp.f64 (log.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 a c) -4)))))) (*.f64 2 a))
50.2b
(cbrt.f64 (pow.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a)) 3))
53.2b
(+.f64 (fma.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))) (/.f64 1/2 a) (neg.f64 (/.f64 b (*.f64 a 2)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 b) 2)) (/.f64 (sqrt.f64 b) a) (/.f64 b (*.f64 a 2))))
Compiler

Compiled 25257 to 16952 computations (32.9% saved)

regimes4.9s (36.8%)

Accuracy

Total 7.4b remaining (70.4%)

Threshold costs 0b (0%)

Counts
286 → 3
Compiler

Compiled 25400 to 17766 computations (30.1% saved)

bsearch81.0ms (0.6%)

Steps
ItersRangePoint
10
1.5641535248602722e-80
8.26668635655845e-71
2.0627980826047655e-71
3
-4.905015133134337e+159
-7.706913201840932e+152
-5.560568612734722e+153
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02754
14052
24752
35052
45052

end148.0ms (1.1%)

Compiler

Compiled 277 to 188 computations (32.1% saved)

Profiling

Loading profile data...