Details

Time bar (total: 9.7s)

analyze634.0ms (6.5%)

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
34.7%55.4%9.9%9
36.1%51.1%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)

sample2.2s (22.6%)

Results
753.0ms5362×body128valid
545.0ms1170×body2048valid
286.0ms754×body1024valid
215.0ms389×body4096valid
123.0ms1065×body128invalid
112.0ms391×body512valid
40.0ms190×body256valid
Compiler

Compiled 50 to 32 computations (36% saved)

simplify50.0ms (0.5%)

Algorithm
egg-herbie
Rules
1055×fma-def_binary64
681×rules-20_binary64
502×rules-5-rev_binary64
403×rules-6_binary64
350×rules-4-rev_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01120
11920
23320
37020
421620
569420
6273520
7471620
8500420

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
35.9b
Counts
2 → 1
Alt Table
StatusErrorProgram
35.9b
(/.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)

localize8.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.2b
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))
0.9b
(+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
25.4b
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))

series173.0ms (1.8%)

Counts
4 → 96
Calls

4 calls:

71.0ms
(/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
50.0ms
(+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))
43.0ms
(sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))
8.0ms
(-.f64 (*.f64 b_2 b_2) (*.f64 a c))

rewrite92.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
606×log-prod_binary64
217×expm1-udef_binary64
217×log1p-udef_binary64
198×log-div_binary64
197×log-pow_binary64
Counts
4 → 189
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01159
127159
2359252
3572152
000
100

simplify62.0ms (0.6%)

Algorithm
egg-herbie
Rules
726×fma-def_binary64
475×fma-neg_binary64
454×rules-20_binary64
430×rules-13_binary64
327×rules-15-rev_binary64
Counts
285 → 255
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01202209
13832191
216662181
354802181

prune222.0ms (2.3%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New24411255
Fresh000
Picked011
Done000
Total24412256
Error
3.4b
Counts
256 → 12
Alt Table
StatusErrorProgram
46.9b
(/.f64 (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b_2 b_2) (neg.f64 (*.f64 c a))) (sqrt.f64 (neg.f64 (*.f64 c a)))) b_2) a)
35.0b
(*.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) (/.f64 1 a))
47.1b
(/.f64 (+.f64 (neg.f64 b_2) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b_2 b_2) c) a)))) a)
49.5b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) a) 3))
35.9b
(/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
41.8b
(*.f64 -1/2 (/.f64 c b_2))
36.0b
(/.f64 (*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))) a)
46.0b
(/.f64 (*.f64 -2 b_2) a)
35.1b
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2)) (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2)) a))
45.8b
(-.f64 (*.f64 1/2 (/.f64 c b_2)) (*.f64 2 (/.f64 b_2 a)))
56.3b
(/.f64 (+.f64 (neg.f64 b_2) b_2) a)
35.5b
(pow.f64 (cbrt.f64 (/.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) a)) 3)
Compiler

Compiled 5824 to 2064 computations (64.6% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c))))
0.2b
(*.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) (/.f64 1 a))
0.5b
(-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2)
16.3b
(sqrt.f64 (neg.f64 (*.f64 a c)))

series552.0ms (5.7%)

Counts
4 → 38
Calls

4 calls:

211.0ms
(*.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) (/.f64 1 a))
210.0ms
(-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2)
112.0ms
(hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c))))
18.0ms
(sqrt.f64 (neg.f64 (*.f64 a c)))

rewrite127.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
523×prod-diff_binary64
211×expm1-udef_binary64
211×log1p-udef_binary64
189×egg-rr
119×add-sqr-sqrt_binary64
Counts
4 → 189
Calls

4 calls:

84.0ms
(hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c))))
84.0ms
(*.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) (/.f64 1 a))
84.0ms
(-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2)
84.0ms
(sqrt.f64 (neg.f64 (*.f64 a c)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01250
127650
2345150
3509750
000
100

simplify49.0ms (0.5%)

Algorithm
egg-herbie
Rules
495×rules-15-rev_binary64
452×rules-12-rev_binary64
449×fma-neg_binary64
390×rules-20_binary64
270×fma-def_binary64
Counts
227 → 253
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01131344
13621226
216401216
356681216

prune164.0ms (1.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2503253
Fresh3710
Picked101
Done011
Total25411265
Error
3.4b
Counts
265 → 11
Alt Table
StatusErrorProgram
46.9b
(/.f64 (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b_2 b_2) (neg.f64 (*.f64 c a))) (sqrt.f64 (neg.f64 (*.f64 c a)))) b_2) a)
47.1b
(/.f64 (+.f64 (neg.f64 b_2) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b_2 b_2) c) a)))) a)
35.1b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)) b_2) (/.f64 1 a))
45.8b
(-.f64 (*.f64 1/2 (/.f64 c b_2)) (*.f64 2 (/.f64 b_2 a)))
49.5b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) a) 3))
35.9b
(/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
47.8b
(*.f64 (neg.f64 (fma.f64 b_2 2 (*.f64 1/2 (/.f64 (neg.f64 (*.f64 c a)) b_2)))) (/.f64 1 a))
41.8b
(*.f64 -1/2 (/.f64 c b_2))
36.0b
(/.f64 (*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))) a)
46.1b
(*.f64 (*.f64 -2 b_2) (/.f64 1 a))
56.3b
(/.f64 (+.f64 (neg.f64 b_2) b_2) a)
Compiler

Compiled 6825 to 2592 computations (62% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)) b_2) (/.f64 1 a))
0.3b
(pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)
0.5b
(-.f64 (hypot.f64 b_2 (pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)) b_2)
16.7b
(pow.f64 (neg.f64 (*.f64 a c)) 1/4)

series1.9s (19.4%)

Counts
4 → 120
Calls

4 calls:

560.0ms
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)) b_2) (/.f64 1 a))
509.0ms
(-.f64 (hypot.f64 b_2 (pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)) b_2)
413.0ms
(pow.f64 (neg.f64 (*.f64 a c)) 1/4)
401.0ms
(pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)

rewrite100.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
541×prod-diff_binary64
204×egg-rr
141×add-sqr-sqrt_binary64
141×log1p-expm1-u_binary64
141×expm1-log1p-u_binary64
Counts
4 → 204
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01551
135348
2402048
3495948
000
100

simplify102.0ms (1.1%)

Algorithm
egg-herbie
Rules
380×rules-15-rev_binary64
368×fma-neg_binary64
367×rules-20_binary64
336×rules-12-rev_binary64
262×fma-def_binary64
Counts
324 → 288
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01683282
14323114
215692822
348912822
450012822

prune180.0ms (1.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2862288
Fresh279
Picked011
Done011
Total28811299
Error
0.1b
Counts
299 → 11
Alt Table
StatusErrorProgram
46.9b
(/.f64 (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b_2 b_2) (neg.f64 (*.f64 c a))) (sqrt.f64 (neg.f64 (*.f64 c a)))) b_2) a)
47.1b
(/.f64 (+.f64 (neg.f64 b_2) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b_2 b_2) c) a)))) a)
35.1b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)) b_2) (/.f64 1 a))
45.8b
(-.f64 (*.f64 1/2 (/.f64 c b_2)) (*.f64 2 (/.f64 b_2 a)))
49.5b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) a) 3))
35.9b
(/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
47.8b
(*.f64 (neg.f64 (fma.f64 b_2 2 (*.f64 1/2 (/.f64 (neg.f64 (*.f64 c a)) b_2)))) (/.f64 1 a))
41.8b
(*.f64 -1/2 (/.f64 c b_2))
36.0b
(/.f64 (*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))) a)
43.8b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (*.f64 (pow.f64 c 1/4) (pow.f64 (neg.f64 a) 1/4)) 2)) b_2) (/.f64 1 a))
47.5b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (*.f64 (pow.f64 (neg.f64 c) 1/4) (pow.f64 a 1/4)) 2)) b_2) (/.f64 1 a))
Compiler

Compiled 7911 to 3602 computations (54.5% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))) a)
0.5b
(+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))
4.1b
(*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2))))
16.3b
(sqrt.f64 (neg.f64 (*.f64 a c)))

series864.0ms (8.9%)

Counts
3 → 36
Calls

3 calls:

359.0ms
(/.f64 (*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))) a)
284.0ms
(*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2))))
221.0ms
(+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))

rewrite105.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
538×prod-diff_binary64
179×egg-rr
140×add-sqr-sqrt_binary64
131×log1p-expm1-u_binary64
131×expm1-log1p-u_binary64
Counts
3 → 179
Calls

3 calls:

99.0ms
(/.f64 (*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))) a)
99.0ms
(+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))
99.0ms
(*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01454
132454
2399454
3508954
000
100

simplify53.0ms (0.5%)

Algorithm
egg-herbie
Rules
538×rules-15-rev_binary64
506×fma-neg_binary64
467×rules-20_binary64
295×fma-def_binary64
283×rules-14-rev_binary64
Counts
215 → 243
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01311392
14301267
219081259
352671259

prune168.0ms (1.7%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New2750275
Fresh088
Picked011
Done022
Total27511286
Error
0.1b
Counts
286 → 11
Alt Table
StatusErrorProgram
46.9b
(/.f64 (-.f64 (/.f64 (fma.f64 1/2 (*.f64 b_2 b_2) (neg.f64 (*.f64 c a))) (sqrt.f64 (neg.f64 (*.f64 c a)))) b_2) a)
47.1b
(/.f64 (+.f64 (neg.f64 b_2) (*.f64 (sqrt.f64 c) (sqrt.f64 (-.f64 (/.f64 (*.f64 b_2 b_2) c) a)))) a)
35.1b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (pow.f64 (neg.f64 (*.f64 a c)) 1/4) 2)) b_2) (/.f64 1 a))
45.8b
(-.f64 (*.f64 1/2 (/.f64 c b_2)) (*.f64 2 (/.f64 b_2 a)))
49.5b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) b_2) a) 3))
35.9b
(/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)
47.8b
(*.f64 (neg.f64 (fma.f64 b_2 2 (*.f64 1/2 (/.f64 (neg.f64 (*.f64 c a)) b_2)))) (/.f64 1 a))
41.8b
(*.f64 -1/2 (/.f64 c b_2))
36.0b
(/.f64 (*.f64 (neg.f64 b_2) (+.f64 1 (/.f64 (hypot.f64 b_2 (sqrt.f64 (neg.f64 (*.f64 a c)))) (neg.f64 b_2)))) a)
43.8b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (*.f64 (pow.f64 c 1/4) (pow.f64 (neg.f64 a) 1/4)) 2)) b_2) (/.f64 1 a))
47.5b
(*.f64 (-.f64 (hypot.f64 b_2 (pow.f64 (*.f64 (pow.f64 (neg.f64 c) 1/4) (pow.f64 a 1/4)) 2)) b_2) (/.f64 1 a))
Compiler

Compiled 8111 to 2826 computations (65.2% saved)

regimes1.6s (16.7%)

Accuracy

Total 9.6b remaining (98.1%)

Threshold costs 0b (0%)

Counts
119 → 5
Compiler

Compiled 8240 to 5730 computations (30.5% saved)

bsearch113.0ms (1.2%)

Steps
ItersRangePoint
6
1.599551816495083e-81
6.399741923557303e-81
1.6819277248169715e-81
8
2.633914217070538e-223
2.9671389649729143e-220
2.0458807915557303e-221
3
-3.2006226720774437e-96
-2.6134045166300807e-96
-2.650105651345541e-96
10
-5.496814662763222e+158
-2.249256543942629e+147
-8.652110117963774e+151
Compiler

Compiled 4 to 3 computations (25% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04198
14398
24298

end164.0ms (1.7%)

Compiler

Compiled 332 to 213 computations (35.8% saved)

Profiling

Loading profile data...