GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 10 / 0 / 10
Functions: 100.0% 1 / 0 / 1
Branches: 72.7% 16 / 0 / 22

src/nt/proot/uint/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../pfactors/lib.hpp"
4 #include "../is/lib.hpp"
5
6 namespace tifa_libs {
7
8 1370 CEXP u64 proot(u64 m) NE {
9
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1368 times.
1370 retif_((m == 2) [[unlikely]], 1);
10
4/4
✓ Branch 0 taken 1366 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 1364 times.
1368 retif_((m == 3 || m == 5) [[unlikely]], 2);
11
6/10
✓ Branch 0 taken 1364 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1364 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1364 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1204 times.
✓ Branch 7 taken 160 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1204 times.
1364 if (m == 104857601 || m == 167772161 || m == 469762049 || m == 998244353 || m == 1004535809) return 3;
12
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1204 times.
1204 if (m == 1012924417) return 5;
13
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1204 times.
1204 if (m == 754974721) return 11;
14 1204 const auto pf = pfactors(m - 1);
15 1204 for (u64 g = 2;; ++g)
16
2/2
✓ Branch 3 taken 1204 times.
✓ Branch 4 taken 45468 times.
46672 if (is_proot(g, m, begin(pf), end(pf))) return g;
17 1204 }
18
19 } // namespace tifa_libs
20