GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 48 / 0 / 48
Functions: 100.0% 12 / 0 / 12
Branches: 100.0% 48 / 0 / 48

src/conv/trans/zmt_multiple/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../../nt/prime_seq/lib.hpp"
4
5 namespace tifa_libs {
6
7 template <class T>
8 348 CEXP void zt_multiple(vec<T>& a, spnu pf) NE {
9
12/12
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 1491748 times.
✓ Branch 6 taken 58 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 1491748 times.
✓ Branch 6 taken 58 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 1491748 times.
✓ Branch 6 taken 58 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 1491748 times.
✓ Branch 6 taken 58 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 1491748 times.
✓ Branch 6 taken 58 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 1491748 times.
✓ Branch 6 taken 58 times.
8950836 for (u32 p : pf)
10
12/12
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 53557640 times.
✓ Branch 5 taken 1491748 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 53557640 times.
✓ Branch 5 taken 1491748 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 53557640 times.
✓ Branch 5 taken 1491748 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 53557640 times.
✓ Branch 5 taken 1491748 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 53557640 times.
✓ Branch 5 taken 1491748 times.
void tifa_libs::zt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 53557640 times.
✓ Branch 5 taken 1491748 times.
330296328 for (u64 k = (a.size() - 1) / p; k; --k) a[k] += a[k * p];
11 348 }
12 template <class T>
13 CEXP void zt_multiple(vec<T>& a) NE { zt_multiple(a, prime_seq(a.size() - 1)); }
14 template <class T>
15 174 CEXP void mt_multiple(vec<T>& a, spnu pf) NE {
16
12/12
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 745874 times.
✓ Branch 6 taken 29 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 745874 times.
✓ Branch 6 taken 29 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 745874 times.
✓ Branch 6 taken 29 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 745874 times.
✓ Branch 6 taken 29 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 745874 times.
✓ Branch 6 taken 29 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 5 taken 745874 times.
✓ Branch 6 taken 29 times.
4475418 for (cu32 p : pf)
17
12/12
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 26778820 times.
✓ Branch 5 taken 745874 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 26778820 times.
✓ Branch 5 taken 745874 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 26778820 times.
✓ Branch 5 taken 745874 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<11l> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 26778820 times.
✓ Branch 5 taken 745874 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 26778820 times.
✓ Branch 5 taken 745874 times.
void tifa_libs::mt_multiple<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(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> > > >&, std::span<unsigned int const, 18446744073709551615ul>):
✓ Branch 4 taken 26778820 times.
✓ Branch 5 taken 745874 times.
165148164 for (u64 k = 1; k * p < a.size(); ++k) a[k] -= a[k * p];
18 174 }
19 template <class T>
20 CEXP void mt_multiple(vec<T>& a) NE { mt_multiple(a, prime_seq(a.size() - 1)); }
21
22 } // namespace tifa_libs
23