ContextSV v1.0.0
Loading...
Searching...
No Matches
dbscan1d.h
Go to the documentation of this file.
1#ifndef DBSCAN1D_H
2#define DBSCAN1D_H
3
4
5#include <vector>
6#include <utility>
7#include <cmath>
8#include <algorithm>
9
10
11class DBSCAN1D {
12 public:
13 DBSCAN1D(double epsilon, int minPts) : epsilon(epsilon), minPts(minPts) {}
14
15 void fit(const std::vector<int>& points);
16
17 const std::vector<int>& getClusters() const;
18
19 std::vector<int> getLargestCluster(const std::vector<int> &points);
20
21 private:
22 double epsilon;
23 int minPts;
24 std::vector<int> clusters;
25
26 bool expandCluster(const std::vector<int>& points, size_t pointIdx, int clusterId);
27
28 std::vector<size_t> regionQuery(const std::vector<int>& points, size_t pointIdx) const;
29
30 double distance(int a, int b) const;
31
32};
33
34#endif // DBSCAN1D_H
Definition dbscan1d.h:11
const std::vector< int > & getClusters() const
Definition dbscan1d.cpp:21
std::vector< int > getLargestCluster(const std::vector< int > &points)
Definition dbscan1d.cpp:72
DBSCAN1D(double epsilon, int minPts)
Definition dbscan1d.h:13
void fit(const std::vector< int > &points)
Definition dbscan1d.cpp:8