@@ -73,7 +73,7 @@ namespace cp_algo::math {
7373
7474 void gen_wheels ();
7575
76- inline void sieve_dense (auto &prime, uint32_t l, uint32_t r, wheel_t const & wheel) {
76+ void sieve_dense (auto &prime, uint32_t l, uint32_t r, wheel_t const & wheel) {
7777 if (l >= r) return ;
7878 uint32_t wl = l / (uint32_t )dynamic_bit_array::width;
7979 uint32_t wr = r / (uint32_t )dynamic_bit_array::width + 1 ;
@@ -123,7 +123,7 @@ namespace cp_algo::math {
123123 }();
124124
125125 template <class BitArray >
126- inline void sieve210 (BitArray &prime, uint32_t l, uint32_t r, uint32_t p, uint8_t state) {
126+ void sieve210 (BitArray &prime, uint32_t l, uint32_t r, uint32_t p, uint8_t state) {
127127 if (l >= r) return ;
128128 while (l < r) {
129129 prime.reset (l);
@@ -132,7 +132,7 @@ namespace cp_algo::math {
132132 }
133133 }
134134
135- inline void gen_wheels () {
135+ void gen_wheels () {
136136 static bool initialized = false ;
137137 if (initialized) return ;
138138 uint32_t product = 64 ;
@@ -157,7 +157,7 @@ namespace cp_algo::math {
157157 }
158158
159159 // Primes smaller than N
160- inline dynamic_bit_array sieve (uint32_t N) {
160+ dynamic_bit_array sieve (uint32_t N) {
161161 dynamic_bit_array prime (N);
162162 prime.set_all (0xAAAAAAAAAAAAAAAA );
163163 for (size_t i = 0 ; i < std::min (prime.words , base_prime_bits.words ); i++) {
@@ -175,6 +175,7 @@ namespace cp_algo::math {
175175 }
176176 }
177177 cp_algo::checkpoint (" dense sieve" );
178+
178179 static constexpr uint32_t sparse_block = 1 << 21 ;
179180 for (uint32_t start = base_threshold; start < N; start += sparse_block) {
180181 uint32_t r = std::min (start + sparse_block, N);
0 commit comments