Details

Time bar (total: 10.8s)

analyze1.6s (14.8%)

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
0%99.9%0.1%5
0%99.9%0.1%6
0%93.6%6.4%7
0%93.6%6.4%8
0%91.3%8.7%9
0%86.6%13.4%10
0%85.8%14.2%11
0%83.1%16.9%12
0%80.6%19.4%13
0%79.4%20.6%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.8s (25.8%)

Results
785.0ms5396×body128valid
668.0ms1173×body2048valid
347.0ms720×body1024valid
300.0ms380×body8192exit
282.0ms404×body4096valid
135.0ms375×body512valid
128.0ms902×body128invalid
45.0ms188×body256valid
Compiler

Compiled 41 to 29 computations (29.3% saved)

simplify350.0ms (3.2%)

Algorithm
egg-herbie
Rules
1968×fma-neg_binary64
1363×fma-def_binary64
898×div-sub_binary64
743×associate-/l*_binary64
567×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01326
13022
26422
313522
420122
533522
655422
792922
8147722
9211522
10259922
11255422
12260222
13267122
14311722
15232722
16237522
17238322
18238922
19239522
20239722
21239722
22258522
23268522
24261922
25263122
26266122
27267722
28270722
29270722
30275122
31285122
32282722
33282722
34263822

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 74 computations (33.3% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
0.4b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
2.0b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
22.3b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series209.0ms (1.9%)

Counts
4 → 96
Calls

4 calls:

94.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
56.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
47.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
11.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))

rewrite31.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 (*.f64 3 a) c)))) (*.f64 3 a))
7.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
4.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

simplify130.0ms (1.2%)

Algorithm
egg-herbie
Rules
683×fma-neg_binary64
340×cancel-sign-sub-inv_binary64
242×distribute-rgt-neg-in_binary64
156×associate-*r*_binary64
151×distribute-rgt-neg-out_binary64
Counts
186 → 207
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02594286
17163943
225283797
347003771
450263771

prune177.0ms (1.6%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New19512207
Fresh101
Picked101
Done000
Total19712209
Error
5.3b
Counts
209 → 12
Alt Table
StatusErrorProgram
39.1b
(/.f64 (/.f64 (*.f64 3 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b))) (*.f64 3 a))
35.2b
(*.f64 (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) 3) (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) a))
34.8b
(/.f64 1 (/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))
34.7b
(/.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
34.8b
(/.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) 3) a)
42.7b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
35.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))))
47.9b
(/.f64 (fma.f64 (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)) -9/8 (*.f64 (/.f64 (*.f64 c a) b) -3/2)) (*.f64 3 a))
57.9b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
42.7b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
34.8b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (/.f64 1 (*.f64 3 a)))
38.9b
(*.f64 -1/2 (/.f64 c b))
Compiler

Compiled 5913 to 3496 computations (40.9% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
0.2b
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)))
0.7b
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)
14.4b
(sqrt.f64 (*.f64 c (*.f64 a -3)))

series671.0ms (6.2%)

Counts
4 → 36
Calls

4 calls:

289.0ms
(/.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
181.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)
177.0ms
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)))
24.0ms
(sqrt.f64 (*.f64 c (*.f64 a -3)))

rewrite47.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
46×add-sqr-sqrt_binary64
36×*-un-lft-identity_binary64
31×sqrt-prod_binary64
25×pow1_binary64
24×sqrt-div_binary64
Counts
4 → 144
Calls

4 calls:

13.0ms
(/.f64 (*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
10.0ms
(*.f64 (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)) (sqrt.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)))
4.0ms
(sqrt.f64 (*.f64 c (*.f64 a -3)))
3.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)

simplify183.0ms (1.7%)

Algorithm
egg-herbie
Rules
561×fma-def_binary64
293×fma-neg_binary64
290×cancel-sign-sub-inv_binary64
198×times-frac_binary64
195×distribute-rgt-neg-in_binary64
Counts
180 → 227
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02845942
16424709
225694462
347034433
449824433
548874433

prune303.0ms (2.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New3064310
Fresh3811
Picked101
Done000
Total31012322
Error
5.3b
Counts
322 → 12
Alt Table
StatusErrorProgram
39.0b
(*.f64 1/6 (/.f64 (*.f64 -3 c) b))
39.1b
(/.f64 (/.f64 (*.f64 3 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b))) (*.f64 3 a))
35.2b
(*.f64 (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) 3) (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) a))
42.7b
(fma.f64 (/.f64 (*.f64 -3 c) b) -1/6 (*.f64 (/.f64 b a) -2/3))
34.8b
(/.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) 3) a)
42.7b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
35.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))))
57.9b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
41.1b
(fma.f64 (*.f64 (*.f64 -3 c) (/.f64 (*.f64 -3 (*.f64 c a)) (pow.f64 b 3))) -1/24 (*.f64 1/6 (/.f64 (*.f64 -3 c) b)))
34.8b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (/.f64 1 (*.f64 3 a)))
38.9b
(*.f64 -1/2 (/.f64 c b))
34.5b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) 3) a)
Compiler

Compiled 12923 to 8426 computations (34.8% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) 3) a)
0.3b
(*.f64 -3 (*.f64 c a))
0.7b
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b)
14.4b
(sqrt.f64 (*.f64 -3 (*.f64 c a)))

series506.0ms (4.7%)

Counts
4 → 24
Calls

4 calls:

297.0ms
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) 3) a)
180.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b)
23.0ms
(sqrt.f64 (*.f64 -3 (*.f64 c a)))
6.0ms
(*.f64 -3 (*.f64 c a))

rewrite36.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
117×times-frac_binary64
95×*-un-lft-identity_binary64
95×add-sqr-sqrt_binary64
69×add-cube-cbrt_binary64
19×associate-/l*_binary64
Counts
4 → 161
Calls

4 calls:

7.0ms
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) 3) a)
4.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b)
4.0ms
(*.f64 -3 (*.f64 c a))
3.0ms
(sqrt.f64 (*.f64 -3 (*.f64 c a)))

simplify196.0ms (1.8%)

Algorithm
egg-herbie
Rules
521×fma-def_binary64
330×cancel-sign-sub-inv_binary64
288×div-sub_binary64
229×fma-neg_binary64
199×associate-/l/_binary64
Counts
185 → 229
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03766044
18835379
229165311
345865310
449845310
548795310

prune178.0ms (1.6%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2272229
Fresh11011
Picked101
Done000
Total22912241
Error
5.3b
Counts
241 → 12
Alt Table
StatusErrorProgram
39.0b
(*.f64 1/6 (/.f64 (*.f64 -3 c) b))
35.2b
(*.f64 (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) 3) (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) a))
42.7b
(fma.f64 (/.f64 (*.f64 -3 c) b) -1/6 (*.f64 (/.f64 b a) -2/3))
34.8b
(/.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) 3) a)
42.7b
(/.f64 (/.f64 (*.f64 -2 b) 3) a)
38.9b
(*.f64 -1/2 (/.f64 c b))
42.7b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
35.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))))
57.9b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
41.1b
(fma.f64 (*.f64 (*.f64 -3 c) (/.f64 (*.f64 -3 (*.f64 c a)) (pow.f64 b 3))) -1/24 (*.f64 1/6 (/.f64 (*.f64 -3 c) b)))
34.8b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (/.f64 1 (*.f64 3 a)))
34.6b
(*.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) (/.f64 1/3 a))
Compiler

Compiled 7057 to 4268 computations (39.5% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 -3 (*.f64 c a))
0.4b
(/.f64 1/3 a)
0.7b
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b)
14.4b
(sqrt.f64 (*.f64 -3 (*.f64 c a)))

series2.0ms (0%)

Counts
1 → 0
Calls

1 calls:

2.0ms
(/.f64 1/3 a)

rewrite3.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
times-frac_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
associate-/r*_binary64
Counts
1 → 29
Calls

1 calls:

2.0ms
(/.f64 1/3 a)

simplify139.0ms (1.3%)

Algorithm
egg-herbie
Rules
826×associate-/r/_binary64
688×*-commutative_binary64
667×associate-*l/_binary64
521×sqr-pow_binary64
416×unswap-sqr_binary64
Counts
29 → 33
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
055281
185263
2139263
3190263
4313263
5429263
6604263
71144263
82174263
92628263
102830263
113019263
123234263
133496263
144158263
154864263
164949263
174906263

prune94.0ms (0.9%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1230123
Fresh01111
Picked011
Done000
Total12312135
Error
5.3b
Counts
135 → 12
Alt Table
StatusErrorProgram
39.0b
(*.f64 1/6 (/.f64 (*.f64 -3 c) b))
35.2b
(*.f64 (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) 3) (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) a))
42.7b
(fma.f64 (/.f64 (*.f64 -3 c) b) -1/6 (*.f64 (/.f64 b a) -2/3))
34.8b
(/.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) 3) a)
42.7b
(/.f64 (/.f64 (*.f64 -2 b) 3) a)
38.9b
(*.f64 -1/2 (/.f64 c b))
42.7b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
35.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a)))) (cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))))
57.9b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
41.1b
(fma.f64 (*.f64 (*.f64 -3 c) (/.f64 (*.f64 -3 (*.f64 c a)) (pow.f64 b 3))) -1/24 (*.f64 1/6 (/.f64 (*.f64 -3 c) b)))
34.8b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (/.f64 1 (*.f64 3 a)))
34.6b
(*.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) (/.f64 1/3 a))
Compiler

Compiled 3187 to 1918 computations (39.8% saved)

regimes2.9s (26.5%)

Accuracy

Total 5.9b remaining (51.3%)

Threshold costs 0b (0%)

Counts
166 → 3
Compiler

Compiled 19946 to 14180 computations (28.9% saved)

bsearch76.0ms (0.7%)

Steps
ItersRangePoint
9
9.764945508846091e-116
4.0351767613776376e-107
2.4301795213009432e-107
5
-139101.72475413483
-44604.53148691372
-135620.04352278358
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.0ms (0%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
02755
14153
25953
36853
47453
57653
67553

end171.0ms (1.6%)

Compiler

Compiled 321 to 224 computations (30.2% saved)

Profiling

Loading profile data...