[mlpack-svn] r11292 - mlpack/trunk/src/mlpack/methods/neighbor_search

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Thu Jan 26 15:03:34 EST 2012


Author: rcurtin
Date: 2012-01-26 15:03:34 -0500 (Thu, 26 Jan 2012)
New Revision: 11292

Modified:
   mlpack/trunk/src/mlpack/methods/neighbor_search/allkfn_main.cpp
   mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp
Log:
Fix scoping issues.  Stupid Ryan!


Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/allkfn_main.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/allkfn_main.cpp	2012-01-26 05:32:49 UTC (rev 11291)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/allkfn_main.cpp	2012-01-26 20:03:34 UTC (rev 11292)
@@ -71,6 +71,7 @@
   bool singleMode = CLI::HasParam("single_mode");
 
   arma::mat referenceData;
+  arma::mat queryData; // So it doesn't go out of scope.
   if (!data::Load(referenceFile.c_str(), referenceData))
     Log::Fatal << "Reference file " << referenceFile << "not found." << endl;
 
@@ -116,6 +117,8 @@
 
   BinarySpaceTree<bound::HRectBound<2>, QueryStat<FurthestNeighborSort> >
       refTree(referenceData, oldFromNewRefs, leafSize);
+  BinarySpaceTree<bound::HRectBound<2>, QueryStat<FurthestNeighborSort> >*
+      queryTree = NULL; // Empty for now.
 
   Timer::Stop("reference_tree_building");
 
@@ -124,7 +127,6 @@
   if (CLI::GetParam<string>("query_file") != "")
   {
     string queryFile = CLI::GetParam<string>("query_file");
-    arma::mat queryData;
 
     if (!data::Load(queryFile.c_str(), queryData))
       Log::Fatal << "Query file " << queryFile << " not found." << endl;
@@ -140,12 +142,13 @@
     // NeighborSearch, it does not copy the matrix.
     Timer::Start("query_tree_building");
 
-    BinarySpaceTree<bound::HRectBound<2>, QueryStat<FurthestNeighborSort> >
-        queryTree(queryData, oldFromNewQueries, leafSize);
+    queryTree = new BinarySpaceTree<bound::HRectBound<2>,
+        QueryStat<FurthestNeighborSort> >(queryData, oldFromNewQueries,
+        leafSize);
 
     Timer::Stop("query_tree_building");
 
-    allkfn = new AllkFN(&refTree, &queryTree, referenceData, queryData,
+    allkfn = new AllkFN(&refTree, queryTree, referenceData, queryData,
         singleMode);
 
     Log::Info << "Tree built." << endl;
@@ -199,6 +202,10 @@
     }
   }
 
+  // Clean up.
+  if (queryTree)
+    delete queryTree;
+
   // Save output.
   data::Save(distancesFile, distances);
   data::Save(neighborsFile, neighbors);

Modified: mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp	2012-01-26 05:32:49 UTC (rev 11291)
+++ mlpack/trunk/src/mlpack/methods/neighbor_search/allknn_main.cpp	2012-01-26 20:03:34 UTC (rev 11292)
@@ -72,6 +72,7 @@
   bool singleMode = CLI::HasParam("single_mode");
 
   arma::mat referenceData;
+  arma::mat queryData; // So it doesn't go out of scope.
   if (!data::Load(referenceFile.c_str(), referenceData))
     Log::Fatal << "Reference file " << referenceFile << "not found." << endl;
 
@@ -119,6 +120,8 @@
 
   BinarySpaceTree<bound::HRectBound<2>, QueryStat<NearestNeighborSort> >
       refTree(referenceData, oldFromNewRefs, leafSize);
+  BinarySpaceTree<bound::HRectBound<2>, QueryStat<NearestNeighborSort> >*
+      queryTree = NULL; // Empty for now.
 
   Timer::Stop("tree_building");
 
@@ -127,7 +130,6 @@
   if (CLI::GetParam<string>("query_file") != "")
   {
     string queryFile = CLI::GetParam<string>("query_file");
-    arma::mat queryData;
 
     if (!data::Load(queryFile.c_str(), queryData))
       Log::Fatal << "Query file " << queryFile << " not found" << endl;
@@ -143,12 +145,13 @@
     // NeighborSearch, it does not copy the matrix.
     Timer::Start("tree_building");
 
-    BinarySpaceTree<bound::HRectBound<2>, QueryStat<NearestNeighborSort> >
-        queryTree(queryData, oldFromNewQueries, leafSize);
+    queryTree = new BinarySpaceTree<bound::HRectBound<2>,
+        QueryStat<NearestNeighborSort> >(queryData, oldFromNewQueries,
+        leafSize);
 
     Timer::Stop("tree_building");
 
-    allknn = new AllkNN(&refTree, &queryTree, referenceData, queryData,
+    allknn = new AllkNN(&refTree, queryTree, referenceData, queryData,
         singleMode);
 
     Log::Info << "Tree built." << endl;
@@ -202,6 +205,10 @@
     }
   }
 
+  // Clean up.
+  if (queryTree)
+    delete queryTree;
+
   // Save output.
   data::Save(distancesFile, distances);
   data::Save(neighborsFile, neighbors);




More information about the mlpack-svn mailing list