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: 75.0% 18 / 0 / 24

src/conv/lcm/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../trans/zmt_divisor/lib.hpp"
4
5 namespace tifa_libs {
6
7 template <class T>
8 174 CEXP vec<T> conv_lcm(vec<T> l, vec<T> r) NE {
9
6/12
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> > > > tifa_libs::conv_lcm<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::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> > > >):
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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 2 not taken.
✓ Branch 3 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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> > > >):
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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> > > >):
✗ Branch 2 not taken.
✓ Branch 3 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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 2 not taken.
✓ Branch 3 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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 2 not taken.
✓ Branch 3 taken 29 times.
174 assert(l.size() == r.size());
10 174 const auto pf = prime_seq((u32)l.size() - 1);
11 174 zt_divisor(l, pf), zt_divisor(r, pf);
12
12/12
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> > > > tifa_libs::conv_lcm<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::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> > > >):
✓ Branch 4 taken 9412636 times.
✓ Branch 5 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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 4 taken 9412636 times.
✓ Branch 5 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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> > > >):
✓ Branch 4 taken 9412636 times.
✓ Branch 5 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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> > > >):
✓ Branch 4 taken 9412636 times.
✓ Branch 5 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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 4 taken 9412636 times.
✓ Branch 5 taken 29 times.
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> > > > tifa_libs::conv_lcm<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::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 4 taken 9412636 times.
✓ Branch 5 taken 29 times.
56475990 flt_ (u32, i, 0, (u32)l.size()) l[i] *= r[i];
13 174 mt_divisor(l, pf);
14 174 return l;
15 174 }
16
17 } // namespace tifa_libs
18