Details

Time bar (total: 9.3s)

analyze350.0ms (3.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
25%74.9%0.1%4
37.4%62.4%0.1%5
37.4%62.4%0.1%6
37.4%56.2%6.4%7
45.2%48.4%6.4%8
49.1%42.1%8.7%9
51.5%35.1%13.4%10
58.1%27.7%14.2%11
60.8%22.6%16.5%12
62.3%18.7%19%13
66.2%14.4%19.4%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample1.9s (20.4%)

Results
652.0ms5576×body128valid
497.0ms1099×body2048valid
241.0ms697×body1024valid
207.0ms387×body4096valid
92.0ms332×body512valid
70.0ms614×body128invalid
34.0ms165×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify387.0ms (4.2%)

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

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.2b
(*.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)
27.5b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series214.0ms (2.3%)

Counts
4 → 96
Calls

4 calls:

93.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
59.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
52.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
10.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite24.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:

11.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))

simplify193.0ms (2.1%)

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

prune226.0ms (2.4%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2229231
Fresh101
Picked101
Done000
Total2249233
Error
4.4b
Counts
233 → 9
Alt Table
StatusErrorProgram
31.2b
(*.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 (sqrt.f64 1/2) 1)) (/.f64 (sqrt.f64 1/2) a))
37.1b
(*.f64 (/.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 1/2 a))
40.7b
(/.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)))))))
31.4b
(*.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a)))) (/.f64 1/2 (cbrt.f64 a)))
39.5b
(-.f64 (/.f64 c b) (/.f64 b a))
39.4b
(/.f64 (neg.f64 b) a)
29.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
42.8b
(neg.f64 (/.f64 c b))
35.6b
(/.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))
Compiler

Compiled 6313 to 3694 computations (41.5% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
0.2b
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)
13.0b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series436.0ms (4.7%)

Counts
3 → 24
Calls

3 calls:

249.0ms
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
161.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)
25.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite16.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
15×*-un-lft-identity_binary64
15×add-sqr-sqrt_binary64
13×add-cube-cbrt_binary64
prod-diff_binary64
pow1_binary64
Counts
3 → 69
Calls

3 calls:

6.0ms
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
3.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)
3.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

simplify112.0ms (1.2%)

Algorithm
egg-herbie
Rules
569×fma-def_binary64
316×fma-neg_binary64
270×cancel-sign-sub-inv_binary64
199×associate-/l/_binary64
177×distribute-rgt-neg-in_binary64
Counts
93 → 149
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02202709
15532155
220372038
345252034
449562034
548742034

prune139.0ms (1.5%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1463149
Fresh268
Picked011
Done000
Total14810158
Error
2.7b
Counts
158 → 10
Alt Table
StatusErrorProgram
31.2b
(*.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 (sqrt.f64 1/2) 1)) (/.f64 (sqrt.f64 1/2) a))
37.1b
(*.f64 (/.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 1/2 a))
29.1b
(/.f64 1/2 (/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)))
39.5b
(-.f64 (/.f64 c b) (/.f64 b a))
39.4b
(/.f64 (neg.f64 b) a)
29.4b
(*.f64 (/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (cbrt.f64 a)))
29.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
42.8b
(neg.f64 (/.f64 c b))
35.6b
(/.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.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))) b)) a)
Compiler

Compiled 4143 to 2607 computations (37.1% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))
0.1b
(/.f64 1/2 (/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)))
0.2b
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)
13.0b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series850.0ms (9.1%)

Counts
2 → 24
Calls

2 calls:

598.0ms
(/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))
251.0ms
(/.f64 1/2 (/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)))

rewrite30.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
138×times-frac_binary64
102×*-un-lft-identity_binary64
102×add-sqr-sqrt_binary64
70×add-cube-cbrt_binary64
26×associate-/r*_binary64
Counts
2 → 143
Calls

2 calls:

7.0ms
(/.f64 1/2 (/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)))
4.0ms
(/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b))

simplify136.0ms (1.5%)

Algorithm
egg-herbie
Rules
638×associate-/r/_binary64
452×fma-def_binary64
396×associate-/l/_binary64
234×distribute-rgt-in_binary64
218×distribute-lft-in_binary64
Counts
167 → 280
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03226508
17816173
226496099
351246099

prune359.0ms (3.9%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New3621363
Fresh088
Picked011
Done011
Total36211373
Error
2.7b
Counts
373 → 11
Alt Table
StatusErrorProgram
31.2b
(*.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 (sqrt.f64 1/2) 1)) (/.f64 (sqrt.f64 1/2) a))
37.1b
(*.f64 (/.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 1/2 a))
29.1b
(/.f64 1/2 (/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)))
48.0b
(/.f64 1/2 (fma.f64 1/2 (/.f64 a b) (*.f64 2 (/.f64 (*.f64 a b) (*.f64 -4 (*.f64 c a))))))
39.5b
(-.f64 (/.f64 c b) (/.f64 b a))
39.4b
(/.f64 (neg.f64 b) a)
29.4b
(*.f64 (/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (cbrt.f64 a)))
29.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
42.8b
(neg.f64 (/.f64 c b))
35.6b
(/.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.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))) b)) a)
Compiler

Compiled 11242 to 7020 computations (37.6% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a)))
0.5b
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
0.5b
(cbrt.f64 a)
13.0b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series146.0ms (1.6%)

Counts
3 → 36
Calls

3 calls:

75.0ms
(/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a)))
37.0ms
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
34.0ms
(cbrt.f64 a)

rewrite14.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
22×add-sqr-sqrt_binary64
19×cbrt-prod_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
10×add-exp-log_binary64
Counts
3 → 78
Calls

3 calls:

5.0ms
(/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a)))
5.0ms
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
1.0ms
(cbrt.f64 a)

simplify72.0ms (0.8%)

Algorithm
egg-herbie
Rules
654×associate-*l/_binary64
527×unswap-sqr_binary64
450×fma-def_binary64
362×associate-*r/_binary64
351×associate-/r*_binary64
Counts
114 → 115
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0991257
11731000
2551941
31754926
44606926
54896926

prune137.0ms (1.5%)

Pruning

12 alts after pruning (9 fresh and 3 done)

PrunedKeptTotal
New1701171
Fresh088
Picked011
Done022
Total17012182
Error
2.7b
Counts
182 → 12
Alt Table
StatusErrorProgram
31.2b
(*.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 (sqrt.f64 1/2) 1)) (/.f64 (sqrt.f64 1/2) a))
37.1b
(*.f64 (/.f64 (+.f64 (*.f64 c (*.f64 a -4)) 0) (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 1/2 a))
29.1b
(/.f64 1/2 (/.f64 a (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)))
47.1b
(*.f64 (/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 -4 a)))) b) (cbrt.f64 a)))
48.0b
(/.f64 1/2 (fma.f64 1/2 (/.f64 a b) (*.f64 2 (/.f64 (*.f64 a b) (*.f64 -4 (*.f64 c a))))))
39.5b
(-.f64 (/.f64 c b) (/.f64 b a))
39.4b
(/.f64 (neg.f64 b) a)
29.4b
(*.f64 (/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b) (cbrt.f64 a)))
29.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
42.8b
(neg.f64 (/.f64 c b))
35.6b
(/.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.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))) b)) a)
Compiler

Compiled 4556 to 2440 computations (46.4% saved)

regimes3.2s (34.1%)

Accuracy

Total 5.3b remaining (67.5%)

Threshold costs 0b (0%)

Counts
159 → 4
Compiler

Compiled 14220 to 9890 computations (30.5% saved)

bsearch110.0ms (1.2%)

Steps
ItersRangePoint
11
2.2662785546022415e+101
2.7215606412094346e+129
6.283616353584907e+110
4
1.744071379683117e-178
2.8616850908874527e-178
2.2907073983447553e-178
7
-1.814430219754598e+156
-1.0182173360101637e+155
-1.0269296551259906e+155
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
04187
16585
28085
39585
410285
510585
610685
710585

end227.0ms (2.4%)

Compiler

Compiled 341 to 229 computations (32.8% saved)

Profiling

Loading profile data...