/* * ===================================================================================== * * Filename: nmf_tree.h * * Description: * * Version: 1.0 * Created: 08/14/2008 05:40:10 PM EDT * Revision: none * Compiler: gcc * * Author: Nikolaos Vasiloglou (NV), nvasil@ieee.org * Company: Georgia Tech Fastlab-ESP Lab * * ===================================================================================== */ #ifndef NMF_TREE_H_ #define NMF_TREE_H_ typedef BinarySpaceTree, Matrix> TreeType; template class NmfTreeConstructor { public: void Init(fx_module *module, ArrayList &rows, ArrayList &columns, ArrayList &values); void MakeNmfTree(); void MakeNmfTreeMidpointSelective(TKdTree *node); void SelectSplitKdTreeMidpoint(TKdTree *node, GenVector& split_dimensions); private: fx_module *module_; RelaxedNmf opt_fun_; LBfgs l_bfgs_engine_; GenMatrix data_matrix_; GenMatrix w_matrix_; GenMatrix h_matrix_; GenMatrix lower_bound_; GenMatrix upper_bound_; index_t leaf_size_; index_t w_offset_; index_t h_offset_; GenVector old_from_new_w_; GenVector old_from_new_h_; GenVector new_from_old_; ArrayList &rows_; ArrayList &columns_; ArrayList &values_; TKdTree *parent_w_; TKdTree *parent_h_; }; #include "nmf_tree_impl.h" #endif // NMF_TREE_H_