aboutsummaryrefslogtreecommitdiff
path: root/swig/java
diff options
context:
space:
mode:
Diffstat (limited to 'swig/java')
-rw-r--r--swig/java/Makefile.am8
-rw-r--r--swig/java/jxtract.i36
-rw-r--r--swig/java/test.java6
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 + ", ");