Details

Time bar (total: 16.8s)

analyze2.6s (15.6%)

Algorithm
search
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
05334427
044
144
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%98.2%1.8%8
0%94.3%5.7%9
0.4%93%6.6%10
7.4%83.3%9.3%11
12.4%75.2%12.4%12
14.4%68.9%16.7%13
16.8%65.4%17.8%14
Compiler

Compiled 41 to 33 computations (19.5% saved)

sample152.0ms (0.9%)

Algorithm
intervals
Results
24.0ms170×body128valid
22.0ms28×body1024valid
19.0ms25×body2048valid
16.0ms27×body1024nan
16.0ms20×body2048nan
13.0ms89×body128nan
10.0ms24×body512valid
7.0ms16×body512nan
3.0msbody256valid
2.0msbody256nan
Compiler

Compiled 81 to 69 computations (14.8% saved)

simplify38.0ms (0.2%)

Algorithm
egg-herbie
Counts
1 → 1
Iterations

Useful iterations: 0 (32.0ms)

IterNodesCost
0561361

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
51.5b
Counts
2 → 1
Compiler

Compiled 80 to 59 computations (26.3% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

5.4b
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
12.6b
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))
18.7b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
33.8b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))

rewrite102.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
66×sqrt-div_binary64_3164
40×associate-*r/_binary64_3089
39×*-un-lft-identity_binary64_3147
36×times-frac_binary64_3153
35×add-sqr-sqrt_binary64_3169
34×associate-*l/_binary64_3090
32×add-cube-cbrt_binary64_3182
31×flip-+_binary64_3121 flip3-+_binary64_3150
24×frac-times_binary64_3157 frac-add_binary64_3155
20×distribute-neg-frac_binary64_3111 associate-/l/_binary64_3094
17×pow1_binary64_3208
16×flip--_binary64_3122 flip3--_binary64_3151 distribute-lft-neg-in_binary64_3104 distribute-rgt-neg-in_binary64_3105
15×sqrt-prod_binary64_3163
12×associate-/l*_binary64_3092
add-exp-log_binary64_3185 add-cbrt-cube_binary64_3183
pow-prod-down_binary64_3218
sqrt-pow1_binary64_3165
unpow-prod-down_binary64_3226 neg-mul-1_binary64_3143 add-log-exp_binary64_3186
associate-*r*_binary64_3087 associate-/r*_binary64_3091 distribute-lft-out_binary64_3098 associate-*l*_binary64_3088
pow1/2_binary64_3227 associate-/r/_binary64_3093
*-commutative_binary64_3078 unswap-sqr_binary64_3115 clear-num_binary64_3146 distribute-frac-neg_binary64_3110 frac-2neg_binary64_3158 rem-sqrt-square_binary64_3160 distribute-lft-out--_binary64_3099 prod-exp_binary64_3196 neg-sub0_binary64_3142 div-sub_binary64_3152 cbrt-undiv_binary64_3181 cbrt-unprod_binary64_3180 div-exp_binary64_3198 div-inv_binary64_3144
Counts
4 → 158
Calls

4 calls:

28.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))
17.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
11.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
8.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)

series867.0ms (5.2%)

Counts
4 → 12
Calls

4 calls:

406.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
328.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (+.f64 (+.f64 A C) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))))
66.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
66.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)

simplify133.0ms (0.8%)

Algorithm
egg-herbie
Counts
170 → 170
Iterations

Useful iterations: 0 (51.0ms)

IterNodesCost
0494711055
1494711055

prune665.0ms (4%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New15614170
Fresh000
Picked101
Done000
Total15714171
Error
44.9b
Counts
171 → 14
Compiler

Compiled 11903 to 6723 computations (43.5% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

5.9b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
11.9b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
15.3b
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
33.8b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

rewrite126.0ms (0.8%)

Algorithm
rewrite-expression-head
Rules
153×*-un-lft-identity_binary64_3147
121×times-frac_binary64_3153
89×add-sqr-sqrt_binary64_3169
83×add-cube-cbrt_binary64_3182
75×sqrt-prod_binary64_3163
66×associate-*r*_binary64_3087
56×distribute-lft-neg-in_binary64_3104 distribute-rgt-neg-in_binary64_3105
42×distribute-lft-out_binary64_3098
20×associate-/l*_binary64_3092
18×sqrt-div_binary64_3164
13×pow1_binary64_3208
11×add-exp-log_binary64_3185 add-cbrt-cube_binary64_3183
associate-*l/_binary64_3090
neg-mul-1_binary64_3143 associate-*r/_binary64_3089
distribute-neg-frac_binary64_3111 flip-+_binary64_3121 flip3-+_binary64_3150 associate-/l/_binary64_3094
flip--_binary64_3122 flip3--_binary64_3151
frac-add_binary64_3155 pow-prod-down_binary64_3218 sqrt-pow1_binary64_3165 add-log-exp_binary64_3186 associate-*l*_binary64_3088 associate-/r/_binary64_3093
associate-/r*_binary64_3091
frac-times_binary64_3157 unswap-sqr_binary64_3115 distribute-frac-neg_binary64_3110 prod-exp_binary64_3196 cbrt-undiv_binary64_3181 pow1/2_binary64_3227 cbrt-unprod_binary64_3180 div-exp_binary64_3198 div-inv_binary64_3144
*-commutative_binary64_3078 clear-num_binary64_3146 distribute-rgt-neg-out_binary64_3107 frac-2neg_binary64_3158 rem-sqrt-square_binary64_3160 neg-sub0_binary64_3142 div-sub_binary64_3152
Counts
4 → 225
Calls

4 calls:

44.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
23.0ms
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
8.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
7.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))

series799.0ms (4.8%)

Counts
4 → 12
Calls

4 calls:

386.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
210.0ms
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
137.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
66.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

simplify146.0ms (0.9%)

Algorithm
egg-herbie
Counts
237 → 237
Iterations

Useful iterations: 0 (51.0ms)

IterNodesCost
0494912824
1494912824

prune681.0ms (4.1%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New2316237
Fresh21113
Picked101
Done000
Total23417251
Error
43.7b
Counts
251 → 17
Compiler

Compiled 14873 to 7942 computations (46.6% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

11.9b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))) (sqrt.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
15.3b
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
33.8b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
33.8b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

rewrite99.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
54×associate-*r*_binary64_3087
49×times-frac_binary64_3153
46×add-sqr-sqrt_binary64_3169
39×*-un-lft-identity_binary64_3147 add-cube-cbrt_binary64_3182
26×sqrt-prod_binary64_3163
18×distribute-lft-neg-in_binary64_3104 distribute-rgt-neg-in_binary64_3105
14×pow1_binary64_3208
10×sqrt-div_binary64_3164
add-exp-log_binary64_3185 add-cbrt-cube_binary64_3183
associate-*l/_binary64_3090
associate-*r/_binary64_3089
sqrt-pow1_binary64_3165
flip--_binary64_3122 pow-prod-down_binary64_3218 flip3--_binary64_3151 add-log-exp_binary64_3186 associate-*l*_binary64_3088
neg-mul-1_binary64_3143 pow1/2_binary64_3227
frac-times_binary64_3157 unswap-sqr_binary64_3115 flip-+_binary64_3121 flip3-+_binary64_3150 rem-sqrt-square_binary64_3160 prod-exp_binary64_3196 cbrt-unprod_binary64_3180 associate-/r/_binary64_3093
*-commutative_binary64_3078 distribute-rgt-neg-out_binary64_3107 distribute-frac-neg_binary64_3110 cbrt-undiv_binary64_3181 div-exp_binary64_3198 div-inv_binary64_3144
Counts
4 → 123
Calls

4 calls:

52.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))) (sqrt.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
8.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
8.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
7.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))

series661.0ms (3.9%)

Counts
4 → 12
Calls

4 calls:

382.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))) (sqrt.f64 (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B))))) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
146.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
68.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
65.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

simplify98.0ms (0.6%)

Algorithm
egg-herbie
Counts
135 → 135
Iterations

Useful iterations: 0 (44.0ms)

IterNodesCost
049806156
149806156

prune423.0ms (2.5%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New1305135
Fresh31316
Picked101
Done000
Total13418152
Error
43.7b
Counts
152 → 18
Compiler

Compiled 10001 to 5441 computations (45.6% saved)

localize31.0ms (0.2%)

Local error

Found 4 expressions with local error:

15.3b
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
33.8b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
34.9b
(cbrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
34.9b
(cbrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

rewrite43.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
11×pow1_binary64_3208
add-sqr-sqrt_binary64_3169
*-un-lft-identity_binary64_3147 add-cube-cbrt_binary64_3182
cbrt-prod_binary64_3178
cbrt-div_binary64_3179 add-exp-log_binary64_3185 add-cbrt-cube_binary64_3183 sqrt-pow1_binary64_3165 add-log-exp_binary64_3186 sqrt-div_binary64_3164 sqrt-prod_binary64_3163
flip-+_binary64_3121 pow-prod-down_binary64_3218 flip3-+_binary64_3150
pow1/3_binary64_3229 associate-*l/_binary64_3090 pow1/2_binary64_3227 associate-*r/_binary64_3089
flip--_binary64_3122 flip3--_binary64_3151 rem-sqrt-square_binary64_3160
Counts
4 → 55
Calls

4 calls:

9.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
8.0ms
(cbrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
8.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
8.0ms
(cbrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

series509.0ms (3%)

Counts
4 → 12
Calls

4 calls:

153.0ms
(cbrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
150.0ms
(cbrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))
138.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
67.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

simplify50.0ms (0.3%)

Algorithm
egg-herbie
Counts
67 → 67
Iterations

Useful iterations: 0 (32.0ms)

IterNodesCost
049491420
149491420

prune208.0ms (1.2%)

Pruning

22 alts after pruning (21 fresh and 1 done)

PrunedKeptTotal
New63467
Fresh01717
Picked011
Done000
Total632285
Error
43.7b
Counts
85 → 22
Compiler

Compiled 4936 to 2662 computations (46.1% saved)

regimes1.5s (8.9%)

Accuracy

Total 1.9b remaining (4.2%)

Threshold costs 0b (0%)

Compiler

Compiled 21947 to 14432 computations (34.2% saved)

bsearch7.0ms (0%)

Compiler

Compiled 40 to 32 computations (20% saved)

simplify27.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (3.0ms)

IterNodesCost
0170385
1170385
Compiler

Compiled 502 to 316 computations (37.1% saved)

end0.0ms (0%)

sample6.7s (40.1%)

Algorithm
intervals
Results
833.0ms5611×body128valid
504.0ms845×body1024valid
474.0ms787×body1024nan
473.0ms614×body2048valid
438.0ms570×body2048nan
430.0ms2872×body128nan
254.0ms585×body512valid
244.0ms555×body512nan
97.0ms344×body256valid
94.0ms341×body256nan
1.0msbody4096valid
Compiler

Compiled 3894 to 2547 computations (34.6% saved)

Profiling

Loading profile data...