GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 146 / 0 / 146
Functions: 100.0% 7 / 0 / 7
Branches: 62.1% 205 / 0 / 330

test/cpv_local/lalg/sherman_morrison.cpp
Line Branch Exec Source
1 // competitive-verifier: STANDALONE
2
3 #include "../../../src/lalg/ds/mat/lib.hpp"
4 #include "../../../src/lalg/mat/ge/lib.hpp"
5 #include "../../../src/lalg/mat/inv/lib.hpp"
6 #include "../../../src/lalg/mat/sherman_morrison/lib.hpp"
7 #include "../../../src/math/ds/mint/be61n1/lib.hpp"
8 #include "../../../src/math/ds/mint/md/lib.hpp"
9 #include "../../../src/math/ds/mint/md64/lib.hpp"
10 #include "../../../src/math/ds/mint/ms/lib.hpp"
11 #include "../../../src/math/ds/mint/ms64/lib.hpp"
12 #include "../../../src/util/rand/lib.hpp"
13 #include "../base.hpp"
14
15 using namespace tifa_libs;
16 template <class mint>
17 25 void single_test(u32 n) {
18 25 rand_gen<u32> gen(1, std::numeric_limits<u32>::max());
19 using mat = matrix<mint>;
20 auto is_0 = [](cT_(mint) x) { return x.val() == 0; };
21 25 auto ge = [&is_0](mat& m, bool f) { return ge_mat(m, is_0, f); };
22
23 25 mat L(n, n), U(n, n);
24
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
545 flt_ (u32, i, 0, n)
25
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
8320 flt_ (u32, j, 0, i + 1) L(i, j) = gen();
26
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
545 flt_ (u32, i, 0, n)
27
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 3 taken 1560 times.
✓ Branch 4 taken 104 times.
8320 flt_ (u32, j, i, n) U(i, j) = gen();
28
29 25 mat I(n, n);
30
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 2 taken 104 times.
✓ Branch 3 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 2 taken 104 times.
✓ Branch 3 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 2 taken 104 times.
✓ Branch 3 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 2 taken 104 times.
✓ Branch 3 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 2 taken 104 times.
✓ Branch 3 taken 5 times.
545 flt_ (u32, i, 0, n) I(i, i) = 1;
31
32 25 mat A = L * U;
33
5/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
25 mat inv_A = inv_mat(A, is_0, ge).value();
34
25/50
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 5 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 5 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 5 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 5 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 5 times.
✗ Branch 18 not taken.
25 check(A * inv_A, I, check_param(L), check_param(U), check_param(A), check_param(inv_A));
35
5/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
25 mat B = inv_A;
36
10/20
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
75 vec<mint> u(n), v(n);
37
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
545 flt_ (u32, i, 0, n) {
38 520 u[i] = A(i, n - 1);
39 520 v[i] = A(n - 1, i);
40 }
41
15/30
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
25 timer_(sherman_morrison(B, u, v));
42
5/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
25 mat A2 = A + A.submat(0, n, n - 1, n) * A.submat(n - 1, n, 0, n);
43
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 0 taken 104 times.
✓ Branch 1 taken 5 times.
545 flt_ (u32, i, 0, n)
44
10/10
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 0 taken 3016 times.
✓ Branch 1 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 0 taken 3016 times.
✓ Branch 1 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 0 taken 3016 times.
✓ Branch 1 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 0 taken 3016 times.
✓ Branch 1 taken 104 times.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 0 taken 3016 times.
✓ Branch 1 taken 104 times.
15600 flt_ (u32, j, 0, n) {
45 15080 mint want = A(i, j) + u[i] * v[j];
46
25/50
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 1 taken 3016 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3016 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3016 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3016 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 3016 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 1 taken 3016 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3016 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3016 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3016 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 3016 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 1 taken 3016 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3016 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3016 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3016 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 3016 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 1 taken 3016 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3016 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3016 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3016 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 3016 times.
✗ Branch 18 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 1 taken 3016 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3016 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3016 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3016 times.
✗ Branch 11 not taken.
✓ Branch 17 taken 3016 times.
✗ Branch 18 not taken.
15080 check(A2(i, j), want, check_param(A), check_param(u), check_param(v), check_param(A2));
47 }
48
20/40
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_2e61n1_tag> >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md64_tag<55l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_md_tag<54l> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms64_tag<3799912185593857ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
void single_test<tifa_libs::mint_impl_::mint<tifa_libs::mint_ms_tag<998244353ul> > >(unsigned int):
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
25 check(B * A2, I, check_param(A), check_param(A2), check_param(B));
49 25 }
50
51 CEXP u32 MOD = 998244353;
52 CEXP u64 MOD64 = 3'799'912'185'593'857;
53
54 using mintd31 = mint_md<__LINE__>;
55 using mintd63 = mint_md64<__LINE__>;
56 using mints30 = mint_ms<MOD>;
57 using mints63 = mint_ms64<MOD64>;
58
59 5 void test(u32 n) {
60 5 single_test<mint_2e61n1>(n);
61 5 single_test<mintd31>(n);
62 5 single_test<mintd63>(n);
63 5 single_test<mints30>(n);
64 5 single_test<mints63>(n);
65 5 }
66
67 1 int main() {
68 1 mintd31::set_mod(MOD);
69 1 mintd63::set_mod(MOD64);
70
71
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(4));
72
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(10));
73
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(20));
74
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(30));
75
3/6
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 11 not taken.
1 timer_(test(40));
76 1 }
77