Details

Time bar (total: 19.3s)

analyze2.7s (13.9%)

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)

sample149.0ms (0.8%)

Algorithm
intervals
Results
26.0ms183×body128valid
19.0ms26×body1024valid
19.0ms23×body2048nan
18.0ms23×body2048valid
14.0ms100×body128nan
14.0ms23×body1024nan
8.0ms18×body512nan
7.0ms15×body512valid
3.0msbody256valid
1.0msbody256nan
Compiler

Compiled 81 to 69 computations (14.8% saved)

simplify42.0ms (0.2%)

Algorithm
egg-herbie
Counts
1 → 1
Iterations

Useful iterations: 0 (36.0ms)

IterNodesCost
0561361

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 80 to 59 computations (26.3% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

5.8b
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)
13.0b
(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))))))
24.0b
(/.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)))
38.2b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))

rewrite96.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
66×sqrt-div_binary64_2482
40×associate-*r/_binary64_2407
39×*-un-lft-identity_binary64_2465
36×times-frac_binary64_2471
35×add-sqr-sqrt_binary64_2487
34×associate-*l/_binary64_2408
32×add-cube-cbrt_binary64_2500
31×flip3-+_binary64_2468 flip-+_binary64_2439
24×frac-times_binary64_2475 frac-add_binary64_2473
20×associate-/l/_binary64_2412 distribute-neg-frac_binary64_2429
17×pow1_binary64_2526
16×distribute-lft-neg-in_binary64_2422 distribute-rgt-neg-in_binary64_2423 flip--_binary64_2440 flip3--_binary64_2469
15×sqrt-prod_binary64_2481
12×associate-/l*_binary64_2410
add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501
pow-prod-down_binary64_2536
sqrt-pow1_binary64_2483
add-log-exp_binary64_2504 unpow-prod-down_binary64_2544 neg-mul-1_binary64_2461
associate-/r*_binary64_2409 associate-*r*_binary64_2405 distribute-lft-out_binary64_2416 associate-*l*_binary64_2406
pow1/2_binary64_2545 associate-/r/_binary64_2411
*-commutative_binary64_2396 clear-num_binary64_2464 cbrt-undiv_binary64_2499 div-sub_binary64_2470 distribute-lft-out--_binary64_2417 unswap-sqr_binary64_2433 div-exp_binary64_2516 div-inv_binary64_2462 rem-sqrt-square_binary64_2478 prod-exp_binary64_2514 frac-2neg_binary64_2476 distribute-frac-neg_binary64_2428 neg-sub0_binary64_2460 cbrt-unprod_binary64_2498
Counts
4 → 158
Calls

4 calls:

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

series841.0ms (4.4%)

Counts
4 → 12
Calls

4 calls:

397.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)))
314.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))))))
71.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2)))
59.0ms
(*.f64 (-.f64 (pow.f64 B 2) (*.f64 (*.f64 4 A) C)) F)

simplify133.0ms (0.7%)

Algorithm
egg-herbie
Counts
170 → 170
Iterations

Useful iterations: 0 (51.0ms)

IterNodesCost
0494711055
1494711055

prune623.0ms (3.2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New15713170
Fresh000
Picked101
Done000
Total15813171
Error
47.6b
Counts
171 → 13
Compiler

Compiled 11837 to 6675 computations (43.6% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

9.5b
(/.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))))
12.8b
(*.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)))))
18.9b
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
38.2b
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

rewrite122.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
153×*-un-lft-identity_binary64_2465
121×times-frac_binary64_2471
89×add-sqr-sqrt_binary64_2487
83×add-cube-cbrt_binary64_2500
75×sqrt-prod_binary64_2481
66×associate-*r*_binary64_2405
56×distribute-lft-neg-in_binary64_2422 distribute-rgt-neg-in_binary64_2423
42×distribute-lft-out_binary64_2416
20×associate-/l*_binary64_2410
18×sqrt-div_binary64_2482
13×pow1_binary64_2526
11×add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501
associate-*l/_binary64_2408
associate-*r/_binary64_2407 neg-mul-1_binary64_2461
flip3-+_binary64_2468 associate-/l/_binary64_2412 flip-+_binary64_2439 distribute-neg-frac_binary64_2429
flip--_binary64_2440 flip3--_binary64_2469
add-log-exp_binary64_2504 associate-/r/_binary64_2411 pow-prod-down_binary64_2536 sqrt-pow1_binary64_2483 frac-add_binary64_2473 associate-*l*_binary64_2406
associate-/r*_binary64_2409
frac-times_binary64_2475 pow1/2_binary64_2545 cbrt-undiv_binary64_2499 unswap-sqr_binary64_2433 div-exp_binary64_2516 div-inv_binary64_2462 prod-exp_binary64_2514 distribute-frac-neg_binary64_2428 cbrt-unprod_binary64_2498
*-commutative_binary64_2396 distribute-rgt-neg-out_binary64_2425 clear-num_binary64_2464 div-sub_binary64_2470 rem-sqrt-square_binary64_2478 frac-2neg_binary64_2476 neg-sub0_binary64_2460
Counts
4 → 225
Calls

4 calls:

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

series833.0ms (4.3%)

Counts
4 → 12
Calls

4 calls:

408.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)))))
205.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))))
144.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
76.0ms
(sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (*.f64 B B)))

simplify154.0ms (0.8%)

Algorithm
egg-herbie
Counts
237 → 237
Iterations

Useful iterations: 0 (52.0ms)

IterNodesCost
0494912824
1494912824

prune731.0ms (3.8%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New2325237
Fresh21012
Picked101
Done000
Total23515250
Error
43.2b
Counts
250 → 15
Compiler

Compiled 14684 to 7830 computations (46.7% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

4.8b
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (-.f64 C A) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
5.8b
(*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)
11.5b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (-.f64 C A) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
18.9b
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))

rewrite127.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
260×*-un-lft-identity_binary64_2465
145×times-frac_binary64_2471
100×sqrt-prod_binary64_2481
99×add-sqr-sqrt_binary64_2487
92×add-cube-cbrt_binary64_2500
84×distribute-lft-out_binary64_2416
81×associate-*r*_binary64_2405
70×distribute-lft-neg-in_binary64_2422 distribute-rgt-neg-in_binary64_2423
28×distribute-lft-out--_binary64_2417
24×associate-/l*_binary64_2410
14×pow1_binary64_2526
13×add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501
12×sqrt-div_binary64_2482
10×associate-*l/_binary64_2408
flip--_binary64_2440 flip3--_binary64_2469
associate-*r/_binary64_2407 neg-mul-1_binary64_2461 associate-*l*_binary64_2406
associate-/l/_binary64_2412 distribute-neg-frac_binary64_2429
pow-prod-down_binary64_2536
add-log-exp_binary64_2504 associate-/r/_binary64_2411 frac-add_binary64_2473
flip3-+_binary64_2468 associate-/r*_binary64_2409 flip-+_binary64_2439 unswap-sqr_binary64_2433 prod-exp_binary64_2514 sqrt-pow1_binary64_2483 cbrt-unprod_binary64_2498
*-commutative_binary64_2396 frac-times_binary64_2475 cbrt-undiv_binary64_2499 div-exp_binary64_2516 div-inv_binary64_2462 distribute-frac-neg_binary64_2428
distribute-rgt-neg-out_binary64_2425 pow1/2_binary64_2545 clear-num_binary64_2464 div-sub_binary64_2470 frac-2neg_binary64_2476 neg-sub0_binary64_2460
Counts
4 → 258
Calls

4 calls:

45.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (-.f64 C A) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
19.0ms
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (-.f64 C A) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
7.0ms
(*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)
7.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))

series592.0ms (3.1%)

Counts
4 → 12
Calls

4 calls:

290.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (-.f64 C A) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4)))))
131.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
107.0ms
(/.f64 (neg.f64 (sqrt.f64 (+.f64 (-.f64 C A) (+.f64 A C)))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
63.0ms
(*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)

simplify138.0ms (0.7%)

Algorithm
egg-herbie
Counts
270 → 270
Iterations

Useful iterations: 0 (52.0ms)

IterNodesCost
0530310756

prune543.0ms (2.8%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New26010270
Fresh5914
Picked101
Done000
Total26619285
Error
37.8b
Counts
285 → 19
Compiler

Compiled 13252 to 6219 computations (53.1% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.9b
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (neg.f64 (sqrt.f64 (-.f64 C (neg.f64 C)))))
5.8b
(*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)
18.9b
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
19.3b
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (neg.f64 (sqrt.f64 (-.f64 C (neg.f64 C))))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))

rewrite76.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
37×associate-*r*_binary64_2405
30×add-sqr-sqrt_binary64_2487
28×*-un-lft-identity_binary64_2465
26×sqrt-prod_binary64_2481 sqrt-div_binary64_2482
22×add-cube-cbrt_binary64_2500
21×distribute-lft-neg-in_binary64_2422 distribute-rgt-neg-in_binary64_2423
20×associate-*l/_binary64_2408
18×associate-*r/_binary64_2407
15×flip--_binary64_2440 flip3--_binary64_2469
14×pow1_binary64_2526
13×add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501
12×distribute-neg-frac_binary64_2429
frac-times_binary64_2475 associate-/l/_binary64_2412 distribute-lft-out--_binary64_2417 distribute-rgt-out--_binary64_2419
associate-*l*_binary64_2406
pow-prod-down_binary64_2536
add-log-exp_binary64_2504
times-frac_binary64_2471 associate-/r*_binary64_2409 prod-exp_binary64_2514 neg-mul-1_binary64_2461 sqrt-pow1_binary64_2483 cbrt-unprod_binary64_2498
difference-of-squares_binary64_2434 *-commutative_binary64_2396 distribute-rgt-neg-out_binary64_2425 cbrt-undiv_binary64_2499 unswap-sqr_binary64_2433 div-exp_binary64_2516 associate-/r/_binary64_2411
pow1/2_binary64_2545 clear-num_binary64_2464 div-inv_binary64_2462 frac-2neg_binary64_2476 associate-/l*_binary64_2410 distribute-frac-neg_binary64_2428
Counts
4 → 125
Calls

4 calls:

24.0ms
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (neg.f64 (sqrt.f64 (-.f64 C (neg.f64 C))))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
22.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (neg.f64 (sqrt.f64 (-.f64 C (neg.f64 C)))))
7.0ms
(*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)
7.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))

series727.0ms (3.8%)

Counts
4 → 12
Calls

4 calls:

289.0ms
(/.f64 (*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (neg.f64 (sqrt.f64 (-.f64 C (neg.f64 C))))) (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))))
248.0ms
(*.f64 (sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F))) (neg.f64 (sqrt.f64 (-.f64 C (neg.f64 C)))))
129.0ms
(sqrt.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)))
61.0ms
(*.f64 (-.f64 (*.f64 B B) (*.f64 C (*.f64 A 4))) F)

simplify87.0ms (0.5%)

Algorithm
egg-herbie
Counts
137 → 137
Iterations

Useful iterations: 0 (47.0ms)

IterNodesCost
049554355
149554355

prune216.0ms (1.1%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New1334137
Fresh31518
Picked101
Done000
Total13719156
Error
37.8b
Counts
156 → 19
Compiler

Compiled 5322 to 2657 computations (50.1% saved)

regimes2.3s (11.9%)

Accuracy

Total 2.1b remaining (5.1%)

Threshold costs 0b (0%)

Compiler

Compiled 32471 to 21560 computations (33.6% saved)

bsearch10.0ms (0.1%)

Compiler

Compiled 40 to 32 computations (20% saved)

simplify33.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (10.0ms)

IterNodesCost
0403379
1403379
Compiler

Compiled 494 to 326 computations (34% saved)

end0.0ms (0%)

sample8.0s (41.3%)

Algorithm
intervals
Results
842.0ms5557×body128valid
669.0ms603×body2048nan
523.0ms874×body1024valid
499.0ms626×body2048valid
487.0ms817×body1024nan
425.0ms2827×body128nan
267.0ms602×body512valid
259.0ms571×body512nan
99.0ms337×body256valid
97.0ms315×body256nan
3.0msbody4096valid
Compiler

Compiled 5644 to 3740 computations (33.7% saved)

Profiling

Loading profile data...