GCC Code Coverage Report


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

src/math/qpow/mod/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../mul_mod/lib.hpp"
4
5 namespace tifa_libs {
6
7 237430360 CEXP u64 qpow_mod(u64 a, u64 b, u64 mod) NE {
8 237430360 u64 res(1);
9
2/2
✓ Branch 1 taken 2136075339 times.
✓ Branch 2 taken 237430360 times.
2373505699 for (a %= mod; b; b >>= 1, a = mul_mod_u(a, a, mod)) {
10
2/2
✓ Branch 1 taken 3304598474 times.
✓ Branch 2 taken 2136075339 times.
5440673813 while (!(b & 1)) b >>= 1, a = mul_mod_u(a, a, mod);
11 2136075339 res = mul_mod_u(res, a, mod);
12 }
13 237430360 return res;
14 }
15
16 } // namespace tifa_libs
17