src/sps/exp/lib.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../../conv/subset/lib.hpp" | ||
| 4 | |||
| 5 | namespace tifa_libs { | ||
| 6 | |||
| 7 | template <class T, u32 N = 21> | ||
| 8 | 78 | auto exp_fpssps(u32 n, vec<T> g) NE { | |
| 9 |
12/24auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
|
78 | static conv_subset<T, N> ss; |
| 10 |
12/24auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 0 taken 13 times.
✗ Branch 1 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
|
78 | assert(n <= N && g[0] == 0), g.resize(1 << n); |
| 11 | 156 | vec<T> h{1}; | |
| 12 |
12/12auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<14l> > > >):
✓ Branch 1 taken 151 times.
✓ Branch 2 taken 13 times.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 1 taken 151 times.
✓ Branch 2 taken 13 times.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<14l> > > >):
✓ Branch 1 taken 151 times.
✓ Branch 2 taken 13 times.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> >, 21u>(unsigned int, std::vector<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> >, std::allocator<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<14l> > > >):
✓ Branch 1 taken 151 times.
✓ Branch 2 taken 13 times.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 1 taken 151 times.
✓ Branch 2 taken 13 times.
auto tifa_libs::exp_fpssps<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> >, 21u>(unsigned int, 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> > > >):
✓ Branch 1 taken 151 times.
✓ Branch 2 taken 13 times.
|
984 | flt_ (u32, k, 1, n + 1) { |
| 13 | 906 | auto a = ss.conv(h, {begin(g) + (1 << (k - 1)), begin(g) + (1 << k)}); | |
| 14 | 906 | copy(a, std::back_inserter(h)); | |
| 15 | } | ||
| 16 | 78 | return h; | |
| 17 | } | ||
| 18 | |||
| 19 | } // namespace tifa_libs | ||
| 20 |