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 
53  void GetUniquePoints(const std::vector< double >& in_pts, double eps, std::vector< double >& out_pts,
54  std::map< std::size_t, std::size_t >& index_map) const;
55 
61  void SetPoints(const std::vector< double >& pts);
62 
68  void SetPoints(const double* pts, std::size_t npts);
69 
73  void Calculate();
74 
80  void GetGridPoints(std::vector< double >* grid_pts); //fill vector with grid points
81 
87  double GetGridStart() const { return fStart; };
88 
94  double GetGridSpacing() const { return fSpacing; };
95 
101  double GetGridAverage() const { return fAverageLocation; }
102 
108  double GetSpread() const { return fSpread; }
109 
115  std::size_t GetNGridPoints() const { return fNGridPoints; };
116 
122  bool GetSpacingErrorStatus() const { return fSpacingError; };
123 
131  std::map< std::size_t, std::size_t > GetGridIndexMap() { return fIndexMap; }
132 
133  protected:
139  void Calculate_v1(int max_pts = 8192);
140 
144  //void Calculate_v2();
145 
149  //void FindStartAndMinMaxSpacing();
150 
151  double fEpsilon;
152  double fStart;
153  double fSpacing;
154  double fMinSpacing;
155  double fMaxSpacing;
157  double fNGridPoints;
158  double fSpread;
159  std::vector< double > fPoints;
160  std::map< std::size_t, std::size_t > fIndexMap;
161 
164  double fAbsEps; //use to check that value is not zero
165 };
166 
167 } // namespace hops
168 
169 #endif
Class MHO_UniformGridPointsCalculator.
Definition: MHO_UniformGridPointsCalculator.hh:26
std::map< std::size_t, std::size_t > fIndexMap
Definition: MHO_UniformGridPointsCalculator.hh:160
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:51
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:30
double GetGridAverage() const
Getter for grid average.
Definition: MHO_UniformGridPointsCalculator.hh:101
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:108
~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:131
double fAbsEps
Definition: MHO_UniformGridPointsCalculator.hh:164
void Calculate()
Calculates uniform grid points and adjusts point count until spacing error is resolved.
Definition: MHO_UniformGridPointsCalculator.cc:67
void SetDefaultGridPoints(std::size_t n)
Setter for default grid points.
Definition: MHO_UniformGridPointsCalculator.hh:43
double fNGridPoints
Definition: MHO_UniformGridPointsCalculator.hh:157
bool fSpacingError
Definition: MHO_UniformGridPointsCalculator.hh:163
double fSpread
Definition: MHO_UniformGridPointsCalculator.hh:158
double fEpsilon
Calculates uniform grid points without enforcing power-of-2 size - untested, not used.
Definition: MHO_UniformGridPointsCalculator.hh:151
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:87
std::size_t GetNGridPoints() const
Getter for the number of points in the uniform grid.
Definition: MHO_UniformGridPointsCalculator.hh:115
double fMaxSpacing
Definition: MHO_UniformGridPointsCalculator.hh:155
double fSpacing
Definition: MHO_UniformGridPointsCalculator.hh:153
bool GetSpacingErrorStatus() const
Getter for spacing error status.
Definition: MHO_UniformGridPointsCalculator.hh:122
double GetGridStart() const
Getter for grid start.
Definition: MHO_UniformGridPointsCalculator.hh:87
int fDefaultGridPoints
Definition: MHO_UniformGridPointsCalculator.hh:162
double fAverageLocation
Definition: MHO_UniformGridPointsCalculator.hh:156
double fStart
Definition: MHO_UniformGridPointsCalculator.hh:152
std::vector< double > fPoints
Definition: MHO_UniformGridPointsCalculator.hh:159
double GetGridSpacing() const
Getter for grid spacing - the distance between points on the uniform grid.
Definition: MHO_UniformGridPointsCalculator.hh:94
double fMinSpacing
Definition: MHO_UniformGridPointsCalculator.hh:154
Definition: MHO_AdhocFlagging.hh:18