TurboPFor: Java Critical Natives Interface

This commit is contained in:
x
2017-07-21 22:17:55 +02:00
parent 48c469f95b
commit c5a5673b53

63
jic.c
View File

@ -49,6 +49,9 @@
#define JNIENCSB(__func, _in, n, _out, x, b) JNIB; jint l = __func ((unsigned *)in, n,(unsigned char *)out, x, b) - (unsigned char *)out; JNIE; return l
#define JNIDECSB(__func, _in, n, _out, x, b) JNIB; jint l = __func ((unsigned char *)in, n,(unsigned *)out, x, b) - (unsigned char *)in; JNIE; return l
#define JNINENC(__func, _in, n, _out ) JNIB; jint l = __func ((unsigned *)in, n,(unsigned char *)out ); JNIE; return l
#define JNINDEC(__func, _in, n, _out ) JNIB; jint l = __func ((unsigned char *)in, n,(unsigned *)out ); JNIE; return l
#define JNIBI jboolean _inlock; jint i = (*env)->GetArrayLength(env, _in); jbyte *in = (jbyte *)(*env)->GetPrimitiveArrayCritical(env, _in, &_inlock);
#define JNIEI (*env)->ReleasePrimitiveArrayCritical(env, _in, in, JNI_ABORT);
@ -70,23 +73,23 @@ JNIEXPORT jint JNICALL Java_jic_vsenc32( JNIEnv *env, jclass cls, jin
JNIEXPORT jint JNICALL Java_jic_vsdec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDEC(vsdec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_vsdec32( jint i, jbyte *in, jint n, jint o, jint *out ) { return vsdec32( (unsigned char *)in, n, (unsigned *)out ) - (unsigned char *)in; }
//--------------------------------- TurboPFor: PFor/PForDelta -----------------------------------------------------------------
// High level API - n = unlimited
JNIEXPORT jint JNICALL Java_jic_p4nenc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENC(p4nenc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nenc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nenc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4ndec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDEC(p4ndec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndec32( jint i, jbyte *in, jint n, jint o, jint *out ) { return p4ndec32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nenc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNNIENC(p4nenc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nenc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nenc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4ndec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNNIDEC(p4ndec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndec32( jint i, jbyte *in, jint n, jint o, jint *out ) { return p4ndec32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nenc128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENC(p4nenc128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nenc128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nenc128v32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4ndec128v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDEC(p4ndec128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndec128v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return p4ndec128v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nenc128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNNIENC(p4nenc128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nenc128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nenc128v32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4ndec128v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNNIDEC(p4ndec128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndec128v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return p4ndec128v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nenc256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENC(p4nenc256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nenc256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nenc256v32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4ndec256v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDEC(p4ndec256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndec256v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return p4ndec256v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nenc256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNNIENC(p4nenc256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nenc256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nenc256v32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4ndec256v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNNIDEC(p4ndec256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndec256v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return p4ndec256v32( (unsigned char *)in, n, (unsigned *)out ); }
//--------
JNIEXPORT jint JNICALL Java_jic_p4ndenc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENC(p4ndenc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndenc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4ndenc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nddec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDEC(p4nddec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nddec32( jint i, jbyte *in, jint n, jint o, jint *out, jint start ) { return p4nddec32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4ndenc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNNIENC(p4ndenc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4ndenc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4ndenc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nddec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNNIDEC(p4nddec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nddec32( jint i, jbyte *in, jint n, jint o, jint *out, jint start ) { return p4nddec32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nd1enc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENC(p4nd1enc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nd1enc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nd1enc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nd1dec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDEC(p4nd1dec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nd1dec32( jint i, jbyte *in, jint n, jint o, jint *out, jint start ) { return p4nd1dec32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nd1enc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNNIENC(p4nd1enc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nd1enc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nd1enc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nd1dec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNNIDEC(p4nd1dec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nd1dec32( jint i, jbyte *in, jint n, jint o, jint *out, jint start ) { return p4nd1dec32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nzenc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENC(p4nzenc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nzenc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nzenc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nzdec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDEC(p4nzdec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nzdec32( jint i, jbyte *in, jint n, jint o, jint *out, jint start ) { return p4nzdec32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nzenc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(p4nzenc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nzenc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4nzenc32( (unsigned *)in, n, (unsigned char *)out ); }
JNIEXPORT jint JNICALL Java_jic_p4nzdec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(p4nzdec32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4nzdec32( jint i, jbyte *in, jint n, jint o, jint *out, jint start ) { return p4nzdec32( (unsigned char *)in, n, (unsigned *)out ); }
// Low level: Single block
JNIEXPORT jint JNICALL Java_jic_p4denc32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENC(p4enc32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4enc32( jint i, jint *in, jint n, jint o, jbyte *out ) { return p4enc32( (unsigned *)in, n, (unsigned char *)out ) - (unsigned char *)out; }
@ -103,14 +106,14 @@ JNIEXPORT jint JNICALL Java_jic_p4ddec32( JNIEnv *env, jclass cls, jbyt
JNIEXPORT jint JNICALL Java_jic_p4d1dec32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out, jint start ) { JNIDECS(p4d1dec32, _in, n, _out, start ); } JNIEXPORT jint JNICALL JavaCritical_jic_p4d1dec32( jint i, jbyte *in, jint n, jint o, jint *out, jint start ) { return p4d1dec32( (unsigned char *)in, n, (unsigned *)out, start ) - (unsigned char *)in; }
//--------------------------------- BitPack/BitUnpack ----------------------------------------------------------------------------
// High level API
JNIEXPORT jint JNICALL Java_jic_bitnpack32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCS(bitnpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnpack32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnpack32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnunpack32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECS(bitnunpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnunpack32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnunpack32( (unsigned char *)in, n, (unsigned *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnpack32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitnpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnpack32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnpack32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnunpack32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitnunpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnunpack32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnunpack32( (unsigned char *)in, n, (unsigned *)out); }
JNIEXPORT jint JNICALL Java_jic_bitndpack32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCSB(bitndpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndpack32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitndpack32(( unsigned *)in, n, (unsigned char *)out);}
JNIEXPORT jint JNICALL Java_jic_bitndunpack32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECSB(bitndunpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndunpack32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitndunpack32(( unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitndpack32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitndpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndpack32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitndpack32(( unsigned *)in, n, (unsigned char *)out);}
JNIEXPORT jint JNICALL Java_jic_bitndunpack32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitndunpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndunpack32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitndunpack32(( unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitnd1pack32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCSB(bitnd1pack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1pack32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnd1pack32(( unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnd1unpack32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECSB(bitnd1unpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1unpack32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnd1unpack32( (unsigned char *)in, n, (unsigned *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnd1pack32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitnd1pack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1pack32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnd1pack32(( unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnd1unpack32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitnd1unpack32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1unpack32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnd1unpack32( (unsigned char *)in, n, (unsigned *)out); }
// low level API
JNIEXPORT jint JNICALL Java_jic_bitpack32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out, jint b) { JNIENCS(bitpack32, _in, n, _out, b); } JNIEXPORT jint JNICALL JavaCritical_jic_bitpack32( jint i, jint *in, jint n, jint o, jbyte *out, jint b ) { return bitpack32( (unsigned *)in, n, (unsigned char *)out, b) - (unsigned char *)out; }
@ -124,24 +127,24 @@ JNIEXPORT jint JNICALL Java_jic_bitd1unpack32( JNIEnv *env, jclass cls, jbyt
//--------------------------------- BitPack/BitUnpack SIMD -----------------------------------------------------------------------------------
// GHigh Level API: n unlimited
JNIEXPORT jint JNICALL Java_jic_bitnpack128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCS(bitnpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnpack128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnpack128v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnunpack128v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECS(bitnunpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnunpack128v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnunpack128v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitnpack128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitnpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnpack128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnpack128v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnunpack128v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitnunpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnunpack128v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnunpack128v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitndpack128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCSB(bitndpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndpack128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitndpack128v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitndunpack128v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECSB(bitndunpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndunpack128v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitndunpack128v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitndpack128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitndpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndpack128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitndpack128v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitndunpack128v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitndunpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndunpack128v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitndunpack128v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitnd1pack128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCSB(bitnd1pack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1pack128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnd1pack128v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnd1unpack128v32(JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECSB(bitnd1unpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1unpack128v32(jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnd1unpack128v32((unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitnd1pack128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitnd1pack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1pack128v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnd1pack128v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnd1unpack128v32(JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitnd1unpack128v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1unpack128v32(jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnd1unpack128v32((unsigned char *)in, n, (unsigned *)out ); }
// AVX2
JNIEXPORT jint JNICALL Java_jic_bitnpack256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCS(bitnpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnpack256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnpack256v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnunpack256v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECS(bitnunpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnunpack256v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnunpack256v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitnpack256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitnpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnpack256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnpack256v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnunpack256v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitnunpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnunpack256v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnunpack256v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitndpack256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCSB(bitndpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndpack256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitndpack256v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitndunpack256v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECSB(bitndunpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndunpack256v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitndunpack256v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitndpack256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitndpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndpack256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitndpack256v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitndunpack256v32( JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitndunpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitndunpack256v32( jint i, jbyte *in, jint n, jint o, jint *out ) { return bitndunpack256v32( (unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitnd1pack256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNIENCSB(bitnd1pack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1pack256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnd1pack256v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnd1unpack256v32(JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNIDECSB(bitnd1unpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1unpack256v32(jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnd1unpack256v32((unsigned char *)in, n, (unsigned *)out ); }
JNIEXPORT jint JNICALL Java_jic_bitnd1pack256v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out ) { JNINENC(bitnd1pack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1pack256v32( jint i, jint *in, jint n, jint o, jbyte *out ) { return bitnd1pack256v32( (unsigned *)in, n, (unsigned char *)out); }
JNIEXPORT jint JNICALL Java_jic_bitnd1unpack256v32(JNIEnv *env, jclass cls, jbyteArray _in, jint n, jintArray _out ) { JNINDEC(bitnd1unpack256v32, _in, n, _out ); } JNIEXPORT jint JNICALL JavaCritical_jic_bitnd1unpack256v32(jint i, jbyte *in, jint n, jint o, jint *out ) { return bitnd1unpack256v32((unsigned char *)in, n, (unsigned *)out ); }
// Low level API
JNIEXPORT jint JNICALL Java_jic_bitpack128v32( JNIEnv *env, jclass cls, jintArray _in, jint n, jbyteArray _out, jint b) { JNIENCS(bitpack128v32, _in, n, _out, b); } JNIEXPORT jint JNICALL JavaCritical_jic_bitpack128v32( jint i, jint *in, jint n, jint o, jbyte *out, jint b) { return bitpack128v32( (unsigned *)in, n, (unsigned char *)out, b) - (unsigned char *)out; }