Details

Time bar (total: 12.7s)

analyze1.1s (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
18.7%76.5%4.8%7
28.1%66.3%5.6%8
35.1%55%9.9%9
36.3%50.9%12.8%10
42.1%42.4%15.5%11
47.5%33.8%18.7%12
48.8%30.7%20.6%13
51.8%25.6%22.5%14
Compiler

Compiled 17 to 11 computations (35.3% saved)

sample4.2s (33.1%)

Results
1.2s5315×body128valid
1.0s1158×body2048valid
547.0ms798×body1024valid
415.0ms402×body4096valid
328.0ms408×body512valid
233.0ms1072×body128invalid
66.0ms175×body256valid
Compiler

Compiled 50 to 32 computations (36% saved)

simplify102.0ms (0.8%)

Algorithm
egg-herbie
Rules
518×div-sub_binary64
428×fma-neg_binary64
246×associate-/l*_binary64
205×fma-def_binary64
183×times-frac_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01120
12720
25420
311520
417920
529120
641720
752820
860220
985420
10180220
11104320
12102720
13103520
14104320
15104320
16110120
17113720
18113920
19115120
20104620

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
35.2b
Counts
2 → 1
Alt Table
StatusErrorProgram
35.2b
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
Compiler

Compiled 48 to 30 computations (37.5% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
0.5b
(-.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
1.0b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
22.5b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

series676.0ms (5.3%)

Counts
4 → 96
Calls

4 calls:

446.0ms
(-.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
142.0ms
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
74.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
14.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))

rewrite181.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
694×fma-def_binary64
352×fma-neg_binary64
333×egg-rr
218×expm1-udef_binary64
218×log1p-udef_binary64
Counts
4 → 333
Calls

4 calls:

162.0ms
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
162.0ms
(-.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
162.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
162.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01159
125755
2337355
3497255
000
100

simplify124.0ms (1%)

Algorithm
egg-herbie
Rules
740×times-frac_binary64
497×associate-/l*_binary64
494×fma-neg_binary64
404×associate-/r*_binary64
370×fma-def_binary64
Counts
429 → 406
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01242047
14052003
213501977
348911977
452081977

prune446.0ms (3.5%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New39511406
Fresh000
Picked101
Done000
Total39611407
Error
5.5b
Counts
407 → 11
Alt Table
StatusErrorProgram
42.9b
(/.f64 (*.f64 -2 b_2) a)
47.2b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) 2) (*.f64 (cbrt.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) (/.f64 1 a)))
35.3b
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c)))))) a)
58.4b
(/.f64 (-.f64 (neg.f64 b_2) (neg.f64 b_2)) a)
55.4b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) 3))
35.7b
(/.f64 (-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2)) a)
47.0b
(pow.f64 (/.f64 a (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) -1)
41.3b
(*.f64 -1/2 (/.f64 c b_2))
43.0b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
35.3b
(*.f64 (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (/.f64 1 (neg.f64 a)))
44.5b
(/.f64 (-.f64 (neg.f64 b_2) (cbrt.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 3/2))) a)
Compiler

Compiled 10555 to 2987 computations (71.7% saved)

localize25.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(-.f64 (neg.f64 b_2) (sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c))))))
1.2b
(fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c))))
22.5b
(sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c)))))
50.6b
(fma.f64 a (neg.f64 c) (*.f64 a c))

series217.0ms (1.7%)

Counts
4 → 100
Calls

4 calls:

99.0ms
(-.f64 (neg.f64 b_2) (sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c))))))
73.0ms
(sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c)))))
28.0ms
(fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c))))
17.0ms
(fma.f64 a (neg.f64 c) (*.f64 a c))

rewrite143.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
530×log-prod_binary64
399×fma-def_binary64
211×fma-neg_binary64
204×egg-rr
197×expm1-udef_binary64
Counts
4 → 204
Calls

4 calls:

132.0ms
(-.f64 (neg.f64 b_2) (sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c))))))
132.0ms
(fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c))))
132.0ms
(sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c)))))
132.0ms
(fma.f64 a (neg.f64 c) (*.f64 a c))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01279
125357
2270657
3511157
000
100

simplify148.0ms (1.2%)

Algorithm
egg-herbie
Rules
447×unswap-sqr_binary64
416×times-frac_binary64
278×associate-/l*_binary64
269×associate-*r*_binary64
235×associate-/r*_binary64
Counts
304 → 256
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0871477
12771455
28481435
341071435
449631435

prune234.0ms (1.9%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2551256
Fresh01010
Picked011
Done000
Total25512267
Error
5.5b
Counts
267 → 12
Alt Table
StatusErrorProgram
42.9b
(/.f64 (*.f64 -2 b_2) a)
47.2b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) 2) (*.f64 (cbrt.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) (/.f64 1 a)))
35.3b
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c)))))) a)
63.4b
(/.f64 (+.f64 b_2 (neg.f64 (hypot.f64 b_2 (sqrt.f64 (fma.f64 a c (*.f64 a (+.f64 c c))))))) a)
58.4b
(/.f64 (-.f64 (neg.f64 b_2) (neg.f64 b_2)) a)
55.4b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) 3))
35.7b
(/.f64 (-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2)) a)
47.0b
(pow.f64 (/.f64 a (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) -1)
41.3b
(*.f64 -1/2 (/.f64 c b_2))
43.0b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
35.3b
(*.f64 (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (/.f64 1 (neg.f64 a)))
44.5b
(/.f64 (-.f64 (neg.f64 b_2) (cbrt.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 3/2))) a)
Compiler

Compiled 7479 to 1939 computations (74.1% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (/.f64 1 (neg.f64 a)))
0.5b
(+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
1.0b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
22.5b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

series221.0ms (1.7%)

Counts
2 → 40
Calls

2 calls:

133.0ms
(*.f64 (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (/.f64 1 (neg.f64 a)))
88.0ms
(+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))

rewrite123.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
619×fma-def_binary64
328×fma-neg_binary64
222×expm1-udef_binary64
222×log1p-udef_binary64
142×add-sqr-sqrt_binary64
Counts
2 → 94
Calls

2 calls:

118.0ms
(*.f64 (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (/.f64 1 (neg.f64 a)))
118.0ms
(+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01335
128729
2332227
3497027
4490927
000
100

simplify71.0ms (0.6%)

Algorithm
egg-herbie
Rules
692×times-frac_binary64
459×associate-/l*_binary64
374×associate-/r*_binary64
313×associate-*l*_binary64
240×fma-def_binary64
Counts
134 → 140
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0991176
13191144
210831130
349871130

prune375.0ms (3%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New3532355
Fresh1910
Picked011
Done011
Total35413367
Error
5.5b
Counts
367 → 13
Alt Table
StatusErrorProgram
35.7b
(/.f64 (-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2)) a)
36.5b
(*.f64 (+.f64 b_2 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) 3)) (/.f64 1 (neg.f64 a)))
43.0b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
42.9b
(*.f64 (*.f64 2 b_2) (/.f64 1 (neg.f64 a)))
42.9b
(/.f64 (*.f64 -2 b_2) a)
35.3b
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c)))))) a)
63.4b
(/.f64 (+.f64 b_2 (neg.f64 (hypot.f64 b_2 (sqrt.f64 (fma.f64 a c (*.f64 a (+.f64 c c))))))) a)
58.4b
(/.f64 (-.f64 (neg.f64 b_2) (neg.f64 b_2)) a)
55.4b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) 3))
47.0b
(pow.f64 (/.f64 a (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) -1)
41.3b
(*.f64 -1/2 (/.f64 c b_2))
35.3b
(*.f64 (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (/.f64 1 (neg.f64 a)))
44.5b
(/.f64 (-.f64 (neg.f64 b_2) (cbrt.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 3/2))) a)
Compiler

Compiled 9337 to 3363 computations (64% saved)

localize25.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2)
1.0b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
9.0b
(-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2))
23.0b
(pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4)

series322.0ms (2.5%)

Counts
3 → 92
Calls

3 calls:

139.0ms
(pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2)
98.0ms
(-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2))
84.0ms
(pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4)

rewrite130.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
614×fma-def_binary64
291×fma-neg_binary64
232×expm1-udef_binary64
232×log1p-udef_binary64
145×egg-rr
Counts
3 → 145
Calls

3 calls:

123.0ms
(pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2)
123.0ms
(-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2))
123.0ms
(pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01344
130140
2328538
3498738
4484838
000
100

simplify194.0ms (1.5%)

Algorithm
egg-herbie
Rules
286×times-frac_binary64
278×fma-neg_binary64
268×associate-/r*_binary64
266×sub-neg_binary64
237×associate-*r*_binary64
Counts
237 → 273
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03314288
110814192
243474188
350254188

prune680.0ms (5.4%)

Pruning

12 alts after pruning (9 fresh and 3 done)

PrunedKeptTotal
New4393442
Fresh4610
Picked011
Done022
Total44312455
Error
0.7b
Counts
455 → 12
Alt Table
StatusErrorProgram
35.7b
(/.f64 (-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 1/4) 2)) a)
36.5b
(*.f64 (+.f64 b_2 (pow.f64 (cbrt.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) 3)) (/.f64 1 (neg.f64 a)))
53.7b
(/.f64 (-.f64 (neg.f64 b_2) (pow.f64 (pow.f64 (exp.f64 1/4) (+.f64 (log.f64 (neg.f64 c)) (log.f64 a))) 2)) a)
35.3b
(/.f64 (-.f64 (neg.f64 b_2) (sqrt.f64 (fma.f64 b_2 b_2 (fma.f64 a (neg.f64 c) (fma.f64 a (neg.f64 c) (*.f64 a c)))))) a)
55.4b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) 3))
47.0b
(pow.f64 (/.f64 a (-.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) -1)
41.3b
(*.f64 -1/2 (/.f64 c b_2))
43.0b
(fma.f64 1/2 (/.f64 c b_2) (*.f64 -2 (/.f64 b_2 a)))
53.4b
(/.f64 (-.f64 (neg.f64 b_2) (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 a) (log.f64 (/.f64 -1 c))))) 2)) a)
52.3b
(/.f64 (-.f64 (neg.f64 b_2) (pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 c) (log.f64 (neg.f64 a))))) 2)) a)
35.3b
(*.f64 (+.f64 b_2 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) (/.f64 1 (neg.f64 a)))
44.5b
(/.f64 (-.f64 (neg.f64 b_2) (cbrt.f64 (pow.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)) 3/2))) a)
Compiler

Compiled 13980 to 5826 computations (58.3% saved)

regimes2.4s (19%)

Accuracy

Total 9.3b remaining (91.9%)

Threshold costs 0b (0%)

Counts
112 → 3
Compiler

Compiled 7556 to 5046 computations (33.2% saved)

bsearch126.0ms (1%)

Steps
ItersRangePoint
9
1.7119583307087726e+87
1.8807452911215415e+93
3.320266855890801e+92
9
-1.614785931010119e-44
-1.9893946971124275e-50
-4.917316187737568e-47
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02548
14148
25848
37748
49048
59748
69948
79848

end319.0ms (2.5%)

Compiler

Compiled 283 to 190 computations (32.9% saved)

Profiling

Loading profile data...