Details

Time bar (total: 7.5s)

analyze592.0ms (7.9%)

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
0%99.9%0.1%5
15.6%84.3%0.1%6
37.5%62.4%0.1%7
46.8%53.1%0.1%8
57.8%39.8%2.4%9
64.6%30.4%5%10
71.8%20.3%7.9%11
74.1%16.2%9.7%12
77.4%10.7%12%13
78.6%8.4%13%14
Compiler

Compiled 24 to 18 computations (25% saved)

sample2.4s (31.7%)

Results
2.1s8256×body128valid
147.0ms344×body128invalid
Compiler

Compiled 71 to 53 computations (25.4% saved)

simplify66.0ms (0.9%)

Algorithm
egg-herbie
Rules
693×div-sub_binary64
599×times-frac_binary64
519×associate-/l*_binary64
357×associate-/l/_binary64
274×distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01632
13729
29429
334529
4120728
5346828
6502028

prune9.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.4b
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))
16.7b
(*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b)))
Compiler

Compiled 127 to 87 computations (31.5% saved)

localize20.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))
0.2b
(/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))
0.3b
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))
0.3b
(/.f64 (PI.f64) a)

series83.0ms (1.1%)

Counts
4 → 72
Calls

4 calls:

33.0ms
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))
30.0ms
(/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))
15.0ms
(fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))
4.0ms
(/.f64 (PI.f64) a)

rewrite148.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
795×prod-diff_binary64
164×add-sqr-sqrt_binary64
154×log1p-expm1-u_binary64
154×expm1-log1p-u_binary64
152×add-cbrt-cube_binary64
Counts
4 → 146
Calls

4 calls:

142.0ms
(fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))
142.0ms
(/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))
142.0ms
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))
142.0ms
(/.f64 (PI.f64) a)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01465
132165
2450865
3608465
000
100

simplify123.0ms (1.6%)

Algorithm
egg-herbie
Rules
634×cancel-sign-sub-inv_binary64
564×fma-neg_binary64
305×associate-/l/_binary64
277×associate-/r/_binary64
224×neg-mul-1_binary64
Counts
218 → 167
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0601248
11791212
25241146
319981128
447181128
550091128

prune437.0ms (5.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New15710167
Fresh011
Picked101
Done000
Total15811169
Error
0.0b
Counts
169 → 11
Alt Table
StatusErrorProgram
15.6b
(*.f64 (/.f64 1/2 (+.f64 b a)) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)) 3)))
28.9b
(*.f64 1/2 (/.f64 (PI.f64) (*.f64 (pow.f64 a 2) b)))
0.8b
(*.f64 (/.f64 1/2 (+.f64 b a)) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) 2) (*.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) (/.f64 1 (-.f64 b a)))))
0.8b
(/.f64 (/.f64 (*.f64 1/2 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) (pow.f64 (cbrt.f64 (+.f64 a b)) 2)) (cbrt.f64 (+.f64 a b)))
0.4b
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (-.f64 (/.f64 (PI.f64) a) (/.f64 (PI.f64) b)) (-.f64 b a)))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))
0.9b
(/.f64 1/2 (/.f64 (+.f64 a b) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))))
0.9b
(/.f64 1/2 (*.f64 (+.f64 a b) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))))
0.9b
(pow.f64 (cbrt.f64 (*.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))) 3)
34.9b
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (*.f64 (/.f64 1 (sqrt.f64 a)) (/.f64 (PI.f64) (sqrt.f64 a)))) (-.f64 b a)))
16.7b
(*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b)))
Compiler

Compiled 4192 to 2034 computations (51.5% saved)

localize21.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))
0.2b
(/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))
0.2b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))
0.3b
(/.f64 (PI.f64) a)

series96.0ms (1.3%)

Counts
2 → 48
Calls

2 calls:

62.0ms
(/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))
34.0ms
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))

rewrite142.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
309×log1p-udef_binary64
171×add-sqr-sqrt_binary64
161×log1p-expm1-u_binary64
161×expm1-log1p-u_binary64
159×add-cbrt-cube_binary64
Counts
2 → 83
Calls

2 calls:

138.0ms
(/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))
138.0ms
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01447
133047
2495847
3540947
000
100

simplify102.0ms (1.4%)

Algorithm
egg-herbie
Rules
634×cancel-sign-sub-inv_binary64
564×fma-neg_binary64
299×associate-/l/_binary64
275×associate-/r/_binary64
225×neg-mul-1_binary64
Counts
131 → 100
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
055996
1171960
2514894
31983876
44684876
54974876

prune488.0ms (6.5%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1583161
Fresh2810
Picked101
Done000
Total16111172
Error
0.0b
Counts
172 → 11
Alt Table
StatusErrorProgram
0.8b
(*.f64 (/.f64 1/2 (+.f64 b a)) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) 2) (*.f64 (cbrt.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))) (/.f64 1 (-.f64 b a)))))
0.8b
(/.f64 (/.f64 (*.f64 1/2 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) (pow.f64 (cbrt.f64 (+.f64 a b)) 2)) (cbrt.f64 (+.f64 a b)))
28.7b
(*.f64 (/.f64 1/2 (sqrt.f64 (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))) (/.f64 (/.f64 1 (+.f64 a b)) (sqrt.f64 (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a))))))
0.9b
(/.f64 1/2 (/.f64 (+.f64 a b) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))))
0.9b
(/.f64 1/2 (*.f64 (+.f64 a b) (/.f64 (-.f64 b a) (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)))))
28.9b
(*.f64 1/2 (/.f64 (PI.f64) (*.f64 (pow.f64 a 2) b)))
0.9b
(pow.f64 (cbrt.f64 (*.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a)))) 3)
34.9b
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (*.f64 (/.f64 1 (sqrt.f64 a)) (/.f64 (PI.f64) (sqrt.f64 a)))) (-.f64 b a)))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (-.f64 (/.f64 (PI.f64) a) (/.f64 (PI.f64) b))))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64)))
16.7b
(*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b)))
Compiler

Compiled 4355 to 2150 computations (50.6% saved)

localize12.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1/2 (+.f64 a b))
0.2b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64)))
0.5b
(/.f64 (*.f64 a b) (PI.f64))

series80.0ms (1.1%)

Counts
3 → 48
Calls

3 calls:

31.0ms
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64)))
30.0ms
(/.f64 (*.f64 a b) (PI.f64))
19.0ms
(/.f64 1/2 (+.f64 a b))

rewrite104.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
637×prod-diff_binary64
216×log1p-udef_binary64
120×add-sqr-sqrt_binary64
117×egg-rr
114×log1p-expm1-u_binary64
Counts
3 → 117
Calls

3 calls:

99.0ms
(/.f64 1/2 (+.f64 a b))
99.0ms
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (*.f64 a b) (PI.f64)))
99.0ms
(/.f64 (*.f64 a b) (PI.f64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01032
123332
2351232
3512632
000
100

simplify131.0ms (1.8%)

Algorithm
egg-herbie
Rules
338×times-frac_binary64
331×distribute-rgt-neg-in_binary64
327×distribute-lft-neg-in_binary64
321×distribute-neg-frac_binary64
286×fma-def_binary64
Counts
165 → 148
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0871368
12701296
28531194
333881194
449091194
550771194

prune347.0ms (4.6%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New1426148
Fresh6410
Picked101
Done000
Total14910159
Error
0b
Counts
159 → 10
Alt Table
StatusErrorProgram
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))))
34.9b
(*.f64 (/.f64 1/2 (+.f64 b a)) (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (*.f64 (/.f64 1 (sqrt.f64 a)) (/.f64 (PI.f64) (sqrt.f64 a)))) (-.f64 b a)))
0.3b
(*.f64 (PI.f64) (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 a b)))
0.8b
(/.f64 (/.f64 (*.f64 1/2 (/.f64 (fma.f64 (PI.f64) (/.f64 -1 b) (/.f64 (PI.f64) a)) (-.f64 b a))) (pow.f64 (cbrt.f64 (+.f64 a b)) 2)) (cbrt.f64 (+.f64 a b)))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 a (/.f64 1 (/.f64 (PI.f64) b))))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a (PI.f64)) b))
0.3b
(*.f64 (/.f64 -1/2 (+.f64 a b)) (/.f64 1 (/.f64 (neg.f64 (*.f64 a b)) (PI.f64))))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 (-.f64 b a) (-.f64 (/.f64 (PI.f64) a) (/.f64 (PI.f64) b))))
0.9b
(*.f64 1/2 (/.f64 1 (*.f64 (/.f64 (*.f64 a b) (PI.f64)) (+.f64 a b))))
16.7b
(*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b)))
Compiler

Compiled 2959 to 1448 computations (51.1% saved)

localize15.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1/2 (+.f64 a b))
0.2b
(*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))
0.2b
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))))
0.2b
(/.f64 b (PI.f64))

series71.0ms (1%)

Counts
3 → 48
Calls

3 calls:

30.0ms
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))))
29.0ms
(*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))
12.0ms
(/.f64 b (PI.f64))

rewrite120.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
549×prod-diff_binary64
228×log1p-udef_binary64
128×add-sqr-sqrt_binary64
126×egg-rr
121×log1p-expm1-u_binary64
Counts
3 → 126
Calls

3 calls:

115.0ms
(*.f64 (/.f64 a 1) (/.f64 b (PI.f64)))
115.0ms
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))))
115.0ms
(/.f64 b (PI.f64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01230
125830
2368730
3510030
000
100

simplify117.0ms (1.6%)

Algorithm
egg-herbie
Rules
972×fma-neg_binary64
695×cancel-sign-sub-inv_binary64
321×associate-/l/_binary64
189×distribute-neg-frac_binary64
174×times-frac_binary64
Counts
174 → 144
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060996
1176960
2522894
32029876
44535876
55031876

prune377.0ms (5%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1793182
Fresh459
Picked011
Done000
Total1839192
Error
0b
Counts
192 → 9
Alt Table
StatusErrorProgram
0.4b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 b (*.f64 (PI.f64) (/.f64 1 a))))
0.3b
(*.f64 (PI.f64) (/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 a b)))
5.6b
(*.f64 (/.f64 1/2 (/.f64 b (PI.f64))) (/.f64 (/.f64 1 (+.f64 b a)) a))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a (PI.f64)) b))
0.3b
(*.f64 (/.f64 -1/2 (+.f64 a b)) (/.f64 1 (/.f64 (neg.f64 (*.f64 a b)) (PI.f64))))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (*.f64 (/.f64 a 1) (/.f64 b (PI.f64))))
0.3b
(/.f64 (/.f64 1/2 (+.f64 a b)) (/.f64 a (/.f64 (PI.f64) b)))
0.9b
(*.f64 1/2 (/.f64 1 (*.f64 (/.f64 (*.f64 a b) (PI.f64)) (+.f64 a b))))
16.7b
(*.f64 (*.f64 (/.f64 (PI.f64) 2) (/.f64 1 (-.f64 (*.f64 b b) (*.f64 a a)))) (-.f64 (/.f64 1 a) (/.f64 1 b)))
Compiler

Compiled 3339 to 1713 computations (48.7% saved)

regimes1.2s (16.1%)

Accuracy

Total 0.3b remaining (92.9%)

Threshold costs 0.3b (92.9%)

Counts
216 → 1
Compiler

Compiled 12634 to 8781 computations (30.5% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01017
11117
21117

end198.0ms (2.6%)

Compiler

Compiled 164 to 118 computations (28% saved)

Profiling

Loading profile data...