MLPACK  1.0.10
amf.hpp
Go to the documentation of this file.
1 
26 #ifndef __MLPACK_METHODS_AMF_AMF_HPP
27 #define __MLPACK_METHODS_AMF_AMF_HPP
28 
29 #include <mlpack/core.hpp>
33 
34 namespace mlpack {
35 namespace amf {
36 
74 template<typename TerminationPolicyType = SimpleResidueTermination,
75  typename InitializationRuleType = RandomInitialization,
76  typename UpdateRuleType = NMFMultiplicativeDistanceUpdate>
77 class AMF
78 {
79  public:
96  AMF(const TerminationPolicyType& terminationPolicy = TerminationPolicyType(),
97  const InitializationRuleType& initializeRule = InitializationRuleType(),
98  const UpdateRuleType& update = UpdateRuleType());
99 
108  template<typename MatType>
109  double Apply(const MatType& V,
110  const size_t r,
111  arma::mat& W,
112  arma::mat& H);
113 
115  const TerminationPolicyType& TerminationPolicy() const
116  { return terminationPolicy; }
118  TerminationPolicyType& TerminationPolicy() { return terminationPolicy; }
119 
121  const InitializationRuleType& InitializeRule() const
122  { return initializationRule; }
124  InitializationRuleType& InitializeRule() { return initializationRule; }
125 
127  const UpdateRuleType& Update() const { return update; }
129  UpdateRuleType& Update() { return update; }
130 
131  private:
133  TerminationPolicyType terminationPolicy;
135  InitializationRuleType initializationRule;
137  UpdateRuleType update;
138 }; // class AMF
139 
140 }; // namespace amf
141 }; // namespace mlpack
142 
143 // Include implementation.
144 #include "amf_impl.hpp"
145 
146 #endif
147