00001 00023 #ifndef __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_HPP 00024 #define __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_HPP 00025 00026 #include <mlpack/core.hpp> 00027 00028 namespace mlpack { 00029 namespace tree { 00030 00031 class CosineTree 00032 { 00033 private: 00035 arma::mat data; 00037 arma::rowvec centroid; 00039 arma::vec probabilities; 00041 CosineTree* left; 00043 CosineTree* right; 00045 size_t numPoints; 00046 00047 public: 00049 //typedef MatType Mat; 00057 CosineTree(arma::mat data, arma::rowvec centroid, arma::vec probabilities); 00058 00062 CosineTree(); 00063 00069 ~CosineTree(); 00070 00072 CosineTree* Left() const; 00073 00075 void Left(CosineTree* child); 00076 00078 CosineTree* Right() const; 00079 00081 void Right(CosineTree* child); 00082 00089 CosineTree& Child(const size_t child) const; 00090 00092 size_t NumPoints() const; 00093 00095 arma::mat Data(); 00096 00098 void Data(arma::mat& d); 00099 00101 arma::vec Probabilities(); 00102 00104 void Probabilities(arma::vec& prob); 00105 00107 arma::rowvec Centroid(); 00108 00110 void Centroid(arma::rowvec& centr); 00111 00112 }; 00113 00114 }; // namespace tree 00115 }; // namespace mlpack 00116 00117 // Include implementation. 00118 #include "cosine_tree_impl.hpp" 00119 00120 #endif