Details

Time bar (total: 4.6s)

analyze381.0ms (8.2%)

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)

sample1.9s (40%)

Results
841.0ms3032×body256valid
807.0ms5223×body128valid
149.0ms978×body128invalid
0.0msbody512valid
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

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
43.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
43.1b
(*.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)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
0.1b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
0.2b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
37.6b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))

series129.0ms (2.8%)

Counts
4 → 96
Calls

4 calls:

59.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
33.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
27.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
9.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite70.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
278×log1p-udef_binary64
166×add-sqr-sqrt_binary64
162×log1p-expm1-u_binary64
162×expm1-log1p-u_binary64
161×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01574
134262
2486562
Stop Event
node limit
Counts
4 → 158
Calls

4 calls:

67.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
67.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
67.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
67.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))

simplify45.0ms (1%)

Algorithm
egg-herbie
Rules
742×times-frac_binary64
467×associate-/l*_binary64
428×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

prune141.0ms (3%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2275232
Fresh011
Picked011
Done000
Total2277234
Error
0.4b
Counts
234 → 7
Alt Table
StatusErrorProgram
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
2.5b
(/.f64 (-.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a))))) (fma.f64 4 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) (*.f64 (/.f64 10 (pow.f64 b 7)) (*.f64 (pow.f64 c 4) (pow.f64 a 4))))) (*.f64 2 a))
2.7b
(/.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 2 a))
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (fma.f64 (*.f64 a -4) c (*.f64 4 (*.f64 a c)))))) (*.f64 2 a))
42.5b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a))
2.5b
(-.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))))
43.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
Compiler

Compiled 6270 to 3876 computations (38.2% saved)

localize23.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series220.0ms (4.7%)

Counts
4 → 96
Calls

4 calls:

83.0ms
(*.f64 (/.f64 (pow.f64 a 3) (pow.f64 b 7)) (pow.f64 c 4))
74.0ms
(/.f64 (*.f64 a a) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))
36.0ms
(/.f64 (pow.f64 a 3) (pow.f64 b 7))
26.0ms
(/.f64 (*.f64 c c) (pow.f64 b 3))

rewrite33.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
213×add-sqr-sqrt_binary64
212×log1p-expm1-u_binary64
212×expm1-log1p-u_binary64
206×add-cbrt-cube_binary64
203×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02152
147052
Stop Event
node limit
Counts
4 → 105
Calls

4 calls:

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

simplify35.0ms (0.8%)

Algorithm
egg-herbie
Rules
657×associate-*l*_binary64
584×associate-/r*_binary64
571×associate-*r*_binary64
268×associate-/l/_binary64
263×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0221392
1631392
21951392
39941392
Stop Event
node limit
Counts
201 → 111

prune184.0ms (4%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1101111
Fresh055
Picked011
Done011
Total1108118
Error
0.4b
Counts
118 → 8
Alt Table
StatusErrorProgram
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
2.5b
(/.f64 (-.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a))))) (fma.f64 4 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) (*.f64 (/.f64 10 (pow.f64 b 7)) (*.f64 (pow.f64 c 4) (pow.f64 a 4))))) (*.f64 2 a))
2.7b
(/.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 2 a))
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (fma.f64 (*.f64 a -4) c (*.f64 4 (*.f64 a c)))))) (*.f64 2 a))
42.5b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a))
3.8b
(-.f64 (*.f64 -2 (-.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (*.f64 a a) (pow.f64 b 5)) (pow.f64 c 3)))) 1)) (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))))
2.5b
(-.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))))
43.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
Compiler

Compiled 5271 to 3295 computations (37.5% saved)

localize28.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series217.0ms (4.7%)

Counts
4 → 72
Calls

4 calls:

92.0ms
(*.f64 (/.f64 10 (pow.f64 b 7)) (*.f64 (pow.f64 c 4) (pow.f64 a 4)))
78.0ms
(/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))
30.0ms
(/.f64 (pow.f64 b 3) (*.f64 c a))
16.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))

rewrite32.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
240×add-sqr-sqrt_binary64
236×log1p-expm1-u_binary64
236×expm1-log1p-u_binary64
227×add-cbrt-cube_binary64
225×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02349
151948
Stop Event
node limit
Counts
4 → 68
Calls

4 calls:

30.0ms
(*.f64 (/.f64 10 (pow.f64 b 7)) (*.f64 (pow.f64 c 4) (pow.f64 a 4)))
30.0ms
(/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3)))
30.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
30.0ms
(/.f64 (pow.f64 b 3) (*.f64 c a))

simplify55.0ms (1.2%)

Algorithm
egg-herbie
Rules
538×associate-/r*_binary64
513×associate-*l*_binary64
482×associate-*r*_binary64
284×associate-/r/_binary64
275×associate-/l/_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0201260
1551260
21821260
39681260
447851152
548621044
Stop Event
node limit
Counts
140 → 72

prune136.0ms (2.9%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New72072
Fresh055
Picked011
Done022
Total72880
Error
0.4b
Counts
80 → 8
Alt Table
StatusErrorProgram
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
2.5b
(/.f64 (-.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a))))) (fma.f64 4 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) (*.f64 (/.f64 10 (pow.f64 b 7)) (*.f64 (pow.f64 c 4) (pow.f64 a 4))))) (*.f64 2 a))
2.7b
(/.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 2 a))
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (fma.f64 (*.f64 a -4) c (*.f64 4 (*.f64 a c)))))) (*.f64 2 a))
42.5b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a))
3.8b
(-.f64 (*.f64 -2 (-.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (*.f64 a a) (pow.f64 b 5)) (pow.f64 c 3)))) 1)) (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))))
2.5b
(-.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))))
43.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
Compiler

Compiled 4151 to 2663 computations (35.8% saved)

localize31.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series155.0ms (3.4%)

Counts
3 → 0
Calls

3 calls:

83.0ms
(/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))
62.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
9.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))

rewrite60.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
167×add-sqr-sqrt_binary64
166×log1p-expm1-u_binary64
166×expm1-log1p-u_binary64
161×add-cbrt-cube_binary64
160×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01733
138233
2470933
Stop Event
node limit
Counts
3 → 105
Calls

3 calls:

58.0ms
(/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))
58.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))
58.0ms
(/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
105 → 105

prune256.0ms (5.5%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New1210121
Fresh044
Picked011
Done033
Total1218129
Error
0.4b
Counts
129 → 8
Alt Table
StatusErrorProgram
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
2.5b
(/.f64 (-.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 c a) (/.f64 (pow.f64 b 3) (*.f64 c a))))) (fma.f64 4 (/.f64 (pow.f64 a 3) (/.f64 (pow.f64 b 5) (pow.f64 c 3))) (*.f64 (/.f64 10 (pow.f64 b 7)) (*.f64 (pow.f64 c 4) (pow.f64 a 4))))) (*.f64 2 a))
2.7b
(/.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 2 a))
43.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (fma.f64 (*.f64 a -4) c (*.f64 4 (*.f64 a c)))))) (*.f64 2 a))
42.5b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 c (*.f64 a -4))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -4)))))) (*.f64 2 a))
3.8b
(-.f64 (*.f64 -2 (-.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (*.f64 a a) (pow.f64 b 5)) (pow.f64 c 3)))) 1)) (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))))
2.5b
(-.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))))
43.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 b b (*.f64 a (*.f64 c -4)))) b) (/.f64 1/2 a))
Compiler

Compiled 7063 to 4893 computations (30.7% saved)

regimes285.0ms (6.2%)

Accuracy

Total 2.6b remaining (86.2%)

Threshold costs 0b (0%)

Counts
50 → 1
Compiler

Compiled 7460 to 5330 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

end212.0ms (4.6%)

Compiler

Compiled 380 to 265 computations (30.3% saved)

Profiling

Loading profile data...