GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 83 / 0 / 83
Functions: 100.0% 6 / 1 / 7
Branches: 84.5% 71 / 0 / 84

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/12
tifa_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/12
tifa_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/12
tifa_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/12
tifa_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/12
tifa_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/12
tifa_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/12
tifa_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