Details

Time bar (total: 8.3s)

analyze610.0ms (7.3%)

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.5s (30.1%)

Results
872.0ms5363×body128valid
625.0ms1172×body2048valid
316.0ms745×body1024valid
271.0ms437×body4096valid
137.0ms1084×body128invalid
117.0ms346×body512valid
70.0ms193×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify381.0ms (4.6%)

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

localize11.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.8b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
1.6b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
25.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series227.0ms (2.7%)

Counts
4 → 96
Calls

4 calls:

88.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
84.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
46.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
9.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite127.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
507×fma-neg_binary64
277×expm1-udef_binary64
277×log1p-udef_binary64
178×egg-rr
166×add-sqr-sqrt_binary64
Counts
4 → 178
Calls

4 calls:

120.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
120.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
120.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
120.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01574
133862
2415362
3497962
4534962
000
100

simplify82.0ms (1%)

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
274 → 251
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212241
13982164
213272078
349542078
452182078

prune175.0ms (2.1%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New24011251
Fresh011
Picked101
Done000
Total24112253
Error
4.3b
Counts
253 → 12
Alt Table
StatusErrorProgram
36.8b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (cbrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))) (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))))) (*.f64 2 a))
35.5b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
49.4b
(*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (/.f64 1/2 a)))
47.0b
(/.f64 (-.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) (*.f64 2 a))
43.4b
(-.f64 (/.f64 c b) (/.f64 b a))
43.3b
(/.f64 (neg.f64 b) 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))
42.4b
(/.f64 (+.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))) (*.f64 2 a))
45.1b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
37.8b
(neg.f64 (/.f64 c b))
57.0b
(*.f64 (/.f64 1 (sqrt.f64 (*.f64 a 2))) (/.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (sqrt.f64 (*.f64 a 2))))
49.5b
(*.f64 (cbrt.f64 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) 2))
Compiler

Compiled 6763 to 3884 computations (42.6% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
0.8b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
25.1b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series187.0ms (2.2%)

Counts
4 → 96
Calls

4 calls:

87.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
51.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
39.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
9.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite87.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
781×prod-diff_binary64
244×log1p-udef_binary64
165×egg-rr
138×add-sqr-sqrt_binary64
132×log1p-expm1-u_binary64
Counts
4 → 165
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01362
127962
2338562
3510262
000
100

simplify134.0ms (1.6%)

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
261 → 238
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212241
13982164
213272078
349542078
452182078

prune169.0ms (2%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2353238
Fresh5611
Picked101
Done000
Total2419250
Error
4.3b
Counts
250 → 9
Alt Table
StatusErrorProgram
35.9b
(*.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
43.4b
(-.f64 (/.f64 c b) (/.f64 b a))
43.3b
(/.f64 (neg.f64 b) 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))
46.8b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) (*.f64 b b)) (/.f64 1/2 a)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
45.1b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
37.8b
(neg.f64 (/.f64 c b))
49.7b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 2) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))
47.0b
(/.f64 (-.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) (*.f64 2 a))
Compiler

Compiled 6470 to 3761 computations (41.9% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)
0.3b
(cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
0.8b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
25.1b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series857.0ms (10.3%)

Counts
2 → 40
Calls

2 calls:

517.0ms
(pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)
340.0ms
(cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))

rewrite56.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
772×prod-diff_binary64
222×expm1-udef_binary64
222×log1p-udef_binary64
129×add-sqr-sqrt_binary64
125×log1p-expm1-u_binary64
Counts
2 → 43
Calls

2 calls:

55.0ms
(pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)
55.0ms
(cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01339
126937
2295637
3489337
000
100

simplify73.0ms (0.9%)

Algorithm
egg-herbie
Rules
705×fma-def_binary64
436×unswap-sqr_binary64
340×associate-*r*_binary64
205×associate-*l*_binary64
196×associate-/l*_binary64
Counts
83 → 123
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02923058
19212963
231282722
349482722

prune451.0ms (5.4%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New4651466
Fresh088
Picked011
Done000
Total46510475
Error
4.3b
Counts
475 → 10
Alt Table
StatusErrorProgram
35.9b
(*.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
62.6b
(*.f64 (*.f64 (exp.f64 (*.f64 1/3 (+.f64 (log.f64 c) (log.f64 (neg.f64 (*.f64 2 (/.f64 a b))))))) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
43.4b
(-.f64 (/.f64 c b) (/.f64 b a))
43.3b
(/.f64 (neg.f64 b) 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))
46.8b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) (*.f64 b b)) (/.f64 1/2 a)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
45.1b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
37.8b
(neg.f64 (/.f64 c b))
49.7b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 2) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))
47.0b
(/.f64 (-.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) (*.f64 2 a))
Compiler

Compiled 23107 to 14400 computations (37.7% saved)

localize3.0ms (0%)

prune7.0ms (0.1%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New000
Fresh088
Picked011
Done011
Total01010
Error
4.3b
Counts
10 → 10
Alt Table
StatusErrorProgram
35.9b
(*.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
62.6b
(*.f64 (*.f64 (exp.f64 (*.f64 1/3 (+.f64 (log.f64 c) (log.f64 (neg.f64 (*.f64 2 (/.f64 a b))))))) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
43.4b
(-.f64 (/.f64 c b) (/.f64 b a))
43.3b
(/.f64 (neg.f64 b) 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))
46.8b
(/.f64 (*.f64 (-.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) (*.f64 b b)) (/.f64 1/2 a)) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
45.1b
(/.f64 (*.f64 -2 (/.f64 (*.f64 c a) b)) (*.f64 2 a))
37.8b
(neg.f64 (/.f64 c b))
49.7b
(/.f64 (-.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) (*.f64 b b)) (*.f64 (*.f64 a 2) (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))
47.0b
(/.f64 (-.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) (*.f64 2 a))
Compiler

Compiled 209 to 134 computations (35.9% saved)

regimes1.8s (22.1%)

Accuracy

Total 4.7b remaining (45.6%)

Threshold costs 0b (0%)

Counts
91 → 5
Compiler

Compiled 8316 to 5678 computations (31.7% saved)

bsearch140.0ms (1.7%)

Steps
ItersRangePoint
8
1.2344334649195314e-55
1.322700660035437e-51
4.4233955990605117e-54
5
6.863344029837293e-72
1.4734283974003753e-71
1.3948090615163448e-71
8
2.6189808425900012e-111
1.3010807537774533e-107
1.2846674157042731e-107
9
-1.2695432231346224e+46
-1.731480671832066e+41
-1.251564096671974e+46
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
042113
168111
288111
3105111
4113111
5116111
6117111
7116111

end161.0ms (1.9%)

Compiler

Compiled 365 to 218 computations (40.3% saved)

Profiling

Loading profile data...