[mlpack-svn] r10296 - mlpack/trunk/src/mlpack/methods/hmm/distributions

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Wed Nov 16 13:10:34 EST 2011


Author: rcurtin
Date: 2011-11-16 13:10:34 -0500 (Wed, 16 Nov 2011)
New Revision: 10296

Modified:
   mlpack/trunk/src/mlpack/methods/hmm/distributions/discrete_distribution.hpp
Log:
Make sure the distribution is normalized.


Modified: mlpack/trunk/src/mlpack/methods/hmm/distributions/discrete_distribution.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/hmm/distributions/discrete_distribution.hpp	2011-11-16 17:59:32 UTC (rev 10295)
+++ mlpack/trunk/src/mlpack/methods/hmm/distributions/discrete_distribution.hpp	2011-11-16 18:10:34 UTC (rev 10296)
@@ -52,8 +52,18 @@
    *
    * @param probabilities Probabilities of each possible observation.
    */
-  DiscreteDistribution(const arma::vec& probabilities) :
-      probabilities(probabilities) { /* nothing to do */ }
+  DiscreteDistribution(const arma::vec& probabilities)
+  {
+    // We must be sure that our distribution is normalized.
+    double sum = accu(probabilities);
+    if (sum > 0)
+      this->probabilities = probabilities / sum;
+    else
+    {
+      this->probabilities.set_size(probabilities.n_elem);
+      this->probabilities.fill(1 / probabilities.n_elem);
+    }
+  }
 
   /**
    * Return the probability of the given observation.  If the observation is




More information about the mlpack-svn mailing list