[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