AArch64: Port frameworks/ml

Port for systems that have 32- or 64-bit pointers by
converting the use of int for pointers to the use of
long in Java code, and jint to jlong in the
corresponding JNI C++ code.

Change-Id: I174423dd2f17adc90a0ebd439c8679c404afe549
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
diff --git a/bordeaux/learning/multiclass_pa/java/android/bordeaux/learning/MulticlassPA.java b/bordeaux/learning/multiclass_pa/java/android/bordeaux/learning/MulticlassPA.java
index 9e81803..8a868e1 100644
--- a/bordeaux/learning/multiclass_pa/java/android/bordeaux/learning/MulticlassPA.java
+++ b/bordeaux/learning/multiclass_pa/java/android/bordeaux/learning/MulticlassPA.java
@@ -49,20 +49,20 @@
         System.loadLibrary("bordeaux");
     }
 
-    private int nativeClassifier;
+    private long nativeClassifier;
 
     /*
      * Initialize native classifier
      */
-    private native int initNativeClassifier(int num_classes, int num_dims, float aggressiveness);
+    private native long initNativeClassifier(int num_classes, int num_dims, float aggressiveness);
 
-    private native void deleteNativeClassifier(int classPtr);
+    private native void deleteNativeClassifier(long classPtr);
 
     private native boolean nativeSparseTrainOneExample(int[] index_array,
                                                      float[] float_array,
-                                                     int target, int classPtr);
+                                                     int target, long classPtr);
 
     private native int nativeSparseGetClass(int[] index_array,
                                             float[] float_array,
-                                            int classPtr);
+                                            long classPtr);
 }
diff --git a/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.cpp b/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.cpp
index 68773c8..65575de 100644
--- a/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.cpp
+++ b/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.cpp
@@ -33,7 +33,7 @@
   }
 }
 
-jint Java_android_bordeaux_learning_MulticlassPA_initNativeClassifier(JNIEnv* env,
+jlong Java_android_bordeaux_learning_MulticlassPA_initNativeClassifier(JNIEnv* env,
                                                        jobject thiz,
                                                        jint num_classes,
                                                        jint num_dims,
@@ -41,13 +41,13 @@
   MulticlassPA* classifier = new MulticlassPA(num_classes,
                                               num_dims,
                                               aggressiveness);
-  return ((jint) classifier);
+  return ((jlong) classifier);
 }
 
 
 jboolean Java_android_bordeaux_learning_MulticlassPA_deleteNativeClassifier(JNIEnv* env,
                                                              jobject thiz,
-                                                             jint paPtr) {
+                                                             jlong paPtr) {
   MulticlassPA* classifier = (MulticlassPA*) paPtr;
   delete classifier;
   return JNI_TRUE;
@@ -58,7 +58,7 @@
                                                                   jintArray index_array,
                                                                   jfloatArray value_array,
                                                                   jint target,
-                                                                  jint paPtr) {
+                                                                  jlong paPtr) {
   MulticlassPA* classifier = (MulticlassPA*) paPtr;
 
   if (classifier && index_array && value_array) {
@@ -90,7 +90,7 @@
                                                        jobject thiz,
                                                        jintArray index_array,
                                                        jfloatArray value_array,
-                                                       jint paPtr) {
+                                                       jlong paPtr) {
 
   MulticlassPA* classifier = (MulticlassPA*) paPtr;
 
diff --git a/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.h b/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.h
index 7e9edf9..81fca8a 100644
--- a/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.h
+++ b/bordeaux/learning/multiclass_pa/jni/jni_multiclass_pa.h
@@ -23,7 +23,7 @@
 extern "C" {
 #endif
 
-JNIEXPORT jint JNICALL
+JNIEXPORT jlong JNICALL
 Java_android_bordeaux_learning_MulticlassPA_initNativeClassifier(JNIEnv* env,
                                                   jobject thiz,
                                                   jint num_classes,
@@ -34,7 +34,7 @@
 JNIEXPORT jboolean JNICALL
 Java_android_bordeaux_learning_MulticlassPA_deleteNativeClassifier(JNIEnv* env,
                                                     jobject thiz,
-                                                    jint paPtr);
+                                                    jlong paPtr);
 
 JNIEXPORT jboolean JNICALL
 Java_android_bordeaux_learning_MulticlassPA_nativeSparseTrainOneExample(JNIEnv* env,
@@ -42,14 +42,14 @@
                                                          jintArray index_array,
                                                          jfloatArray value_array,
                                                          jint target,
-                                                         jint paPtr);
+                                                         jlong paPtr);
 
 JNIEXPORT jint JNICALL
 Java_android_bordeaux_learning_MulticlassPA_nativeSparseGetClass(JNIEnv* env,
                                                   jobject thiz,
                                                   jintArray index_array,
                                                   jfloatArray value_array,
-                                                  jint paPtr);
+                                                  jlong paPtr);
 
 
 #ifdef __cplusplus
diff --git a/bordeaux/learning/stochastic_linear_ranker/java/android/bordeaux/learning/StochasticLinearRanker.java b/bordeaux/learning/stochastic_linear_ranker/java/android/bordeaux/learning/StochasticLinearRanker.java
index 35d3ec1..59f32a9 100644
--- a/bordeaux/learning/stochastic_linear_ranker/java/android/bordeaux/learning/StochasticLinearRanker.java
+++ b/bordeaux/learning/stochastic_linear_ranker/java/android/bordeaux/learning/StochasticLinearRanker.java
@@ -159,35 +159,35 @@
         System.loadLibrary("bordeaux");
     }
 
-    private int mNativeClassifier;
+    private long mNativeClassifier;
 
     /*
      * The following methods are the java stubs for the jni implementations.
      */
-    private native int initNativeClassifier();
+    private native long initNativeClassifier();
 
-    private native void deleteNativeClassifier(int classifierPtr);
+    private native void deleteNativeClassifier(long classifierPtr);
 
     private native boolean nativeUpdateClassifier(
             String[] keys_positive,
             float[] values_positive,
             String[] keys_negative,
             float[] values_negative,
-            int classifierPtr);
+            long classifierPtr);
 
-    private native float nativeScoreSample(String[] keys, float[] values, int classifierPtr);
+    private native float nativeScoreSample(String[] keys, float[] values, long classifierPtr);
 
     private native void nativeGetWeightClassifier(String [] keys, float[] values, float normalizer,
-                                                  int classifierPtr);
+                                                  long classifierPtr);
 
     private native void nativeGetParameterClassifier(String [] keys, String[] values,
-                                                  int classifierPtr);
+                                                  long classifierPtr);
 
-    private native int nativeGetLengthClassifier(int classifierPtr);
+    private native int nativeGetLengthClassifier(long classifierPtr);
 
     private native boolean nativeSetWeightClassifier(String [] keys, float[] values,
-                                                     float normalizer, int classifierPtr);
+                                                     float normalizer, long classifierPtr);
 
     private native boolean nativeSetParameterClassifier(String key, String value,
-                                                        int classifierPtr);
+                                                        long classifierPtr);
 }
diff --git a/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.cpp b/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.cpp
index 211f727..f653eb9 100644
--- a/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.cpp
+++ b/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.cpp
@@ -72,7 +72,7 @@
     jobjectArray key_array_model,
     jfloatArray value_array_model,
     jfloat normalizer_model,
-    jint paPtr) {
+    jlong paPtr) {
 
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
   if (classifier && key_array_model && value_array_model && normalizer_model) {
@@ -97,7 +97,7 @@
     jobject thiz,
     jstring key,
     jstring value,
-    jint paPtr) {
+    jlong paPtr) {
 
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
   jboolean iscopy;
@@ -229,7 +229,7 @@
 jint Java_android_bordeaux_learning_StochasticLinearRanker_nativeGetLengthClassifier(
   JNIEnv* env,
   jobject thiz,
-  jint paPtr) {
+  jlong paPtr) {
 
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
   SparseWeightVector<string> M_weights;
@@ -251,7 +251,7 @@
     jobject thiz,
     jobjectArray key_array_param,
     jobjectArray value_array_param,
-    jint paPtr){
+    jlong paPtr){
 
   std::string s;
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
@@ -371,7 +371,7 @@
   jobjectArray key_array_model,
   jfloatArray value_array_model,
   jfloat normalizer,
-  jint paPtr) {
+  jlong paPtr) {
 
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
   SparseWeightVector<string> M_weights;
@@ -383,15 +383,15 @@
   DecomposeSparseWeightVector(env, &key_array_model, &value_array_model, array_len, &M_weights);
 }
 
-jint Java_android_bordeaux_learning_StochasticLinearRanker_initNativeClassifier(JNIEnv* env,
+jlong Java_android_bordeaux_learning_StochasticLinearRanker_initNativeClassifier(JNIEnv* env,
                              jobject thiz) {
   StochasticLinearRanker<string>* classifier = new StochasticLinearRanker<string>();
-  return ((jint) classifier);
+  return ((jlong) classifier);
 }
 
 jboolean Java_android_bordeaux_learning_StochasticLinearRanker_deleteNativeClassifier(JNIEnv* env,
                                jobject thiz,
-                               jint paPtr) {
+                               jlong paPtr) {
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
   delete classifier;
   return JNI_TRUE;
@@ -404,7 +404,7 @@
   jfloatArray value_array_positive,
   jobjectArray key_array_negative,
   jfloatArray value_array_negative,
-  jint paPtr) {
+  jlong paPtr) {
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
 
   if (classifier && key_array_positive && value_array_positive &&
@@ -441,7 +441,7 @@
   jobject thiz,
   jobjectArray key_array,
   jfloatArray value_array,
-  jint paPtr) {
+  jlong paPtr) {
 
   StochasticLinearRanker<string>* classifier = (StochasticLinearRanker<string>*) paPtr;
 
diff --git a/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.h b/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.h
index 0f20c90..09a7047 100644
--- a/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.h
+++ b/bordeaux/learning/stochastic_linear_ranker/jni/jni_stochastic_linear_ranker.h
@@ -105,7 +105,7 @@
 const char * LOSS_TYPE_PAIRWISE = "PAIRWISE";
 const char * LOSS_TYPE_RECIPROCAL_RANK = "RECIPROCAL_RANK";
 
-JNIEXPORT jint JNICALL
+JNIEXPORT jlong JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_initNativeClassifier(
     JNIEnv* env,
     jobject thiz);
@@ -115,7 +115,7 @@
 Java_android_bordeaux_learning_StochasticLinearRanker_deleteNativeClassifier(
     JNIEnv* env,
     jobject thiz,
-    jint paPtr);
+    jlong paPtr);
 
 JNIEXPORT jboolean JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_nativeUpdateClassifier(
@@ -125,7 +125,7 @@
     jfloatArray value_array_positive,
     jobjectArray key_array_negative,
     jfloatArray value_array_negative,
-    jint paPtr);
+    jlong paPtr);
 
 JNIEXPORT jfloat JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_nativeScoreSample(
@@ -133,7 +133,7 @@
     jobject thiz,
     jobjectArray key_array,
     jfloatArray value_array,
-    jint paPtr);
+    jlong paPtr);
 
 JNIEXPORT void JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_nativeGetWeightClassifier(
@@ -142,7 +142,7 @@
     jobjectArray key_array_weight,
     jfloatArray value_array_weight,
     jfloat normalizer,
-    jint paPtr);
+    jlong paPtr);
 
 JNIEXPORT void JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_nativeGetParameterClassifier(
@@ -150,13 +150,13 @@
     jobject thiz,
     jobjectArray key_array_param,
     jobjectArray value_array_param,
-    jint paPtr);
+    jlong paPtr);
 
 JNIEXPORT jint JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_nativeGetLengthClassifier(
     JNIEnv* env,
     jobject thiz,
-    jint paPtr);
+    jlong paPtr);
 
 JNIEXPORT jboolean JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_nativeSetWeightClassifier(
@@ -165,7 +165,7 @@
     jobjectArray key_array_model,
     jfloatArray value_array_model,
     jfloat normalizer_model,
-    jint paPtr);
+    jlong paPtr);
 
 JNIEXPORT jboolean JNICALL
 Java_android_bordeaux_learning_StochasticLinearRanker_nativeSetParameterClassifier(
@@ -173,7 +173,7 @@
     jobject thiz,
     jstring key,
     jstring value,
-    jint paPtr);
+    jlong paPtr);
 
 #ifdef __cplusplus
 }