Details

Time bar (total: 4.7s)

analyze343.0ms (7.3%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
0%0%100%2
0%0%100%3
0%0%100%4
0%0%100%5
0%0%100%6
0%0%100%7
0%0%100%8
0%0%100%9
0%0%100%10
0%0%100%11
0%0%100%12
0%0%100%13
0%0%100%14
Compiler

Compiled 43 to 31 computations (27.9% saved)

sample2.2s (46.5%)

Results
1.0s4031×body256valid
535.0ms1453×body512valid
423.0ms2772×body128valid
123.0ms870×body128invalid
Compiler

Compiled 106 to 76 computations (28.3% saved)

simplify28.0ms (0.6%)

Algorithm
egg-herbie
Rules
763×fma-neg_binary64
619×times-frac_binary64
367×fma-def_binary64
242×distribute-rgt-in_binary64
239×div-sub_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
13322
27222
316322
426722
543622
674722
7133522
8268922
9408622
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 75 computations (32.4% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series112.0ms (2.4%)

Counts
4 → 96
Calls

4 calls:

47.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
30.0ms
(-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b)
25.0ms
(sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))
9.0ms
(fma.f64 b b (*.f64 a (*.f64 c -4)))

rewrite68.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
737×prod-diff_binary64
158×egg-rr
139×add-sqr-sqrt_binary64
132×log1p-expm1-u_binary64
132×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01362
128159
2362659
Stop Event
node limit
Counts
4 → 158
Calls

4 calls:

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

simplify45.0ms (1%)

Algorithm
egg-herbie
Rules
742×times-frac_binary64
467×associate-/l*_binary64
430×fma-def_binary64
421×associate-/r*_binary64
142×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212241
14022164
214052078
Stop Event
node limit
Counts
254 → 232

prune134.0ms (2.8%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2266232
Fresh101
Picked011
Done000
Total2277234
Error
0.2b
Counts
234 → 7
Alt Table
StatusErrorProgram
52.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
52.1b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 2))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/2 a))
2.3b
(*.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (/.f64 1/2 a))
52.4b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (pow.f64 b 2) (*.f64 4 (*.f64 c a)))) b) (/.f64 1/2 a))
1.9b
(-.f64 (*.f64 -2 (/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))) (fma.f64 5 (*.f64 (/.f64 (pow.f64 a 3) (pow.f64 b 7)) (pow.f64 c 4)) (fma.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) a (/.f64 c b))))
52.7b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b))) (/.f64 1/2 a))
2.6b
(*.f64 (fma.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))) (*.f64 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) -4)) (/.f64 1/2 a))
Compiler

Compiled 6040 to 3770 computations (37.6% saved)

localize22.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (pow.f64 b 5) (pow.f64 c 3))
0.3b
(/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))
0.4b
(/.f64 (pow.f64 a 3) (pow.f64 b 7))
0.4b
(/.f64 (*.f64 c c) (pow.f64 b 3))

series167.0ms (3.5%)

Counts
4 → 60
Calls

4 calls:

73.0ms
(/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))
35.0ms
(/.f64 (pow.f64 a 3) (pow.f64 b 7))
32.0ms
(/.f64 (pow.f64 b 5) (pow.f64 c 3))
27.0ms
(/.f64 (*.f64 c c) (pow.f64 b 3))

rewrite34.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
190×add-sqr-sqrt_binary64
185×log1p-expm1-u_binary64
185×expm1-log1p-u_binary64
182×add-cbrt-cube_binary64
179×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01846
140446
Stop Event
node limit
Counts
4 → 135
Calls

4 calls:

32.0ms
(/.f64 (pow.f64 b 5) (pow.f64 c 3))
32.0ms
(/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))
32.0ms
(/.f64 (pow.f64 a 3) (pow.f64 b 7))
32.0ms
(/.f64 (*.f64 c c) (pow.f64 b 3))

simplify71.0ms (1.5%)

Algorithm
egg-herbie
Rules
688×times-frac_binary64
482×associate-/l*_binary64
272×sqr-pow_binary64
261×associate-/r*_binary64
247×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015816
142816
2119816
3517816
44070816
54139816
64284816
74508816
84741816
Stop Event
node limit
Counts
195 → 139

prune214.0ms (4.5%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1390139
Fresh055
Picked011
Done011
Total1397146
Error
0.2b
Counts
146 → 7
Alt Table
StatusErrorProgram
52.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
52.1b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 2))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/2 a))
2.3b
(*.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (/.f64 1/2 a))
52.4b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (pow.f64 b 2) (*.f64 4 (*.f64 c a)))) b) (/.f64 1/2 a))
1.9b
(-.f64 (*.f64 -2 (/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))) (fma.f64 5 (*.f64 (/.f64 (pow.f64 a 3) (pow.f64 b 7)) (pow.f64 c 4)) (fma.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) a (/.f64 c b))))
52.7b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b))) (/.f64 1/2 a))
2.6b
(*.f64 (fma.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))) (*.f64 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) -4)) (/.f64 1/2 a))
Compiler

Compiled 6375 to 3954 computations (38% saved)

localize33.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
0.4b
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
0.4b
(/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))
0.4b
(*.f64 (pow.f64 c 4) (pow.f64 a 4))

series177.0ms (3.7%)

Counts
4 → 0
Calls

4 calls:

83.0ms
(/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))
60.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
17.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
16.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))

rewrite35.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
200×log1p-expm1-u_binary64
200×expm1-log1p-u_binary64
195×add-sqr-sqrt_binary64
192×add-cbrt-cube_binary64
191×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02140
146740
Stop Event
node limit
Counts
4 → 112
Calls

4 calls:

33.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
33.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
33.0ms
(/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))
33.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
112 → 112

prune184.0ms (3.9%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New1120112
Fresh044
Picked011
Done022
Total1127119
Error
0.2b
Counts
119 → 7
Alt Table
StatusErrorProgram
52.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
52.1b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 2))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/2 a))
2.3b
(*.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (/.f64 1/2 a))
52.4b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (pow.f64 b 2) (*.f64 4 (*.f64 c a)))) b) (/.f64 1/2 a))
1.9b
(-.f64 (*.f64 -2 (/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))) (fma.f64 5 (*.f64 (/.f64 (pow.f64 a 3) (pow.f64 b 7)) (pow.f64 c 4)) (fma.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) a (/.f64 c b))))
52.7b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b))) (/.f64 1/2 a))
2.6b
(*.f64 (fma.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))) (*.f64 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) -4)) (/.f64 1/2 a))
Compiler

Compiled 6658 to 4626 computations (30.5% saved)

localize20.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (fma.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))) (*.f64 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) -4)) (/.f64 1/2 a))
0.3b
(/.f64 (pow.f64 b 3) (*.f64 c a))
0.3b
(/.f64 (pow.f64 b 5) (pow.f64 c 3))
0.4b
(/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))

series170.0ms (3.6%)

Counts
3 → 72
Calls

3 calls:

83.0ms
(*.f64 (fma.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))) (*.f64 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) -4)) (/.f64 1/2 a))
59.0ms
(/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))
28.0ms
(/.f64 (pow.f64 b 3) (*.f64 c a))

rewrite34.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
263×add-sqr-sqrt_binary64
249×log1p-expm1-u_binary64
249×expm1-log1p-u_binary64
247×add-cbrt-cube_binary64
245×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02477
154276
Stop Event
node limit
Counts
3 → 52
Calls

3 calls:

33.0ms
(*.f64 (fma.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))) (*.f64 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) -4)) (/.f64 1/2 a))
33.0ms
(/.f64 (pow.f64 b 3) (*.f64 c a))
33.0ms
(/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))

simplify41.0ms (0.9%)

Algorithm
egg-herbie
Rules
775×associate-/r*_binary64
466×associate-/r/_binary64
388×fma-neg_binary64
349×associate-/l/_binary64
326×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0301669
1911669
23041625
317131592
Stop Event
node limit
Counts
124 → 64

prune121.0ms (2.6%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New95196
Fresh033
Picked011
Done033
Total958103
Error
0.2b
Counts
103 → 8
Alt Table
StatusErrorProgram
52.3b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
52.1b
(*.f64 (+.f64 (fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 2))) (sqrt.f64 (cbrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))))) (neg.f64 b)) (fma.f64 (neg.f64 (sqrt.f64 b)) (sqrt.f64 b) b)) (/.f64 1/2 a))
2.3b
(*.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (+.f64 (*.f64 10 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))))))) (/.f64 1/2 a))
52.4b
(*.f64 (-.f64 (sqrt.f64 (-.f64 (pow.f64 b 2) (*.f64 4 (*.f64 c a)))) b) (/.f64 1/2 a))
1.9b
(-.f64 (*.f64 -2 (/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))) (fma.f64 5 (*.f64 (/.f64 (pow.f64 a 3) (pow.f64 b 7)) (pow.f64 c 4)) (fma.f64 (/.f64 (*.f64 c c) (pow.f64 b 3)) a (/.f64 c b))))
3.5b
(*.f64 (/.f64 c b) (-.f64 -1 (/.f64 (*.f64 c a) (*.f64 b b))))
52.7b
(*.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b)) (-.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 c -4))) 1/4) (sqrt.f64 b))) (/.f64 1/2 a))
2.6b
(*.f64 (fma.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a)))) (*.f64 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) -4)) (/.f64 1/2 a))
Compiler

Compiled 3732 to 2242 computations (39.9% saved)

regimes252.0ms (5.3%)

Accuracy

Total 1.2b remaining (83.7%)

Threshold costs 0b (0%)

Counts
45 → 1
Compiler

Compiled 6864 to 4902 computations (28.6% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02757
13157
23657
33857
43957
Stop Event
saturated

end198.0ms (4.2%)

Compiler

Compiled 348 to 240 computations (31% saved)

Profiling

Loading profile data...