Details

Time bar (total: 6.7s)

analyze642.0ms (9.6%)

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.3s (35%)

Results
714.0ms5276×body128valid
621.0ms1212×body2048valid
345.0ms795×body1024valid
267.0ms423×body4096valid
135.0ms1082×body128invalid
121.0ms354×body512valid
49.0ms196×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify396.0ms (5.9%)

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

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
38.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
38.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
38.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize11.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.4b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
0.7b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
26.8b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series129.0ms (1.9%)

Counts
4 → 96
Calls

4 calls:

56.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
34.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
29.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
9.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite25.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
22×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
10×fma-def_binary64
10×add-cube-cbrt_binary64
10×add-log-exp_binary64
Counts
4 → 90
Calls

4 calls:

9.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
7.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
3.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
3.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

simplify122.0ms (1.8%)

Algorithm
egg-herbie
Rules
697×fma-neg_binary64
327×cancel-sign-sub-inv_binary64
226×distribute-rgt-neg-in_binary64
150×distribute-rgt-neg-out_binary64
146×associate-*r*_binary64
Counts
186 → 207
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02434202
16933825
224883724
346523704
449853704

prune146.0ms (2.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New19611207
Fresh101
Picked101
Done000
Total19811209
Error
4.9b
Counts
209 → 11
Alt Table
StatusErrorProgram
35.0b
(*.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2) (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) a))
41.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a))
55.2b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
34.9b
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
45.0b
(/.f64 (neg.f64 b) a)
45.2b
(-.f64 (/.f64 c b) (/.f64 b a))
35.4b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2))) (cbrt.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2)))) (cbrt.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2))))
36.3b
(neg.f64 (/.f64 c b))
49.6b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2)) 3))
37.3b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
38.3b
(/.f64 1 (/.f64 (*.f64 2 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
Compiler

Compiled 5721 to 3222 computations (43.7% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

series260.0ms (3.9%)

Counts
3 → 24
Calls

3 calls:

150.0ms
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
96.0ms
(-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))
13.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite15.0ms (0.2%)

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

3 calls:

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

simplify71.0ms (1.1%)

Algorithm
egg-herbie
Rules
822×associate-/r*_binary64
545×fma-def_binary64
225×cancel-sign-sub-inv_binary64
153×fma-neg_binary64
142×associate-/l/_binary64
Counts
98 → 159
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02232931
15622482
219232293
351312293

prune117.0ms (1.7%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1581159
Fresh2810
Picked011
Done000
Total16010170
Error
2.4b
Counts
170 → 10
Alt Table
StatusErrorProgram
49.3b
(/.f64 (-.f64 b (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b)) (*.f64 a -2))
35.0b
(*.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2) (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) a))
41.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a))
55.2b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
34.9b
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
45.0b
(/.f64 (neg.f64 b) a)
36.3b
(neg.f64 (/.f64 c b))
49.6b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2)) 3))
37.3b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
38.3b
(/.f64 1 (/.f64 (*.f64 2 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
Compiler

Compiled 4721 to 3085 computations (34.7% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series495.0ms (7.4%)

Counts
3 → 28
Calls

3 calls:

266.0ms
(/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) a)
144.0ms
(*.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2) (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) a))
85.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)

rewrite51.0ms (0.8%)

Algorithm
rewrite-expression-head
Rules
110×add-sqr-sqrt_binary64
84×times-frac_binary64
80×*-un-lft-identity_binary64
58×add-cube-cbrt_binary64
56×sqrt-prod_binary64
Counts
3 → 168
Calls

3 calls:

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

simplify207.0ms (3.1%)

Algorithm
egg-herbie
Rules
626×fma-def_binary64
323×fma-neg_binary64
314×cancel-sign-sub-inv_binary64
215×neg-mul-1_binary64
195×associate-*r/_binary64
Counts
196 → 293
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03447621
18776852
228266588
344586392
449316392
549016392

prune324.0ms (4.8%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New3960396
Fresh088
Picked011
Done011
Total39610406
Error
2.4b
Counts
406 → 10
Alt Table
StatusErrorProgram
49.3b
(/.f64 (-.f64 b (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b)) (*.f64 a -2))
35.0b
(*.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2) (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) a))
41.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a))
55.2b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
34.9b
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
45.0b
(/.f64 (neg.f64 b) a)
36.3b
(neg.f64 (/.f64 c b))
49.6b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2)) 3))
37.3b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
38.3b
(/.f64 1 (/.f64 (*.f64 2 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
Compiler

Compiled 16278 to 10572 computations (35.1% saved)

localize3.0ms (0%)

prune6.0ms (0.1%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New000
Fresh077
Picked011
Done022
Total01010
Error
2.4b
Counts
10 → 10
Alt Table
StatusErrorProgram
49.3b
(/.f64 (-.f64 b (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4))) b)) (*.f64 a -2))
35.0b
(*.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2) (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) a))
41.6b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))) (*.f64 2 a))
55.2b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
34.9b
(/.f64 (-.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)) (*.f64 a -2))
45.0b
(/.f64 (neg.f64 b) a)
36.3b
(neg.f64 (/.f64 c b))
49.6b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2)) 3))
37.3b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
38.3b
(/.f64 1 (/.f64 (*.f64 2 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))
Compiler

Compiled 176 to 127 computations (27.8% saved)

regimes1.1s (16.5%)

Accuracy

Total 7.1b remaining (72.2%)

Threshold costs 0b (0%)

Counts
62 → 3
Compiler

Compiled 5535 to 3879 computations (29.9% saved)

bsearch77.0ms (1.2%)

Steps
ItersRangePoint
10
4.241946271543068e-138
4.350640292110055e-126
4.1779810674765516e-126
9
-1.1141153340912374e+99
-1.146861339112528e+94
-1.0963394235440253e+99
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
02552
13850
24950
35550
45750
55750

end136.0ms (2%)

Compiler

Compiled 250 to 171 computations (31.6% saved)

Profiling

Loading profile data...