[mlpack-svn] r15908 - mlpack/trunk/src/mlpack/methods/gmm

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Wed Oct 2 22:05:25 EDT 2013


Author: rcurtin
Date: Wed Oct  2 22:05:25 2013
New Revision: 15908

Log:
Add DiagonalConstraint.


Added:
   mlpack/trunk/src/mlpack/methods/gmm/diagonal_constraint.hpp
Modified:
   mlpack/trunk/src/mlpack/methods/gmm/CMakeLists.txt

Modified: mlpack/trunk/src/mlpack/methods/gmm/CMakeLists.txt
==============================================================================
--- mlpack/trunk/src/mlpack/methods/gmm/CMakeLists.txt	(original)
+++ mlpack/trunk/src/mlpack/methods/gmm/CMakeLists.txt	Wed Oct  2 22:05:25 2013
@@ -3,11 +3,12 @@
 set(SOURCES
   gmm.hpp
   gmm_impl.hpp
-  no_constraint.hpp
   phi.hpp
-  positive_definite_constraint.hpp
   em_fit.hpp
   em_fit_impl.hpp
+  no_constraint.hpp
+  positive_definite_constraint.hpp
+  diagonal_constraint.hpp
 )
 
 # Add directory name to sources.

Added: mlpack/trunk/src/mlpack/methods/gmm/diagonal_constraint.hpp
==============================================================================
--- (empty file)
+++ mlpack/trunk/src/mlpack/methods/gmm/diagonal_constraint.hpp	Wed Oct  2 22:05:25 2013
@@ -0,0 +1,33 @@
+/**
+ * @file diagonal_constraint.hpp
+ * @author Ryan Curtin
+ *
+ * Constrain a covariance matrix to be diagonal.
+ */
+#ifndef __MLPACK_METHODS_GMM_DIAGONAL_CONSTRAINT_HPP
+#define __MLPACK_METHODS_GMM_DIAGONAL_CONSTRAINT_HPP
+
+#include <mlpack/core.hpp>
+
+namespace mlpack {
+namespace gmm {
+
+/**
+ * Force a covariance matrix to be diagonal.
+ */
+class DiagonalConstraint
+{
+ public:
+  //! Force a covariance matrix to be diagonal.
+  static void ApplyConstraint(arma::mat& covariance)
+  {
+    // Save the diagonal only.
+    arma::vec diagonal = covariance.diag();
+    covariance = arma::diagmat(diagonal);
+  }
+};
+
+}; // namespace gmm
+}; // namespace mlpack
+
+#endif



More information about the mlpack-svn mailing list