Skip to content

Commit 1c11236

Browse files
committed
unique as template function (DRY)
1 parent 845ab3c commit 1c11236

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

src/unique.h

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,11 @@ using Eigen::Array;
3131
using Eigen::Vector;
3232
using Eigen::Dynamic;
3333

34-
//! unique values in Eigen::Vector
34+
//! unique values
35+
//! in Eigen::Vector or nx1 Eigen::Array
3536
template <typename T>
36-
[[nodiscard,maybe_unused]] static Vector<T, Dynamic> unique( Vector<T,Dynamic> u)
37-
{
38-
std::sort( u.begin(), u.end() );
39-
// remove consecutive (adjacent) duplicates:
40-
const auto last = std::unique( u.begin(), u.end() );
41-
const auto n = std::distance( u.begin(), last);
42-
return u.head(n);
43-
}
44-
45-
46-
//! unique values in nx1 Eigen::Array
47-
template <typename T>
48-
[[nodiscard,maybe_unused]] static Array<T, Dynamic,1> unique( Array<T,Dynamic,1> u)
37+
[[nodiscard,maybe_unused]] static T
38+
unique(T u)
4939
{
5040
std::sort( u.begin(), u.end() );
5141
// remove consecutive (adjacent) duplicates:
@@ -57,7 +47,8 @@ template <typename T>
5747

5848
//! unique values in std::vector
5949
template <typename T>
60-
[[nodiscard,maybe_unused]] static std::vector<T> unique( std::vector<T> u)
50+
[[nodiscard,maybe_unused]] static std::vector<T>
51+
unique( std::vector<T> u)
6152
{
6253
std::sort( u.begin(), u.end() );
6354
// remove consecutive (adjacent) duplicates:

0 commit comments

Comments
 (0)