GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 246 / 0 / 246
Functions: 100.0% 30 / 0 / 30
Branches: 88.9% 288 / 0 / 324

src/nt/mfsum/min25/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../../math/div64/lib.hpp"
4 #include "../../../math/qpow/basic/lib.hpp"
5 #include "../../../math/sum_ik_flist/lib.hpp"
6 #include "../../prime_seq/lib.hpp"
7
8 namespace tifa_libs {
9
10 // f(p, c) = value of f(p^c)
11 template <class T, T (*f)(u64, u64)>
12 class min25_sieve {
13 u64 m, sqm, s;
14 vecu p;
15
16
12/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::idx(unsigned long) const:
✓ Branch 0 taken 351073757 times.
✓ Branch 1 taken 3084571 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::idx(unsigned long) const:
✓ Branch 0 taken 351073757 times.
✓ Branch 1 taken 3084571 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::idx(unsigned long) const:
✓ Branch 0 taken 351073757 times.
✓ Branch 1 taken 3084571 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::idx(unsigned long) const:
✓ Branch 0 taken 351073757 times.
✓ Branch 1 taken 3084571 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::idx(unsigned long) const:
✓ Branch 0 taken 351073757 times.
✓ Branch 1 taken 3084571 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::idx(unsigned long) const:
✓ Branch 0 taken 351073757 times.
✓ Branch 1 taken 3084571 times.
2124949968 ND CEXP u64 idx(u64 n) CNE { retif_((n <= sqm), s - n, div_u64d(m, n)); }
17
18 public:
19 // m^{3/2} in u64
20 288 CEXPE min25_sieve(u64 m) NE : m{m}, sqm{isqrt(m)} {
21
12/24
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✓ Branch 3 taken 48 times.
✗ Branch 4 not taken.
288 if (assert(m < (1ll << 42)); m) {
22 288 u64 hls = div_u64d(m, sqm);
23
36/36
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✓ Branch 0 taken 47 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 42 times.
✓ Branch 5 taken 5 times.
✓ Branch 6 taken 43 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✓ Branch 0 taken 47 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 42 times.
✓ Branch 5 taken 5 times.
✓ Branch 6 taken 43 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✓ Branch 0 taken 47 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 42 times.
✓ Branch 5 taken 5 times.
✓ Branch 6 taken 43 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✓ Branch 0 taken 47 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 42 times.
✓ Branch 5 taken 5 times.
✓ Branch 6 taken 43 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✓ Branch 0 taken 47 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 42 times.
✓ Branch 5 taken 5 times.
✓ Branch 6 taken 43 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::min25_sieve(unsigned long):
✓ Branch 0 taken 47 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 42 times.
✓ Branch 5 taken 5 times.
✓ Branch 6 taken 43 times.
288 if (hls != 1 && div_u64d(m, hls - 1) == sqm) --hls;
24 288 s = hls + sqm, p = prime_seq((u32)sqm);
25 }
26 288 }
27
28 576 ND CEXP vec<T> sum_pk(u32 k) CNE {
29 576 auto sik = sum_ik<T>[k];
30
6/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 96 times.
576 retif_((!m) [[unlikely]], {});
31 576 u64 hls = div_u64d(m, sqm);
32
36/36
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 94 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 84 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 86 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 94 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 84 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 86 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 94 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 84 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 86 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 94 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 84 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 86 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 94 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 84 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 86 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 94 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 84 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 86 times.
576 if (hls != 1 && div_u64d(m, hls - 1) == sqm) --hls;
33 576 vec<T> h(s);
34
12/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 6169142 times.
✓ Branch 7 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 6169142 times.
✓ Branch 7 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 6169142 times.
✓ Branch 7 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 6169142 times.
✓ Branch 7 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 6169142 times.
✓ Branch 7 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 6169142 times.
✓ Branch 7 taken 96 times.
37015428 flt_ (u64, i, 1, hls) h[i] = sik(div_u64d(m, i)) - 1;
35
12/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 6169178 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 6169178 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 6169178 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 6169178 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 6169178 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 6169178 times.
✓ Branch 6 taken 96 times.
37015644 flt_ (u64, i, 1, sqm + 1) h[s - i] = sik(i) - 1;
36
12/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 604736 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 604736 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 604736 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 604736 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 604736 times.
✓ Branch 6 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 5 taken 604736 times.
✓ Branch 6 taken 96 times.
3628992 for (cu32 x : p) {
37 3628416 T _ = x, pi = h[s - x + 1];
38 3628416 _ = qpow(_, k);
39 3628416 cu64 x2 = u64(x) * x, mx = min(hls, div_u64d(m, x2) + 1);
40
24/24
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 16308708 times.
✓ Branch 1 taken 611730274 times.
✓ Branch 9 taken 628038982 times.
✓ Branch 10 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 16308708 times.
✓ Branch 1 taken 611730274 times.
✓ Branch 9 taken 628038982 times.
✓ Branch 10 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 16308708 times.
✓ Branch 1 taken 611730274 times.
✓ Branch 9 taken 628038982 times.
✓ Branch 10 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 16308708 times.
✓ Branch 1 taken 611730274 times.
✓ Branch 9 taken 628038982 times.
✓ Branch 10 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 16308708 times.
✓ Branch 1 taken 611730274 times.
✓ Branch 9 taken 628038982 times.
✓ Branch 10 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 0 taken 16308708 times.
✓ Branch 1 taken 611730274 times.
✓ Branch 9 taken 628038982 times.
✓ Branch 10 taken 604736 times.
3771862308 for (u64 i = 1, ix = x; i < mx; ++i, ix += x) h[i] -= ((ix < hls ? h[ix] : h[s - div_u64d(m, ix)]) - pi) * _;
41
12/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 261819590 times.
✓ Branch 7 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 261819590 times.
✓ Branch 7 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 261819590 times.
✓ Branch 7 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 261819590 times.
✓ Branch 7 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 261819590 times.
✓ Branch 7 taken 604736 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✓ Branch 6 taken 261819590 times.
✓ Branch 7 taken 604736 times.
1574545956 for (u64 n = sqm; n >= x2; --n) h[s - n] -= (h[s - div_u64d(n, x)] - pi) * _;
42 }
43
6/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 96 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::sum_pk(unsigned int) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 96 times.
576 assert(h.size() == s);
44 576 return h;
45 576 }
46 288 ND CEXP T run(vec<T> fprime) CNE {
47
6/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > > >) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > > >) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > > >) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >) const:
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
288 retif_((!m) [[unlikely]], {});
48
6/12
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > > >) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > > >) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > > >) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >) const:
✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
288 assert(fprime.size() == s);
49 288 T ans = fprime[idx(m)] + 1;
50 152915760 auto dfs = [&, this](auto&& dfs, u32 i, u32 c, u64 prod, T now) NE -> void {
51 76457736 ans += now * f(p[i], c + 1);
52 76457736 cu64 lim = div_u64d(m, prod);
53
12/12
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >) const:
✓ Branch 2 taken 6666023 times.
✓ Branch 3 taken 6076933 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >) const:
✓ Branch 2 taken 6666023 times.
✓ Branch 3 taken 6076933 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >) const:
✓ Branch 2 taken 6666023 times.
✓ Branch 3 taken 6076933 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >) const:
✓ Branch 2 taken 6666023 times.
✓ Branch 3 taken 6076933 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >) const:
✓ Branch 2 taken 6666023 times.
✓ Branch 3 taken 6076933 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >) const:
✓ Branch 2 taken 6666023 times.
✓ Branch 3 taken 6076933 times.
76457736 if (lim >= (u64)p[i] * p[i]) dfs(dfs, i, c + 1, p[i] * prod, now);
54 76457736 now *= f(p[i], c), ans += now * (fprime[idx(lim)] - fprime[idx(p[i])]);
55 76457736 u32 j = i + 1;
56
36/36
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >) const:
✓ Branch 3 taken 18517475 times.
✓ Branch 4 taken 46 times.
✓ Branch 8 taken 5774565 times.
✓ Branch 9 taken 12742910 times.
✓ Branch 10 taken 5774565 times.
✓ Branch 11 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >) const:
✓ Branch 3 taken 18517475 times.
✓ Branch 4 taken 46 times.
✓ Branch 8 taken 5774565 times.
✓ Branch 9 taken 12742910 times.
✓ Branch 10 taken 5774565 times.
✓ Branch 11 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >) const:
✓ Branch 3 taken 18517475 times.
✓ Branch 4 taken 46 times.
✓ Branch 8 taken 5774565 times.
✓ Branch 9 taken 12742910 times.
✓ Branch 10 taken 5774565 times.
✓ Branch 11 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >) const:
✓ Branch 3 taken 18517475 times.
✓ Branch 4 taken 46 times.
✓ Branch 8 taken 5774565 times.
✓ Branch 9 taken 12742910 times.
✓ Branch 10 taken 5774565 times.
✓ Branch 11 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >) const:
✓ Branch 3 taken 18517475 times.
✓ Branch 4 taken 46 times.
✓ Branch 8 taken 5774565 times.
✓ Branch 9 taken 12742910 times.
✓ Branch 10 taken 5774565 times.
✓ Branch 11 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >) const:
✓ Branch 3 taken 18517475 times.
✓ Branch 4 taken 46 times.
✓ Branch 8 taken 5774565 times.
✓ Branch 9 taken 12742910 times.
✓ Branch 10 taken 5774565 times.
✓ Branch 11 taken 12742956 times.
111105126 for (; j < p.size() && (u64)p[j] * p[j] * p[j] <= lim; ++j) dfs(dfs, j, 1, prod * p[j], now);
57
36/36
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >) const:
✓ Branch 1 taken 177079094 times.
✓ Branch 2 taken 46 times.
✓ Branch 5 taken 164336184 times.
✓ Branch 6 taken 12742910 times.
✓ Branch 7 taken 164336184 times.
✓ Branch 8 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >) const:
✓ Branch 1 taken 177079094 times.
✓ Branch 2 taken 46 times.
✓ Branch 5 taken 164336184 times.
✓ Branch 6 taken 12742910 times.
✓ Branch 7 taken 164336184 times.
✓ Branch 8 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >) const:
✓ Branch 1 taken 177079094 times.
✓ Branch 2 taken 46 times.
✓ Branch 5 taken 164336184 times.
✓ Branch 6 taken 12742910 times.
✓ Branch 7 taken 164336184 times.
✓ Branch 8 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >) const:
✓ Branch 1 taken 177079094 times.
✓ Branch 2 taken 46 times.
✓ Branch 5 taken 164336184 times.
✓ Branch 6 taken 12742910 times.
✓ Branch 7 taken 164336184 times.
✓ Branch 8 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >) const:
✓ Branch 1 taken 177079094 times.
✓ Branch 2 taken 46 times.
✓ Branch 5 taken 164336184 times.
✓ Branch 6 taken 12742910 times.
✓ Branch 7 taken 164336184 times.
✓ Branch 8 taken 12742956 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >) const:
✓ Branch 1 taken 177079094 times.
✓ Branch 2 taken 46 times.
✓ Branch 5 taken 164336184 times.
✓ Branch 6 taken 12742910 times.
✓ Branch 7 taken 164336184 times.
✓ Branch 8 taken 12742956 times.
1062474840 for (; j < p.size() && (u64)p[j] * p[j] <= lim; ++j) {
58 986017104 T _ = f(p[j], 2);
59 986017104 u64 i1 = idx(div_u64d(lim, p[j])), i2 = idx(p[j]);
60 986017104 ans += now * (_ += f(p[j], 1) * (fprime[i1] - fprime[i2]));
61 }
62 };
63
12/12
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> >) const:
✓ Branch 4 taken 302368 times.
✓ Branch 5 taken 48 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >) const:
✓ Branch 4 taken 302368 times.
✓ Branch 5 taken 48 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> >) const:
✓ Branch 4 taken 302368 times.
✓ Branch 5 taken 48 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> >) const:
✓ Branch 4 taken 302368 times.
✓ Branch 5 taken 48 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >) const:
✓ Branch 4 taken 302368 times.
✓ Branch 5 taken 48 times.
void tifa_libs::min25_sieve<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, &(f(unsigned long, unsigned long))>::run(std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >) const::{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}::operator()<{lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&>({lambda(auto:1&&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >)#1}&, unsigned int, unsigned int, unsigned long, tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >) const:
✓ Branch 4 taken 302368 times.
✓ Branch 5 taken 48 times.
1814496 flt_ (u32, i, 0, (u32)p.size()) dfs(dfs, i, 1, p[i], 1);
64 288 return ans;
65 }
66 };
67
68 } // namespace tifa_libs
69