src/nt/lsieve/impl1/lib.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../../../util/alias/others/lib.hpp" | ||
| 4 | |||
| 5 | namespace tifa_libs { | ||
| 6 | |||
| 7 | template <class... Ts> | ||
| 8 | struct lsieve : Ts... { | ||
| 9 | vecb not_prime; | ||
| 10 | vecu primes; | ||
| 11 | |||
| 12 | 10440 | CEXPE lsieve(u32 n) NE : Ts(n)..., not_prime(n) { | |
| 13 |
8/12tifa_libs::lsieve<>::lsieve(unsigned int):
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
tifa_libs::lsieve<tifa_libs::gen_pows_impl_::ls_pows>::lsieve(unsigned int):
✗ Branch 0 not taken.
✓ Branch 1 taken 3087 times.
tifa_libs::lsieve<tifa_libs::ls_mpf, tifa_libs::ls_mu, tifa_libs::ls_phi, tifa_libs::ls_sigma, tifa_libs::ls_tau>::lsieve(unsigned int):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 9 times.
tifa_libs::lsieve<tifa_libs::ls_mu>::lsieve(unsigned int):
✗ Branch 0 not taken.
✓ Branch 1 taken 22 times.
tifa_libs::lsieve<tifa_libs::ls_phi>::lsieve(unsigned int):
✓ Branch 0 taken 18 times.
✓ Branch 1 taken 270 times.
tifa_libs::lsieve<tifa_libs::rgcd::ls_rgcd>::lsieve(unsigned int):
✗ Branch 0 not taken.
✓ Branch 1 taken 30 times.
|
3480 | if (n < 2) return; |
| 14 | // clang-format off | ||
| 15 |
9/12tifa_libs::lsieve<>::lsieve(unsigned int):
✓ Branch 0 taken 7 times.
✓ Branch 1 taken 3 times.
tifa_libs::lsieve<tifa_libs::gen_pows_impl_::ls_pows>::lsieve(unsigned int):
✓ Branch 0 taken 480 times.
✓ Branch 1 taken 2607 times.
tifa_libs::lsieve<tifa_libs::ls_mpf, tifa_libs::ls_mu, tifa_libs::ls_phi, tifa_libs::ls_sigma, tifa_libs::ls_tau>::lsieve(unsigned int):
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
tifa_libs::lsieve<tifa_libs::ls_mu>::lsieve(unsigned int):
✓ Branch 0 taken 13 times.
✓ Branch 1 taken 9 times.
tifa_libs::lsieve<tifa_libs::ls_phi>::lsieve(unsigned int):
✗ Branch 0 not taken.
✓ Branch 1 taken 270 times.
tifa_libs::lsieve<tifa_libs::rgcd::ls_rgcd>::lsieve(unsigned int):
✓ Branch 0 taken 30 times.
✗ Branch 1 not taken.
|
3460 | primes.reserve((usz)max(127, int(n * (n >= 2e5 ? 1.6 : 1.7) / std::bit_width(n) + 1))); |
| 16 | // clang-format on | ||
| 17 |
12/12tifa_libs::lsieve<>::lsieve(unsigned int):
✓ Branch 0 taken 2110477887 times.
✓ Branch 1 taken 10 times.
tifa_libs::lsieve<tifa_libs::gen_pows_impl_::ls_pows>::lsieve(unsigned int):
✓ Branch 0 taken 3287942945 times.
✓ Branch 1 taken 3087 times.
tifa_libs::lsieve<tifa_libs::ls_mpf, tifa_libs::ls_mu, tifa_libs::ls_phi, tifa_libs::ls_sigma, tifa_libs::ls_tau>::lsieve(unsigned int):
✓ Branch 0 taken 28092 times.
✓ Branch 1 taken 9 times.
tifa_libs::lsieve<tifa_libs::ls_mu>::lsieve(unsigned int):
✓ Branch 0 taken 112710609 times.
✓ Branch 1 taken 22 times.
tifa_libs::lsieve<tifa_libs::ls_phi>::lsieve(unsigned int):
✓ Branch 0 taken 18506976 times.
✓ Branch 1 taken 270 times.
tifa_libs::lsieve<tifa_libs::rgcd::ls_rgcd>::lsieve(unsigned int):
✓ Branch 0 taken 299999940 times.
✓ Branch 1 taken 30 times.
|
5845685845 | flt_ (u32, i, 2, n) { |
| 18 |
12/12tifa_libs::lsieve<>::lsieve(unsigned int):
✓ Branch 2 taken 111901955 times.
✓ Branch 3 taken 1998575932 times.
tifa_libs::lsieve<tifa_libs::gen_pows_impl_::ls_pows>::lsieve(unsigned int):
✓ Branch 2 taken 219860189 times.
✓ Branch 3 taken 3068082756 times.
tifa_libs::lsieve<tifa_libs::ls_mpf, tifa_libs::ls_mu, tifa_libs::ls_phi, tifa_libs::ls_sigma, tifa_libs::ls_tau>::lsieve(unsigned int):
✓ Branch 2 taken 3832 times.
✓ Branch 3 taken 24260 times.
tifa_libs::lsieve<tifa_libs::ls_mu>::lsieve(unsigned int):
✓ Branch 2 taken 7538582 times.
✓ Branch 3 taken 105172027 times.
tifa_libs::lsieve<tifa_libs::ls_phi>::lsieve(unsigned int):
✓ Branch 2 taken 1814142 times.
✓ Branch 3 taken 16692834 times.
tifa_libs::lsieve<tifa_libs::rgcd::ls_rgcd>::lsieve(unsigned int):
✓ Branch 2 taken 19937370 times.
✓ Branch 3 taken 280062570 times.
|
5845682385 | if (!not_prime[i]) primes.push_back(i), (Ts::prime(i), ...); |
| 19 |
6/12tifa_libs::lsieve<>::lsieve(unsigned int):
✓ Branch 5 taken 3412391758 times.
✗ Branch 6 not taken.
tifa_libs::lsieve<tifa_libs::gen_pows_impl_::ls_pows>::lsieve(unsigned int):
✓ Branch 5 taken 5270706993 times.
✗ Branch 6 not taken.
tifa_libs::lsieve<tifa_libs::ls_mpf, tifa_libs::ls_mu, tifa_libs::ls_phi, tifa_libs::ls_sigma, tifa_libs::ls_tau>::lsieve(unsigned int):
✓ Branch 5 taken 43070 times.
✗ Branch 6 not taken.
tifa_libs::lsieve<tifa_libs::ls_mu>::lsieve(unsigned int):
✓ Branch 5 taken 180677962 times.
✗ Branch 6 not taken.
tifa_libs::lsieve<tifa_libs::ls_phi>::lsieve(unsigned int):
✓ Branch 5 taken 29090832 times.
✗ Branch 6 not taken.
tifa_libs::lsieve<tifa_libs::rgcd::ls_rgcd>::lsieve(unsigned int):
✓ Branch 5 taken 481035540 times.
✗ Branch 6 not taken.
|
9399432843 | for (auto j : primes) { |
| 20 |
12/12tifa_libs::lsieve<>::lsieve(unsigned int):
✓ Branch 0 taken 1413815826 times.
✓ Branch 1 taken 1998575932 times.
tifa_libs::lsieve<tifa_libs::gen_pows_impl_::ls_pows>::lsieve(unsigned int):
✓ Branch 0 taken 2202624237 times.
✓ Branch 1 taken 3068082756 times.
tifa_libs::lsieve<tifa_libs::ls_mpf, tifa_libs::ls_mu, tifa_libs::ls_phi, tifa_libs::ls_sigma, tifa_libs::ls_tau>::lsieve(unsigned int):
✓ Branch 0 taken 18810 times.
✓ Branch 1 taken 24260 times.
tifa_libs::lsieve<tifa_libs::ls_mu>::lsieve(unsigned int):
✓ Branch 0 taken 75505935 times.
✓ Branch 1 taken 105172027 times.
tifa_libs::lsieve<tifa_libs::ls_phi>::lsieve(unsigned int):
✓ Branch 0 taken 12397998 times.
✓ Branch 1 taken 16692834 times.
tifa_libs::lsieve<tifa_libs::rgcd::ls_rgcd>::lsieve(unsigned int):
✓ Branch 0 taken 200972970 times.
✓ Branch 1 taken 280062570 times.
|
9399432843 | if (i * j >= n) break; |
| 21 | 5483367659 | not_prime[i * j] = true; | |
| 22 |
12/12tifa_libs::lsieve<>::lsieve(unsigned int):
✓ Branch 0 taken 696662061 times.
✓ Branch 1 taken 1301913871 times.
tifa_libs::lsieve<tifa_libs::gen_pows_impl_::ls_pows>::lsieve(unsigned int):
✓ Branch 0 taken 1982764048 times.
✓ Branch 1 taken 1085318708 times.
tifa_libs::lsieve<tifa_libs::ls_mpf, tifa_libs::ls_mu, tifa_libs::ls_phi, tifa_libs::ls_sigma, tifa_libs::ls_tau>::lsieve(unsigned int):
✓ Branch 0 taken 14978 times.
✓ Branch 1 taken 9282 times.
tifa_libs::lsieve<tifa_libs::ls_mu>::lsieve(unsigned int):
✓ Branch 0 taken 67967353 times.
✓ Branch 1 taken 37204674 times.
tifa_libs::lsieve<tifa_libs::ls_phi>::lsieve(unsigned int):
✓ Branch 0 taken 10583856 times.
✓ Branch 1 taken 6108978 times.
tifa_libs::lsieve<tifa_libs::rgcd::ls_rgcd>::lsieve(unsigned int):
✓ Branch 0 taken 181035600 times.
✓ Branch 1 taken 99026970 times.
|
5483367659 | if (i % j) (Ts::coprime(i, j), ...); |
| 23 | else { | ||
| 24 | 1232955140 | (Ts::not_coprime(i, j), ...); | |
| 25 | 1929617201 | break; | |
| 26 | } | ||
| 27 | } | ||
| 28 | } | ||
| 29 | 3460 | primes.shrink_to_fit(); | |
| 30 | } | ||
| 31 | }; | ||
| 32 | |||
| 33 | } // namespace tifa_libs | ||
| 34 |