Details

Time bar (total: 7.6s)

analyze698.0ms (9.2%)

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 (31.6%)

Results
745.0ms5399×body128valid
659.0ms1193×body2048valid
328.0ms743×body1024valid
259.0ms401×body4096valid
158.0ms1145×body128invalid
122.0ms370×body512valid
34.0ms150×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify375.0ms (4.9%)

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
33.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
34.0b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
34.0b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize9.0ms (0.1%)

Local error

Found 4 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.2b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.5b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
22.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series138.0ms (1.8%)

Counts
4 → 96
Calls

4 calls:

63.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
36.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
29.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
10.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite21.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
42×add-sqr-sqrt_binary64
32×*-un-lft-identity_binary64
28×add-cube-cbrt_binary64
18×prod-diff_binary64
17×sqrt-prod_binary64
Counts
4 → 109
Calls

4 calls:

8.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
4.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
0.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

simplify191.0ms (2.5%)

Algorithm
egg-herbie
Rules
527×fma-neg_binary64
338×distribute-rgt-in_binary64
273×cancel-sign-sub-inv_binary64
155×associate-*l*_binary64
153×associate-*r*_binary64
Counts
205 → 231
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02675424
16734468
225244293
345504293
449914293
549944293
648844293

prune178.0ms (2.3%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New22011231
Fresh101
Picked101
Done000
Total22211233
Error
7.2b
Counts
233 → 11
Alt Table
StatusErrorProgram
35.9b
(*.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))) (/.f64 1/2 a))
39.2b
(neg.f64 (/.f64 c b))
41.5b
(/.f64 (*.f64 1/2 (+.f64 (*.f64 c (*.f64 a -4)) 0)) (*.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))))
47.7b
(-.f64 (/.f64 c b) (/.f64 b a))
34.5b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (/.f64 1/2 a))) (cbrt.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (/.f64 1/2 a)))) (cbrt.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (/.f64 1/2 a))))
35.8b
(*.f64 (-.f64 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) b) (/.f64 1/2 a))
34.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
31.7b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
47.4b
(/.f64 (neg.f64 b) a)
34.7b
(*.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (/.f64 (cbrt.f64 1/2) (cbrt.f64 a)))
34.5b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))) (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))) (/.f64 1/2 a))
Compiler

Compiled 6505 to 3828 computations (41.2% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
0.9b
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
13.5b
(*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a))
22.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series183.0ms (2.4%)

Counts
3 → 64
Calls

3 calls:

145.0ms
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
34.0ms
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
3.0ms
(*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a))

rewrite31.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
21×*-un-lft-identity_binary64
20×add-sqr-sqrt_binary64
17×add-cbrt-cube_binary64
17×add-exp-log_binary64
15×add-cube-cbrt_binary64
Counts
3 → 92
Calls

3 calls:

13.0ms
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
8.0ms
(*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a))
3.0ms
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)

simplify109.0ms (1.4%)

Algorithm
egg-herbie
Rules
616×fma-neg_binary64
248×associate-*l*_binary64
225×associate-/l*_binary64
220×associate-*r*_binary64
176×div-sub_binary64
Counts
156 → 196
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02503787
17083244
231323157
346133157
449323157

prune438.0ms (5.8%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2364240
Fresh4610
Picked011
Done000
Total24011251
Error
7.2b
Counts
251 → 11
Alt Table
StatusErrorProgram
35.9b
(*.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))) (/.f64 1/2 a))
39.2b
(neg.f64 (/.f64 c b))
34.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
36.0b
(/.f64 1 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) (/.f64 (*.f64 (*.f64 c a) -2) a)))
38.8b
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0)) (*.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) (/.f64 1/2 a))) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
31.4b
(/.f64 (/.f64 (*.f64 (*.f64 c a) -2) a) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
31.7b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
47.7b
(-.f64 (/.f64 c b) (/.f64 b a))
47.4b
(/.f64 (neg.f64 b) a)
33.5b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (exp.f64 (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
34.7b
(*.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (/.f64 (cbrt.f64 1/2) (cbrt.f64 a)))
Compiler

Compiled 8171 to 5176 computations (36.7% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (/.f64 (*.f64 (*.f64 c a) -2) a) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
0.9b
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
13.4b
(/.f64 (*.f64 (*.f64 c a) -2) a)
22.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series146.0ms (1.9%)

Counts
2 → 44
Calls

2 calls:

142.0ms
(/.f64 (/.f64 (*.f64 (*.f64 c a) -2) a) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
3.0ms
(/.f64 (*.f64 (*.f64 c a) -2) a)

rewrite22.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
46×times-frac_binary64
38×*-un-lft-identity_binary64
25×add-cbrt-cube_binary64
25×add-exp-log_binary64
22×add-sqr-sqrt_binary64
Counts
2 → 87
Calls

2 calls:

8.0ms
(/.f64 (/.f64 (*.f64 (*.f64 c a) -2) a) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
5.0ms
(/.f64 (*.f64 (*.f64 c a) -2) a)

simplify108.0ms (1.4%)

Algorithm
egg-herbie
Rules
834×fma-def_binary64
760×associate-*l/_binary64
560×associate-/r/_binary64
201×associate-/l*_binary64
171×fma-neg_binary64
Counts
131 → 157
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02133858
15903469
222032939
348682939
455252939

prune187.0ms (2.5%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New2483251
Fresh279
Picked011
Done011
Total25012262
Error
7.2b
Counts
262 → 12
Alt Table
StatusErrorProgram
35.9b
(*.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))) (/.f64 1/2 a))
39.2b
(neg.f64 (/.f64 c b))
49.2b
(/.f64 (exp.f64 (log.f64 (*.f64 -2 c))) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
34.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
48.2b
(*.f64 (sqrt.f64 (/.f64 (*.f64 -2 c) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) (sqrt.f64 (/.f64 (*.f64 -2 c) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
33.5b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (exp.f64 (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
31.4b
(/.f64 (/.f64 (*.f64 (*.f64 c a) -2) a) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
31.7b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
33.8b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) (/.f64 (*.f64 -2 c) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
47.7b
(-.f64 (/.f64 c b) (/.f64 b a))
47.4b
(/.f64 (neg.f64 b) a)
34.7b
(*.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (/.f64 (cbrt.f64 1/2) (cbrt.f64 a)))
Compiler

Compiled 7755 to 4335 computations (44.1% saved)

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.9b
(+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
4.2b
(exp.f64 (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))
13.5b
(*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a))
22.2b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series53.0ms (0.7%)

Counts
1 → 20
Calls

1 calls:

53.0ms
(exp.f64 (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))

rewrite5.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
exp-sum_binary64
log-prod_binary64
exp-prod_binary64
add-sqr-sqrt_binary64
Counts
1 → 20
Calls

1 calls:

4.0ms
(exp.f64 (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)))

simplify70.0ms (0.9%)

Algorithm
egg-herbie
Rules
422×times-frac_binary64
417×unswap-sqr_binary64
413×fma-neg_binary64
274×associate-*r*_binary64
250×fma-def_binary64
Counts
40 → 53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01091068
1272993
2774935
33735927
44987927
54999927

prune172.0ms (2.3%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New2131214
Fresh099
Picked101
Done022
Total21412226
Error
7.2b
Counts
226 → 12
Alt Table
StatusErrorProgram
35.9b
(*.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))) (/.f64 1/2 a))
39.2b
(neg.f64 (/.f64 c b))
49.2b
(/.f64 (exp.f64 (log.f64 (*.f64 -2 c))) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
34.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
33.8b
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) (/.f64 (*.f64 -2 c) (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
33.8b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (pow.f64 (E.f64) (log.f64 (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))))
31.4b
(/.f64 (/.f64 (*.f64 (*.f64 c a) -2) a) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
31.7b
(/.f64 (*.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (/.f64 1/2 a)) (+.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
47.7b
(-.f64 (/.f64 c b) (/.f64 b a))
47.4b
(/.f64 (neg.f64 b) a)
48.2b
(*.f64 (sqrt.f64 (/.f64 (*.f64 -2 c) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))) (sqrt.f64 (/.f64 (*.f64 -2 c) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4))))))))
34.7b
(*.f64 (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (/.f64 (cbrt.f64 1/2) (cbrt.f64 a)))
Compiler

Compiled 7641 to 5026 computations (34.2% saved)

regimes1.7s (22.4%)

Accuracy

Total 1.4b remaining (19.9%)

Threshold costs 0b (0%)

Counts
145 → 4
Compiler

Compiled 13856 to 9554 computations (31% saved)

bsearch141.0ms (1.9%)

Steps
ItersRangePoint
9
1.2809204955329581e+33
1.3069589410673845e+38
1.2931991447555657e+38
10
-6.308315690216156e-274
-3.9360892857913695e-285
-1.7696545692563913e-275
8
-1.761622937979916e+128
-7.291574701407998e+119
-1.3104263752164671e+126
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03174
14674
25574
36174
46374
56374

end181.0ms (2.4%)

Compiler

Compiled 360 to 244 computations (32.2% saved)

Profiling

Loading profile data...