MLPACK
1.0.4
|
00001 00024 #ifndef __MLPACK_METHODS_EMST_DTB_RULES_HPP 00025 #define __MLPACK_METHODS_EMST_DTB_RULES_HPP 00026 00027 #include <mlpack/core.hpp> 00028 00029 namespace mlpack { 00030 namespace emst { 00031 00032 template<typename MetricType, typename TreeType> 00033 class DTBRules 00034 { 00035 public: 00036 00037 DTBRules(const arma::mat& dataSet, 00038 UnionFind& connections, 00039 arma::vec& neighborsDistances, 00040 arma::Col<size_t>& neighborsInComponent, 00041 arma::Col<size_t>& neighborsOutComponent, 00042 MetricType& metric); 00043 00044 double BaseCase(const size_t queryIndex, const size_t referenceIndex); 00045 00046 // Update bounds. Needs a better name. 00047 void UpdateAfterRecursion(TreeType& queryNode, TreeType& referenceNode); 00048 00057 double Score(const size_t queryIndex, TreeType& referenceNode); 00058 00069 double Score(const size_t queryIndex, 00070 TreeType& referenceNode, 00071 const double baseCaseResult); 00072 00084 double Rescore(const size_t queryIndex, 00085 TreeType& referenceNode, 00086 const double oldScore); 00087 00096 double Score(TreeType& queryNode, TreeType& referenceNode) const; 00097 00108 double Score(TreeType& queryNode, 00109 TreeType& referenceNode, 00110 const double baseCaseResult) const; 00111 00123 double Rescore(TreeType& queryNode, 00124 TreeType& referenceNode, 00125 const double oldScore) const; 00126 00127 private: 00128 00129 // This class needs to know what points are connected to one another 00130 00131 00132 // Things I need 00133 // UnionFind storing the tree structure at this iteration 00134 // neighborDistances 00135 // neighborInComponent 00136 // neighborOutComponent 00137 00139 const arma::mat& dataSet; 00140 00142 UnionFind& connections; 00143 00145 arma::vec& neighborsDistances; 00146 00149 arma::Col<size_t>& neighborsInComponent; 00150 00153 arma::Col<size_t>& neighborsOutComponent; 00154 00156 MetricType& metric; 00157 00158 }; // class DTBRules 00159 00160 } // emst namespace 00161 } // mlpack namespace 00162 00163 #include "dtb_rules_impl.hpp" 00164 00165 #endif