Details

Time bar (total: 6.7s)

analyze653.0ms (9.8%)

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

Results
784.0ms5366×body128valid
663.0ms1160×body2048valid
320.0ms695×body1024valid
295.0ms447×body4096valid
134.0ms1023×body128invalid
121.0ms375×body512valid
58.0ms213×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify140.0ms (2.1%)

Algorithm
egg-herbie
Rules
2079×fma-neg_binary64
1006×fma-def_binary64
919×div-sub_binary64
626×distribute-rgt-in_binary64
435×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01526
13824
29524
322722
435722
561422
6110322
7137322
8163622
9233022
10318722
11288022
12282722
13289622
14292222
15379722
16482422
17524022

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
34.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
35.2b
(*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))
35.0b
(/.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.2%)

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 (*.f64 b b) (*.f64 4 (*.f64 a c)))
1.4b
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
22.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series185.0ms (2.8%)

Counts
4 → 96
Calls

4 calls:

78.0ms
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
55.0ms
(-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
42.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
10.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite100.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
283×expm1-udef_binary64
283×log1p-udef_binary64
169×add-sqr-sqrt_binary64
165×log1p-expm1-u_binary64
165×expm1-log1p-u_binary64
Counts
4 → 160
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01574
134262
2435562
3503462
000
100

simplify75.0ms (1.1%)

Algorithm
egg-herbie
Rules
743×times-frac_binary64
469×associate-/l*_binary64
436×fma-def_binary64
429×associate-/r*_binary64
158×fma-neg_binary64
Counts
256 → 235
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01252060
14111984
213981904
350971904

prune167.0ms (2.5%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New22510235
Fresh101
Picked011
Done000
Total22611237
Error
4.0b
Counts
237 → 11
Alt Table
StatusErrorProgram
43.7b
(/.f64 (-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))) (*.f64 2 a))
35.0b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
36.1b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
48.0b
(pow.f64 (/.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) -1)
48.2b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) 2) (pow.f64 (cbrt.f64 (*.f64 a 2)) 2)) (cbrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))))
36.5b
(neg.f64 (/.f64 c b))
48.0b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))
44.9b
(/.f64 (neg.f64 b) a)
55.5b
(/.f64 (-.f64 (neg.f64 b) (neg.f64 b)) (*.f64 2 a))
44.7b
(*.f64 -1/2 (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) a))
Compiler

Compiled 6297 to 3646 computations (42.1% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)
1.0b
(fma.f64 b b (*.f64 (*.f64 a c) -4))
14.3b
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2))
22.7b
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4)

series197.0ms (2.9%)

Counts
4 → 128
Calls

4 calls:

83.0ms
(pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)
54.0ms
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2))
49.0ms
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4)
11.0ms
(fma.f64 b b (*.f64 (*.f64 a c) -4))

rewrite124.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
812×prod-diff_binary64
249×egg-rr
235×log1p-udef_binary64
143×add-sqr-sqrt_binary64
143×log1p-expm1-u_binary64
Counts
4 → 249
Calls

4 calls:

109.0ms
(pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)
109.0ms
(fma.f64 b b (*.f64 (*.f64 a c) -4))
109.0ms
(-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2))
109.0ms
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01458
130752
2316652
3494052
000
100

simplify115.0ms (1.7%)

Algorithm
egg-herbie
Rules
301×times-frac_binary64
277×sub-neg_binary64
272×associate-/r*_binary64
238×fma-neg_binary64
233×associate-/l*_binary64
Counts
377 → 383
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03204810
111014654
243634654
350274654

prune460.0ms (6.9%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New3812383
Fresh369
Picked011
Done011
Total38410394
Error
0.5b
Counts
394 → 10
Alt Table
StatusErrorProgram
43.7b
(/.f64 (-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))) (*.f64 2 a))
35.0b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
36.1b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
48.0b
(pow.f64 (/.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) -1)
48.2b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) 2) (pow.f64 (cbrt.f64 (*.f64 a 2)) 2)) (cbrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))))
36.5b
(neg.f64 (/.f64 c b))
48.0b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))
53.3b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2)) (*.f64 2 a))
54.6b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2)) (*.f64 2 a))
Compiler

Compiled 19644 to 12080 computations (38.5% saved)

localize5.0ms (0.1%)

prune10.0ms (0.1%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New000
Fresh077
Picked011
Done022
Total01010
Error
0.5b
Counts
10 → 10
Alt Table
StatusErrorProgram
43.7b
(/.f64 (-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))) (*.f64 2 a))
35.0b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
36.1b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
48.0b
(pow.f64 (/.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) -1)
48.2b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) 2) (pow.f64 (cbrt.f64 (*.f64 a 2)) 2)) (cbrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))))
36.5b
(neg.f64 (/.f64 c b))
48.0b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))
53.3b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2)) (*.f64 2 a))
54.6b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2)) (*.f64 2 a))
Compiler

Compiled 365 to 265 computations (27.4% saved)

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2)
1.0b
(fma.f64 b b (*.f64 (*.f64 a c) -4))
1.4b
(-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2)))
32.2b
(cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))

series148.0ms (2.2%)

Counts
3 → 76
Calls

3 calls:

55.0ms
(-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2)))
50.0ms
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2)
43.0ms
(cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))

rewrite81.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
769×prod-diff_binary64
221×expm1-udef_binary64
221×log1p-udef_binary64
167×egg-rr
136×add-sqr-sqrt_binary64
Counts
3 → 167
Calls

3 calls:

76.0ms
(pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2)
76.0ms
(-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2)))
76.0ms
(cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01351
127941
2300541
3499241
000
100

simplify99.0ms (1.5%)

Algorithm
egg-herbie
Rules
555×fma-neg_binary64
372×cancel-sign-sub-inv_binary64
345×associate-/r/_binary64
217×associate-/l/_binary64
178×distribute-rgt-neg-in_binary64
Counts
243 → 263
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02252925
17342860
226332852
349282852
451972852

prune233.0ms (3.5%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New2970297
Fresh066
Picked011
Done033
Total29710307
Error
0.5b
Counts
307 → 10
Alt Table
StatusErrorProgram
43.7b
(/.f64 (-.f64 (neg.f64 b) (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 3/2))) (*.f64 2 a))
35.0b
(/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
36.1b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)) 1/4) 2)) (*.f64 2 a))
45.0b
(-.f64 (/.f64 c b) (/.f64 b a))
48.0b
(pow.f64 (/.f64 (*.f64 a 2) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) -1)
48.2b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) 2) (pow.f64 (cbrt.f64 (*.f64 a 2)) 2)) (cbrt.f64 (*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))))
36.5b
(neg.f64 (/.f64 c b))
48.0b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))
53.3b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 a)) (log.f64 (/.f64 -1 c))))) 2)) (*.f64 2 a))
54.6b
(/.f64 (-.f64 (neg.f64 b) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 (*.f64 4 c)) (log.f64 (/.f64 -1 a))))) 2)) (*.f64 2 a))
Compiler

Compiled 10975 to 6663 computations (39.3% saved)

regimes1.1s (16%)

Accuracy

Total 9.4b remaining (91.3%)

Threshold costs 0b (0%)

Counts
69 → 3
Compiler

Compiled 5556 to 3986 computations (28.3% saved)

bsearch74.0ms (1.1%)

Steps
ItersRangePoint
8
6.605804912973952e+76
2.501177248826239e+80
2.4459965781085926e+80
8
-6.9824393472563535e-59
-5.804463573999287e-63
-1.0210080657580689e-59
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02552
13952
25452
36852
47552
57852
67952
77952

end152.0ms (2.3%)

Compiler

Compiled 283 to 196 computations (30.7% saved)

Profiling

Loading profile data...