Details

Time bar (total: 9.2s)

analyze660.0ms (7.2%)

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.3s (25.4%)

Results
745.0ms5409×body128valid
639.0ms1167×body2048valid
293.0ms667×body1024valid
283.0ms446×body4096valid
143.0ms1043×body128invalid
131.0ms383×body512valid
43.0ms184×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify32.0ms (0.3%)

Algorithm
egg-herbie
Rules
1220×fma-neg_binary64
367×fma-def_binary64
351×times-frac_binary64
266×associate-/l*_binary64
254×div-sub_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01326
13022
26922
316022
426422
543322
674422
7134122
8276922
9470222
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 75 computations (32.4% saved)

localize14.0ms (0.1%)

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))
1.1b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
23.5b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series76.0ms (0.8%)

Counts
4 → 100
Calls

4 calls:

34.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
25.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
9.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
7.0ms
(*.f64 (*.f64 3 a) c)

rewrite87.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
704×fma-def_binary64
357×fma-neg_binary64
270×egg-rr
224×expm1-udef_binary64
224×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01255
127547
2387247
Stop Event
node limit
Counts
4 → 270
Calls

4 calls:

81.0ms
(*.f64 (*.f64 3 a) c)
81.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
81.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
81.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

simplify62.0ms (0.7%)

Algorithm
egg-herbie
Rules
458×times-frac_binary64
278×associate-*r*_binary64
278×associate-/l*_binary64
254×associate-/r*_binary64
241×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0891820
12751752
28841726
348411726
Stop Event
node limit
Counts
370 → 321

prune271.0ms (2.9%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New3129321
Fresh011
Picked101
Done000
Total31310323
Error
9.3b
Counts
323 → 10
Alt Table
StatusErrorProgram
35.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c))))))) (*.f64 3 a))
36.7b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))) 1/4) 2)) (*.f64 3 a))
55.8b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
37.4b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) 3)) (*.f64 3 a))
35.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (/.f64 1/3 a))
43.6b
(/.f64 (fma.f64 3/2 (*.f64 a (/.f64 c b)) (*.f64 b -2)) (*.f64 3 a))
43.4b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
42.9b
(/.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (*.f64 3 a))
44.0b
(/.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (*.f64 3 a))
46.9b
(/.f64 (-.f64 (sqrt.f64 (neg.f64 (*.f64 3 (*.f64 c a)))) b) (*.f64 3 a))
Compiler

Compiled 9839 to 5815 computations (40.9% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))))
1.1b
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))))))
23.5b
(sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c))))))
51.9b
(fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))

series86.0ms (0.9%)

Counts
4 → 100
Calls

4 calls:

34.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))))))
29.0ms
(sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c))))))
13.0ms
(fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))))
9.0ms
(fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))

rewrite68.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
259×expm1-udef_binary64
259×log1p-udef_binary64
230×fma-neg_binary64
155×add-sqr-sqrt_binary64
146×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01598
131494
2398994
Stop Event
node limit
Counts
4 → 120
Calls

4 calls:

65.0ms
(fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))))
65.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))))))
65.0ms
(sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c))))))
65.0ms
(fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c)))

simplify57.0ms (0.6%)

Algorithm
egg-herbie
Rules
458×times-frac_binary64
281×associate-*r*_binary64
278×associate-/l*_binary64
255×associate-/r*_binary64
241×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0901676
12751608
28861582
348451582
Stop Event
node limit
Counts
220 → 172

prune154.0ms (1.7%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1684172
Fresh279
Picked011
Done000
Total17012182
Error
9.3b
Counts
182 → 12
Alt Table
StatusErrorProgram
35.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c))))))) (*.f64 3 a))
36.7b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (pow.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))) 1/4) 2)) (*.f64 3 a))
55.8b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
36.2b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 c (*.f64 a 3))))))) 3)) (*.f64 3 a))
43.6b
(/.f64 (fma.f64 3/2 (*.f64 a (/.f64 c b)) (*.f64 b -2)) (*.f64 3 a))
49.5b
(/.f64 (fma.f64 (*.f64 (/.f64 c (/.f64 (pow.f64 b 3) (*.f64 a a))) c) -9/8 (*.f64 (/.f64 c (/.f64 b a)) -3/2)) (*.f64 3 a))
43.4b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
55.8b
(/.f64 (+.f64 (neg.f64 b) (fma.f64 (/.f64 c (/.f64 b a)) -3/2 b)) (*.f64 3 a))
42.9b
(/.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (*.f64 3 a))
38.0b
(/.f64 (+.f64 (neg.f64 b) (exp.f64 (log.f64 (hypot.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 c (*.f64 a 3))))))))) (*.f64 3 a))
35.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (/.f64 1/3 a))
44.0b
(/.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (*.f64 3 a))
Compiler

Compiled 6138 to 3836 computations (37.5% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 1/3 a)
0.8b
(fma.f64 b b (*.f64 a (*.f64 c -3)))
1.1b
(-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b)
23.5b
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))

series74.0ms (0.8%)

Counts
4 → 76
Calls

4 calls:

33.0ms
(-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b)
29.0ms
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3))))
9.0ms
(fma.f64 b b (*.f64 a (*.f64 c -3)))
1.0ms
(/.f64 1/3 a)

rewrite66.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
737×prod-diff_binary64
230×log1p-udef_binary64
138×egg-rr
129×add-sqr-sqrt_binary64
123×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01244
126042
2327242
Stop Event
node limit
Counts
4 → 138
Calls

4 calls:

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

simplify57.0ms (0.6%)

Algorithm
egg-herbie
Rules
458×times-frac_binary64
278×associate-*r*_binary64
278×associate-/l*_binary64
254×associate-/r*_binary64
241×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0891652
12751584
28841558
348411558
Stop Event
node limit
Counts
214 → 189

prune153.0ms (1.7%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New1809189
Fresh5510
Picked101
Done011
Total18615201
Error
9.2b
Counts
201 → 15
Alt Table
StatusErrorProgram
43.6b
(*.f64 (fma.f64 3/2 (*.f64 a (/.f64 c b)) (*.f64 b -2)) (/.f64 1/3 a))
35.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c))))))) (*.f64 3 a))
31.9b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (/.f64 1/3 a))
42.9b
(*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))
32.2b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3) (/.f64 1/3 a))
44.0b
(*.f64 (*.f64 -3/2 (/.f64 (*.f64 c a) b)) (/.f64 1/3 a))
49.5b
(/.f64 (fma.f64 (*.f64 (/.f64 c (/.f64 (pow.f64 b 3) (*.f64 a a))) c) -9/8 (*.f64 (/.f64 c (/.f64 b a)) -3/2)) (*.f64 3 a))
43.4b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
49.0b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (sqrt.f64 (/.f64 1/3 a)) 2))
55.8b
(/.f64 (+.f64 (neg.f64 b) (fma.f64 (/.f64 c (/.f64 b a)) -3/2 b)) (*.f64 3 a))
42.9b
(/.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (*.f64 3 a))
33.8b
(*.f64 (exp.f64 (log.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b))) (/.f64 1/3 a))
36.2b
(/.f64 (+.f64 (neg.f64 b) (pow.f64 (cbrt.f64 (hypot.f64 b (sqrt.f64 (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 c (*.f64 a 3))))))) 3)) (*.f64 3 a))
49.5b
(*.f64 (-.f64 (sqrt.f64 (pow.f64 b 2)) b) (/.f64 1/3 a))
35.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 1/3 (/.f64 1 a)))
Compiler

Compiled 5063 to 3200 computations (36.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (/.f64 1/3 a))
0.3b
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)
0.4b
(/.f64 1/3 a)
14.6b
(sqrt.f64 (*.f64 a (*.f64 c -3)))

series409.0ms (4.4%)

Counts
3 → 16
Calls

3 calls:

234.0ms
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)
161.0ms
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (/.f64 1/3 a))
14.0ms
(sqrt.f64 (*.f64 a (*.f64 c -3)))

rewrite69.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
575×prod-diff_binary64
158×add-sqr-sqrt_binary64
152×log1p-expm1-u_binary64
152×expm1-log1p-u_binary64
150×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01645
134845
2407745
Stop Event
node limit
Counts
3 → 122
Calls

3 calls:

66.0ms
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (/.f64 1/3 a))
66.0ms
(pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2)
66.0ms
(sqrt.f64 (*.f64 a (*.f64 c -3)))

simplify43.0ms (0.5%)

Algorithm
egg-herbie
Rules
953×fma-neg_binary64
592×times-frac_binary64
288×associate-/l*_binary64
264×associate-/r*_binary64
210×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
082661
1249614
2801584
34499583
Stop Event
node limit
Counts
138 → 152

prune158.0ms (1.7%)

Pruning

19 alts after pruning (18 fresh and 1 done)

PrunedKeptTotal
New1659174
Fresh4913
Picked101
Done011
Total17019189
Error
4.2b
Counts
189 → 19
Alt Table
StatusErrorProgram
43.6b
(*.f64 (fma.f64 3/2 (*.f64 a (/.f64 c b)) (*.f64 b -2)) (/.f64 1/3 a))
35.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (fma.f64 c (*.f64 a -3) (fma.f64 c (*.f64 a -3) (*.f64 3 (*.f64 a c))))))) (*.f64 3 a))
31.8b
(/.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) (*.f64 a 3))
31.9b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 2) (pow.f64 (*.f64 a 3) -1))
43.4b
(*.f64 -2/3 (/.f64 b a))
42.9b
(*.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (/.f64 1/3 a))
44.1b
(/.f64 (*.f64 (*.f64 c a) -1/2) (*.f64 a b))
32.2b
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 a (*.f64 c -3)))) b)) 3) (/.f64 1/3 a))
53.2b
(*.f64 1/6 (/.f64 (pow.f64 (sqrt.f64 (*.f64 -3 (*.f64 c a))) 2) (*.f64 a b)))
49.0b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (pow.f64 (sqrt.f64 (/.f64 1/3 a)) 2))
55.8b
(/.f64 (+.f64 (neg.f64 b) (fma.f64 (/.f64 c (/.f64 b a)) -3/2 b)) (*.f64 3 a))
42.9b
(/.f64 (*.f64 (*.f64 a (/.f64 c b)) -3/2) (*.f64 3 a))
35.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -3)))) b) (*.f64 1/3 (/.f64 1 a)))
31.9b
(/.f64 1 (/.f64 a (*.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) 1/3)))
45.3b
(*.f64 (pow.f64 (sqrt.f64 (-.f64 (hypot.f64 b (*.f64 (sqrt.f64 (*.f64 c -3)) (sqrt.f64 a))) b)) 2) (/.f64 1/3 a))
49.5b
(/.f64 (fma.f64 (*.f64 (/.f64 c (/.f64 (pow.f64 b 3) (*.f64 a a))) c) -9/8 (*.f64 (/.f64 c (/.f64 b a)) -3/2)) (*.f64 3 a))
32.0b
(*.f64 (*.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) 1/4) (*.f64 (pow.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b) 1/4) (sqrt.f64 (-.f64 (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a)))) b)))) (/.f64 1/3 a))
50.5b
(/.f64 (*.f64 (-.f64 (fma.f64 b b (*.f64 c (*.f64 -3 a))) (*.f64 b b)) 1/3) (*.f64 (+.f64 b (hypot.f64 b (sqrt.f64 (*.f64 c (*.f64 -3 a))))) a))
49.5b
(*.f64 (-.f64 (sqrt.f64 (pow.f64 b 2)) b) (/.f64 1/3 a))
Compiler

Compiled 4664 to 3052 computations (34.6% saved)

regimes3.9s (41.8%)

Accuracy

Total 8.8b remaining (64.1%)

Threshold costs 0b (0%)

Counts
193 → 3
Compiler

Compiled 20649 to 14692 computations (28.8% saved)

bsearch99.0ms (1.1%)

Steps
ItersRangePoint
7
1.5325321322440894e-29
7.867917469153121e-28
1.786960702039828e-29
8
-7.081428794273193e+152
-6.337161274207701e+149
-1.887372346820939e+150
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
10×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
unsub-neg_binary64
neg-sub0_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03686
15084
25384
35484
Stop Event
saturated

end285.0ms (3.1%)

Compiler

Compiled 505 to 347 computations (31.3% saved)

Profiling

Loading profile data...