[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