[mlpack-svn] r15855 - in mlpack/branches/mlpack-bindings/src/mlpack: bindings/methods_bindings/neighbor_search methods/neighbor_search

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Thu Sep 26 22:15:59 EDT 2013


Author: pyrotekniq
Date: Thu Sep 26 22:15:59 2013
New Revision: 15855

Log:
Modified.  Contains broken functionality...

Use previous revision in this branch.



Modified:
   mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/CMakeLists.txt
   mlpack/branches/mlpack-bindings/src/mlpack/methods/neighbor_search/allknn_main.cpp

Modified: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/CMakeLists.txt
==============================================================================
--- mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/CMakeLists.txt	(original)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/CMakeLists.txt	Thu Sep 26 22:15:59 2013
@@ -58,63 +58,10 @@
 if(SWIGR)
   find_package(SWIG REQUIRED)
  
-#http://www.cmake.org/pipermail/cmake/2010-June/037468.html
-# This code sets the following variables
-# R_EXEC      - path to R executable
-# R_LIBS_USER - path to directory of user's R packages (defined only if R is found) 
-#
-# It also defines the following help functions if R is found:
-# FIND_R_PACKAGE(package)            - sets R_<PACKAGE> to ON if package is installed 
-# INSTALL_R_PACKAGE(package)         - installs package in ${R_LIBS_USER}
-# FIND_OR_INSTALL_R_PACKAGE(package) - finds package and installs it, if not found
-
-find_program(R_EXEC R)
-
-if(R_EXEC)
-	# R_LIBS_USER is always defined within R, even if it is not explicitly set by the user
-	execute_process(COMMAND "${R_EXEC}" "--slave" "-e" 
-		"print(Sys.getenv(\"R_LIBS_USER\"))"
-		OUTPUT_VARIABLE _rlibsuser
-		OUTPUT_STRIP_TRAILING_WHITESPACE)
-	string(REGEX REPLACE "[ ]*(R_LIBS_USER)[ ]*\n\"(.*)\"" "\\2"
-		R_LIBS_USER ${_rlibsuser})
-	
-	function(find_r_package package)
-		string(TOUPPER ${package} package_upper)
-		if(NOT R_${package_upper})
-			if(ARGC GREATER 1 AND ARGV1 STREQUAL "REQUIRED")
-				set(${package}_FIND_REQUIRED TRUE)
-			endif()
-			execute_process(COMMAND "${R_EXEC}" "--slave" "-e" 
-				"library('${package}')"
-				RESULT_VARIABLE _${package}_status 
-				ERROR_QUIET OUTPUT_QUIET)
-			if(NOT _${package}_status)
-				set(R_${package_upper} TRUE CACHE BOOL 
-					"Whether the R package ${package} is installed")
-			endif(NOT _${package}_status)
-		endif(NOT R_${package_upper})
-		find_package_handle_standard_args(R_${package} DEFAULT_MSG R_${package_upper})
-	endfunction(find_r_package)
-	
-	function(install_r_package package)
-		message(STATUS "Installing R package ${package}...")
-		execute_process(COMMAND "${R_EXEC}" "--slave" "-e"
-			"install.packages('${package}','${R_LIBS_USER}','http://cran.r-project.org')"
-			ERROR_QUIET OUTPUT_QUIET)
-		message(STATUS "R package ${package} has been installed in ${R_LIBS_USER}")
-	endfunction(install_r_package)
-	
-	function(find_or_install_r_package package)
-		find_r_package(${package})
-		string(TOUPPER ${package} package_upper)
-		if(NOT R_${package_upper})
-			install_r_package(${package})
-		endif()
-	endfunction(find_or_install_r_package)
-endif(R_EXEC)
+include_directories(/usr/share/R/include)
+link_directories(/usr/lib/R/lib)
+link_libraries(R)
 
-  find_r_package(base REQUIRED)
   
   include(${SWIG_USE_FILE})
 
@@ -124,20 +71,24 @@
   
   set(CMAKE_SWIG_OUTDIR ${CMAKE_BINARY_DIR}/bindings)
 
+  set_source_files_properties(allknn_r.i PROPERTIES 
+    CPLUSPLUS ON
+  )
+
   set_source_files_properties(allknn_r.i PROPERTIES
     SWIG_FLAGS "-includeall"
   )
 
-  SWIG_ADD_MODULE(allknnmodule
-    r
+  SWIG_ADD_MODULE(allknnmoduler
+    R
     allknn_r.i
     ${CMAKE_SOURCE_DIR}/src/mlpack/methods/neighbor_search/allknn_main.cpp
   )
 
-  set_target_properties(_allknnmodule PROPERTIES
+  set_target_properties(allknnmoduler PROPERTIES
     LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bindings)
 
-  SWIG_LINK_LIBRARIES(allknnmodule
+  SWIG_LINK_LIBRARIES(allknnmoduler
     mlpack
     R
   )

Modified: mlpack/branches/mlpack-bindings/src/mlpack/methods/neighbor_search/allknn_main.cpp
==============================================================================
--- mlpack/branches/mlpack-bindings/src/mlpack/methods/neighbor_search/allknn_main.cpp	(original)
+++ mlpack/branches/mlpack-bindings/src/mlpack/methods/neighbor_search/allknn_main.cpp	Thu Sep 26 22:15:59 2013
@@ -64,8 +64,9 @@
 
 
 //Function prototypes for allKnn and main (consider renaming allKnn)
-void allKnn(arma::mat &referenceData, arma::mat &queryData, arma::mat &distances, arma::Mat<size_t> &neighbors, int lsInt, size_t k, bool naive, bool singleMode, bool randomBasis,  bool coverTree);
-void saveOutput(string distancesFile, string neighborsFile, arma::mat &distances, arma::Mat<size_t> &neighbors);
+void allknn(arma::mat &referenceData, arma::mat &queryData, int lsInt, size_t k, bool naive, bool singleMode, bool randomBasis,  bool coverTree, arma::mat *distances,  
+            arma::Mat<size_t> *neighbors);
+void saveOutput(string distancesFile, string neighborsFile, arma::mat *distances, arma::Mat<size_t> *neighbors);
 //End prototypes
 
 
@@ -111,30 +112,45 @@
   }
 
 
-  //Initialize some containers to hold results
+  //Initialize some containers to hold results.
 
-  arma::mat distances;  
+  arma::mat *distances = new arma::mat;
 
-  arma::Mat< size_t > neighbors;
+  arma::Mat< size_t > *neighbors = new arma::Mat< size_t >;
 
 
 
   //Call the allknn function, passing all containers by reference
 
-  allKnn(referenceData, queryData, distances, neighbors, lsInt, k, naive, singleMode, randomBasis, coverTree);
+  allknn(referenceData, queryData, lsInt, k, naive, singleMode, randomBasis, coverTree, distances, neighbors);
 
 
 
   //Call the saveData function with the result from allknn function
 
   saveOutput(distancesFile, neighborsFile, distances, neighbors);
+
+
+  
+  //Cleanup
+  delete distances;
+  delete neighbors;
+
 }
 
 
 //allknn function
-void allKnn(arma::mat &referenceData, arma::mat &queryData, arma::mat &distances, arma::Mat<size_t> &neighbors, int lsInt, size_t k, bool naive, bool singleMode, bool randomBasis, bool coverTree){
+void allknn(arma::mat &referenceData, arma::mat &queryData, int lsInt, size_t k, bool naive, bool singleMode, bool randomBasis, bool coverTree, arma::mat *distPtr,
+            arma::Mat<size_t> *neighPtr)
+{
+
+  arma::mat &distances = *distPtr;
+  arma::Mat< size_t > &neighbors = *neighPtr;
+ 
+
   // Sanity check on k value: must be greater than 0, must be less than the
-  // number of reference points.
+  // number of reference points
+
   if (k > referenceData.n_cols)
   {
     Log::Fatal << "Invalid k: " << k << "; must be greater than 0 and less ";
@@ -342,8 +358,9 @@
 
 
 // Save output.
-void saveOutput(string distancesFile, string neighborsFile, arma::mat &distances, arma::Mat<size_t> &neighbors){
+void saveOutput(string distancesFile, string neighborsFile, arma::mat *distances, arma::Mat<size_t> *neighbors)
+{
 
-  data::Save(distancesFile, distances);
-  data::Save(neighborsFile, neighbors);
+  data::Save(distancesFile, *distances);
+  data::Save(neighborsFile, *neighbors);
 }



More information about the mlpack-svn mailing list