MLPACK  1.0.4
mrkd_statistic.hpp
Go to the documentation of this file.
00001 
00022 #ifndef __MLPACK_CORE_TREE_MRKD_STATISTIC_HPP
00023 #define __MLPACK_CORE_TREE_MRKD_STATISTIC_HPP
00024 
00025 #include <mlpack/core.hpp>
00026 
00027 namespace mlpack {
00028 namespace tree {
00029 
00033 class MRKDStatistic
00034 {
00035  public:
00037   MRKDStatistic();
00038 
00046   template<typename MatType>
00047   MRKDStatistic(const MatType& dataset,
00048                 const size_t begin,
00049                 const size_t count);
00050 
00061   template<typename MatType>
00062   MRKDStatistic(const MatType& dataset,
00063                 const size_t begin,
00064                 const size_t count,
00065                 MRKDStatistic& leftStat,
00066                 MRKDStatistic& rightStat);
00067 
00071   std::string ToString() const;
00072 
00074   size_t Begin() const { return begin; }
00076   size_t& Begin() { return begin; }
00077 
00079   size_t Count() const { return count; }
00081   size_t& Count() { return count; }
00082 
00084   const arma::colvec& CenterOfMass() const { return centerOfMass; }
00086   arma::colvec& CenterOfMass() { return centerOfMass; }
00087 
00089   size_t DominatingCentroid() const { return dominatingCentroid; }
00091   size_t& DominatingCentroid() { return dominatingCentroid; }
00092 
00094   const std::vector<size_t>& Whitelist() const { return whitelist; }
00096   std::vector<size_t>& Whitelist() { return whitelist; }
00097 
00098  private:
00100   const arma::mat* dataset;
00102   size_t begin;
00104   size_t count;
00106   const MRKDStatistic* leftStat;
00108   const MRKDStatistic* rightStat;
00110   const MRKDStatistic* parentStat;
00111 
00112   // Computed statistics.
00114   arma::colvec centerOfMass;
00116   double sumOfSquaredNorms;
00117 
00118   // There may be a better place to store this -- HRectBound?
00120   size_t dominatingCentroid;
00121 
00123   std::vector<size_t> whitelist;
00125   bool isWhitelistValid;
00126 };
00127 
00128 }; // namespace tree
00129 }; // namespace mlpack
00130 
00131 // Include implementation.
00132 #include "mrkd_statistic_impl.hpp"
00133 
00134 #endif // __MLPACK_CORE_TREE_MRKD_STATISTIC_HPP