@@ -6,49 +6,63 @@ BEGIN_EXTERN_C
66#define STATISTICS_FUNC (FUNC ) AF_MANGLE(Statistics, FUNC)
77
88JNIEXPORT jlong JNICALL STATISTICS_FUNC (afMean)(JNIEnv *env, jclass clazz,
9- jlong ref, jint dim) {
9+ jlong ref, jint dim) {
1010 af_array ret = 0 ;
1111 AF_CHECK (af_mean (&ret, ARRAY (ref), dim));
1212 return JLONG (ret);
1313}
1414
15- JNIEXPORT jlong JNICALL STATISTICS_FUNC (afMeanWeighted)(JNIEnv *env, jclass clazz,
16- jlong ref, jlong weightsRef,
15+ JNIEXPORT jlong JNICALL STATISTICS_FUNC (afMeanWeighted)(JNIEnv *env,
16+ jclass clazz, jlong ref,
17+ jlong weightsRef,
1718 jint dim) {
1819 af_array ret = 0 ;
1920 AF_CHECK (af_mean_weighted (&ret, ARRAY (ref), ARRAY (weightsRef), dim));
2021 return JLONG (ret);
2122}
2223
23- JNIEXPORT jdouble JNICALL STATISTICS_FUNC (afMeanAll)(JNIEnv *env,
24- jclass clazz, jlong ref,
25- jintArray dims) {
24+ JNIEXPORT jdouble JNICALL STATISTICS_FUNC (afMeanAll)(JNIEnv *env, jclass clazz,
25+ jlong ref) {
2626 double ret = 0 ;
27- jint *dimptr = env->GetIntArrayElements (dims, 0 );
28- dim_t tdims[4 ] = {dimptr[0 ], dimptr[1 ], dimptr[2 ], dimptr[3 ]};
2927 AF_CHECK (af_mean_all (&ret, NULL , ARRAY (ref)));
30- env->ReleaseIntArrayElements (dims, dimptr, 0 );
31- return (jdouble)ret;
28+ return (jdouble)ret;
3229}
3330
34- #define INSTANTIATE_MEAN (jtype, param ) \
35- JNIEXPORT jobject JNICALL STATISTICS_FUNC (afMeanAll##jtype)(JNIEnv *env, jclass clazz, \
36- jlong ref, \
37- jintArray dims) { \
38- double real = 0 , img = 0 ; \
39- jint *dimptr = env->GetIntArrayElements (dims, 0 ); \
40- dim_t tdims[4 ] = {dimptr[0 ], dimptr[1 ], dimptr[2 ], dimptr[3 ]}; \
41- AF_CHECK (af_mean_all (&real, &img, ARRAY (ref))); \
42- env->ReleaseIntArrayElements (dims, dimptr, 0 ); \
43- jclass cls = env->FindClass (" com/arrayfire/" #jtype); \
44- jmethodID id = env->GetMethodID (cls, " <init>" , " (" #param" )V" ); \
45- jobject obj = env->NewObject (cls, id, real, img); \
46- return obj; \
31+ JNIEXPORT jdouble JNICALL STATISTICS_FUNC (afMeanAllWeighted)(JNIEnv *env,
32+ jclass clazz,
33+ jlong ref,
34+ jlong weightsRef) {
35+ double ret = 0 ;
36+ AF_CHECK (af_mean_all_weighted (&ret, NULL , ARRAY (ref), ARRAY (weightsRef)));
37+ return (jdouble)ret;
4738}
4839
40+ #define INSTANTIATE_MEAN (jtype, param ) \
41+ JNIEXPORT jobject JNICALL STATISTICS_FUNC (afMeanAll##jtype)( \
42+ JNIEnv * env, jclass clazz, jlong ref) { \
43+ double real = 0 , img = 0 ; \
44+ AF_CHECK (af_mean_all (&real, &img, ARRAY (ref))); \
45+ jclass cls = env->FindClass (" com/arrayfire/" #jtype); \
46+ jmethodID id = env->GetMethodID (cls, " <init>" , " (" #param " )V" ); \
47+ jobject obj = env->NewObject (cls, id, real, img); \
48+ return obj; \
49+ }
50+
51+ #define INSTANTIATE_MEAN_WEIGHTED (jtype, param ) \
52+ JNIEXPORT jobject JNICALL STATISTICS_FUNC (afMeanAll##jtype##Weighted)( \
53+ JNIEnv * env, jclass clazz, jlong ref, jlong weightsRef) { \
54+ double real = 0 , img = 0 ; \
55+ AF_CHECK ( \
56+ af_mean_all_weighted (&real, &img, ARRAY (ref), ARRAY (weightsRef))); \
57+ jclass cls = env->FindClass (" com/arrayfire/" #jtype); \
58+ jmethodID id = env->GetMethodID (cls, " <init>" , " (" #param " )V" ); \
59+ jobject obj = env->NewObject (cls, id, real, img); \
60+ return obj; \
61+ }
62+
4963INSTANTIATE_MEAN (FloatComplex, FF)
5064INSTANTIATE_MEAN(DoubleComplex, DD)
65+ INSTANTIATE_MEAN_WEIGHTED(FloatComplex, FF)
66+ INSTANTIATE_MEAN_WEIGHTED(DoubleComplex, DD)
5167
5268END_EXTERN_C
53-
54-
0 commit comments