diff options
Diffstat (limited to 'swig/java')
-rw-r--r-- | swig/java/Makefile.am | 8 | ||||
-rw-r--r-- | swig/java/jxtract.i | 36 | ||||
-rw-r--r-- | swig/java/test.java | 6 |
3 files changed, 18 insertions, 32 deletions
diff --git a/swig/java/Makefile.am b/swig/java/Makefile.am index 4830d5a..e45d297 100644 --- a/swig/java/Makefile.am +++ b/swig/java/Makefile.am @@ -3,9 +3,9 @@ TESTNAME = test JAVA = java javasources = \ - SWIGTYPE_p_float.java \ + SWIGTYPE_p_double.java \ SWIGTYPE_p_int.java \ - SWIGTYPE_p_p_float.java \ + SWIGTYPE_p_p_double.java \ SWIGTYPE_p_unit_.java \ SWIGTYPE_p_void.java \ xtract_bool_t.java \ @@ -35,9 +35,9 @@ javasources = \ javaclasses = \ - SWIGTYPE_p_float.class \ + SWIGTYPE_p_double.class \ SWIGTYPE_p_int.class \ - SWIGTYPE_p_p_float.class \ + SWIGTYPE_p_p_double.class \ SWIGTYPE_p_unit_.class \ SWIGTYPE_p_void.class \ xtract_bool_t.class \ diff --git a/swig/java/jxtract.i b/swig/java/jxtract.i index 6918436..5c8c1db 100644 --- a/swig/java/jxtract.i +++ b/swig/java/jxtract.i @@ -2,29 +2,22 @@ %include "../xtract.i" %include "arrays_java.i" -/* -%{ -int mean(const float *data, const int N, void *in, float *result) { - return xtract_mean(data, N, in, result); -} -%} -*/ -%apply float[] {const float *data}; -/*%apply void *in {const void *argv}; */ -%apply float *OUTPUT { float *result }; +%apply double[] {const double *data}; +%apply double *OUTPUT { double *result }; %typemap(in,numinputs=0) JNIEnv *env "$1 = jenv;" -%javamethodmodifiers arr2voidf "private"; +%javamethodmodifiers arr2voidd "private"; %javamethodmodifiers arr2voidi "private"; -%javamethodmodifiers freearrf "private"; +%javamethodmodifiers freearrd "private"; %javamethodmodifiers freearri "private"; + %inline %{ -jlong arr2voidf(JNIEnv *env, jfloatArray arr) { +jlong arr2voidd(JNIEnv *env, jdoubleArray arr) { void *ptr = (*env)->GetFloatArrayElements(env, arr, NULL); return (intptr_t)ptr; } -void freearrf(JNIEnv *env, jfloatArray arr, jlong map) { +void freearrd(JNIEnv *env, jdoubleArray arr, jlong map) { void *ptr = 0; ptr = *(void **)↦ (*env)->ReleaseFloatArrayElements(env, arr, ptr, JNI_ABORT); @@ -45,8 +38,8 @@ void freearri(JNIEnv *env, jintArray arr, jlong map) { %pragma(java) modulecode=%{ private static long arrPtr(Object o) { - if (o instanceof float[]) { - return arr2voidf((float[])o); + if (o instanceof double[]) { + return arr2voidd((double[])o); } else if (o instanceof int[]) { return arr2voidi((int[])o); @@ -58,8 +51,8 @@ void freearri(JNIEnv *env, jintArray arr, jlong map) { } private static void freeArrPtr(Object o, long addr) { - if (o instanceof float[]) { - freearrf((float[])o, addr); + if (o instanceof double[]) { + freearrd((double[])o, addr); return; } else if (o instanceof int[]) { @@ -76,12 +69,5 @@ void freearri(JNIEnv *env, jintArray arr, jlong map) { %typemap(jstype) void *argv "Object" %typemap(javain,pre=" long tmp$javainput = arrPtr($javainput);",post=" freeArrPtr($javainput, tmp$javainput);") void *argv "tmp$javainput" -/* -int xtract_mean(const float *data, const int N, void *argv, float *result); -int xtract_variance(const float *data, const int N, void *argv, float *result); -*/ %include xtract_redeclare.i -/*%{ -#include "xtract/xtract_scalar.h" -%}*/ diff --git a/swig/java/test.java b/swig/java/test.java index 54328aa..82dd768 100644 --- a/swig/java/test.java +++ b/swig/java/test.java @@ -18,9 +18,9 @@ public class test { int len = 5; int retval = 0; - float mean[] = new float[1]; - float variance[] = new float[1]; - float data[] = new float[len]; + double mean[] = new double[1]; + double variance[] = new double[1]; + double data[] = new double[len]; for (int i = 0; i < len; i++){ System.out.print(i * 3 + ", "); |