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