Details

Time bar (total: 18.7s)

analyze2.6s (13.9%)

Algorithm
search
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04978427
14978427
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%98.2%1.8%7
0%92%8%8
0%91.2%8.8%9
0.4%89.3%10.3%10
7.1%79.2%13.6%11
11.9%70.2%17.9%12
13.8%67.4%18.7%13
16.6%63.3%20.1%14
Compiler

Compiled 41 to 33 computations (19.5% saved)

sample156.0ms (0.8%)

Algorithm
intervals
Results
28.0ms180×body128valid
27.0ms33×body2048valid
22.0ms27×body1024nan
14.0ms21×body1024valid
13.0ms15×body2048nan
12.0ms72×body128nan
9.0ms18×body512nan
7.0ms15×body512valid
3.0msbody256nan
2.0msbody256valid
Compiler

Compiled 81 to 69 computations (14.8% saved)

simplify62.0ms (0.3%)

Algorithm
egg-herbie
Counts
1 → 1
Iterations

Useful iterations: 0 (50.0ms)

IterNodesCost
0539061

prune5.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112

Merged error: 54.4b

Counts
2 → 1
Compiler

Compiled 80 to 59 computations (26.3% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

7.8b
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
13.9b
(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))))))
25.2b
(/.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)))
39.2b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))

rewrite107.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
66×sqrt-div_binary64_5892
40×associate-*r/_binary64_5817
39×*-un-lft-identity_binary64_5875
36×times-frac_binary64_5881
35×add-sqr-sqrt_binary64_5897
34×associate-*l/_binary64_5818
32×add-cube-cbrt_binary64_5910
25×flip-+_binary64_5849 flip3-+_binary64_5878
24×frac-times_binary64_5885 frac-sub_binary64_5884
22×flip3--_binary64_5879 flip--_binary64_5850
20×associate-/l/_binary64_5822 distribute-neg-frac_binary64_5839
17×pow1_binary64_5936
16×distribute-lft-neg-in_binary64_5832 distribute-rgt-neg-in_binary64_5833
15×sqrt-prod_binary64_5891
12×associate-/l*_binary64_5820
add-exp-log_binary64_5913 add-cbrt-cube_binary64_5911
pow-prod-down_binary64_5946
sqrt-pow1_binary64_5893
neg-mul-1_binary64_5871 unpow-prod-down_binary64_5954 add-log-exp_binary64_5914
distribute-lft-out_binary64_5826 associate-/r*_binary64_5819 associate-*r*_binary64_5815 associate-*l*_binary64_5816
associate-/r/_binary64_5821 pow1/2_binary64_5955
cbrt-undiv_binary64_5909 distribute-lft-out--_binary64_5827 neg-sub0_binary64_5870 div-sub_binary64_5880 div-inv_binary64_5872 cbrt-unprod_binary64_5908 distribute-frac-neg_binary64_5838 frac-2neg_binary64_5886 div-exp_binary64_5926 unswap-sqr_binary64_5843 prod-exp_binary64_5924 *-commutative_binary64_5806 clear-num_binary64_5874 rem-sqrt-square_binary64_5888
Counts
4 → 158
Calls

4 calls:

35.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))))))
18.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)))
12.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
9.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)

series863.0ms (4.6%)

Counts
4 → 12
Calls

4 calls:

377.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)))
358.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
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
62.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))

simplify157.0ms (0.8%)

Algorithm
egg-herbie
Counts
170 → 170
Iterations

Useful iterations: 0 (73.0ms)

IterNodesCost
0494811070
1494811070

prune641.0ms (3.4%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New15515170
Fresh000
Picked101
Done000
Total15615171

Merged error: 49.2b

Counts
171 → 15
Compiler

Compiled 11946 to 6766 computations (43.4% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

7.8b
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
10.4b
(*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A)))
12.0b
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A))))
17.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) (-.f64 C A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))

rewrite115.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
60×associate-*r/_binary64_5817
50×associate-*l/_binary64_5818 *-un-lft-identity_binary64_5875 flip3--_binary64_5879 flip--_binary64_5850
42×add-sqr-sqrt_binary64_5897
40×sqrt-div_binary64_5892
36×times-frac_binary64_5881 frac-times_binary64_5885 frac-sub_binary64_5884
34×add-cube-cbrt_binary64_5910
25×pow1_binary64_5936
20×associate-/l/_binary64_5822 distribute-neg-frac_binary64_5839
18×flip-+_binary64_5849 flip3-+_binary64_5878
17×add-exp-log_binary64_5913 add-cbrt-cube_binary64_5911
16×distribute-lft-neg-in_binary64_5832 distribute-rgt-neg-in_binary64_5833
13×pow-prod-down_binary64_5946
12×associate-/l*_binary64_5820
11×associate-*r*_binary64_5815
10×cancel-sign-sub-inv_binary64_5841
sqrt-prod_binary64_5891
distribute-lft-out--_binary64_5827 distribute-rgt-in_binary64_5825 distribute-lft-in_binary64_5824
cbrt-unprod_binary64_5908 prod-exp_binary64_5924
neg-mul-1_binary64_5871 associate-*l*_binary64_5816 sqrt-pow1_binary64_5893 add-log-exp_binary64_5914
associate-/r*_binary64_5819 difference-of-squares_binary64_5844
distribute-lft-out_binary64_5826 associate-/r/_binary64_5821 sub-neg_binary64_5868 *-commutative_binary64_5806 associate--l+_binary64_5812 associate--r-_binary64_5814
cbrt-undiv_binary64_5909 neg-sub0_binary64_5870 div-sub_binary64_5880 div-inv_binary64_5872 distribute-frac-neg_binary64_5838 pow1/2_binary64_5955 frac-2neg_binary64_5886 div-exp_binary64_5926 unswap-sqr_binary64_5843 clear-num_binary64_5874
Counts
4 → 202
Calls

4 calls:

29.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A))))
23.0ms
(*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A)))
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) (-.f64 C A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
8.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)

series434.0ms (2.3%)

Counts
4 → 12
Calls

4 calls:

158.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) (-.f64 C A))))) (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)))
129.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A))))
84.0ms
(*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)) (-.f64 (+.f64 A C) (-.f64 C A)))
63.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)

simplify110.0ms (0.6%)

Algorithm
egg-herbie
Counts
214 → 214
Iterations

Useful iterations: 0 (22.0ms)

IterNodesCost
0508111682

prune673.0ms (3.6%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New20014214
Fresh9514
Picked101
Done000
Total21019229

Merged error: 39.2b

Counts
229 → 19
Compiler

Compiled 12364 to 6751 computations (45.4% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

5.0b
(*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))
7.8b
(*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)
17.4b
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))
20.8b
(/.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))) (neg.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C))))

rewrite85.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
40×times-frac_binary64_5881
38×*-un-lft-identity_binary64_5875
35×add-sqr-sqrt_binary64_5897
33×add-cube-cbrt_binary64_5910
26×associate-*l/_binary64_5818
25×pow1_binary64_5936
24×associate-*r/_binary64_5817
17×add-exp-log_binary64_5913 add-cbrt-cube_binary64_5911
16×sqrt-div_binary64_5892
15×distribute-lft-neg-in_binary64_5832 distribute-rgt-neg-in_binary64_5833
13×pow-prod-down_binary64_5946
12×sqrt-prod_binary64_5891 frac-times_binary64_5885
11×flip3--_binary64_5879 flip--_binary64_5850
10×associate-/r*_binary64_5819
flip-+_binary64_5849 flip3-+_binary64_5878
associate-/l/_binary64_5822 associate-*r*_binary64_5815
cbrt-unprod_binary64_5908 prod-exp_binary64_5924
neg-mul-1_binary64_5871
associate-*l*_binary64_5816 associate-/l*_binary64_5820 sqrt-pow1_binary64_5893 add-log-exp_binary64_5914
distribute-lft-out_binary64_5826
associate-/r/_binary64_5821 *-commutative_binary64_5806 distribute-neg-frac_binary64_5839
cbrt-undiv_binary64_5909 div-inv_binary64_5872 distribute-rgt-in_binary64_5825 distribute-lft-in_binary64_5824 pow1/2_binary64_5955 frac-2neg_binary64_5886 div-exp_binary64_5926 unswap-sqr_binary64_5843 clear-num_binary64_5874
Counts
4 → 150
Calls

4 calls:

26.0ms
(/.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))) (neg.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C))))
15.0ms
(*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))
14.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))
8.0ms
(*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)

series455.0ms (2.4%)

Counts
4 → 12
Calls

4 calls:

182.0ms
(/.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))) (neg.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C))))
131.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))
83.0ms
(*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))
59.0ms
(*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)

simplify120.0ms (0.6%)

Algorithm
egg-herbie
Counts
162 → 162
Iterations

Useful iterations: 0 (65.0ms)

IterNodesCost
049076538
149076538

prune324.0ms (1.7%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New1539162
Fresh9918
Picked101
Done000
Total16318181

Merged error: 39.2b

Counts
181 → 18
Compiler

Compiled 7373 to 4380 computations (40.6% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

11.3b
(sqrt.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))))
11.8b
(/.f64 (neg.f64 (sqrt.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))))) (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)))
17.4b
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))
17.4b
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))

rewrite95.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
54×times-frac_binary64_5881
48×sqrt-div_binary64_5892
47×sqrt-prod_binary64_5891
45×add-sqr-sqrt_binary64_5897
44×add-cube-cbrt_binary64_5910 *-un-lft-identity_binary64_5875
35×pow1_binary64_5936
32×associate-*l/_binary64_5818 associate-*r/_binary64_5817
28×distribute-lft-neg-in_binary64_5832 distribute-rgt-neg-in_binary64_5833
18×pow-prod-down_binary64_5946 associate-/l*_binary64_5820 sqrt-pow1_binary64_5893
16×frac-times_binary64_5885
13×flip3--_binary64_5879 flip--_binary64_5850
12×flip-+_binary64_5849 flip3-+_binary64_5878
associate-/l/_binary64_5822 distribute-neg-frac_binary64_5839
add-exp-log_binary64_5913 add-cbrt-cube_binary64_5911
neg-mul-1_binary64_5871 pow1/2_binary64_5955 add-log-exp_binary64_5914
associate-/r*_binary64_5819
associate-/r/_binary64_5821
cbrt-undiv_binary64_5909 neg-sub0_binary64_5870 div-sub_binary64_5880 div-inv_binary64_5872 distribute-frac-neg_binary64_5838 frac-2neg_binary64_5886 div-exp_binary64_5926 clear-num_binary64_5874 rem-sqrt-square_binary64_5888
Counts
4 → 168
Calls

4 calls:

17.0ms
(/.f64 (neg.f64 (sqrt.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))))) (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)))
15.0ms
(sqrt.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))))
15.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))
14.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))

series789.0ms (4.2%)

Counts
4 → 12
Calls

4 calls:

314.0ms
(/.f64 (neg.f64 (sqrt.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))))) (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)))
219.0ms
(sqrt.f64 (sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A)))))
132.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))
123.0ms
(sqrt.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 (*.f64 4 A) C)) F)) (+.f64 A (+.f64 0 A))))

simplify127.0ms (0.7%)

Algorithm
egg-herbie
Counts
180 → 180
Iterations

Useful iterations: 0 (52.0ms)

IterNodesCost
048779070
148779070

prune626.0ms (3.4%)

Pruning

18 alts after pruning (17 fresh and 1 done)

PrunedKeptTotal
New1782180
Fresh21517
Picked011
Done000
Total18018198

Merged error: 39.2b

Counts
198 → 18
Compiler

Compiled 12180 to 7269 computations (40.3% saved)

regimes2.0s (10.8%)

Compiler

Compiled 33110 to 22879 computations (30.9% saved)

bsearch11.0ms (0.1%)

Compiler

Compiled 40 to 32 computations (20% saved)

simplify23.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (19.0ms)

IterNodesCost
0545281
1545281

end0.0ms (0%)

sample8.0s (42.9%)

Algorithm
intervals
Results
1.1s5570×body128valid
539.0ms669×body2048valid
511.0ms839×body1024valid
483.0ms799×body1024nan
434.0ms538×body2048nan
371.0ms2431×body128nan
266.0ms576×body512valid
253.0ms555×body512nan
104.0ms344×body256valid
100.0ms333×body256nan
2.0msbody4096valid
Compiler

Compiled 5706 to 3932 computations (31.1% saved)

Profiling

Loading profile data...