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