Details

Time bar (total: 7.7s)

analyze337.0ms (4.4%)

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)

sample2.1s (27.8%)

Results
859.0ms5576×body128valid
536.0ms1099×body2048valid
239.0ms697×body1024valid
209.0ms387×body4096valid
91.0ms332×body512valid
73.0ms614×body128invalid
31.0ms165×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify260.0ms (3.4%)

Algorithm
egg-herbie
Rules
1743×fma-neg_binary64
1393×fma-def_binary64
800×div-sub_binary64
619×times-frac_binary64
473×associate-/r/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
13322
26722
313822
420422
533822
655822
792422
8138822
9160422
10237522
11274222
12253322
13262122
14317122
15331322
16387322
17367922
18402922
19431722
20448522
21456122
22480522
23479322
24479722
25479722
26494822

prune4.0ms (0%)

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 (*.f64 4 a) c)))) (*.f64 2 a))
Compiler

Compiled 111 to 74 computations (33.3% 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.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)))

series198.0ms (2.6%)

Counts
4 → 96
Calls

4 calls:

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

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

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

simplify200.0ms (2.6%)

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

prune209.0ms (2.7%)

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)

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

series410.0ms (5.3%)

Counts
3 → 24
Calls

3 calls:

235.0ms
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
152.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)
22.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:

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

simplify109.0ms (1.4%)

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

prune153.0ms (2%)

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))
47.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))) b)) a)
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))
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))
Compiler

Compiled 4143 to 2607 computations (37.1% saved)

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

series664.0ms (8.6%)

Counts
2 → 24
Calls

2 calls:

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

rewrite30.0ms (0.4%)

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:

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

simplify146.0ms (1.9%)

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

prune317.0ms (4.1%)

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))
48.0b
(/.f64 1/2 (fma.f64 1/2 (/.f64 a b) (*.f64 2 (/.f64 (*.f64 a b) (*.f64 -4 (*.f64 c 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)))
47.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))) b)) a)
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))
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.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))
Compiler

Compiled 11242 to 7020 computations (37.6% saved)

localize12.0ms (0.2%)

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

series148.0ms (1.9%)

Counts
3 → 36
Calls

3 calls:

74.0ms
(/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a)))
38.0ms
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
36.0ms
(cbrt.f64 a)

rewrite13.0ms (0.2%)

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 (cbrt.f64 a) (cbrt.f64 a))
4.0ms
(/.f64 1/2 (*.f64 (cbrt.f64 a) (cbrt.f64 a)))
1.0ms
(cbrt.f64 a)

simplify80.0ms (1%)

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

prune131.0ms (1.7%)

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))
48.0b
(/.f64 1/2 (fma.f64 1/2 (/.f64 a b) (*.f64 2 (/.f64 (*.f64 a b) (*.f64 -4 (*.f64 c 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)))
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)))
29.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))) b)) a)
47.0b
(/.f64 (*.f64 1/2 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))) b)) a)
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))
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)
42.8b
(neg.f64 (/.f64 c b))
Compiler

Compiled 4556 to 2440 computations (46.4% saved)

regimes1.8s (23.4%)

Accuracy

Total 5.3b remaining (67.5%)

Threshold costs 0b (0%)

Counts
159 → 4
Compiler

Compiled 14220 to 9890 computations (30.5% saved)

bsearch101.0ms (1.3%)

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

Compiled 4 to 3 computations (25% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
04187
16585
28385
39885
410985
511985
612485
712685
812485

end159.0ms (2.1%)

Compiler

Compiled 341 to 229 computations (32.8% saved)

Profiling

Loading profile data...