[mlpack-svn] r15669 - in mlpack/branches/mlpack-bindings/src/mlpack/bindings: . methods_bindings methods_bindings/cf methods_bindings/det methods_bindings/emst methods_bindings/fastmks methods_bindings/gmm methods_bindings/hmm methods_bindings/kernel_pca methods_bindings/kmeans methods_bindings/lars methods_bindings/linear_regression methods_bindings/local_coordinate_coding methods_bindings/lsh methods_bindings/mvu methods_bindings/naive_bayes methods_bindings/nca methods_bindings/neighbor_search methods_bindings/nmf methods_bindings/pca methods_bindings/radical methods_bindings/range_search methods_bindings/rann methods_bindings/sparse_coding octave python/allknn r
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Mon Aug 26 19:12:29 EDT 2013
Author: pyrotekniq
Date: Mon Aug 26 19:12:29 2013
New Revision: 15669
Log:
python binding
Added:
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/cf/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/cf/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/det/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/det/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/emst/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/emst/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/fastmks/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/fastmks/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/gmm/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/gmm/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/hmm/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/hmm/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kernel_pca/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kernel_pca/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kmeans/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kmeans/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lars/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lars/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/linear_regression/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/linear_regression/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/local_coordinate_coding/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/local_coordinate_coding/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lsh/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lsh/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/mvu/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/mvu/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/naive_bayes/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/naive_bayes/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nca/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nca/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/allknn_python (OLD WORKING).i
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/allknn_python.i
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nmf/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nmf/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/pca/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/pca/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/radical/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/radical/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/range_search/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/range_search/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/rann/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/rann/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/sparse_coding/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/sparse_coding/CMakeLists.txt
mlpack/branches/mlpack-bindings/src/mlpack/bindings/octave/
mlpack/branches/mlpack-bindings/src/mlpack/bindings/r/
Removed:
mlpack/branches/mlpack-bindings/src/mlpack/bindings/python/allknn/
Modified:
mlpack/branches/mlpack-bindings/src/mlpack/bindings/CMakeLists.txt
Modified: mlpack/branches/mlpack-bindings/src/mlpack/bindings/CMakeLists.txt
==============================================================================
--- mlpack/branches/mlpack-bindings/src/mlpack/bindings/CMakeLists.txt (original)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -7,15 +7,8 @@
endif(MATLAB_BINDINGS)
-#SWIG
-if(SWIGPYTHON)
- add_subdirectory(python)
-endif(SWIGPYTHON)
+#Methods to bind with SWIG
-if(SWIGR)
- add_subdirectory(r)
-endif(SWIGR)
-
-if(SWIGOCTAVE)
- add_subdirectory(octave)
-endif(SWIGOCTAVE)
+if(SWIGPYTHON OR SWIGR OR SWIGOCTAVE)
+ add_subdirectory(methods_bindings)
+endif()
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1,30 @@
+#Recurse into subdirectories of each method
+
+set(BINDINGDIRS
+# cf
+ det
+ emst
+ fastmks
+ gmm
+ hmm
+ kernel_pca
+ kmeans
+ lars
+ linear_regression
+ local_coordinate_coding
+ lsh
+ mvu
+ naive_bayes
+ nca
+ neighbor_search
+ nmf
+ pca
+ radical
+ range_search
+ rann
+ sparse_coding
+)
+
+foreach(dir ${BINDINGDIRS})
+ add_subdirectory(${dir})
+endforeach()
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/cf/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/cf/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/det/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/det/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/emst/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/emst/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/fastmks/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/fastmks/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/gmm/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/gmm/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/hmm/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/hmm/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kernel_pca/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kernel_pca/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kmeans/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/kmeans/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lars/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lars/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/linear_regression/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/linear_regression/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/local_coordinate_coding/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/local_coordinate_coding/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lsh/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/lsh/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/mvu/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/mvu/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/naive_bayes/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/naive_bayes/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nca/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nca/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1,145 @@
+# SWIG binding for allknn
+
+#Python
+
+if(SWIGPYTHON)
+ find_package(SWIG REQUIRED)
+ include(${SWIG_USE_FILE})
+
+ find_package(PythonLibs)
+
+ include_directories(${PYTHON_INCLUDE_PATH})
+
+ find_package(Boost COMPONENTS
+ python
+ )
+
+ include_directories(${Boost_INCLUDE_DIRS})
+
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+ set(CMAKE_SWIG_FLAGS "-c++")
+
+ set(CMAKE_SWIG_OUTDIR ${CMAKE_BINARY_DIR}/bindings)
+
+ set_source_files_properties(allknn_python.i PROPERTIES
+ CPLUSPLUS ON
+ )
+
+ set_source_files_properties(allknn_python.i PROPERTIES
+ SWIG_FLAGS "-includeall"
+ )
+
+ SWIG_ADD_MODULE(allknnmodule
+ python
+ allknn_python.i
+ ${CMAKE_SOURCE_DIR}/src/mlpack/methods/neighbor_search/allknn_main.cpp
+ )
+
+ set_target_properties(_allknnmodule PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bindings)
+
+ SWIG_LINK_LIBRARIES(allknnmodule
+ mlpack
+ ${PYTHON_LIBRARIES}
+ )
+
+endif(SWIGPYTHON)
+
+
+
+
+
+
+
+#R Language
+
+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)
+
+ find_r_package(base REQUIRED)
+
+ include(${SWIG_USE_FILE})
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+ set(CMAKE_SWIG_FLAGS "-c++")
+
+ set(CMAKE_SWIG_OUTDIR ${CMAKE_BINARY_DIR}/bindings)
+
+ set_source_files_properties(allknn_r.i PROPERTIES
+ SWIG_FLAGS "-includeall"
+ )
+
+ SWIG_ADD_MODULE(allknnmodule
+ r
+ allknn_r.i
+ ${CMAKE_SOURCE_DIR}/src/mlpack/methods/neighbor_search/allknn_main.cpp
+ )
+
+ set_target_properties(_allknnmodule PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bindings)
+
+ SWIG_LINK_LIBRARIES(allknnmodule
+ mlpack
+ R
+ )
+
+endif(SWIGR)
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/allknn_python (OLD WORKING).i
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/allknn_python (OLD WORKING).i Mon Aug 26 19:12:29 2013
@@ -0,0 +1,231 @@
+/**
+ * @file allknn_main.i
+ * @author Nicholas Johnston
+ *
+ * SWIG interface file for allknn function.
+ *
+ * ~ Python ~
+ *
+ */
+
+
+
+%module allknn
+
+
+
+/*******************************
+
+////////////////////////////////
+
+definitions and includes section
+
+////////////////////////////////
+
+*******************************/
+
+//Header %{ %} block
+%{
+
+ #define SWIG_FILE_WITH_INIT
+
+%}
+
+#include "../numpy.i"
+
+
+
+/************************
+
+/////////////////////////
+
+%init section
+
+////////////////////////
+
+***********************/
+
+%init%{
+
+import_array();
+
+%}
+
+
+
+/*********************
+
+//////////////////////
+
+%{... } section
+
+//////////////////////
+
+*********************/
+
+
+
+%{
+
+//Include mlpack core; this should allow us to use Armadillo types
+#include <mlpack/core.hpp>
+
+//Include allKnn in wrapper code
+extern 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);
+
+%}
+
+
+
+
+
+/**********************
+
+///////////////////////
+
+Typemap section
+
+///////////////////////
+
+**********************/
+
+%define PYARMA_TYPEMAPS(type)
+
+ /************************************
+ typemap(in)
+ ************************************/
+
+ %typemap(in) arma::Mat< type > *INPUT
+ {
+
+ // - NumPy to Armadillo
+
+
+ arma::Mat< type > *x = new arma::Mat< type >( (type*)(((PyArrayObject *)$input)->data), 2, 2, false, true );
+ //Note: make above line more easy to read! Split it apart!
+ //We need "strict=true" or memory will be deallocated when we go out of scope
+
+ //x.memptr() = $input.data; //member of numpy struct
+ //$1 is an arma::Mat< SWIGTYPE > object,
+ //so we point it at the input object,
+ //which should be column major
+ //But is it contiguous???
+
+ $1 = x; //Set the input argument
+ //to the memory address of an "arma::Mat< SWIGTYPE >"
+ //object that contains the marshalled input data
+
+ }
+
+ %typemap(freearg) arma::Mat< type > *INPUT
+ {
+
+ delete $1;
+
+ }
+
+
+ /************************************
+ typemap(argout)
+ ************************************/
+
+ %typemap(in) arma::Mat< type > *OUTPUT //(PyObject *arr = NULL)
+ {
+
+ /*
+ - NumPy to Armadillo
+ */
+
+ //REPLACE PY MEMORY ALLOCATION WITH ALLOCATION OF MEMORY HERE?
+
+ /*long dim[2];
+ dim[0]=2;
+ dim[1]=2;
+ int numDim = 2;*/
+
+ //arr = PyArray_SimpleNew(numDim, dim, NPY_DOUBLE);
+ PyArrayObject *a = (PyArrayObject *) $input;
+
+ arma::Mat< type > x( (type*)(((PyArrayObject *)a)->data), 2, 2, false, true );
+
+ //Note: make above line more easy to read! Split it apart!
+ //We need "strict=true" or memory will be deallocated when we go out of scope
+
+ //x.memptr() = $input.data; //member of numpy struct
+ //$1 is an arma::Mat< SWIGTYPE > object,
+ //so we point it at the input object,
+ //which should be column major
+ //But is it contiguous???
+
+ $1 = &x; //Set the input argument
+ //to the memory address of an "arma::Mat< SWIGTYPE >"
+ //object that contains the marshalled input data
+
+ }
+
+
+ %typemap(argout) arma::Mat< type > *OUTPUT
+ {
+/*
+
+ // - Armadillo is converted to NumPy matrix array object
+
+ // We use the "memptr()" member function provided in
+ // Armadillo to gain direct access to the memory block
+ // containing the array elements.
+
+
+ void *data; //This pointer will be set to the result of the "memptr()" member function
+ int numDim = 2; //Set the number of dimensions to 2 (As we are passing matrices)
+ //npy_intp *dim; //Array of values describing the size of each dimension
+ //int typenum = NPY_DOUBLE; //The type of the elements (e.g. double / NPY_DOUBLE )
+
+ long int dim[2];
+
+ data = $1->memptr(); //Set the data pointer to the memory block containing array elements
+
+ dim[0] = $1->n_cols; //Get size of dimension 0
+ dim[1] = $1->n_rows; //Get size of dimension 1
+
+ //$result = PyArray_SimpleNew(numDim, dim, typenum, data);*/
+
+//$result = SWIG_Python_AppendOutput($result, arr$argnum);
+$result = $input;
+ }
+
+%enddef
+
+/* Expand macros for C types that are supported by NumPy */
+PYARMA_TYPEMAPS(double)
+PYARMA_TYPEMAPS(size_t)
+
+
+/******************************
+
+///////////////////////////////
+
+%apply section
+
+///////////////////////////////
+
+******************************/
+
+%apply(arma::Mat< double > *INPUT) { (arma::mat &referenceData) };
+%apply(arma::Mat< double > *INPUT) { (arma::mat &queryData) };
+
+%apply(arma::Mat< double > *OUTPUT) { (arma::mat &distances) };
+%apply(arma::Mat< size_t > *OUTPUT) { (arma::Mat< size_t > &neighbors) };
+
+
+/******************************
+
+///////////////////////////////
+
+parse functions with arguments
+
+///////////////////////////////
+
+******************************/
+
+//Parse allKnn so that a wrapper can be generated for it
+extern 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);
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/allknn_python.i
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/neighbor_search/allknn_python.i Mon Aug 26 19:12:29 2013
@@ -0,0 +1,71 @@
+/**
+ * @file allknn_python.i
+ * @author Nicholas Johnston
+ *
+ * SWIG interface file for allknn function.
+ *
+ * ~ Python ~
+ *
+ */
+
+
+
+%module allknn
+
+
+
+
+/*********************
+
+//////////////////////
+
+%{... %} section
+
+//////////////////////
+
+*********************/
+
+#include "../../python/pythonarma.i"
+
+%{
+
+//Include allKnn in wrapper code
+extern 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);
+
+%}
+
+
+
+
+
+/******************************
+
+///////////////////////////////
+
+%apply section
+
+///////////////////////////////
+
+******************************/
+
+%apply arma::Mat< double > *INPUT { arma::mat &referenceData, arma::mat &queryData };
+
+
+%apply arma::Mat< double > *OUTPUT { arma::mat *distPtr };
+%apply arma::Mat< size_t > *OUTPUT { arma::Mat< size_t > *neighPtr };
+
+
+/******************************
+
+///////////////////////////////
+
+parse functions with arguments
+
+///////////////////////////////
+
+******************************/
+
+//Parse allKnn so that a wrapper can be generated for it
+extern 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);
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nmf/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/nmf/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/pca/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/pca/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/radical/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/radical/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/range_search/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/range_search/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/rann/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/rann/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
Added: mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/sparse_coding/CMakeLists.txt
==============================================================================
--- (empty file)
+++ mlpack/branches/mlpack-bindings/src/mlpack/bindings/methods_bindings/sparse_coding/CMakeLists.txt Mon Aug 26 19:12:29 2013
@@ -0,0 +1 @@
+#Empty for now
More information about the mlpack-svn
mailing list