From abdb3c609d9d31c4e6bc372b4d2011b45b8aa1b8 Mon Sep 17 00:00:00 2001 From: shubham1206agra Date: Wed, 27 Apr 2022 12:52:42 +0530 Subject: [PATCH] converted diagonal guassian distribution to .hpp --- src/mlpack/core/dists/CMakeLists.txt | 2 +- .../dists/diagonal_gaussian_distribution.hpp | 3 +++ ...> diagonal_gaussian_distribution_impl.hpp} | 22 +++++++++++++------ 3 files changed, 19 insertions(+), 8 deletions(-) rename src/mlpack/core/dists/{diagonal_gaussian_distribution.cpp => diagonal_gaussian_distribution_impl.hpp} (90%) 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