HOPS
HOPS class reference
MHO_UniformGridPointsCalculator.hh
Go to the documentation of this file.
1 #ifndef MHO_UniformGridPointsCalculator_HH__
2 #define MHO_UniformGridPointsCalculator_HH__
3 
4 #include <cmath>
5 #include <limits>
6 #include <map>
7 #include <vector>
8 
9 namespace hops
10 {
11 
26 {
27  public:
30 
36  void SetEpsilon(double eps) { fEpsilon = std::fabs(eps); };
37 
43  void SetDefaultGridPoints(std::size_t n) { fDefaultGridPoints = n; };
44 
45 
46 
55  void GetUniquePoints(const std::vector<double>& in_pts, double eps,
56  std::vector<double>& out_pts,
57  std::map< std::size_t, std::size_t >& index_map) const;
58 
59 
65  void SetPoints(const std::vector< double >& pts);
66 
72  void SetPoints(const double* pts, std::size_t npts);
73 
77  void Calculate();
78 
84  void GetGridPoints(std::vector< double >* grid_pts); //fill vector with grid points
85 
91  double GetGridStart() const { return fStart; };
92 
98  double GetGridSpacing() const { return fSpacing; };
99 
105  double GetGridAverage() const { return fAverageLocation; }
106 
112  double GetSpread() const { return fSpread; }
113 
119  std::size_t GetNGridPoints() const { return fNGridPoints; };
120 
126  bool GetSpacingErrorStatus() const { return fSpacingError; };
127 
128 
136  std::map< std::size_t, std::size_t > GetGridIndexMap() { return fIndexMap; }
137 
138  protected:
144  void Calculate_v1(int max_pts = 8192);
145 
149  void Calculate_v2();
150 
155 
156  double fEpsilon;
157  double fStart;
158  double fSpacing;
159  double fMinSpacing;
160  double fMaxSpacing;
162  double fNGridPoints;
163  double fSpread;
164  std::vector< double > fPoints;
165  std::map< std::size_t, std::size_t > fIndexMap;
166 
169  double fAbsEps; //use to check that value is not zero
170 };
171 
172 } // namespace hops
173 
174 #endif
Class MHO_UniformGridPointsCalculator.
Definition: MHO_UniformGridPointsCalculator.hh:26
std::map< std::size_t, std::size_t > fIndexMap
Definition: MHO_UniformGridPointsCalculator.hh:165
void GetGridPoints(std::vector< double > *grid_pts)
Getter for grid points.
void SetPoints(const std::vector< double > &pts)
Setter for points - expects points to be given in increasing order.
Definition: MHO_UniformGridPointsCalculator.cc:53
void GetUniquePoints(const std::vector< double > &in_pts, double eps, std::vector< double > &out_pts, std::map< std::size_t, std::size_t > &index_map) const
pre-processing step – makes sure the points are unique given some epsilon and if not,...
Definition: MHO_UniformGridPointsCalculator.cc:31
double GetGridAverage() const
Getter for grid average.
Definition: MHO_UniformGridPointsCalculator.hh:105
void FindStartAndMinMaxSpacing()
Finds start point and minimum/maximum spacing between points in a list.
Definition: MHO_UniformGridPointsCalculator.cc:263
MHO_UniformGridPointsCalculator()
Definition: MHO_UniformGridPointsCalculator.cc:11
void SetEpsilon(double eps)
Setter for epsilon.
Definition: MHO_UniformGridPointsCalculator.hh:36
double GetSpread() const
Getter for spread - the grid spread about the average.
Definition: MHO_UniformGridPointsCalculator.hh:112
void Calculate_v2()
Calculates uniform grid points without enforcing power-of-2 size - untested, not used.
Definition: MHO_UniformGridPointsCalculator.cc:210
~MHO_UniformGridPointsCalculator()
Definition: MHO_UniformGridPointsCalculator.cc:28
std::map< std::size_t, std::size_t > GetGridIndexMap()
Getter for grid index map maps the indexes of the original points to their new locations in the unifo...
Definition: MHO_UniformGridPointsCalculator.hh:136
double fAbsEps
Definition: MHO_UniformGridPointsCalculator.hh:169
void Calculate()
Calculates uniform grid points and adjusts point count until spacing error is resolved.
Definition: MHO_UniformGridPointsCalculator.cc:69
void SetDefaultGridPoints(std::size_t n)
Setter for default grid points.
Definition: MHO_UniformGridPointsCalculator.hh:43
double fNGridPoints
Definition: MHO_UniformGridPointsCalculator.hh:162
bool fSpacingError
Definition: MHO_UniformGridPointsCalculator.hh:168
double fSpread
Definition: MHO_UniformGridPointsCalculator.hh:163
double fEpsilon
Definition: MHO_UniformGridPointsCalculator.hh:156
void Calculate_v1(int max_pts=8192)
Calculates uniform grid points for frequency data up to a maximum number of points....
Definition: MHO_UniformGridPointsCalculator.cc:89
std::size_t GetNGridPoints() const
Getter for the number of points in the uniform grid.
Definition: MHO_UniformGridPointsCalculator.hh:119
double fMaxSpacing
Definition: MHO_UniformGridPointsCalculator.hh:160
double fSpacing
Definition: MHO_UniformGridPointsCalculator.hh:158
bool GetSpacingErrorStatus() const
Getter for spacing error status.
Definition: MHO_UniformGridPointsCalculator.hh:126
double GetGridStart() const
Getter for grid start.
Definition: MHO_UniformGridPointsCalculator.hh:91
int fDefaultGridPoints
Definition: MHO_UniformGridPointsCalculator.hh:167
double fAverageLocation
Definition: MHO_UniformGridPointsCalculator.hh:161
double fStart
Definition: MHO_UniformGridPointsCalculator.hh:157
std::vector< double > fPoints
Definition: MHO_UniformGridPointsCalculator.hh:164
double GetGridSpacing() const
Getter for grid spacing - the distance between points on the uniform grid.
Definition: MHO_UniformGridPointsCalculator.hh:98
double fMinSpacing
Definition: MHO_UniformGridPointsCalculator.hh:159
Definition: MHO_ChannelLabeler.hh:17