Details

Time bar (total: 12.5s)

analyze614.0ms (4.9%)

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)

sample3.0s (24.1%)

Results
986.0ms1157×body2048valid
883.0ms5388×body128valid
377.0ms759×body1024valid
304.0ms431×body4096valid
205.0ms1019×body128invalid
111.0ms358×body512valid
35.0ms163×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify284.0ms (2.3%)

Algorithm
egg-herbie
Rules
1743×fma-neg_binary64
1393×fma-def_binary64
800×div-sub_binary64
619×times-frac_binary64
473×associate-/r/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
13322
26722
313822
420422
533822
655822
792422
8138822
9160422
10237522
11274222
12253322
13262122
14317122
15331322
16387322
17367922
18402922
19431722
20448522
21456122
22480522
23479322
24479722
25479722
26494822

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 (*.f64 4 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 (*.f64 4 a) c)))) (*.f64 2 a))
0.2b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
0.4b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
20.9b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))

series182.0ms (1.5%)

Counts
4 → 96
Calls

4 calls:

80.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
50.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
40.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
11.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite381.0ms (3%)

Algorithm
egg-rewrite
Rules
240×egg
64×egg
57×egg
27×egg
Counts
4 → 388
Calls

4 calls:

113.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
107.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
94.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
57.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01015
121813
2262813
3507213
01220
127116
2324716
3497316
4493416
0913
119911
2243511
3499111
4497211
01526
133722
2415822
3498722
4485022

simplify99.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
484 → 457
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212241
13982164
213272078
349542078
452182078

prune729.0ms (5.8%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New4498457
Fresh101
Picked101
Done000
Total4518459
Error
4.2b
Counts
459 → 8
Alt Table
StatusErrorProgram
35.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))) (*.f64 2 a))
39.3b
(neg.f64 (/.f64 c b))
32.9b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b)))) (*.f64 2 a))
33.8b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b)))) (*.f64 2 a))
48.6b
(/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (*.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))))
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))
46.6b
(/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (/.f64 1/2 a)) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))
44.3b
(/.f64 (neg.f64 b) a)
Compiler

Compiled 14410 to 8216 computations (43% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2)
0.4b
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b))))
14.1b
(cbrt.f64 (*.f64 (*.f64 4 a) c))
20.9b
(sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b)))

series2.6s (20.6%)

Counts
4 → 120
Calls

4 calls:

913.0ms
(sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b)))
877.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b))))
412.0ms
(pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2)
379.0ms
(cbrt.f64 (*.f64 (*.f64 4 a) c))

rewrite282.0ms (2.3%)

Algorithm
egg-rewrite
Rules
148×egg
30×egg
29×egg
25×egg
Counts
4 → 232
Calls

4 calls:

102.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b))))
75.0ms
(cbrt.f64 (*.f64 (*.f64 4 a) c))
56.0ms
(sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b)))
45.0ms
(pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01431
128115
2269012
3490812
079
11409
215599
349929
449539
01636
133318
2329415
3496715
4495615
0912
118010
2181910
3529610

simplify78.0ms (0.6%)

Algorithm
egg-herbie
Rules
444×times-frac_binary64
421×associate-*r*_binary64
350×associate-*l*_binary64
315×fma-def_binary64
278×associate-/l*_binary64
Counts
352 → 306
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01533173
14463083
211392813
350332813

prune218.0ms (1.7%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New3381339
Fresh077
Picked011
Done000
Total3389347
Error
4.2b
Counts
347 → 9
Alt Table
StatusErrorProgram
35.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))) (*.f64 2 a))
39.3b
(neg.f64 (/.f64 c b))
32.9b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b)))) (*.f64 2 a))
33.8b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b)))) (*.f64 2 a))
48.6b
(/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (*.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))))
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))
63.4b
(/.f64 (fma.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 4 a) c))) (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
46.6b
(/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (/.f64 1/2 a)) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))
44.3b
(/.f64 (neg.f64 b) a)
Compiler

Compiled 9727 to 6261 computations (35.6% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (cbrt.f64 b) 2)
0.5b
(cbrt.f64 b)
20.9b
(sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b)))
22.5b
(fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b))))

series180.0ms (1.4%)

Counts
4 → 64
Calls

4 calls:

68.0ms
(fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b))))
42.0ms
(sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b)))
40.0ms
(pow.f64 (cbrt.f64 b) 2)
29.0ms
(cbrt.f64 b)

rewrite306.0ms (2.4%)

Algorithm
egg-rewrite
Rules
50×egg
43×egg
33×egg
23×egg
Counts
4 → 149
Calls

4 calls:

113.0ms
(fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b))))
74.0ms
(cbrt.f64 b)
71.0ms
(pow.f64 (cbrt.f64 b) 2)
45.0ms
(sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01426
128116
2267015
3497815
4495515
5489715
0913
117813
2191513
3503113
033
1563
26213
347373
452403
056
1994
29364
344274
452884

simplify74.0ms (0.6%)

Algorithm
egg-herbie
Rules
515×unswap-sqr_binary64
450×times-frac_binary64
304×associate-*r*_binary64
282×associate-/l*_binary64
271×fma-def_binary64
Counts
213 → 199
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0911290
12911273
29201221
343811221
452991221

prune163.0ms (1.3%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2350235
Fresh077
Picked011
Done011
Total2359244
Error
4.2b
Counts
244 → 9
Alt Table
StatusErrorProgram
35.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))) (*.f64 2 a))
39.3b
(neg.f64 (/.f64 c b))
32.9b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b)))) (*.f64 2 a))
33.8b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b)))) (*.f64 2 a))
48.6b
(/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (*.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))))
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))
63.4b
(/.f64 (fma.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 4 a) c))) (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
46.6b
(/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (/.f64 1/2 a)) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))
44.3b
(/.f64 (neg.f64 b) a)
Compiler

Compiled 6302 to 3501 computations (44.4% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 b b (*.f64 -4 (*.f64 a c)))
5.4b
(exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))
20.9b
(sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))
22.3b
(+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))))

series143.0ms (1.1%)

Counts
4 → 96
Calls

4 calls:

51.0ms
(+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))))
41.0ms
(sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))
41.0ms
(exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))
9.0ms
(fma.f64 b b (*.f64 -4 (*.f64 a c)))

rewrite204.0ms (1.6%)

Algorithm
egg-rewrite
Rules
69×egg
28×egg
25×egg
23×egg
Counts
4 → 145
Calls

4 calls:

62.0ms
(+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))))
49.0ms
(exp.f64 (log.f64 (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))
45.0ms
(sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))
44.0ms
(fma.f64 b b (*.f64 -4 (*.f64 a c)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01318
124915
2280515
3510615
0913
117912
2199212
3494312
01113
119512
2216312
3532912
0811
116011
2180211
3497511

simplify86.0ms (0.7%)

Algorithm
egg-herbie
Rules
458×times-frac_binary64
447×unswap-sqr_binary64
283×associate-*r*_binary64
278×associate-/l*_binary64
270×fma-def_binary64
Counts
241 → 168
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0842172
12702094
28442000
342172000
450462000

prune107.0ms (0.9%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1662168
Fresh066
Picked101
Done022
Total16710177
Error
4.2b
Counts
177 → 10
Alt Table
StatusErrorProgram
46.6b
(/.f64 (*.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (/.f64 1/2 a)) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))))
45.8b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (*.f64 2 a))
32.9b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c)) 2) (neg.f64 (cbrt.f64 (*.f64 (*.f64 4 a) c))) (*.f64 b b)))) (*.f64 2 a))
39.3b
(neg.f64 (/.f64 c b))
33.8b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (neg.f64 (cbrt.f64 b)) (sqrt.f64 (fma.f64 -4 (*.f64 a c) (*.f64 b b)))) (*.f64 2 a))
48.6b
(/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 -4 (*.f64 a c)))) (*.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))))
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))
63.4b
(/.f64 (fma.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (fma.f64 (neg.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 4 a) c))) (hypot.f64 b (sqrt.f64 (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
46.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (neg.f64 b)))) (*.f64 2 a))
44.3b
(/.f64 (neg.f64 b) a)
Compiler

Compiled 4232 to 2562 computations (39.5% saved)

regimes2.5s (19.8%)

Accuracy

Total 4.6b remaining (44.3%)

Threshold costs 0b (0%)

Counts
194 → 3
Compiler

Compiled 17140 to 11770 computations (31.3% saved)

bsearch70.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
02750
14048
24948
35348
45448
55448

end169.0ms (1.4%)

Compiler

Compiled 315 to 206 computations (34.6% saved)

Profiling

Loading profile data...