/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class beagle_BeagleJNIWrapper */

#ifndef _Included_beagle_BeagleJNIWrapper
#define _Included_beagle_BeagleJNIWrapper
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getVersion
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_beagle_BeagleJNIWrapper_getVersion
  (JNIEnv *, jobject);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getCitation
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_beagle_BeagleJNIWrapper_getCitation
  (JNIEnv *, jobject);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getResourceList
 * Signature: ()[Lbeagle/ResourceDetails;
 */
JNIEXPORT jobjectArray JNICALL Java_beagle_BeagleJNIWrapper_getResourceList
  (JNIEnv *, jobject);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getBenchmarkedResourceList
 * Signature: (IIIII[IIJJIIIJ)[Lbeagle/BenchmarkedResourceDetails;
 */
JNIEXPORT jobjectArray JNICALL Java_beagle_BeagleJNIWrapper_getBenchmarkedResourceList
  (JNIEnv *, jobject, jint, jint, jint, jint, jint, jintArray, jint, jlong, jlong, jint, jint, jint, jlong);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    createInstance
 * Signature: (IIIIIIIII[IIJJLbeagle/InstanceDetails;)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_createInstance
  (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jint, jint, jint, jintArray, jint, jlong, jlong, jobject);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    finalize
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_finalize
  (JNIEnv *, jobject, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setCPUThreadCount
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setCPUThreadCount
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setPatternWeights
 * Signature: (I[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setPatternWeights
  (JNIEnv *, jobject, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setPatternPartitions
 * Signature: (II[I)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setPatternPartitions
  (JNIEnv *, jobject, jint, jint, jintArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setTipStates
 * Signature: (II[I)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setTipStates
  (JNIEnv *, jobject, jint, jint, jintArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getTipStates
 * Signature: (II[I)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_getTipStates
  (JNIEnv *, jobject, jint, jint, jintArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setTipPartials
 * Signature: (II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setTipPartials
  (JNIEnv *, jobject, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setPartials
 * Signature: (II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setPartials
  (JNIEnv *, jobject, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getPartials
 * Signature: (III[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_getPartials
  (JNIEnv *, jobject, jint, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getLogScaleFactors
 * Signature: (II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_getLogScaleFactors
  (JNIEnv *, jobject, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setEigenDecomposition
 * Signature: (II[D[D[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setEigenDecomposition
  (JNIEnv *, jobject, jint, jint, jdoubleArray, jdoubleArray, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setStateFrequencies
 * Signature: (II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setStateFrequencies
  (JNIEnv *, jobject, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setCategoryWeights
 * Signature: (II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setCategoryWeights
  (JNIEnv *, jobject, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setCategoryRates
 * Signature: (I[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setCategoryRates
  (JNIEnv *, jobject, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setCategoryRatesWithIndex
 * Signature: (II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setCategoryRatesWithIndex
  (JNIEnv *, jobject, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    setTransitionMatrix
 * Signature: (II[DD)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_setTransitionMatrix
  (JNIEnv *, jobject, jint, jint, jdoubleArray, jdouble);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getTransitionMatrix
 * Signature: (II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_getTransitionMatrix
  (JNIEnv *, jobject, jint, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    convolveTransitionMatrices
 * Signature: (I[I[I[II)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_convolveTransitionMatrices
  (JNIEnv *, jobject, jint, jintArray, jintArray, jintArray, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    updateTransitionMatrices
 * Signature: (II[I[I[I[DI)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_updateTransitionMatrices
  (JNIEnv *, jobject, jint, jint, jintArray, jintArray, jintArray, jdoubleArray, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    updateTransitionMatricesWithMultipleModels
 * Signature: (I[I[I[I[I[I[DI)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_updateTransitionMatricesWithMultipleModels
  (JNIEnv *, jobject, jint, jintArray, jintArray, jintArray, jintArray, jintArray, jdoubleArray, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    updatePartials
 * Signature: (I[III)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_updatePartials
  (JNIEnv *, jobject, jint, jintArray, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    updatePartialsByPartition
 * Signature: (I[II)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_updatePartialsByPartition
  (JNIEnv *, jobject, jint, jintArray, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    waitForPartials
 * Signature: (I[II)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_waitForPartials
  (JNIEnv *, jobject, jint, jintArray, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    accumulateScaleFactors
 * Signature: (I[III)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_accumulateScaleFactors
  (JNIEnv *, jobject, jint, jintArray, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    accumulateScaleFactorsByPartition
 * Signature: (I[IIII)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_accumulateScaleFactorsByPartition
  (JNIEnv *, jobject, jint, jintArray, jint, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    removeScaleFactors
 * Signature: (I[III)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_removeScaleFactors
  (JNIEnv *, jobject, jint, jintArray, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    removeScaleFactorsByPartition
 * Signature: (I[IIII)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_removeScaleFactorsByPartition
  (JNIEnv *, jobject, jint, jintArray, jint, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    resetScaleFactors
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_resetScaleFactors
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    resetScaleFactorsByPartition
 * Signature: (III)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_resetScaleFactorsByPartition
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    copyScaleFactors
 * Signature: (III)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_copyScaleFactors
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    calculateRootLogLikelihoods
 * Signature: (I[I[I[I[II[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_calculateRootLogLikelihoods
  (JNIEnv *, jobject, jint, jintArray, jintArray, jintArray, jintArray, jint, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    calculateRootLogLikelihoodsByPartition
 * Signature: (I[I[I[I[I[III[D[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_calculateRootLogLikelihoodsByPartition
  (JNIEnv *, jobject, jint, jintArray, jintArray, jintArray, jintArray, jintArray, jint, jint, jdoubleArray, jdoubleArray);

/*
 * Class:     beagle_BeagleJNIWrapper
 * Method:    getSiteLogLikelihoods
 * Signature: (I[D)I
 */
JNIEXPORT jint JNICALL Java_beagle_BeagleJNIWrapper_getSiteLogLikelihoods
  (JNIEnv *, jobject, jint, jdoubleArray);

#ifdef __cplusplus
}
#endif
#endif
