Details

Time bar (total: 4.6s)

analyze353.0ms (7.6%)

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.5s (31.7%)

Alt Table
StatusErrorProgram
29.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
Results
1.2s7947×body128valid
120.0ms850×body128invalid
82.0ms309×body256valid
Compiler

Compiled 146 to 104 computations (28.8% saved)

localize12.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (-.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))
0.3b
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))
28.9b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))

series186.0ms (4%)

Counts
4 → 96
Calls

4 calls:

82.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
52.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))
42.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))
10.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))

rewrite118.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
278×expm1-udef_binary64
278×log1p-udef_binary64
166×add-sqr-sqrt_binary64
162×log1p-expm1-u_binary64
162×expm1-log1p-u_binary64
Counts
4 → 156
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01574
133762
2415862
3498762
4485062
000
100

prune153.0ms (3.3%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2457252
Fresh000
Picked011
Done000
Total2458253
Error
0.7b
Counts
253 → 8
Alt Table
StatusErrorProgram
29.1b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))) (/.f64 1 (*.f64 a -2)))
29.0b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (fma.f64 (*.f64 a -4) c (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
28.3b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))) (*.f64 2 a))
5.0b
(neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 2)) (pow.f64 b 5))) (+.f64 (*.f64 5 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 3)) (pow.f64 b 7))) (+.f64 (/.f64 (*.f64 (pow.f64 c 2) a) (pow.f64 b 3)) (/.f64 c b)))))
29.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
5.1b
(/.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))
6.8b
(/.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 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
10.7b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))))) (*.f64 2 a))
Compiler

Compiled 6578 to 3980 computations (39.5% saved)

localize25.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series288.0ms (6.2%)

Counts
4 → 0
Calls

4 calls:

106.0ms
(/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 3)) (pow.f64 b 7))
93.0ms
(/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 2)) (pow.f64 b 5))
70.0ms
(/.f64 (*.f64 (pow.f64 c 2) a) (pow.f64 b 3))
19.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 3))

rewrite65.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
382×log1p-udef_binary64
225×log1p-expm1-u_binary64
225×expm1-log1p-u_binary64
224×add-sqr-sqrt_binary64
216×add-cbrt-cube_binary64
Counts
4 → 72
Calls

4 calls:

63.0ms
(/.f64 (*.f64 (pow.f64 c 2) a) (pow.f64 b 3))
63.0ms
(/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 2)) (pow.f64 b 5))
63.0ms
(/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 3)) (pow.f64 b 7))
63.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 3))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02355
150655
2451655
3529855
000
100

prune172.0ms (3.7%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New72072
Fresh066
Picked011
Done011
Total72880
Error
0.7b
Counts
80 → 8
Alt Table
StatusErrorProgram
29.1b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))) (/.f64 1 (*.f64 a -2)))
29.0b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (fma.f64 (*.f64 a -4) c (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
28.3b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))) (*.f64 2 a))
5.0b
(neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 2)) (pow.f64 b 5))) (+.f64 (*.f64 5 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 3)) (pow.f64 b 7))) (+.f64 (/.f64 (*.f64 (pow.f64 c 2) a) (pow.f64 b 3)) (/.f64 c b)))))
29.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
5.1b
(/.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))
6.8b
(/.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 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
10.7b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))))) (*.f64 2 a))
Compiler

Compiled 3751 to 2636 computations (29.7% saved)

localize31.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

series230.0ms (5%)

Counts
4 → 0
Calls

4 calls:

177.0ms
(/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 4)) (pow.f64 b 7))
21.0ms
(*.f64 (pow.f64 c 4) (pow.f64 a 4))
20.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
11.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))

rewrite100.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
282×expm1-udef_binary64
282×log1p-udef_binary64
178×log1p-expm1-u_binary64
178×expm1-log1p-u_binary64
172×add-sqr-sqrt_binary64
Counts
4 → 92
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01934
140834
2395134
3498934
4481434
000
100

prune163.0ms (3.5%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New92092
Fresh055
Picked011
Done022
Total928100
Error
0.7b
Counts
100 → 8
Alt Table
StatusErrorProgram
29.1b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))) (/.f64 1 (*.f64 a -2)))
29.0b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (fma.f64 (*.f64 a -4) c (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
28.3b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))) (*.f64 2 a))
5.0b
(neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 2)) (pow.f64 b 5))) (+.f64 (*.f64 5 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 3)) (pow.f64 b 7))) (+.f64 (/.f64 (*.f64 (pow.f64 c 2) a) (pow.f64 b 3)) (/.f64 c b)))))
29.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
5.1b
(/.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))
6.8b
(/.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 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
10.7b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 c a) b)) (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))))) (*.f64 2 a))
Compiler

Compiled 5563 to 3935 computations (29.3% saved)

localize23.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series144.0ms (3.1%)

Counts
4 → 0
Calls

4 calls:

101.0ms
(/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5))
19.0ms
(*.f64 (pow.f64 c 3) (pow.f64 a 3))
13.0ms
(*.f64 (pow.f64 c 2) (pow.f64 a 2))
11.0ms
(/.f64 (*.f64 c a) b)

rewrite77.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
276×expm1-udef_binary64
276×log1p-udef_binary64
166×log1p-expm1-u_binary64
166×expm1-log1p-u_binary64
163×add-sqr-sqrt_binary64
Counts
4 → 116
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01734
137234
2408034
3495534
000
100

prune204.0ms (4.4%)

Pruning

11 alts after pruning (7 fresh and 4 done)

PrunedKeptTotal
New1124116
Fresh134
Picked011
Done033
Total11311124
Error
0.7b
Counts
124 → 11
Alt Table
StatusErrorProgram
29.1b
(*.f64 (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))))) (/.f64 1 (*.f64 a -2)))
29.0b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (+.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (fma.f64 (*.f64 a -4) c (*.f64 (*.f64 4 a) c))))) (*.f64 2 a))
28.3b
(/.f64 (/.f64 (-.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c))) (*.f64 b b)) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 -4 (*.f64 a c)))))) (*.f64 2 a))
5.0b
(neg.f64 (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 2)) (pow.f64 b 5))) (+.f64 (*.f64 5 (/.f64 (*.f64 (pow.f64 c 4) (pow.f64 a 3)) (pow.f64 b 7))) (+.f64 (/.f64 (*.f64 (pow.f64 c 2) a) (pow.f64 b 3)) (/.f64 c b)))))
29.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a))
6.9b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (*.f64 c (/.f64 1 (/.f64 b a)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
5.1b
(/.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))
6.8b
(/.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 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
7.1b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (cbrt.f64 (/.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 b 3)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
6.9b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (pow.f64 (/.f64 b (*.f64 c a)) -1)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
7.0b
(/.f64 (neg.f64 (+.f64 (*.f64 2 (pow.f64 (sqrt.f64 (/.f64 (*.f64 c a) b)) 2)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 c 2) (pow.f64 a 2)) (pow.f64 b 3))) (*.f64 4 (/.f64 (*.f64 (pow.f64 c 3) (pow.f64 a 3)) (pow.f64 b 5)))))) (*.f64 2 a))
Compiler

Compiled 5404 to 3745 computations (30.7% saved)

regimes525.0ms (11.4%)

Accuracy

Total 5.0b remaining (86.1%)

Threshold costs 0b (0%)

Counts
89 → 1
Compiler

Compiled 12764 to 9438 computations (26.1% saved)

simplify5.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
03063
14561
26461
39161
412161
515461
617661
718961
819361
919161

end281.0ms (6.1%)

Compiler

Compiled 518 to 387 computations (25.3% saved)

Profiling

Loading profile data...