38 #include <stk_util/util/hashtable_eastl.h>
39 #include <stk_util/util/utility_eastl.h>
45 #pragma warning(disable: 4267) // 'argument' : conversion from 'size_t' to 'const uint32_t', possible loss of data. This is a bogus warning resulting from a bug in VC++.
72 2u, 3u, 5u, 7u, 11u, 13u, 17u, 19u, 23u, 29u, 31u,
73 37u, 41u, 43u, 47u, 53u, 59u, 61u, 67u, 71u, 73u, 79u,
74 83u, 89u, 97u, 103u, 109u, 113u, 127u, 137u, 139u, 149u,
75 157u, 167u, 179u, 193u, 199u, 211u, 227u, 241u, 257u,
76 277u, 293u, 313u, 337u, 359u, 383u, 409u, 439u, 467u,
77 503u, 541u, 577u, 619u, 661u, 709u, 761u, 823u, 887u,
78 953u, 1031u, 1109u, 1193u, 1289u, 1381u, 1493u, 1613u,
79 1741u, 1879u, 2029u, 2179u, 2357u, 2549u, 2753u, 2971u,
80 3209u, 3469u, 3739u, 4027u, 4349u, 4703u, 5087u, 5503u,
81 5953u, 6427u, 6949u, 7517u, 8123u, 8783u, 9497u, 10273u,
82 11113u, 12011u, 12983u, 14033u, 15173u, 16411u, 17749u,
83 19183u, 20753u, 22447u, 24281u, 26267u, 28411u, 30727u,
84 33223u, 35933u, 38873u, 42043u, 45481u, 49201u, 53201u,
85 57557u, 62233u, 67307u, 72817u, 78779u, 85229u, 92203u,
86 99733u, 107897u, 116731u, 126271u, 136607u, 147793u,
87 159871u, 172933u, 187091u, 202409u, 218971u, 236897u,
88 256279u, 277261u, 299951u, 324503u, 351061u, 379787u,
89 410857u, 444487u, 480881u, 520241u, 562841u, 608903u,
90 658753u, 712697u, 771049u, 834181u, 902483u, 976369u,
91 1056323u, 1142821u, 1236397u, 1337629u, 1447153u, 1565659u,
92 1693859u, 1832561u, 1982627u, 2144977u, 2320627u, 2510653u,
93 2716249u, 2938679u, 3179303u, 3439651u, 3721303u, 4026031u,
94 4355707u, 4712381u, 5098259u, 5515729u, 5967347u, 6456007u,
95 6984629u, 7556579u, 8175383u, 8844859u, 9569143u, 10352717u,
96 11200489u, 12117689u, 13109983u, 14183539u, 15345007u,
97 16601593u, 17961079u, 19431899u, 21023161u, 22744717u,
98 24607243u, 26622317u, 28802401u, 31160981u, 33712729u,
99 36473443u, 39460231u, 42691603u, 46187573u, 49969847u,
100 54061849u, 58488943u, 63278561u, 68460391u, 74066549u,
101 80131819u, 86693767u, 93793069u, 101473717u, 109783337u,
102 118773397u, 128499677u, 139022417u, 150406843u, 162723577u,
103 176048909u, 190465427u, 206062531u, 222936881u, 241193053u,
104 260944219u, 282312799u, 305431229u, 330442829u, 357502601u,
105 386778277u, 418451333u, 452718089u, 489790921u, 529899637u,
106 573292817u, 620239453u, 671030513u, 725980837u, 785430967u,
107 849749479u, 919334987u, 994618837u, 1076067617u, 1164186217u,
108 1259520799u, 1362662261u, 1474249943u, 1594975441u,
109 1725587117u, 1866894511u, 2019773507u, 2185171673u,
110 2364114217u, 2557710269u, 2767159799u, 2993761039u,
111 3238918481u, 3504151727u, 3791104843u, 4101556399u,
142 mnNextResize = (uint32_t)ceil(nPrime * mfMaxLoadFactor);
155 mnNextResize = (uint32_t)ceil(nPrime * mfMaxLoadFactor);
166 const uint32_t nMinBucketCount = (uint32_t)(nElementCount / mfMaxLoadFactor);
169 mnNextResize = (uint32_t)ceil(nPrime * mfMaxLoadFactor);
183 if((nElementCount + nElementAdd) > mnNextResize)
185 if(nBucketCount == 1)
188 float fMinBucketCount = (nElementCount + nElementAdd) / mfMaxLoadFactor;
190 if(fMinBucketCount > (
float)nBucketCount)
192 fMinBucketCount =
eastl::max_alt(fMinBucketCount, mfGrowthFactor * nBucketCount);
194 mnNextResize = (uint32_t)ceil(nPrime * mfMaxLoadFactor);
200 mnNextResize = (uint32_t)ceil(nBucketCount * mfMaxLoadFactor);