Details

Time bar (total: 13.1s)

analyze1.1s (8.7%)

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)

sample272.0ms (2.1%)

Algorithm
intervals
Results
24.0ms38×body2048valid
22.0ms162×body128valid
13.0ms17×body4096valid
11.0ms24×body1024valid
3.0ms10×body512valid
2.0ms20×body128nan
2.0ms13×body128invalid
1.0msbody256valid
Compiler

Compiled 44 to 32 computations (27.3% saved)

simplify149.0ms (1.1%)

Algorithm
egg-herbie
Rules
2079×fma-neg_binary64
1006×fma-def_binary64
919×div-sub_binary64
626×distribute-rgt-in_binary64
435×cancel-sign-sub-inv_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01526
13824
29524
322722
435722
561422
6110322
7137322
8163622
9233022
10318722
11288022
12282722
13289622
14292222
15379722
16482422
17524022

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
31.7b
Counts
3 → 1
Alt Table
StatusErrorProgram
31.7b
(*.f64 -1/2 (/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a))
Compiler

Compiled 71 to 46 computations (35.2% 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.4b
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
1.1b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
18.9b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series183.0ms (1.4%)

Counts
4 → 96
Calls

4 calls:

73.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
53.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
46.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
10.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
25×*-un-lft-identity_binary64
16×add-sqr-sqrt_binary64
15×add-cube-cbrt_binary64
12×times-frac_binary64
add-cbrt-cube_binary64
Counts
4 → 77
Calls

4 calls:

5.0ms
(/.f64 (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))) a)
3.0ms
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 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))

simplify87.0ms (0.7%)

Algorithm
egg-herbie
Rules
834×times-frac_binary64
539×associate-/l*_binary64
468×fma-def_binary64
198×cancel-sign-sub-inv_binary64
125×associate-/r/_binary64
Counts
173 → 193
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01973876
15213658
215783494
350113494

prune221.0ms (1.7%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New18211193
Fresh000
Picked101
Done000
Total18311194
Error
3.0b
Counts
194 → 11
Alt Table
StatusErrorProgram
43.0b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
46.2b
(*.f64 -1/2 (fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a (sqrt.f64 (*.f64 c (*.f64 a -4))))) (+.f64 (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) a) (/.f64 b a))))
56.1b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
32.1b
(*.f64 -1/2 (*.f64 (/.f64 1 (*.f64 (cbrt.f64 a) (cbrt.f64 a))) (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) (cbrt.f64 a))))
38.3b
(*.f64 -1/2 (/.f64 (+.f64 b (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) a))
31.7b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a)))
45.3b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
45.3b
(*.f64 -1/2 (*.f64 2 (/.f64 b a)))
31.7b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))))
44.0b
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a)) (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a))))
38.7b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
Compiler

Compiled 5279 to 3205 computations (39.3% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
0.3b
(sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))
0.7b
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))
12.2b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series649.0ms (5%)

Counts
4 → 34
Calls

4 calls:

277.0ms
(sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))
210.0ms
(*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
141.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))
21.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite33.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
41×add-sqr-sqrt_binary64
34×*-un-lft-identity_binary64
26×sqrt-prod_binary64
25×associate-*r*_binary64
25×times-frac_binary64
Counts
4 → 108
Calls

4 calls:

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

simplify126.0ms (1%)

Algorithm
egg-herbie
Rules
700×associate-/r*_binary64
656×fma-def_binary64
339×associate-*l/_binary64
177×cancel-sign-sub-inv_binary64
170×associate-/l/_binary64
Counts
142 → 205
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02344440
15903979
218443790
346763786
449463786

prune505.0ms (3.9%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New3073310
Fresh3710
Picked101
Done000
Total31110321
Error
3.0b
Counts
321 → 10
Alt Table
StatusErrorProgram
32.0b
(*.f64 -1/2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))))) (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))))
31.7b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))))
31.6b
(*.f64 -1/2 (*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a))))) (/.f64 1 a)))
38.7b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
45.3b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
45.3b
(*.f64 -1/2 (*.f64 2 (/.f64 b a)))
43.0b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
44.0b
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a)) (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a))))
50.0b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))))) a)))
56.1b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
Compiler

Compiled 12343 to 8145 computations (34% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -4 (*.f64 c a))
0.4b
(*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a))))) (/.f64 1 a))
0.7b
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a)))))
12.2b
(sqrt.f64 (*.f64 -4 (*.f64 c a)))

series742.0ms (5.7%)

Counts
4 → 28
Calls

4 calls:

407.0ms
(*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a))))) (/.f64 1 a))
282.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a)))))
42.0ms
(sqrt.f64 (*.f64 -4 (*.f64 c a)))
11.0ms
(*.f64 -4 (*.f64 c a))

rewrite49.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
21×add-sqr-sqrt_binary64
19×*-un-lft-identity_binary64
18×add-exp-log_binary64
17×pow1_binary64
14×associate-*r*_binary64
Counts
4 → 94
Calls

4 calls:

18.0ms
(*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a))))) (/.f64 1 a))
9.0ms
(*.f64 -4 (*.f64 c a))
5.0ms
(sqrt.f64 (*.f64 -4 (*.f64 c a)))
5.0ms
(+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a)))))

simplify152.0ms (1.2%)

Algorithm
egg-herbie
Rules
836×fma-def_binary64
684×associate-/r*_binary64
258×associate-*l/_binary64
196×distribute-rgt-in_binary64
185×distribute-lft-in_binary64
Counts
122 → 159
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02112732
15362467
217602419
347122419
451512419

prune258.0ms (2%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1581159
Fresh099
Picked011
Done000
Total15811169
Error
3.0b
Counts
169 → 11
Alt Table
StatusErrorProgram
32.0b
(*.f64 -1/2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))))) (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))))
31.7b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))))
31.6b
(*.f64 -1/2 (*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a))))) (/.f64 1 a)))
38.7b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
45.3b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
45.3b
(*.f64 -1/2 (*.f64 2 (/.f64 b a)))
43.0b
(*.f64 -1/2 (/.f64 (/.f64 (-.f64 (*.f64 b b) (fma.f64 b b (*.f64 c (*.f64 a -4)))) (-.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))
44.0b
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a)) (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a))))
50.0b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))))) a)))
56.1b
(*.f64 -1/2 (/.f64 (+.f64 b (neg.f64 b)) a))
45.6b
(*.f64 -1/2 (*.f64 (*.f64 2 b) (/.f64 1 a)))
Compiler

Compiled 4720 to 3014 computations (36.1% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))
0.4b
(/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
1.1b
(+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))
18.9b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series401.0ms (3.1%)

Counts
2 → 40
Calls

2 calls:

243.0ms
(/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))
157.0ms
(/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))

rewrite53.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
114×times-frac_binary64
94×*-un-lft-identity_binary64
62×add-sqr-sqrt_binary64
62×add-cube-cbrt_binary64
22×associate-/r*_binary64
Counts
2 → 133
Calls

2 calls:

14.0ms
(/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))))
8.0ms
(/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))

simplify212.0ms (1.6%)

Algorithm
egg-herbie
Rules
712×associate-/l*_binary64
631×associate-/r*_binary64
411×fma-def_binary64
324×associate-/r/_binary64
172×cancel-sign-sub-inv_binary64
Counts
173 → 222
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02095702
15385307
217505032
353565032

prune494.0ms (3.8%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New3122314
Fresh279
Picked011
Done011
Total31411325
Error
3.0b
Counts
325 → 11
Alt Table
StatusErrorProgram
32.0b
(*.f64 -1/2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))))) (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) a))))
31.7b
(*.f64 -1/2 (/.f64 1 (/.f64 a (+.f64 b (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))))))
31.6b
(*.f64 -1/2 (*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 -4 (*.f64 c a))))) (/.f64 1 a)))
38.7b
(*.f64 -1/2 (*.f64 2 (/.f64 c b)))
45.3b
(*.f64 -1/2 (*.f64 2 (-.f64 (/.f64 b a) (/.f64 c b))))
31.6b
(*.f64 -1/2 (/.f64 1 (*.f64 a (/.f64 1 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))))
45.3b
(*.f64 -1/2 (*.f64 2 (/.f64 b a)))
44.0b
(*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a)) (sqrt.f64 (/.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4))))) a))))
50.0b
(*.f64 -1/2 (*.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -4)))))) (/.f64 (sqrt.f64 (+.f64 b (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -4)))))) a)))
38.7b
(*.f64 -1/2 (/.f64 1 (*.f64 1/2 (-.f64 (/.f64 b c) (/.f64 a b)))))
45.6b
(*.f64 -1/2 (*.f64 (*.f64 2 b) (/.f64 1 a)))
Compiler

Compiled 9618 to 5951 computations (38.1% saved)

regimes3.6s (27.3%)

Accuracy

Total 5.0b remaining (48.5%)

Threshold costs 0b (0%)

Counts
179 → 3
Compiler

Compiled 18884 to 12898 computations (31.7% saved)

bsearch92.0ms (0.7%)

Steps
ItersRangePoint
2
1.567498144484278e+81
4.1379173639252375e+83
6.318868403736129e+81
9
-6.622402400133837e-124
-1.8899143114739832e-130
-6.542248734410455e-124
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03060
14260
24860
35260
45560
55660
65560

end2.0ms (0%)

Compiler

Compiled 44 to 29 computations (34.1% saved)

sample3.6s (27.6%)

Algorithm
intervals
Results
705.0ms1109×body2048valid
667.0ms5249×body128valid
354.0ms709×body1024valid
298.0ms383×body4096valid
141.0ms368×body512valid
84.0ms697×body128nan
50.0ms389×body128invalid
44.0ms182×body256valid
Compiler

Compiled 310 to 223 computations (28.1% saved)

Profiling

Loading profile data...