GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 42 / 0 / 42
Functions: 100.0% 6 / 0 / 6
Branches: 75.0% 18 / 0 / 24

src/lalg/mat/pow/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../../math/qpow/basic/lib.hpp"
4
5 namespace tifa_libs {
6
7 template <class Mat>
8 258 CEXP Mat pow(Mat CR mat, u64 b) NE {
9 258 cu32 n = mat.row();
10
6/12
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<12l> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<12l> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<12l> > > const&, unsigned long):
✗ Branch 1 not taken.
✓ Branch 2 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > const&, unsigned long):
✗ Branch 1 not taken.
✓ Branch 2 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<12l> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<12l> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<12l> > > const&, unsigned long):
✗ Branch 1 not taken.
✓ Branch 2 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<12l> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<12l> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<12l> > > const&, unsigned long):
✗ Branch 1 not taken.
✓ Branch 2 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > const&, unsigned long):
✗ Branch 1 not taken.
✓ Branch 2 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > const&, unsigned long):
✗ Branch 1 not taken.
✓ Branch 2 taken 43 times.
258 assert(n == mat.col());
11 258 Mat id(n, n);
12
12/12
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<12l> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<12l> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bd_tag<12l> > > const&, unsigned long):
✓ Branch 2 taken 4936 times.
✓ Branch 3 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_bs_tag<998244353ul> > > const&, unsigned long):
✓ Branch 2 taken 4936 times.
✓ Branch 3 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<12l> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<12l> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<12l> > > const&, unsigned long):
✓ Branch 2 taken 4936 times.
✓ Branch 3 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<12l> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<12l> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<12l> > > const&, unsigned long):
✓ Branch 2 taken 4936 times.
✓ Branch 3 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<998244353ul> > > const&, unsigned long):
✓ Branch 2 taken 4936 times.
✓ Branch 3 taken 43 times.
tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > tifa_libs::pow<tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > >(tifa_libs::matrix<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > > const&, unsigned long):
✓ Branch 2 taken 4936 times.
✓ Branch 3 taken 43 times.
29874 flt_ (u32, i, 0, n) id(i, i) = 1;
13 258 return qpow(mat, b, id);
14 258 }
15
16 } // namespace tifa_libs
17