Details

Time bar (total: 3.7s)

analyze5.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%74.9%25.1%0
0%74.9%25.1%1
37.5%37.5%25.1%2
37.5%18.7%43.8%3
46.8%9.4%43.8%4
51.5%4.7%43.8%5
51.5%2.3%46.1%6
52.7%1.2%46.1%7
53.3%0.6%46.1%8
53.3%0.3%46.4%9
53.4%0.1%46.4%10
53.5%0.1%46.4%11
53.5%0%46.5%12
53.5%0%46.5%13
53.5%0%46.5%14
Compiler

Compiled 71 to 33 computations (53.5% saved)

sample1.5s (41.7%)

Results
1.5s8256×body128valid
0.0msbody128invalid
Compiler

Compiled 210 to 97 computations (53.8% saved)

simplify23.0ms (0.6%)

Algorithm
egg-herbie
Rules
642×distribute-lft-out_binary64
588×associate-/l*_binary64
406×associate-/r*_binary64
400×*-commutative_binary64
244×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03275
17459
225141
3120837
4239437
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
0.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (*.f64 (/.f64 1 (sqrt.f64 (PI.f64))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
0.6b
(fabs.f64 (*.f64 (/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64))) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
Compiler

Compiled 278 to 149 computations (46.4% saved)

localize25.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x))
0.1b
(*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))
0.1b
(*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))
1.0b
(sqrt.f64 (PI.f64))

series28.0ms (0.8%)

Counts
4 → 36
Calls

4 calls:

14.0ms
(*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))
8.0ms
(*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))
7.0ms
(*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x))
0.0ms
(sqrt.f64 (PI.f64))

rewrite49.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
633×log-prod_binary64
240×expm1-udef_binary64
240×log1p-udef_binary64
207×log-pow_binary64
148×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01934
134422
2353722
Stop Event
node limit
Counts
4 → 78
Calls

4 calls:

48.0ms
(*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x))
48.0ms
(*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))
48.0ms
(*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))
48.0ms
(sqrt.f64 (PI.f64))

simplify65.0ms (1.8%)

Algorithm
egg-herbie
Rules
828×sqr-pow_binary64
416×unswap-sqr_binary64
388×pow-sqr_binary64
332×cube-prod_binary64
246×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011288
125288
252288
3113288
4241288
5647288
6936288
71572288
81680288
91842288
102055288
112385288
122841288
133438288
144189288
Stop Event
node limit
Counts
114 → 81

prune161.0ms (4.4%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1203123
Fresh011
Picked101
Done000
Total1214125
Error
0.0b
Counts
125 → 4
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (*.f64 (/.f64 1 (sqrt.f64 (PI.f64))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 6)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
1.1b
(fabs.f64 (*.f64 (/.f64 1 (expm1.f64 (log1p.f64 (sqrt.f64 (PI.f64))))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
1.2b
(fabs.f64 (*.f64 (/.f64 1 (cbrt.f64 (pow.f64 (PI.f64) 3/2))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
0.6b
(fabs.f64 (*.f64 (/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64))) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
Compiler

Compiled 8503 to 3465 computations (59.2% saved)

localize29.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))
0.1b
(*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))
1.0b
(sqrt.f64 (PI.f64))
8.0b
(sqrt.f64 (pow.f64 x 6))

series3.0ms (0.1%)

Counts
1 → 12
Calls

1 calls:

3.0ms
(sqrt.f64 (pow.f64 x 6))

rewrite30.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
382×log1p-expm1-u_binary64
382×expm1-log1p-u_binary64
324×pow1_binary64
288×unpow-prod-down_binary64
180×log-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
054
11054
211154
Stop Event
node limit
Counts
1 → 55
Calls

1 calls:

29.0ms
(sqrt.f64 (pow.f64 x 6))

simplify32.0ms (0.9%)

Algorithm
egg-herbie
Rules
912×fma-def_binary64
450×associate-*l*_binary64
362×unswap-sqr_binary64
279×associate-*r*_binary64
271×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0656
11656
24456
37456
414356
540956
6141856
7269756
8452756
Stop Event
node limit
Counts
67 → 57

prune155.0ms (4.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1170117
Fresh033
Picked011
Done000
Total1174121
Error
0.0b
Counts
121 → 4
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (*.f64 (/.f64 1 (sqrt.f64 (PI.f64))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 6)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
1.1b
(fabs.f64 (*.f64 (/.f64 1 (expm1.f64 (log1p.f64 (sqrt.f64 (PI.f64))))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
1.2b
(fabs.f64 (*.f64 (/.f64 1 (cbrt.f64 (pow.f64 (PI.f64) 3/2))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
0.6b
(fabs.f64 (*.f64 (/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64))) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
Compiler

Compiled 7844 to 3818 computations (51.3% saved)

localize17.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 1/21 (pow.f64 x 6))
0.1b
(fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6)))
0.2b
(/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64)))
1.0b
(sqrt.f64 (PI.f64))

series17.0ms (0.5%)

Counts
3 → 24
Calls

3 calls:

8.0ms
(/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64)))
5.0ms
(*.f64 1/21 (pow.f64 x 6))
4.0ms
(fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6)))

rewrite51.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
534×log-prod_binary64
220×expm1-udef_binary64
220×log1p-udef_binary64
195×log-pow_binary64
138×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01430
130028
2345828
Stop Event
node limit
Counts
3 → 81
Calls

3 calls:

50.0ms
(*.f64 1/21 (pow.f64 x 6))
50.0ms
(fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6)))
50.0ms
(/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64)))

simplify65.0ms (1.8%)

Algorithm
egg-herbie
Rules
518×sqr-pow_binary64
487×associate-*l*_binary64
467×unswap-sqr_binary64
440×fma-def_binary64
300×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
017291
132291
256291
3123267
4399267
51478267
62937267
73286267
83570267
93854267
104219267
114698267
Stop Event
node limit
Counts
105 → 86

prune114.0ms (3.1%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New1102112
Fresh202
Picked011
Done011
Total1124116
Error
0b
Counts
116 → 4
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (*.f64 (/.f64 1 (sqrt.f64 (PI.f64))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 6)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
0.1b
(fabs.f64 (*.f64 (*.f64 x (pow.f64 (PI.f64) -1/2)) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
0.5b
(fabs.f64 (*.f64 (pow.f64 (/.f64 (sqrt.f64 (PI.f64)) x) -1) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
0.6b
(fabs.f64 (*.f64 (/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64))) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
Compiler

Compiled 3391 to 2186 computations (35.5% saved)

localize14.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 2/3 (*.f64 x x) 2)
0.1b
(*.f64 x (pow.f64 (PI.f64) -1/2))
0.1b
(*.f64 1/21 (pow.f64 x 6))
0.1b
(fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6)))

series12.0ms (0.3%)

Counts
2 → 24
Calls

2 calls:

10.0ms
(*.f64 x (pow.f64 (PI.f64) -1/2))
2.0ms
(fma.f64 2/3 (*.f64 x x) 2)

rewrite37.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
802×log1p-expm1-u_binary64
802×expm1-log1p-u_binary64
98×add-sqr-sqrt_binary64
93×add-log-exp_binary64
92×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01016
120616
2224816
Stop Event
node limit
Counts
2 → 38
Calls

2 calls:

36.0ms
(fma.f64 2/3 (*.f64 x x) 2)
36.0ms
(*.f64 x (pow.f64 (PI.f64) -1/2))

simplify67.0ms (1.8%)

Algorithm
egg-herbie
Rules
512×associate-*l*_binary64
483×sqr-pow_binary64
434×unswap-sqr_binary64
291×associate-*r*_binary64
285×cube-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
012225
121207
232207
361207
4138207
5375207
61440207
72350207
82514207
92727207
102947207
113247207
123647207
134135207
144698207
Stop Event
node limit
Counts
62 → 44

prune128.0ms (3.5%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New91192
Fresh101
Picked011
Done022
Total92496
Error
0b
Counts
96 → 4
Alt Table
StatusErrorProgram
1.6b
(fabs.f64 (*.f64 (*.f64 x (pow.f64 (PI.f64) -1/2)) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (sqrt.f64 (*.f64 (pow.f64 x 12) 1/441))) (fma.f64 2/3 (*.f64 x x) 2))))
0.1b
(fabs.f64 (*.f64 (/.f64 1 (sqrt.f64 (PI.f64))) (+.f64 (+.f64 (+.f64 (*.f64 2 (fabs.f64 x)) (*.f64 (/.f64 2 3) (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 5) (*.f64 (*.f64 (*.f64 (*.f64 (fabs.f64 x) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)))) (*.f64 (/.f64 1 21) (*.f64 (*.f64 (*.f64 (*.f64 (sqrt.f64 (pow.f64 x 6)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x)) (fabs.f64 x))))))
0.1b
(fabs.f64 (*.f64 (*.f64 x (pow.f64 (PI.f64) -1/2)) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
0.6b
(fabs.f64 (*.f64 (/.f64 (fabs.f64 x) (sqrt.f64 (PI.f64))) (+.f64 (fma.f64 1/5 (pow.f64 x 4) (*.f64 1/21 (pow.f64 x 6))) (fma.f64 2/3 (*.f64 x x) 2))))
Compiler

Compiled 2778 to 2050 computations (26.2% saved)

regimes874.0ms (23.8%)

Accuracy

Total 0.1b remaining (93.2%)

Threshold costs 0.1b (93.2%)

Counts
109 → 1
Compiler

Compiled 28361 to 17906 computations (36.9% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
fabs-mul_binary64
+-commutative_binary64
sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02559
13959
24659
Stop Event
saturated

end127.0ms (3.5%)

Compiler

Compiled 220 to 155 computations (29.5% saved)

Profiling

Loading profile data...