GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 7 / 0 / 7
Functions: 100.0% 1 / 0 / 1
Branches: 91.7% 11 / 0 / 12

src/math/iroot/kth/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../../math/qpow/basic/lib.hpp"
4
5 namespace tifa_libs {
6
7 6803985 CEXP u64 ikth_root(u64 a, u64 k) NE {
8
5/6
✗ Branch 0 not taken.
✓ Branch 1 taken 6803985 times.
✓ Branch 3 taken 6546267 times.
✓ Branch 4 taken 257718 times.
✓ Branch 5 taken 60001 times.
✓ Branch 6 taken 6486266 times.
6803985 if (assert(k); a <= 1 || k == 1) return a;
9
2/2
✓ Branch 0 taken 51857 times.
✓ Branch 1 taken 6434409 times.
6486266 if (k >= 64) return 1;
10 6434409 u64 n = (u64)powl(a, 1.l / k);
11
2/2
✓ Branch 1 taken 241781 times.
✓ Branch 2 taken 6434409 times.
6676190 while (qpow<u128>(n, k) > a) --n;
12
2/2
✓ Branch 1 taken 4532 times.
✓ Branch 2 taken 6434409 times.
6438941 while (qpow<u128>(n + 1, k) <= a) ++n;
13 6434409 return n;
14 }
15
16 } // namespace tifa_libs
17