Details

Time bar (total: 10.6s)

analyze664.0ms (6.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.9s (27.8%)

Results
945.0ms1099×body2048valid
756.0ms5360×body128valid
380.0ms416×body4096valid
357.0ms788×body1024valid
231.0ms1124×body128invalid
125.0ms379×body512valid
48.0ms214×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify365.0ms (3.5%)

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
32.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
32.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
32.7b
(/.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.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
0.8b
(-.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))))
19.6b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series134.0ms (1.3%)

Counts
4 → 96
Calls

4 calls:

61.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
36.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
27.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
9.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 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:

10.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
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
3.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))

simplify118.0ms (1.1%)

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

prune239.0ms (2.3%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New19314207
Fresh101
Picked101
Done000
Total19514209
Error
6.0b
Counts
209 → 14
Alt Table
StatusErrorProgram
33.2b
(*.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))))
44.4b
(*.f64 -2/3 (/.f64 b a))
33.2b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3) a)
43.2b
(fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))
38.8b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)))) (*.f64 3 a))
39.2b
(*.f64 -1/2 (/.f64 c b))
33.3b
(*.f64 1/3 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) a))
44.3b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
44.6b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
35.1b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
57.1b
(/.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))
32.8b
(/.f64 1 (/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))
37.2b
(/.f64 (/.f64 (*.f64 3 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b))) (*.f64 3 a))
33.3b
(/.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))
Compiler

Compiled 5927 to 3516 computations (40.7% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 3 a) c)
0.8b
(-.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))))
19.6b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series5.0ms (0%)

Counts
1 → 24
Calls

1 calls:

5.0ms
(*.f64 (*.f64 3 a) c)

rewrite5.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-cbrt-cube_binary64
add-exp-log_binary64
pow1_binary64
associate-*r*_binary64
cbrt-unprod_binary64
Counts
1 → 20
Calls

1 calls:

4.0ms
(*.f64 (*.f64 3 a) c)

simplify79.0ms (0.8%)

Algorithm
egg-herbie
Rules
578×associate-*l*_binary64
477×unswap-sqr_binary64
383×associate-*r*_binary64
351×*-commutative_binary64
334×log-div_binary64
Counts
44 → 28
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
045380
199344
2366344
31031344
41241344
51501344
61934344
74036344
84924344
95048344

prune126.0ms (1.2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New1671168
Fresh11213
Picked011
Done000
Total16814182
Error
6.0b
Counts
182 → 14
Alt Table
StatusErrorProgram
33.2b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3) a)
43.2b
(fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))
38.8b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b)))) (*.f64 3 a))
39.2b
(*.f64 -1/2 (/.f64 c b))
32.8b
(/.f64 1 (/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))
44.4b
(/.f64 1 (/.f64 (*.f64 3 a) (*.f64 b -2)))
33.3b
(*.f64 1/3 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) a))
44.3b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
44.6b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
35.1b
(/.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b))) (*.f64 3 a))
33.2b
(*.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.1b
(/.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))
37.2b
(/.f64 (/.f64 (*.f64 3 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b))) (*.f64 3 a))
33.3b
(/.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))
Compiler

Compiled 5040 to 3106 computations (38.4% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series290.0ms (2.7%)

Counts
4 → 48
Calls

4 calls:

161.0ms
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3) a)
105.0ms
(-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b)
13.0ms
(sqrt.f64 (*.f64 c (*.f64 a -3)))
11.0ms
(*.f64 c (*.f64 a -3))

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

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

simplify162.0ms (1.5%)

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

prune242.0ms (2.3%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2884292
Fresh5712
Picked101
Done011
Total29412306
Error
2.5b
Counts
306 → 12
Alt Table
StatusErrorProgram
33.2b
(*.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))))
44.3b
(/.f64 (/.f64 (*.f64 -2 b) 3) a)
39.2b
(*.f64 -1/2 (/.f64 c b))
49.1b
(exp.f64 (-.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3)) (log.f64 a)))
32.8b
(/.f64 1 (/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))
44.4b
(/.f64 1 (/.f64 (*.f64 3 a) (*.f64 b -2)))
46.2b
(/.f64 (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -3))) b) b) 3) a)
33.3b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) (cbrt.f64 3)) a))
43.2b
(fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))
57.1b
(/.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))
37.2b
(/.f64 (/.f64 (*.f64 3 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b))) (*.f64 3 a))
33.3b
(*.f64 1/3 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) a))
Compiler

Compiled 8794 to 5587 computations (36.5% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a)))
0.8b
(-.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))))
19.6b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series334.0ms (3.2%)

Counts
1 → 20
Calls

1 calls:

334.0ms
(cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a)))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
cbrt-prod_binary64
*-un-lft-identity_binary64
times-frac_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
1 → 20
Calls

1 calls:

8.0ms
(cbrt.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a)))

simplify79.0ms (0.7%)

Algorithm
egg-herbie
Rules
650×associate-/l*_binary64
566×associate-/r*_binary64
473×fma-def_binary64
208×associate-*r*_binary64
152×associate-*l*_binary64
Counts
40 → 69
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02152224
16062106
217042017
349161937
449221937

prune716.0ms (6.8%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New6261627
Fresh01010
Picked101
Done011
Total62712639
Error
2.5b
Counts
639 → 12
Alt Table
StatusErrorProgram
39.2b
(*.f64 -1/2 (/.f64 c b))
49.1b
(exp.f64 (-.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3)) (log.f64 a)))
32.8b
(/.f64 1 (/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))
44.4b
(/.f64 1 (/.f64 (*.f64 3 a) (*.f64 b -2)))
33.4b
(*.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) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)))))) (*.f64 3 a))))
46.2b
(/.f64 (/.f64 (-.f64 (hypot.f64 (*.f64 (sqrt.f64 c) (sqrt.f64 (*.f64 a -3))) b) b) 3) a)
33.3b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 3) (cbrt.f64 3))) (/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) b) b) (cbrt.f64 3)) a))
44.3b
(/.f64 (/.f64 (*.f64 -2 b) 3) a)
43.2b
(fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))
57.1b
(/.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))
37.2b
(/.f64 (/.f64 (*.f64 3 (*.f64 c a)) (-.f64 (neg.f64 b) (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b))) (*.f64 3 a))
33.3b
(*.f64 1/3 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) a))
Compiler

Compiled 43016 to 26182 computations (39.1% saved)

regimes3.7s (34.8%)

Accuracy

Total 7.6b remaining (74.1%)

Threshold costs 0b (0%)

Counts
179 → 3
Compiler

Compiled 21756 to 15441 computations (29% saved)

bsearch83.0ms (0.8%)

Steps
ItersRangePoint
11
3.4489011760146514e-82
8.370709927216112e-61
8.84535440633062e-68
5
-2.8717739643815353e+147
-7.244216755185884e+146
-7.863505383668454e+146
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.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
02855
14253
26053
36953
47553
57753
67653

end193.0ms (1.8%)

Compiler

Compiled 347 to 242 computations (30.3% saved)

Profiling

Loading profile data...