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% 6 / 0 / 6
Branches: 60.0% 36 / 0 / 60

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/24
auto 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/24
auto 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/12
auto 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