KrisLibrary  1.0.0
Histogram2D.h
1 #ifndef STATISTICS_HISTOGRAM2D_H
2 #define STATISTICS_HISTOGRAM2D_H
3 
4 #include "statistics.h"
5 #include <KrisLibrary/structs/array2d.h>
6 
7 namespace Statistics {
8 
13 {
14  public:
15  typedef Real Point[2]; //Point[0] = x, Point[1] = y
16  typedef int Index[2]; //Index[0] = i, Index[1] = j
17  typedef size_t Size[2]; //Size[0] = m, Size[1] = n
18 
19  Histogram2D();
21  void Clear();
23  void Resize(size_t m,size_t n,Real a1,Real b1,Real a2,Real b2);
24  void Resize(const Size dims,const Point min,const Point max);
26  void ResizeToFit(const std::vector<Real>& data1,const std::vector<Real>& data2,size_t m,size_t n);
27  void ResizeToFit(const std::vector<Point>& data,const Size dims);
29  void Fill(Real val=0);
31  void Calculate(const std::vector<Point>& data);
33  void Calculate(const std::vector<Real>& data1,const std::vector<Real>& data2);
34 
35  void GetRange(const Index bucket,Point min,Point max) const;
36  void GetBucket(const Point val,Index bucket) const;
37  void GetBucket(Real v1,Real v2,Index bucket) const;
38  void AddBucket(const Point val,Real num=1);
39  void AddBucket(Real v1,Real v2,Real num=1);
40  Real GetBucketCount(Index bucket) const { return buckets(bucket[0],bucket[1]); }
41  Real NumObservations() const;
42 
43  std::vector<Real> div1, div2;
46 };
47 
48 } //namespace Statistics
49 
50 #endif
void Clear()
Creates one big bucket.
Definition: Histogram.cpp:118
void Fill(Real val=0)
Fills all buckets with the given value.
Definition: Histogram.cpp:185
void Resize(size_t m, size_t n, Real a1, Real b1, Real a2, Real b2)
Creates mxn uniformly spaced buckets betwen [a1,b1]x[a2,b2].
Definition: Histogram.cpp:125
Contains all definitions in the statistics directory.
Definition: BernoulliDistribution.h:6
Basic statistical utilities.
An integer tuple class.
Definition: IntTuple.h:14
2-D histogram class
Definition: Histogram2D.h:12
void Calculate(const std::vector< Point > &data)
Calculates the histogram of the data.
Definition: Histogram.cpp:201
void ResizeToFit(const std::vector< Real > &data1, const std::vector< Real > &data2, size_t m, size_t n)
Creates mxn uniformly spaced buckets between the min/max of data1,data2.
Definition: Histogram.cpp:153
Array2D< Real > buckets
(div1.size()+1) x (div2.size()+1) buckets
Definition: Histogram2D.h:45