@@ -15,7 +15,7 @@ CP_ALGO_BIT_PRAGMA_PUSH
1515namespace cp_algo ::math {
1616 using cp_algo::structures::dynamic_bit_array;
1717
18- constexpr size_t base_threshold = 1 << 20 ;
18+ constexpr size_t base_threshold = 1 << 21 ;
1919
2020 constexpr auto to_ord (auto x) {
2121 return x / 2 ;
@@ -54,10 +54,10 @@ namespace cp_algo::math {
5454 std::ranges::upper_bound(base_primes, sqrt_threshold)
5555 );
5656
57- constexpr size_t max_wheel_size = std::min<size_t >(base_threshold, 1 << 20 );
57+ constexpr size_t max_wheel_size = std::min<size_t >(base_threshold, 1 << 21 );
5858 struct wheel_t {
5959 dynamic_bit_array mask;
60- uint32_t product = 1 ;
60+ uint32_t product;
6161 };
6262
6363 auto make_wheel (std::vector<uint32_t > primes, uint32_t product) {
@@ -166,7 +166,7 @@ namespace cp_algo::math {
166166 prime.word (i) = base_prime_bits.word (i);
167167 }
168168 cp_algo::checkpoint (" init" );
169- static constexpr uint32_t dense_block = 1 << 23 ;
169+ static constexpr uint32_t dense_block = 1 << 24 ;
170170 for (uint32_t start = base_threshold; start < N; start += dense_block) {
171171 uint32_t r = std::min (start + dense_block, N);
172172 for (auto const & wheel: wheels) {
@@ -175,7 +175,7 @@ namespace cp_algo::math {
175175 }
176176 }
177177 cp_algo::checkpoint (" dense sieve" );
178- static constexpr uint32_t sparse_block = 1 << 21 ;
178+ static constexpr uint32_t sparse_block = 1 << 22 ;
179179 for (uint32_t start = base_threshold; start < N; start += sparse_block) {
180180 uint32_t r = std::min (start + sparse_block, N);
181181 for (auto p: medium_primes) {
0 commit comments