src/geo2d/ins_hps/lib.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../../edh/discretization/lib.hpp" | ||
| 4 | #include "../ds/cvh/lib.hpp" | ||
| 5 | |||
| 6 | namespace tifa_libs { | ||
| 7 | |||
| 8 | template <class FP> | ||
| 9 | 4671 | CEXP cvh<FP> ins_hPs(vec<line<FP>> vl) NE { | |
| 10 | 4813388 | auto check = [](line<FP> CR u, line<FP> CR v, line<FP> CR w) NE -> bool { return w.is_include_strict(ins_LL(u, v)); }; | |
| 11 |
2/4tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✗ Branch 6 not taken.
✓ Branch 7 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✗ Branch 6 not taken.
✓ Branch 7 taken 4656 times.
|
4671 | if ((vl = uniq(vl)).size() < 3) return {}; |
| 12 | 4671 | std::deque<line<FP>> q; | |
| 13 |
4/4tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 4 taken 727 times.
✓ Branch 5 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 4 taken 2042780 times.
✓ Branch 5 taken 4656 times.
|
2048178 | for (auto it = begin(vl); it != end(vl); ++it) { |
| 14 |
12/12tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 712 times.
✓ Branch 3 taken 15 times.
✓ Branch 7 taken 141 times.
✓ Branch 8 taken 571 times.
✓ Branch 9 taken 141 times.
✓ Branch 10 taken 586 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 2038124 times.
✓ Branch 3 taken 4656 times.
✓ Branch 7 taken 416304 times.
✓ Branch 8 taken 1621820 times.
✓ Branch 9 taken 416304 times.
✓ Branch 10 taken 1626476 times.
|
2043507 | if (it != begin(vl) && is_same_dir(*it, it[-1])) continue; |
| 15 |
12/12tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 904 times.
✓ Branch 3 taken 40 times.
✓ Branch 9 taken 358 times.
✓ Branch 10 taken 546 times.
✓ Branch 11 taken 358 times.
✓ Branch 12 taken 586 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 3133114 times.
✓ Branch 3 taken 25608 times.
✓ Branch 9 taken 1532246 times.
✓ Branch 10 taken 1600868 times.
✓ Branch 11 taken 1532246 times.
✓ Branch 12 taken 1626476 times.
|
3159666 | while (q.size() > 1 && !check(q.rbegin()[1], q.back(), *it)) q.pop_back(); |
| 16 |
12/12tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 549 times.
✓ Branch 3 taken 40 times.
✓ Branch 9 taken 3 times.
✓ Branch 10 taken 546 times.
✓ Branch 11 taken 3 times.
✓ Branch 12 taken 586 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 1630901 times.
✓ Branch 3 taken 25608 times.
✓ Branch 9 taken 30033 times.
✓ Branch 10 taken 1600868 times.
✓ Branch 11 taken 30033 times.
✓ Branch 12 taken 1626476 times.
|
1657098 | while (q.size() > 1 && !check(begin(q)[1], q.front(), *it)) q.pop_front(); |
| 17 | 1627062 | q.push_back(*it); | |
| 18 | } | ||
| 19 |
11/12tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 17 times.
✓ Branch 3 taken 4 times.
✓ Branch 9 taken 6 times.
✓ Branch 10 taken 11 times.
✓ Branch 11 taken 6 times.
✓ Branch 12 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 43236 times.
✗ Branch 3 not taken.
✓ Branch 9 taken 38580 times.
✓ Branch 10 taken 4656 times.
✓ Branch 11 taken 38580 times.
✓ Branch 12 taken 4656 times.
|
43257 | while (q.size() > 2 && !check(q.rbegin()[1], q.back(), q.front())) q.pop_back(); |
| 20 |
7/12tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 2 taken 11 times.
✓ Branch 3 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 11 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 2 taken 4656 times.
✗ Branch 3 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 4656 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 4656 times.
|
4671 | while (q.size() > 2 && !check(begin(q)[1], q.front(), q.back())) q.pop_front(); |
| 21 | 4671 | vec<point<FP>> ret; | |
| 22 |
4/4tifa_libs::ins_hPs<double>(std::vector<tifa_libs::line<double>, std::allocator<tifa_libs::line<double> > >)::{lambda(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&)#1}::operator()(tifa_libs::line<double> const&, tifa_libs::line<double> const&, tifa_libs::line<double> const&) const:
✓ Branch 6 taken 219 times.
✓ Branch 7 taken 15 times.
tifa_libs::ins_hPs<long double>(std::vector<tifa_libs::line<long double>, std::allocator<tifa_libs::line<long double> > >)::{lambda(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&)#1}::operator()(tifa_libs::line<long double> const&, tifa_libs::line<long double> const&, tifa_libs::line<long double> const&) const:
✓ Branch 6 taken 25617 times.
✓ Branch 7 taken 4656 times.
|
30507 | flt_ (u32, i, 0, (u32)q.size()) ret.push_back(ins_LL(q[i], q[(i + 1) % q.size()])); |
| 23 | 4671 | return cvh<FP>{ret, true}; | |
| 24 | 4671 | } | |
| 25 | |||
| 26 | } // namespace tifa_libs | ||
| 27 |