📄 biginteger.c
字号:
mpz_srcptr src2; src1 = (mpz_srcptr)(*env)->GetObjectField(env, s1, number); src2 = (mpz_srcptr)(*env)->GetObjectField(env, s2, number); res = (mpz_ptr)(*env)->GetObjectField(env, r, number); mpz_ior(res, src1, src2);}voidJava_java_math_BigInteger_xor0(JNIEnv* env, jobject r, jobject s1, jobject s2){ mpz_ptr res; mpz_srcptr src1; mpz_srcptr src2; mpz_t tmp; src1 = (mpz_srcptr)(*env)->GetObjectField(env, s1, number); src2 = (mpz_srcptr)(*env)->GetObjectField(env, s2, number); res = (mpz_ptr)(*env)->GetObjectField(env, r, number); mpz_init(tmp); mpz_and(res, src1, src2); mpz_com(res, res); mpz_ior(tmp, src1, src2); mpz_and(res, res, tmp); mpz_clear(tmp);}voidJava_java_math_BigInteger_not0(JNIEnv* env, jobject r, jobject s){ mpz_ptr res; mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); res = (mpz_ptr)(*env)->GetObjectField(env, r, number); mpz_com(res, src);}voidJava_java_math_BigInteger_setbit0(JNIEnv* env, jobject r, jobject s, jint n){ mpz_ptr res; mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); res = (mpz_ptr)(*env)->GetObjectField(env, r, number); mpz_set(res, src); mpz_setbit(res, (unsigned long)n);}voidJava_java_math_BigInteger_clrbit0(JNIEnv* env, jobject r, jobject s, jint n){ mpz_ptr res; mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); res = (mpz_ptr)(*env)->GetObjectField(env, r, number); mpz_set(res, src); mpz_clrbit(res, (unsigned long)n);}jintJava_java_math_BigInteger_scansetbit0(JNIEnv* env, jobject s){ mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); return ((jint)mpz_scan1(src, 0));}jintJava_java_math_BigInteger_cmp0(JNIEnv* env, jclass cls UNUSED, jobject s1, jobject s2){ mpz_srcptr src1; mpz_srcptr src2; src1 = (mpz_srcptr)(*env)->GetObjectField(env, s1, number); src2 = (mpz_srcptr)(*env)->GetObjectField(env, s2, number); return (mpz_cmp(src1, src2));}jstringJava_java_math_BigInteger_toString0(JNIEnv* env, jobject s, jint base){ char* res; mpz_srcptr src; jstring str; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); res = mpz_get_str(NULL, (int)base, src); str = (*env)->NewStringUTF(env, res); bi_free(res, 0 /* is ignored */); return (str);}jdoubleJava_java_math_BigInteger_toDouble0(JNIEnv* env, jobject s){ mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); return ((jdouble)mpz_get_d(src));}jintJava_java_math_BigInteger_toInt0(JNIEnv* env, jobject s){ mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); return ((jint)mpz_get_ui(src));}jintJava_java_math_BigInteger_probablyPrime0(JNIEnv* env, jobject s, jint prop){ mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); return (mpz_probab_prime_p(src, (int)prop));}jintJava_java_math_BigInteger_bitLength0(JNIEnv* env, jobject s){ mpz_srcptr src; src = (mpz_srcptr)(*env)->GetObjectField(env, s, number); return (mpz_sizeinbase(src, 2));}jintJava_java_math_BigInteger_hamDist0(JNIEnv* env, jobject s1, jobject s2){ mpz_srcptr src1, src2; src1 = (mpz_srcptr)(*env)->GetObjectField(env, s1, number); src2 = (mpz_srcptr)(*env)->GetObjectField(env, s2, number); return (mpz_hamdist(src1, src2));}#else /* !defined(HAVE_GMP_H) || !defined(USE_GMP) *//* throw a kaffe.util.SupportDisabled exception */static voidgmp_not_found(JNIEnv* env) { jclass sd = (*env)->FindClass(env, "org.kaffe.util.SupportDisabled"); (*env)->ThrowNew(env, sd, "GNU gmp was not found by Kaffe configure script");}/* We should put some dummies in here */voidJava_java_math_BigInteger_initialize0(JNIEnv* env, jclass cls UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_init0(JNIEnv* env, jobject r UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_finalize0(JNIEnv* env, jobject r UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_assignLong0(JNIEnv* env, jobject r UNUSED, jlong v UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_assignBytes0(JNIEnv* env, jobject r UNUSED, jint sign UNUSED, jbyteArray magnitude UNUSED){ gmp_not_found(env);}jintJava_java_math_BigInteger_assignString0(JNIEnv* env, jobject r UNUSED, jstring val UNUSED, jint radix UNUSED){ gmp_not_found(env); return 0;}voidJava_java_math_BigInteger_add0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_sub0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_mul0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_div0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_rem0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_divrem0(JNIEnv* env, jclass cls UNUSED, jobject r1 UNUSED, jobject r2 UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_abs0(JNIEnv* env, jobject r UNUSED, jobject s UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_neg0(JNIEnv* env, jobject r UNUSED, jobject s UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_pow0(JNIEnv* env, jobject r UNUSED, jobject s UNUSED, jint power UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_gcd0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_mod0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_modpow0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED, jobject s3 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_modinv0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_and0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_or0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_xor0(JNIEnv* env, jobject r UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_not0(JNIEnv* env, jobject r UNUSED, jobject s UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_setbit0(JNIEnv* env, jobject r UNUSED, jobject s UNUSED, jint n UNUSED){ gmp_not_found(env);}voidJava_java_math_BigInteger_clrbit0(JNIEnv* env, jobject r UNUSED, jobject s UNUSED, jint n UNUSED){ gmp_not_found(env);}jintJava_java_math_BigInteger_scansetbit0(JNIEnv* env, jobject s UNUSED){ gmp_not_found(env); return 0;}jintJava_java_math_BigInteger_cmp0(JNIEnv* env, jclass cls UNUSED, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env); return 0;}jstringJava_java_math_BigInteger_toString0(JNIEnv* env, jobject s UNUSED, jint base UNUSED){ gmp_not_found(env); return NULL;}jdoubleJava_java_math_BigInteger_toDouble0(JNIEnv* env, jobject s UNUSED){ gmp_not_found(env); return 0.0;}jintJava_java_math_BigInteger_toInt0(JNIEnv* env, jobject s UNUSED){ gmp_not_found(env); return 0;}jintJava_java_math_BigInteger_probablyPrime0(JNIEnv* env, jobject s UNUSED, jint prop UNUSED){ gmp_not_found(env); return 0;}jintJava_java_math_BigInteger_bitLength0(JNIEnv* env, jobject s UNUSED){ gmp_not_found(env); return 0;}jintJava_java_math_BigInteger_hamDist0(JNIEnv* env, jobject s1 UNUSED, jobject s2 UNUSED){ gmp_not_found(env); return 0;}#endif /* defined(HAVE_GMP_H) && defined(USE_GMP) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -