diff --git a/src/mlpack/core/dists/CMakeLists.txt b/src/mlpack/core/dists/CMakeLists.txt index c8365faac3..a11654f746 100644 --- a/src/mlpack/core/dists/CMakeLists.txt +++ b/src/mlpack/core/dists/CMakeLists.txt @@ -12,7 +12,7 @@ set(SOURCES gamma_distribution.hpp gamma_distribution.cpp diagonal_gaussian_distribution.hpp - diagonal_gaussian_distribution.cpp + diagonal_gaussian_distribution_impl.hpp ) # add directory name to sources diff --git a/src/mlpack/core/dists/diagonal_gaussian_distribution.hpp b/src/mlpack/core/dists/diagonal_gaussian_distribution.hpp index 05c5e54e2c..b9b606c293 100644 --- a/src/mlpack/core/dists/diagonal_gaussian_distribution.hpp +++ b/src/mlpack/core/dists/diagonal_gaussian_distribution.hpp @@ -153,4 +153,7 @@ class DiagonalGaussianDistribution } // namespace distribution } // namespace mlpack +// Include implementation. +#include "diagonal_gaussian_distribution_impl.hpp" + #endif diff --git a/src/mlpack/core/dists/diagonal_gaussian_distribution.cpp b/src/mlpack/core/dists/diagonal_gaussian_distribution_impl.hpp similarity index 90% rename from src/mlpack/core/dists/diagonal_gaussian_distribution.cpp rename to src/mlpack/core/dists/diagonal_gaussian_distribution_impl.hpp index bb58ea7931..463453297d 100644 --- a/src/mlpack/core/dists/diagonal_gaussian_distribution.cpp +++ b/src/mlpack/core/dists/diagonal_gaussian_distribution_impl.hpp @@ -1,5 +1,5 @@ /** - * @file core/dists/diagonal_gaussian_distribution.cpp + * @file core/dists/diagonal_gaussian_distribution_impl.hpp * @author Kim SangYeon * * Implementation of Gaussian distribution class with diagonal covariance. @@ -9,11 +9,14 @@ * 3-clause BSD license along with mlpack. If not, see * http://www.opensource.org/licenses/BSD-3-Clause for more information. */ +#ifndef MLPACK_CORE_DISTRIBUTIONS_DIAGONAL_GAUSSIAN_DISTRIBUTION_IMPL_HPP +#define MLPACK_CORE_DISTRIBUTIONS_DIAGONAL_GAUSSIAN_DISTRIBUTION_IMPL_HPP + #include "diagonal_gaussian_distribution.hpp" #include -using namespace mlpack; -using namespace mlpack::distribution; +namespace mlpack { +namespace distribution { DiagonalGaussianDistribution::DiagonalGaussianDistribution( const arma::vec& mean, @@ -25,15 +28,15 @@ DiagonalGaussianDistribution::DiagonalGaussianDistribution( void DiagonalGaussianDistribution::Covariance(const arma::vec& covariance) { - this->invCov = 1 / covariance; - this->logDetCov = arma::accu(log(covariance)); + invCov = 1 / covariance; + logDetCov = arma::accu(log(covariance)); this->covariance = covariance; } void DiagonalGaussianDistribution::Covariance(arma::vec&& covariance) { - this->invCov = 1 / covariance; - this->logDetCov = arma::accu(log(covariance)); + invCov = 1 / covariance; + logDetCov = arma::accu(log(covariance)); this->covariance = std::move(covariance); } @@ -146,3 +149,8 @@ void DiagonalGaussianDistribution::Train(const arma::mat& observations, invCov = 1 / covariance; logDetCov = arma::accu(log(covariance)); } + +} // namespace distribution +} // namespace mlpack + +#endif