Details

Time bar (total: 9.2s)

analyze638.0ms (6.9%)

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 (25%)

Results
741.0ms5358×body128valid
584.0ms1151×body2048valid
305.0ms768×body1024valid
270.0ms432×body4096valid
140.0ms1108×body128invalid
123.0ms373×body512valid
43.0ms174×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify390.0ms (4.2%)

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

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 74 computations (33.3% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
0.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
0.6b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
21.7b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series187.0ms (2%)

Counts
4 → 96
Calls

4 calls:

81.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
52.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
41.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
13.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite27.0ms (0.3%)

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)))

simplify120.0ms (1.3%)

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
02434210
16933825
224883724
346523704
449853704

prune140.0ms (1.5%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1998207
Fresh011
Picked101
Done000
Total2009209
Error
4.9b
Counts
209 → 9
Alt Table
StatusErrorProgram
32.7b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
42.0b
(/.f64 (-.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) (*.f64 2 a))
47.1b
(-.f64 (/.f64 c b) (/.f64 b a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
37.4b
(/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
46.9b
(/.f64 (neg.f64 b) a)
47.0b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2))))
45.6b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))))
39.9b
(neg.f64 (/.f64 c b))
Compiler

Compiled 5683 to 3170 computations (44.2% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
0.2b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
21.7b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series177.0ms (1.9%)

Counts
3 → 60
Calls

3 calls:

81.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
55.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
41.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

rewrite21.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
41×add-sqr-sqrt_binary64
31×*-un-lft-identity_binary64
27×add-cube-cbrt_binary64
18×prod-diff_binary64
17×sqrt-prod_binary64
Counts
3 → 99
Calls

3 calls:

9.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
4.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
1.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

simplify129.0ms (1.4%)

Algorithm
egg-herbie
Rules
505×fma-neg_binary64
316×distribute-rgt-in_binary64
279×distribute-lft-in_binary64
261×cancel-sign-sub-inv_binary64
151×associate-*r*_binary64
Counts
159 → 207
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02584859
16623980
224793807
348593807
449663807

prune154.0ms (1.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2043207
Fresh178
Picked011
Done000
Total20511216
Error
4.9b
Counts
216 → 11
Alt Table
StatusErrorProgram
35.5b
(/.f64 (*.f64 1/2 (+.f64 (*.f64 a (*.f64 c -4)) 0)) (*.f64 a (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -4)))))))
47.1b
(-.f64 (/.f64 c b) (/.f64 b a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
37.4b
(/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
46.9b
(/.f64 (neg.f64 b) a)
46.9b
(*.f64 (*.f64 -2 b) (/.f64 1/2 a))
47.0b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2))))
32.7b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
45.6b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))))
39.9b
(neg.f64 (/.f64 c b))
41.2b
(*.f64 1/2 (/.f64 (sqrt.f64 (*.f64 a (*.f64 c -4))) a))
Compiler

Compiled 5972 to 3482 computations (41.7% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.6b
(-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))
2.6b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
6.7b
(/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))
12.2b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series1.4s (14.7%)

Counts
4 → 42
Calls

4 calls:

676.0ms
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
498.0ms
(/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))
161.0ms
(-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))
23.0ms
(sqrt.f64 (*.f64 c (*.f64 a -4)))

rewrite44.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
53×*-un-lft-identity_binary64
45×add-cbrt-cube_binary64
45×add-exp-log_binary64
43×add-sqr-sqrt_binary64
33×add-cube-cbrt_binary64
Counts
4 → 162
Calls

4 calls:

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

simplify153.0ms (1.7%)

Algorithm
egg-herbie
Rules
421×times-frac_binary64
385×fma-neg_binary64
307×associate-/l*_binary64
271×associate-/r*_binary64
232×associate-*r*_binary64
Counts
204 → 295
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03777962
19846021
242605997
350405997

prune239.0ms (2.6%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2941295
Fresh189
Picked011
Done011
Total29511306
Error
4.9b
Counts
306 → 11
Alt Table
StatusErrorProgram
47.1b
(-.f64 (/.f64 c b) (/.f64 b a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
37.4b
(/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
46.9b
(/.f64 (neg.f64 b) a)
46.9b
(*.f64 (*.f64 -2 b) (/.f64 1/2 a))
47.0b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2))))
32.7b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
45.6b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))))
39.9b
(neg.f64 (/.f64 c b))
35.5b
(/.f64 (*.f64 4 (*.f64 c a)) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))
41.2b
(*.f64 1/2 (/.f64 (sqrt.f64 (*.f64 a (*.f64 c -4))) a))
Compiler

Compiled 11504 to 6834 computations (40.6% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))
1.6b
(-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))
11.8b
(/.f64 (*.f64 4 (*.f64 c a)) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))
12.2b
(sqrt.f64 (*.f64 c (*.f64 a -4)))

series656.0ms (7.1%)

Counts
2 → 28
Calls

2 calls:

451.0ms
(/.f64 (*.f64 4 (*.f64 c a)) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))
205.0ms
(*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))

rewrite44.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
60×prod-diff_binary64
47×*-un-lft-identity_binary64
45×add-sqr-sqrt_binary64
43×add-cube-cbrt_binary64
43×add-cbrt-cube_binary64
Counts
2 → 128
Calls

2 calls:

14.0ms
(/.f64 (*.f64 4 (*.f64 c a)) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))
9.0ms
(*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b)))

simplify178.0ms (1.9%)

Algorithm
egg-herbie
Rules
606×fma-def_binary64
561×times-frac_binary64
328×associate-*l*_binary64
316×associate-*r*_binary64
259×associate-/l*_binary64
Counts
156 → 196
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03367183
18455503
239165487
348085487
449755487

prune326.0ms (3.5%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New3150315
Fresh088
Picked011
Done022
Total31511326
Error
4.9b
Counts
326 → 11
Alt Table
StatusErrorProgram
47.1b
(-.f64 (/.f64 c b) (/.f64 b a))
32.7b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
37.4b
(/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b)) 2)))
46.9b
(/.f64 (neg.f64 b) a)
46.9b
(*.f64 (*.f64 -2 b) (/.f64 1/2 a))
47.0b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b) b) (*.f64 a 2))))
32.7b
(/.f64 (/.f64 (*.f64 4 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))) (*.f64 2 a))
45.6b
(/.f64 (+.f64 (pow.f64 (neg.f64 b) 3) (pow.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) 3)) (*.f64 (*.f64 2 a) (+.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))))))
39.9b
(neg.f64 (/.f64 c b))
35.5b
(/.f64 (*.f64 4 (*.f64 c a)) (*.f64 (*.f64 2 a) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -4))) b))))
41.2b
(*.f64 1/2 (/.f64 (sqrt.f64 (*.f64 a (*.f64 c -4))) a))
Compiler

Compiled 14340 to 8890 computations (38% saved)

regimes1.6s (17.1%)

Accuracy

Total 3.4b remaining (37.2%)

Threshold costs 0b (0%)

Counts
118 → 4
Compiler

Compiled 13952 to 9308 computations (33.3% saved)

bsearch135.0ms (1.5%)

Steps
ItersRangePoint
8
1.2172116468797495e+31
3.416069190654851e+35
1.6817334037718362e+33
9
3.530460311750897e-163
2.9360496468858698e-154
4.893808620421174e-161
9
-3.9717383279087257e+68
-2.802707603230092e+63
-1.6023237827264455e+68
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
04191
16489
28189
39689
410389
510689
610789
710689

end162.0ms (1.8%)

Compiler

Compiled 357 to 229 computations (35.9% saved)

Profiling

Loading profile data...