GCC Code Coverage Report


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

src/geo2d/min_cover_c/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../make_c/ppp/lib.hpp"
4 #include "../rel/cp/lib.hpp"
5
6 namespace tifa_libs {
7
8 // min coverage circle of a set of points
9 //! shuffle `vp` first to avoid hack & improve accuracy
10 template <class FP>
11 35 CEXP circle<FP> min_cover_C(vec<point<FP>> CR vp) NE {
12 35 circle<FP> ret{vp.front(), 0};
13 35 cu32 n = (u32)vp.size();
14
2/2
✓ Branch 0 taken 2921390 times.
✓ Branch 1 taken 35 times.
2921425 flt_ (u32, i, 1, n) {
15
2/2
✓ Branch 2 taken 2920667 times.
✓ Branch 3 taken 723 times.
2921390 if (relation_CP(ret, vp[i]) != RELCP::outside) continue;
16 723 ret = circle<FP>{vp[i], 0};
17
2/2
✓ Branch 0 taken 5738131 times.
✓ Branch 1 taken 723 times.
5738854 flt_ (u32, j, 0, i) {
18
2/2
✓ Branch 2 taken 5731571 times.
✓ Branch 3 taken 6560 times.
5738131 if (relation_CP(ret, vp[j]) != RELCP::outside) continue;
19 6560 ret = circle<FP>{mid_point(vp[i], vp[j]), dist_PP(vp[i], vp[j]) / 2};
20
2/2
✓ Branch 0 taken 7694390 times.
✓ Branch 1 taken 6560 times.
7700950 flt_ (u32, k, 0, j)
21
2/2
✓ Branch 2 taken 13924 times.
✓ Branch 3 taken 7680466 times.
7694390 if (relation_CP(ret, vp[k]) == RELCP::outside) ret = make_C_PPP(vp[i], vp[j], vp[k]);
22 }
23 }
24 35 return ret;
25 }
26
27 } // namespace tifa_libs
28