/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

#ifndef __gnu_java_math_GMP__
#define __gnu_java_math_GMP__

#ifdef __cplusplus
extern "C"
{
#endif

JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natInitializeLibrary (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natInitialize (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFinalize (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromLong (JNIEnv *env, jobject, jlong);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromBI (JNIEnv *env, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromByteArray (JNIEnv *env, jobject, jbyteArray);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natFromString (JNIEnv *env, jobject, jstring, jint);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromSignedMagnitude (JNIEnv *env, jobject, jbyteArray, jboolean);
JNIEXPORT jstring JNICALL Java_gnu_java_math_GMP_natToString (JNIEnv *env, jobject, jint);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natToByteArray (JNIEnv *env, jobject, jbyteArray);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natAbsIntValue (JNIEnv *env, jobject);
JNIEXPORT jdouble JNICALL Java_gnu_java_math_GMP_natDoubleValue (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natCompare (JNIEnv *env, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAdd (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natSubtract (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natMultiply (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natQuotient (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natRemainder (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natQuotientAndRemainder (JNIEnv *env, jobject, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModulo (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natPow (JNIEnv *env, jobject, jint, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModPow (JNIEnv *env, jobject, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModInverse (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natGCD (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natTestPrimality (JNIEnv *env, jobject, jint);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natShiftLeft (JNIEnv *env, jobject, jint, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natShiftRight (JNIEnv *env, jobject, jint, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natLowestSetBit (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAbs (JNIEnv *env, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natNegate (JNIEnv *env, jobject, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natBitLength (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natSetBitCount (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natXor (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natOr (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAnd (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAndNot (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFlipBit (JNIEnv *env, jobject, jint, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natTestBit (JNIEnv *env, jobject, jint);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natSetBit (JNIEnv *env, jobject, jint, jboolean, jobject);
JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natNot (JNIEnv *env, jobject, jobject);

#ifdef __cplusplus
}
#endif

#endif /* __gnu_java_math_GMP__ */
