[mlpack-git] master: Remove implementation from header file to avoid duplicate symbol error. (543142a)

gitdub at mlpack.org gitdub at mlpack.org
Wed Jul 6 15:30:09 EDT 2016


Repository : https://github.com/mlpack/mlpack
On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/98babfc774bce91170df994763b670b9abd20917...e7b9b042d1d6e2d9895d5fa141e9c135b2d2ea57

>---------------------------------------------------------------

commit 543142a858e1766739f12a750af4759bf0fe104b
Author: Marcus Edel <marcus.edel at fu-berlin.de>
Date:   Wed Jul 6 01:02:09 2016 +0200

    Remove implementation from header file to avoid duplicate symbol error.


>---------------------------------------------------------------

543142a858e1766739f12a750af4759bf0fe104b
 src/mlpack/methods/quic_svd/CMakeLists.txt                      | 2 +-
 src/mlpack/methods/quic_svd/{quic_svd_impl.hpp => quic_svd.cpp} | 7 +++----
 src/mlpack/methods/quic_svd/quic_svd.hpp                        | 7 +------
 3 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/src/mlpack/methods/quic_svd/CMakeLists.txt b/src/mlpack/methods/quic_svd/CMakeLists.txt
index ae7a36a..ef7def2 100644
--- a/src/mlpack/methods/quic_svd/CMakeLists.txt
+++ b/src/mlpack/methods/quic_svd/CMakeLists.txt
@@ -2,7 +2,7 @@
 # Anything not in this list will not be compiled into mlpack.
 set(SOURCES
   quic_svd.hpp
-  quic_svd_impl.hpp
+  quic_svd.cpp
 )
 
 # Add directory name to sources.
diff --git a/src/mlpack/methods/quic_svd/quic_svd_impl.hpp b/src/mlpack/methods/quic_svd/quic_svd.cpp
similarity index 95%
rename from src/mlpack/methods/quic_svd/quic_svd_impl.hpp
rename to src/mlpack/methods/quic_svd/quic_svd.cpp
index 20aaba1..4640d48 100644
--- a/src/mlpack/methods/quic_svd/quic_svd_impl.hpp
+++ b/src/mlpack/methods/quic_svd/quic_svd.cpp
@@ -4,8 +4,6 @@
  *
  * An implementation of QUIC-SVD.
  */
-#ifndef MLPACK_METHODS_QUIC_SVD_QUIC_SVD_IMPL_HPP
-#define MLPACK_METHODS_QUIC_SVD_QUIC_SVD_IMPL_HPP
 
 // In case it hasn't been included yet.
 #include "quic_svd.hpp"
@@ -34,6 +32,9 @@ QUIC_SVD::QUIC_SVD(const arma::mat& dataset,
   // Get subspace basis by creating the cosine tree.
   ctree->GetFinalBasis(basis);
 
+  // Delete cosine tree.
+  delete ctree;
+
   // Use the ExtractSVD algorithm mentioned in the paper to extract the SVD of
   // the original dataset in the obtained subspace.
   ExtractSVD(u, v, sigma);
@@ -76,5 +77,3 @@ void QUIC_SVD::ExtractSVD(arma::mat& u,
 
 } // namespace svd
 } // namespace mlpack
-
-#endif
diff --git a/src/mlpack/methods/quic_svd/quic_svd.hpp b/src/mlpack/methods/quic_svd/quic_svd.hpp
index 3fe9e6d..d470bfe 100644
--- a/src/mlpack/methods/quic_svd/quic_svd.hpp
+++ b/src/mlpack/methods/quic_svd/quic_svd.hpp
@@ -77,9 +77,7 @@ class QUIC_SVD
    * @param v Second unitary matrix.
    * @param sigma Diagonal matrix of singular values.
    */
-  void ExtractSVD(arma::mat& u,
-                  arma::mat& v,
-                  arma::mat& sigma);
+  void ExtractSVD(arma::mat& u, arma::mat& v, arma::mat& sigma);
 
  private:
   //! Matrix for which cosine tree is constructed.
@@ -91,7 +89,4 @@ class QUIC_SVD
 } // namespace svd
 } // namespace mlpack
 
-// Include implementation.
-#include "quic_svd_impl.hpp"
-
 #endif




More information about the mlpack-git mailing list