Details

Time bar (total: 21.3s)

analyze696.0ms (3.3%)

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
25%74.9%0.1%5
25%74.9%0.1%6
25%68.6%6.4%7
31.2%62.4%6.4%8
36.7%54.6%8.7%9
38.2%48.4%13.4%10
42.7%42.3%15%11
47.8%34.1%18.1%12
49.1%30.3%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.6s (12%)

Results
770.0ms5328×body128valid
693.0ms1171×body2048valid
347.0ms756×body1024valid
305.0ms430×body4096valid
164.0ms1104×body128invalid
130.0ms359×body512valid
51.0ms212×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify357.0ms (1.7%)

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
33.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
33.4b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
33.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize10.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 3 a) c)
0.6b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
0.7b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
22.4b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series115.0ms (0.5%)

Counts
4 → 100
Calls

4 calls:

55.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
44.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
10.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
5.0ms
(*.f64 (*.f64 3 a) c)

rewrite22.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
13×*-un-lft-identity_binary64
10×fma-def_binary64
10×add-sqr-sqrt_binary64
10×add-log-exp_binary64
10×pow1_binary64
Counts
4 → 80
Calls

4 calls:

7.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
4.0ms
(*.f64 (*.f64 3 a) c)
4.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
3.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))

simplify118.0ms (0.6%)

Algorithm
egg-herbie
Rules
677×fma-def_binary64
621×fma-neg_binary64
305×cancel-sign-sub-inv_binary64
228×distribute-rgt-neg-in_binary64
197×distribute-lft-neg-in_binary64
Counts
180 → 168
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02012955
15232836
218062732
345182728
449982728
549192728

prune150.0ms (0.7%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New15711168
Fresh011
Picked101
Done000
Total15812170
Error
9.5b
Counts
170 → 12
Alt Table
StatusErrorProgram
33.4b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
44.9b
(/.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (*.f64 3 a))
34.1b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
34.6b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (*.f64 (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b))) (cbrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)))) (*.f64 3 a))
52.7b
(/.f64 (fma.f64 (sqrt.f64 b) (neg.f64 (sqrt.f64 b)) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
57.0b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
44.6b
(/.f64 (/.f64 (-.f64 (pow.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) 3) (pow.f64 b 3)) (fma.f64 b b (fma.f64 b (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) (fma.f64 (*.f64 c a) -3 (*.f64 b b))))) (*.f64 3 a))
45.3b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
33.9b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)) (sqrt.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)))) (*.f64 3 a))
40.1b
(/.f64 (cbrt.f64 (*.f64 (*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))) (*.f64 3 a))
33.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))) (*.f64 3 a))
35.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))
Compiler

Compiled 4736 to 2782 computations (41.3% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))) (*.f64 3 a))
0.7b
(fma.f64 (*.f64 c a) -3 (*.f64 b b))
0.7b
(+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0)))
22.4b
(sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))

series194.0ms (0.9%)

Counts
4 → 96
Calls

4 calls:

86.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))) (*.f64 3 a))
53.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0)))
44.0ms
(sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))
11.0ms
(fma.f64 (*.f64 c a) -3 (*.f64 b b))

rewrite26.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
24×*-un-lft-identity_binary64
13×add-sqr-sqrt_binary64
10×fma-def_binary64
10×add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
4 → 86
Calls

4 calls:

9.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))) (*.f64 3 a))
7.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0)))
4.0ms
(sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))
0.0ms
(fma.f64 (*.f64 c a) -3 (*.f64 b b))

simplify118.0ms (0.6%)

Algorithm
egg-herbie
Rules
665×fma-def_binary64
383×fma-neg_binary64
359×div-sub_binary64
247×distribute-rgt-in_binary64
225×cancel-sign-sub-inv_binary64
Counts
182 → 198
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02524165
16713809
221873692
345203683
452733683

prune154.0ms (0.7%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1926198
Fresh8311
Picked011
Done000
Total20010210
Error
5.3b
Counts
210 → 10
Alt Table
StatusErrorProgram
32.3b
(/.f64 (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) 3) a)
38.4b
(/.f64 (+.f64 (neg.f64 b) (/.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))) (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))))) (*.f64 3 a))
45.3b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
33.4b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
45.5b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
34.1b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
40.5b
(*.f64 -1/2 (/.f64 c b))
32.7b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (*.f64 a 3))) (cbrt.f64 (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (*.f64 a 3)))) (cbrt.f64 (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) (*.f64 a 3))))
43.0b
(*.f64 1/3 (/.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) a))
33.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))) (*.f64 3 a))
Compiler

Compiled 5608 to 3295 computations (41.2% saved)

localize10.0ms (0%)

Local error

Found 4 expressions with local error:

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

series651.0ms (3.1%)

Counts
4 → 48
Calls

4 calls:

411.0ms
(/.f64 (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) 3) a)
213.0ms
(-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)
21.0ms
(sqrt.f64 (*.f64 c (*.f64 a -3)))
6.0ms
(*.f64 c (*.f64 a -3))

rewrite62.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:

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

simplify171.0ms (0.8%)

Algorithm
egg-herbie
Rules
521×fma-def_binary64
330×cancel-sign-sub-inv_binary64
290×div-sub_binary64
222×fma-neg_binary64
199×associate-/l/_binary64
Counts
209 → 292
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03786212
18885567
230125485
346905484
449875484

prune255.0ms (1.2%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2866292
Fresh538
Picked011
Done011
Total29111302
Error
2.5b
Counts
302 → 11
Alt Table
StatusErrorProgram
32.4b
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 3)))
32.4b
(*.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b)) (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b)) (cbrt.f64 3)) a))
45.5b
(fma.f64 (/.f64 (*.f64 -3 c) b) -1/6 (*.f64 (/.f64 b a) -2/3))
34.1b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
46.8b
(/.f64 (/.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -3)))) b) 3) a)
33.4b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
40.5b
(*.f64 -1/2 (/.f64 c b))
40.6b
(*.f64 1/6 (/.f64 (*.f64 -3 c) b))
33.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))) (*.f64 3 a))
45.3b
(/.f64 (/.f64 (*.f64 -2 b) 3) a)
32.3b
(/.f64 (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) 3) a)
Compiler

Compiled 8672 to 5508 computations (36.5% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series295.0ms (1.4%)

Counts
1 → 12
Calls

1 calls:

294.0ms
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 3)))

rewrite1.6s (7.4%)

Algorithm
rewrite-expression-head
Rules
9176×times-frac_binary64
4559×*-un-lft-identity_binary64
4559×add-sqr-sqrt_binary64
3497×add-cube-cbrt_binary64
2655×sqrt-prod_binary64
Counts
1 → 2638
Calls

1 calls:

63.0ms
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 3)))

simplify4.5s (21.3%)

Algorithm
egg-herbie
Rules
1015×associate-/r/_binary64
811×times-frac_binary64
790×*-commutative_binary64
580×associate-/l/_binary64
379×associate-*r*_binary64
Counts
2650 → 2137
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01283224751
12741221679
24742220883
34909220883

prune3.1s (14.8%)

Pruning

12 alts after pruning (9 fresh and 3 done)

PrunedKeptTotal
New236012361
Fresh088
Picked011
Done022
Total2360122372
Error
2.5b
Counts
2372 → 12
Alt Table
StatusErrorProgram
32.4b
(/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 1) (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 3)))
32.4b
(*.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b)) (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (/.f64 (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 -3 (*.f64 c a)))) b)) (cbrt.f64 3)) a))
45.5b
(fma.f64 (/.f64 (*.f64 -3 c) b) -1/6 (*.f64 (/.f64 b a) -2/3))
34.1b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
45.3b
(/.f64 (/.f64 (*.f64 -2 b) 3) a)
48.2b
(exp.f64 (-.f64 (-.f64 (log.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b))) 0) (log.f64 (/.f64 a (/.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b)) 3)))))
46.8b
(/.f64 (/.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -3)))) b) 3) a)
33.4b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
40.5b
(*.f64 -1/2 (/.f64 c b))
40.6b
(*.f64 1/6 (/.f64 (*.f64 -3 c) b))
33.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)) 0))) (*.f64 3 a))
32.3b
(/.f64 (/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 a -3)))) b) 3) a)
Compiler

Compiled 146811 to 101109 computations (31.1% saved)

regimes5.8s (27.1%)

Accuracy

Total 7.1b remaining (72%)

Threshold costs 0b (0%)

Counts
221 → 3
Compiler

Compiled 28885 to 20378 computations (29.5% saved)

bsearch75.0ms (0.4%)

Steps
ItersRangePoint
7
5.371396339136554e-69
1.805997498602944e-67
5.55660938268195e-68
7
-6.965113512565541e+153
-2.875971793317923e+152
-5.915145320276507e+152
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
03055
14653
26453
37353
47953
58153
67853

end170.0ms (0.8%)

Compiler

Compiled 318 to 229 computations (28% saved)

Profiling

Loading profile data...