/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.12
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */


#ifndef SWIGJAVA
#define SWIGJAVA
#endif



#ifdef __cplusplus
/* SwigValueWrapper is described in swig.swg */
template<typename T> class SwigValueWrapper {
  struct SwigMovePointer {
    T *ptr;
    SwigMovePointer(T *p) : ptr(p) { }
    ~SwigMovePointer() { delete ptr; }
    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
  } pointer;
  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
public:
  SwigValueWrapper() : pointer(0) { }
  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
  operator T&() const { return *pointer.ptr; }
  T *operator&() { return pointer.ptr; }
};

template <typename T> T SwigValueInit() {
  return T();
}
#endif

/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__))
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__))
# else
#   define SWIGUNUSED
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if defined(__GNUC__)
#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#    ifndef GCC_HASCLASSVISIBILITY
#      define GCC_HASCLASSVISIBILITY
#    endif
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif

/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif

/* Intel's compiler complains if a variable which was never initialised is
 * cast to void, which is a common idiom which we use to indicate that we
 * are aware a variable isn't used.  So we just silence that warning.
 * See: https://github.com/swig/swig/issues/192 for more discussion.
 */
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif


/* Fix for jlong on some versions of gcc on Windows */
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
  typedef long long __int64;
#endif

/* Fix for jlong on 64-bit x86 Solaris */
#if defined(__x86_64)
# ifdef _LP64
#   undef _LP64
# endif
#endif

#include <jni.h>
#include <stdlib.h>
#include <string.h>


/* Support for throwing Java exceptions */
typedef enum {
  SWIG_JavaOutOfMemoryError = 1, 
  SWIG_JavaIOException, 
  SWIG_JavaRuntimeException, 
  SWIG_JavaIndexOutOfBoundsException,
  SWIG_JavaArithmeticException,
  SWIG_JavaIllegalArgumentException,
  SWIG_JavaNullPointerException,
  SWIG_JavaDirectorPureVirtual,
  SWIG_JavaUnknownError
} SWIG_JavaExceptionCodes;

typedef struct {
  SWIG_JavaExceptionCodes code;
  const char *java_exception;
} SWIG_JavaExceptions_t;


static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
  jclass excep;
  static const SWIG_JavaExceptions_t java_exceptions[] = {
    { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
    { SWIG_JavaIOException, "java/io/IOException" },
    { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
    { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
    { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
    { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
    { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
    { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
    { SWIG_JavaUnknownError,  "java/lang/UnknownError" },
    { (SWIG_JavaExceptionCodes)0,  "java/lang/UnknownError" }
  };
  const SWIG_JavaExceptions_t *except_ptr = java_exceptions;

  while (except_ptr->code != code && except_ptr->code)
    except_ptr++;

  jenv->ExceptionClear();
  excep = jenv->FindClass(except_ptr->java_exception);
  if (excep)
    jenv->ThrowNew(excep, msg);
}


/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else


		typedef int *intArr;
		intArr gotInts;
	

#include "../../RNA_class/RNA.h"
// #include "../../src/StructureTools.h"
#include "../../RNA_class/TwoRNA.h"
#include "../../RNA_class/HybridRNA.h"
#include "../../RNA_class/Dynalign_object.h"


#include <string>


#include <typeinfo>
#include <stdexcept>


#include <vector>
#include <stdexcept>

SWIGINTERN std::vector< int >::const_reference std_vector_Sl_int_Sg__get(std::vector< int > *self,int i){
                int size = int(self->size());
                if (i>=0 && i<size)
                    return (*self)[i];
                else
                    throw std::out_of_range("vector index out of range");
            }
SWIGINTERN void std_vector_Sl_int_Sg__set(std::vector< int > *self,int i,std::vector< int >::value_type const &val){
                int size = int(self->size());
                if (i>=0 && i<size)
                    (*self)[i] = val;
                else
                    throw std::out_of_range("vector index out of range");
            }
SWIGINTERN std::vector< double >::const_reference std_vector_Sl_double_Sg__get(std::vector< double > *self,int i){
                int size = int(self->size());
                if (i>=0 && i<size)
                    return (*self)[i];
                else
                    throw std::out_of_range("vector index out of range");
            }
SWIGINTERN void std_vector_Sl_double_Sg__set(std::vector< double > *self,int i,std::vector< double >::value_type const &val){
                int size = int(self->size());
                if (i>=0 && i<size)
                    (*self)[i] = val;
                else
                    throw std::out_of_range("vector index out of range");
            }

#if defined(SWIG_NOINCLUDE) || defined(SWIG_NOARRAYS)


static int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input);
static void SWIG_JavaArrayArgoutBool (JNIEnv *jenv, jboolean *jarr, bool *carr, jbooleanArray input);
static jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz);


static int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input);
static void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input);
static jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz);


static int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input);
static void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input);
static jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz);


static int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input);
static void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input);
static jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz);


static int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input);
static void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input);
static jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz);


static int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input);
static void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input);
static jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz);


static int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input);
static void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input);
static jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz);


static int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input);
static void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input);
static jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz);


static int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input);
static void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input);
static jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz);


static int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input);
static void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input);
static jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz);


static int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input);
static void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input);
static jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz);


static int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input);
static void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input);
static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz);


#else


/* bool[] support */
static int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetBooleanArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new bool[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = ((*jarr)[i] != 0);
  return 1;
}

static void SWIG_JavaArrayArgoutBool (JNIEnv *jenv, jboolean *jarr, bool *carr, jbooleanArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jboolean)carr[i];
  jenv->ReleaseBooleanArrayElements(input, jarr, 0);
}

static jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz) {
  jboolean *arr;
  int i;
  jbooleanArray jresult = jenv->NewBooleanArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetBooleanArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jboolean)result[i];
  jenv->ReleaseBooleanArrayElements(jresult, arr, 0);
  return jresult;
}


/* signed char[] support */
static int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetByteArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new signed char[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (signed char)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jbyte)carr[i];
  jenv->ReleaseByteArrayElements(input, jarr, 0);
}

static jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz) {
  jbyte *arr;
  int i;
  jbyteArray jresult = jenv->NewByteArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetByteArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jbyte)result[i];
  jenv->ReleaseByteArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned char[] support */
static int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetShortArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned char[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned char)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jshort)carr[i];
  jenv->ReleaseShortArrayElements(input, jarr, 0);
}

static jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz) {
  jshort *arr;
  int i;
  jshortArray jresult = jenv->NewShortArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetShortArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jshort)result[i];
  jenv->ReleaseShortArrayElements(jresult, arr, 0);
  return jresult;
}


/* short[] support */
static int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetShortArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new short[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (short)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jshort)carr[i];
  jenv->ReleaseShortArrayElements(input, jarr, 0);
}

static jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz) {
  jshort *arr;
  int i;
  jshortArray jresult = jenv->NewShortArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetShortArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jshort)result[i];
  jenv->ReleaseShortArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned short[] support */
static int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetIntArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned short[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned short)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jint)carr[i];
  jenv->ReleaseIntArrayElements(input, jarr, 0);
}

static jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz) {
  jint *arr;
  int i;
  jintArray jresult = jenv->NewIntArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetIntArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jint)result[i];
  jenv->ReleaseIntArrayElements(jresult, arr, 0);
  return jresult;
}


/* int[] support */
static int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetIntArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new int[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (int)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jint)carr[i];
  jenv->ReleaseIntArrayElements(input, jarr, 0);
}

static jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz) {
  jint *arr;
  int i;
  jintArray jresult = jenv->NewIntArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetIntArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jint)result[i];
  jenv->ReleaseIntArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned int[] support */
static int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetLongArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned int[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned int)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jlong)carr[i];
  jenv->ReleaseLongArrayElements(input, jarr, 0);
}

static jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz) {
  jlong *arr;
  int i;
  jlongArray jresult = jenv->NewLongArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetLongArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jlong)result[i];
  jenv->ReleaseLongArrayElements(jresult, arr, 0);
  return jresult;
}


/* long[] support */
static int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetIntArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new long[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (long)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jint)carr[i];
  jenv->ReleaseIntArrayElements(input, jarr, 0);
}

static jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz) {
  jint *arr;
  int i;
  jintArray jresult = jenv->NewIntArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetIntArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jint)result[i];
  jenv->ReleaseIntArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned long[] support */
static int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetLongArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned long[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned long)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jlong)carr[i];
  jenv->ReleaseLongArrayElements(input, jarr, 0);
}

static jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz) {
  jlong *arr;
  int i;
  jlongArray jresult = jenv->NewLongArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetLongArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jlong)result[i];
  jenv->ReleaseLongArrayElements(jresult, arr, 0);
  return jresult;
}


/* jlong[] support */
static int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetLongArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new jlong[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (jlong)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jlong)carr[i];
  jenv->ReleaseLongArrayElements(input, jarr, 0);
}

static jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz) {
  jlong *arr;
  int i;
  jlongArray jresult = jenv->NewLongArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetLongArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jlong)result[i];
  jenv->ReleaseLongArrayElements(jresult, arr, 0);
  return jresult;
}


/* float[] support */
static int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetFloatArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new float[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (float)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jfloat)carr[i];
  jenv->ReleaseFloatArrayElements(input, jarr, 0);
}

static jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz) {
  jfloat *arr;
  int i;
  jfloatArray jresult = jenv->NewFloatArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetFloatArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jfloat)result[i];
  jenv->ReleaseFloatArrayElements(jresult, arr, 0);
  return jresult;
}


/* double[] support */
static int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetDoubleArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new double[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (double)(*jarr)[i];
  return 1;
}

static void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jdouble)carr[i];
  jenv->ReleaseDoubleArrayElements(input, jarr, 0);
}

static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz) {
  jdouble *arr;
  int i;
  jdoubleArray jresult = jenv->NewDoubleArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetDoubleArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jdouble)result[i];
  jenv->ReleaseDoubleArrayElements(jresult, arr, 0);
  return jresult;
}


#endif

SWIGINTERN int singlestructure_getSequenceLength(singlestructure *self){ return self->basepr.size()-1; }
SWIGINTERN void singlestructure_setSequenceLength(singlestructure *self,int length){ self->basepr.resize(length+1); self->energy = 0; }
SWIGINTERN int singlestructure_getBasePair(singlestructure *self,int basepos){ return self->basepr[basepos]; }
SWIGINTERN void singlestructure_setBasePair(singlestructure *self,int basepos,int pairpos){ self->basepr[basepos] = pairpos; }
SWIGINTERN int RNA_getInts(RNA *self,intArr arr,int size){
			if (size >= 1000)
				for (int i = 0; i < size; i++) {
					arr[i] = i;
				}
			return 1000;
		}
SWIGINTERN void RNA_initInts(RNA *self){
			gotInts = new int[1000];
			RNA_getInts(self, gotInts, 1000);
		}
SWIGINTERN int RNA_getIntAt(RNA *self,int i){ 
			return gotInts[i]; 
		}

#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1CIntVector_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  std::vector< int > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (std::vector< int > *)new std::vector< int >();
  *(std::vector< int > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1CIntVector_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  std::vector< int >::size_type arg1 ;
  std::vector< int > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (std::vector< int >::size_type)jarg1; 
  result = (std::vector< int > *)new std::vector< int >(arg1);
  *(std::vector< int > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1size(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  std::vector< int >::size_type result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  result = ((std::vector< int > const *)arg1)->size();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1capacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  std::vector< int >::size_type result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  result = ((std::vector< int > const *)arg1)->capacity();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1reserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  std::vector< int >::size_type arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  arg2 = (std::vector< int >::size_type)jarg2; 
  (arg1)->reserve(arg2);
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1isEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  result = (bool)((std::vector< int > const *)arg1)->empty();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  (arg1)->clear();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1add(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  std::vector< int >::value_type *arg2 = 0 ;
  std::vector< int >::value_type temp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  temp2 = (std::vector< int >::value_type)jarg2; 
  arg2 = &temp2; 
  (arg1)->push_back((std::vector< int >::value_type const &)*arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  int arg2 ;
  std::vector< int >::value_type *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  arg2 = (int)jarg2; 
  try {
    result = (std::vector< int >::value_type *) &std_vector_Sl_int_Sg__get(arg1,arg2);
  }
  catch(std::out_of_range &_e) {
    SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
    return 0;
  }
  
  jresult = (jint)*result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CIntVector_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  int arg2 ;
  std::vector< int >::value_type *arg3 = 0 ;
  std::vector< int >::value_type temp3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1; 
  arg2 = (int)jarg2; 
  temp3 = (std::vector< int >::value_type)jarg3; 
  arg3 = &temp3; 
  try {
    std_vector_Sl_int_Sg__set(arg1,arg2,(int const &)*arg3);
  }
  catch(std::out_of_range &_e) {
    SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
    return ;
  }
  
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1CIntVector(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::vector< int > **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1CDblVector_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  std::vector< double > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (std::vector< double > *)new std::vector< double >();
  *(std::vector< double > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1CDblVector_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  std::vector< double >::size_type arg1 ;
  std::vector< double > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (std::vector< double >::size_type)jarg1; 
  result = (std::vector< double > *)new std::vector< double >(arg1);
  *(std::vector< double > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1size(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  std::vector< double >::size_type result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  result = ((std::vector< double > const *)arg1)->size();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1capacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  std::vector< double >::size_type result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  result = ((std::vector< double > const *)arg1)->capacity();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1reserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  std::vector< double >::size_type arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  arg2 = (std::vector< double >::size_type)jarg2; 
  (arg1)->reserve(arg2);
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1isEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  result = (bool)((std::vector< double > const *)arg1)->empty();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  (arg1)->clear();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1add(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  std::vector< double >::value_type *arg2 = 0 ;
  std::vector< double >::value_type temp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  temp2 = (std::vector< double >::value_type)jarg2; 
  arg2 = &temp2; 
  (arg1)->push_back((std::vector< double >::value_type const &)*arg2);
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jdouble jresult = 0 ;
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  int arg2 ;
  std::vector< double >::value_type *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  arg2 = (int)jarg2; 
  try {
    result = (std::vector< double >::value_type *) &std_vector_Sl_double_Sg__get(arg1,arg2);
  }
  catch(std::out_of_range &_e) {
    SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
    return 0;
  }
  
  jresult = (jdouble)*result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_CDblVector_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jdouble jarg3) {
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  int arg2 ;
  std::vector< double >::value_type *arg3 = 0 ;
  std::vector< double >::value_type temp3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< double > **)&jarg1; 
  arg2 = (int)jarg2; 
  temp3 = (std::vector< double >::value_type)jarg3; 
  arg3 = &temp3; 
  try {
    std_vector_Sl_double_Sg__set(arg1,arg2,(double const &)*arg3);
  }
  catch(std::out_of_range &_e) {
    SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
    return ;
  }
  
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1CDblVector(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::vector< double > **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1datatable(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  datatable *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (datatable *)new datatable();
  *(datatable **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1datatable(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  datatable *arg1 = (datatable *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(datatable **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1BIT_1SEQ_1LABEL_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(0x1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1BIT_1SIDE_1TITLES_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(0x2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1BIT_1MULTI_1TITLE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(0x4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1BIT_1MULTI_1SEQ_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(0x8);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1FMT_1SINGLE_1TITLE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  DotBracketFormat result;
  
  (void)jenv;
  (void)jcls;
  result = (DotBracketFormat)DBN_FMT_SINGLE_TITLE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1FMT_1SIDE_1TITLES_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  DotBracketFormat result;
  
  (void)jenv;
  (void)jcls;
  result = (DotBracketFormat)DBN_FMT_SIDE_TITLES;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1FMT_1MULTI_1TITLE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  DotBracketFormat result;
  
  (void)jenv;
  (void)jcls;
  result = (DotBracketFormat)DBN_FMT_MULTI_TITLE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DBN_1FMT_1MULTI_1TITLE_1AND_1SEQ_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  DotBracketFormat result;
  
  (void)jenv;
  (void)jcls;
  result = (DotBracketFormat)DBN_FMT_MULTI_TITLE_AND_SEQ;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_parseDotBracketFormat(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jint jresult = 0 ;
  std::string *arg1 = 0 ;
  DotBracketFormat result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  result = (DotBracketFormat)parseDotBracketFormat((std::string const &)*arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1ProgressHandler(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(ProgressHandler **)&jarg1; 
  delete arg1;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_ProgressHandler_1update_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->update(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_ProgressHandler_1update_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jdouble jarg3) {
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  double arg2 ;
  double arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  (arg1)->update(arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_ProgressHandler_1updateFraction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  double arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  arg2 = (double)jarg2; 
  (arg1)->updateFraction(arg2);
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_ProgressHandler_1canceled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  result = (bool)((ProgressHandler const *)arg1)->canceled();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_ProgressHandler_1cancel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  (arg1)->cancel();
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_ProgressHandler_1progress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  result = (int)((ProgressHandler const *)arg1)->progress();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_ProgressHandler_1reset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  (arg1)->reset();
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1SimpleProgressHandler(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  SimpleProgressHandler *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (SimpleProgressHandler *)new SimpleProgressHandler();
  *(SimpleProgressHandler **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1SimpleProgressHandler(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  SimpleProgressHandler *arg1 = (SimpleProgressHandler *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(SimpleProgressHandler **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1TProgressDialog(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  TProgressDialog *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (TProgressDialog *)new TProgressDialog();
  *(TProgressDialog **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TProgressDialog_1update(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  TProgressDialog *arg1 = (TProgressDialog *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TProgressDialog **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->update(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1TProgressDialog(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  TProgressDialog *arg1 = (TProgressDialog *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(TProgressDialog **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1PartialProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  ProgressHandler *arg1 = (ProgressHandler *) 0 ;
  PartialProgress *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(ProgressHandler **)&jarg1; 
  result = (PartialProgress *)new PartialProgress(arg1);
  *(PartialProgress **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1workInNextStep_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  arg2 = (int)jarg2; 
  if (arg1) (arg1)->workInNextStep = arg2;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1workInNextStep_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  result = (int) ((arg1)->workInNextStep);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1update(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->update(arg2);
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1canceled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  result = (bool)((PartialProgress const *)arg1)->canceled();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1cancel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  (arg1)->cancel();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1setNextStep(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->setNextStep(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1setWorkComplete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->setWorkComplete(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1stepComplete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  (arg1)->stepComplete();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1advanceToNextStep(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(PartialProgress **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->advanceToNextStep(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1setClient(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  ProgressHandler *arg2 = (ProgressHandler *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(PartialProgress **)&jarg1; 
  arg2 = *(ProgressHandler **)&jarg2; 
  (arg1)->setClient(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1PartialProgress(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  PartialProgress *arg1 = (PartialProgress *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(PartialProgress **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DEFAULT_1SHAPE_1INTERCEPT_1get(JNIEnv *jenv, jclass jcls) {
  jdouble jresult = 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  result = (double)(-0.6);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_DEFAULT_1SHAPE_1SLOPE_1get(JNIEnv *jenv, jclass jcls) {
  jdouble jresult = 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  result = (double)(1.8);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1singlestructure(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jlong jresult = 0 ;
  int arg1 ;
  singlestructure *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (int)jarg1; 
  result = (singlestructure *)new singlestructure(arg1);
  *(singlestructure **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1energy_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  singlestructure *arg1 = (singlestructure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  arg2 = (int)jarg2; 
  if (arg1) (arg1)->energy = arg2;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1energy_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  singlestructure *arg1 = (singlestructure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  result = (int) ((arg1)->energy);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1ctlabel_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  singlestructure *arg1 = (singlestructure *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->ctlabel = *arg2;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1ctlabel_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  singlestructure *arg1 = (singlestructure *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  result = (std::string *) & ((arg1)->ctlabel);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1getSequenceLength(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  singlestructure *arg1 = (singlestructure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  result = (int)singlestructure_getSequenceLength(arg1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1setSequenceLength(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  singlestructure *arg1 = (singlestructure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  arg2 = (int)jarg2; 
  singlestructure_setSequenceLength(arg1,arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1getBasePair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  singlestructure *arg1 = (singlestructure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)singlestructure_getBasePair(arg1,arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_singlestructure_1setBasePair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  singlestructure *arg1 = (singlestructure *) 0 ;
  int arg2 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(singlestructure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  singlestructure_setBasePair(arg1,arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1singlestructure(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  singlestructure *arg1 = (singlestructure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(singlestructure **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1structure_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jlong jresult = 0 ;
  int arg1 ;
  structure *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (int)jarg1; 
  result = (structure *)new structure(arg1);
  *(structure **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1structure_1_1SWIG_11(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  structure *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (structure *)new structure();
  *(structure **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1structure(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(structure **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetCtLabel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jstring jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = ((structure const *)arg1)->GetCtLabel(arg2);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetEnergy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)((structure const *)arg1)->GetEnergy(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofStructures(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)((structure const *)arg1)->GetNumberofStructures();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetPair_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)((structure const *)arg1)->GetPair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetPair_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)((structure const *)arg1)->GetPair(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetBase(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)((structure const *)arg1)->GetBase(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetSequenceLabel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = ((structure const *)arg1)->GetSequenceLabel();
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetSequenceLength(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)((structure const *)arg1)->GetSequenceLength();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetSequence(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (char *)((structure const *)arg1)->GetSequence();
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemovePair_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  (arg1)->RemovePair(arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemovePair_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->RemovePair(arg2);
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1HasPseudoknots_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)((structure const *)arg1)->HasPseudoknots(arg2);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1HasPseudoknots_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (bool)((structure const *)arg1)->HasPseudoknots();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1FindPseudoknots_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  std::vector< int > *arg3 = (std::vector< int > *) 0 ;
  std::vector< int > *arg4 = (std::vector< int > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg3_;
  (void)jarg4_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = *(std::vector< int > **)&jarg3; 
  arg4 = *(std::vector< int > **)&jarg4; 
  ((structure const *)arg1)->FindPseudoknots(arg2,arg3,arg4);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1FindPseudoknots_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  std::vector< int > *arg3 = (std::vector< int > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg3_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = *(std::vector< int > **)&jarg3; 
  ((structure const *)arg1)->FindPseudoknots(arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1FindPseudoknots_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  ((structure const *)arg1)->FindPseudoknots(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetPseudoknotRanks_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  std::vector< int > *arg2 = 0 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(structure **)&jarg1; 
  arg2 = *(std::vector< int > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< int > & reference is null");
    return ;
  } 
  arg3 = (int)jarg3; 
  ((structure const *)arg1)->GetPseudoknotRanks(*arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetPseudoknotRanks_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  structure *arg1 = (structure *) 0 ;
  std::vector< int > *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(structure **)&jarg1; 
  arg2 = *(std::vector< int > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< int > & reference is null");
    return ;
  } 
  ((structure const *)arg1)->GetPseudoknotRanks(*arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1BreakPseudoknots(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->BreakPseudoknots(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetCtLabel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  std::string *arg2 = 0 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  arg3 = (int)jarg3; 
  (arg1)->SetCtLabel((std::string const &)*arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetEnergy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  (arg1)->SetEnergy(arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetPair_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  int arg4 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  (arg1)->SetPair(arg2,arg3,arg4);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetPair_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  (arg1)->SetPair(arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetSequenceLabel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  structure *arg1 = (structure *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  (arg1)->SetSequenceLabel((std::string const &)*arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetSequence(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  std::string *arg2 = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  result = (int)(arg1)->SetSequence((std::string const &)*arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1allocatetem(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->allocatetem();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddDouble(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->AddDouble(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddForbiddenPair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  (arg1)->AddForbiddenPair(arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddGUPair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->AddGUPair(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddModified(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->AddModified(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddPair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  (arg1)->AddPair(arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddSingle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->AddSingle(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddDomain(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  (arg1)->AddDomain(arg2,arg3);
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1DistanceLimited(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (bool)(arg1)->DistanceLimited();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetDouble(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetDouble(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetForbiddenPair5(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetForbiddenPair5(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetForbiddenPair3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetForbiddenPair3(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetGUpair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetGUpair(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetModified(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetModified(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofDoubles(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetNumberofDoubles();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofForbiddenPairs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetNumberofForbiddenPairs();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofGU(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetNumberofGU();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofModified(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetNumberofModified();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofSingles(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetNumberofSingles();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofPairs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetNumberofPairs();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetNumberofDomains(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetNumberofDomains();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetPair5(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetPair5(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetPair3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetPair3(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetPairingDistanceLimit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int)(arg1)->GetPairingDistanceLimit();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetSingle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetSingle(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemoveSingleStrandConstraints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->RemoveSingleStrandConstraints(arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetDomain5(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetDomain5(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetDomain3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetDomain3(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemoveConstraints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->RemoveConstraints();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetPairingDistance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->SetPairingDistance(arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ctout(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) (char *)0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)((structure const *)arg1)->ctout((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1writedotbracket_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) (char *)0 ;
  int arg3 ;
  DotBracketFormat arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (int)jarg3; 
  arg4 = (DotBracketFormat)jarg4; 
  result = (int)((structure const *)arg1)->writedotbracket((char const *)arg2,arg3,arg4);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1writedotbracket_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) (char *)0 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (int)jarg3; 
  result = (int)((structure const *)arg1)->writedotbracket((char const *)arg2,arg3);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1writedotbracket_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) (char *)0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)((structure const *)arg1)->writedotbracket((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1openct(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->openct((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1opendbn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->opendbn((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1writeseq_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jboolean jarg4) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int arg3 ;
  bool arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (int)jarg3; 
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->writeseq((char const *)arg2,arg3,arg4);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1writeseq_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (int)jarg3; 
  result = (int)(arg1)->writeseq((char const *)arg2,arg3);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1writeseq_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->writeseq((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1openseq(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->openseq((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1openseqx(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->openseqx((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AddStructure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->AddStructure();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1CleanStructure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->CleanStructure(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemoveLastStructure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->RemoveLastStructure();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemoveAllStructures(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->RemoveAllStructures();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemoveStructure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->RemoveStructure(arg2);
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetThermodynamicDataTable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  datatable *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (datatable *)(arg1)->GetThermodynamicDataTable();
  *(datatable **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SetThermodynamicDataTable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  structure *arg1 = (structure *) 0 ;
  datatable *arg2 = (datatable *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(structure **)&jarg1; 
  arg2 = *(datatable **)&jarg2; 
  (arg1)->SetThermodynamicDataTable(arg2);
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1IsAlphabetLoaded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (bool)(arg1)->IsAlphabetLoaded();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1IsThermoDataLoaded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (bool)(arg1)->IsThermoDataLoaded();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1sort(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->sort();
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ProblemwithStructures(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (bool)(arg1)->ProblemwithStructures();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadSHAPE_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jfloat jarg3, jfloat jarg4) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  float arg3 ;
  float arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (float)jarg3; 
  arg4 = (float)jarg4; 
  result = (int)(arg1)->ReadSHAPE((char const *)arg2,arg3,arg4);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadSHAPE_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jboolean jarg4) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  RestraintType arg3 ;
  bool arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (RestraintType)jarg3; 
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->ReadSHAPE((char const *)arg2,arg3,arg4);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadSHAPE_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  RestraintType arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (RestraintType)jarg3; 
  result = (int)(arg1)->ReadSHAPE((char const *)arg2,arg3);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadSHAPE_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadSHAPE((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  result = (int)(arg1)->ReadOffset((char const *)arg2,(char const *)arg3);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadExperimentalPairBonus_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jdouble jarg4) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  double arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  result = (int)(arg1)->ReadExperimentalPairBonus((char const *)arg2,arg3,arg4);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadExperimentalPairBonus_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  result = (int)(arg1)->ReadExperimentalPairBonus((char const *)arg2,arg3);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ReadExperimentalPairBonus_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadExperimentalPairBonus((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1WriteSHAPE_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jboolean jarg3) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  std::string *arg2 = 0 ;
  bool arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->WriteSHAPE((std::string const &)*arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1WriteSHAPE_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  std::string *arg2 = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  result = (int)(arg1)->WriteSHAPE((std::string const &)*arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1DeleteSHAPE(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->DeleteSHAPE();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1AllocateSHAPE(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->AllocateSHAPE();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1allocateconstant(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->allocateconstant();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SHAPEFileRead_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  structure *arg1 = (structure *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  if (arg1) (arg1)->SHAPEFileRead = arg2;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SHAPEFileRead_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (bool) ((arg1)->SHAPEFileRead);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1GetErrorDetails(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (std::string *) &(arg1)->GetErrorDetails();
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1IsNuc_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jchar jarg3) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  char arg3 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (char)jarg3; 
  result = (bool)(arg1)->IsNuc(arg2,arg3);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1IsNuc_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jchar jarg3, jlong jarg4, jobject jarg4_) {
  jboolean jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int arg2 ;
  char arg3 ;
  datatable *arg4 = (datatable *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg4_;
  arg1 = *(structure **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (char)jarg3; 
  arg4 = *(datatable **)&jarg4; 
  result = (bool)(arg1)->IsNuc(arg2,arg3,arg4);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemoveEnergyLabels_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  structure *arg1 = (structure *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  (arg1)->RemoveEnergyLabels((char const *)arg2);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1RemoveEnergyLabels_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  structure *arg1 = (structure *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  (arg1)->RemoveEnergyLabels();
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1generate_1constraint_1matrix(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  structure *arg1 = (structure *) 0 ;
  int *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(structure **)&jarg1; 
  result = (int *)(arg1)->generate_constraint_matrix();
  *(int **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ShowWarnings_1set(JNIEnv *jenv, jclass jcls, jint jarg1) {
  int arg1 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (int)jarg1; 
  structure::ShowWarnings = arg1;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1ShowWarnings_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)structure::ShowWarnings;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SumShapeRepeats_1set(JNIEnv *jenv, jclass jcls, jboolean jarg1) {
  bool arg1 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = jarg1 ? true : false; 
  structure::SumShapeRepeats = arg1;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_structure_1SumShapeRepeats_1get(JNIEnv *jenv, jclass jcls) {
  jboolean jresult = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  result = (bool)structure::SumShapeRepeats;
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_hasPseudoknots(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  std::vector< int > *arg1 = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< int > const & reference is null");
    return 0;
  } 
  result = (bool)hasPseudoknots((std::vector< int > const &)*arg1);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_findPseudoknots_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
  std::vector< int > *arg1 = 0 ;
  std::vector< int > *arg2 = (std::vector< int > *) 0 ;
  std::vector< int > *arg3 = (std::vector< int > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  (void)jarg3_;
  arg1 = *(std::vector< int > **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< int > const & reference is null");
    return ;
  } 
  arg2 = *(std::vector< int > **)&jarg2; 
  arg3 = *(std::vector< int > **)&jarg3; 
  findPseudoknots((std::vector< int > const &)*arg1,arg2,arg3);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_findPseudoknots_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  std::vector< int > *arg1 = 0 ;
  std::vector< int > *arg2 = (std::vector< int > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(std::vector< int > **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< int > const & reference is null");
    return ;
  } 
  arg2 = *(std::vector< int > **)&jarg2; 
  findPseudoknots((std::vector< int > const &)*arg1,arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_findPseudoknots_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  std::vector< int > *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(std::vector< int > **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< int > const & reference is null");
    return ;
  } 
  findPseudoknots((std::vector< int > const &)*arg1);
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Thermodynamics_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jboolean jarg1, jstring jarg2, jdouble jarg3) {
  jlong jresult = 0 ;
  bool arg1 ;
  char *arg2 = (char *) (char *)0 ;
  double arg3 ;
  Thermodynamics *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = jarg1 ? true : false; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  result = (Thermodynamics *)new Thermodynamics(arg1,(char const *)arg2,arg3);
  *(Thermodynamics **)&jresult = result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Thermodynamics_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jboolean jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  bool arg1 ;
  char *arg2 = (char *) (char *)0 ;
  Thermodynamics *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = jarg1 ? true : false; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (Thermodynamics *)new Thermodynamics(arg1,(char const *)arg2);
  *(Thermodynamics **)&jresult = result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Thermodynamics_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jboolean jarg1) {
  jlong jresult = 0 ;
  bool arg1 ;
  Thermodynamics *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = jarg1 ? true : false; 
  result = (Thermodynamics *)new Thermodynamics(arg1);
  *(Thermodynamics **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Thermodynamics_1_1SWIG_13(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  Thermodynamics *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (Thermodynamics *)new Thermodynamics();
  *(Thermodynamics **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Thermodynamics_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  Thermodynamics *arg1 = 0 ;
  Thermodynamics *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Thermodynamics const & reference is null");
    return 0;
  } 
  result = (Thermodynamics *)new Thermodynamics((Thermodynamics const &)*arg1);
  *(Thermodynamics **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1SetTemperature(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  jint jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  double arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->SetTemperature(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1GetTemperature(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (double)((Thermodynamics const *)arg1)->GetTemperature();
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1GetAlphabetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = ((Thermodynamics const *)arg1)->GetAlphabetName();
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ReadThermodynamic_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jdouble jarg4) {
  jint jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  double arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (double)jarg4; 
  result = (int)(arg1)->ReadThermodynamic((char const *)arg2,(char const *)arg3,arg4);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ReadThermodynamic_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
  jint jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  result = (int)(arg1)->ReadThermodynamic((char const *)arg2,(char const *)arg3);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ReadThermodynamic_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  char *arg2 = (char *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadThermodynamic((char const *)arg2);
  jresult = (jint)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ReadThermodynamic_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (int)(arg1)->ReadThermodynamic();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ReloadDataTables_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  jint jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  double arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->ReloadDataTables(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ReloadDataTables_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (int)(arg1)->ReloadDataTables();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1VerifyThermodynamic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (bool)(arg1)->VerifyThermodynamic();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1GetDatatable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  datatable *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (datatable *)(arg1)->GetDatatable();
  *(datatable **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1GetEnthalpyTable_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jlong jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  char *arg2 = (char *) 0 ;
  datatable *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (datatable *)(arg1)->GetEnthalpyTable((char const *)arg2);
  *(datatable **)&jresult = result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1GetEnthalpyTable_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  datatable *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (datatable *)(arg1)->GetEnthalpyTable();
  *(datatable **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ClearEnergies(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  (arg1)->ClearEnergies();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1ClearEnthalpies(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  (arg1)->ClearEnthalpies();
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1GetEnergyRead(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (bool)((Thermodynamics const *)arg1)->GetEnergyRead();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1IsAlphabetRead(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (bool)((Thermodynamics const *)arg1)->IsAlphabetRead();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1Thermodynamics(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(Thermodynamics **)&jarg1; 
  delete arg1;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1isrna_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  if (arg1) (arg1)->isrna = arg2;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Thermodynamics_1isrna_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  Thermodynamics *arg1 = (Thermodynamics *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Thermodynamics **)&jarg1; 
  result = (bool) ((arg1)->isrna);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_SEQUENCE_1STRING_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(0);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_FILE_1CT_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(1);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_FILE_1SEQ_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_FILE_1PFS_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_FILE_1SAV_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_FILE_1DBN_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(5);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jboolean jarg2) {
  jlong jresult = 0 ;
  char *arg1 ;
  bool arg2 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = jarg2 ? true : false; 
  result = (RNA *)new RNA((char const (*))arg1,arg2);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  result = (RNA *)new RNA((char const (*))arg1);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jboolean jarg4, jboolean jarg5) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 = (char *) (char *)0 ;
  bool arg4 ;
  bool arg5 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  result = (RNA *)new RNA((char const (*))arg1,arg2,(char const *)arg3,arg4,arg5);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jboolean jarg4) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 = (char *) (char *)0 ;
  bool arg4 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = jarg4 ? true : false; 
  result = (RNA *)new RNA((char const (*))arg1,arg2,(char const *)arg3,arg4);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 = (char *) (char *)0 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  result = (RNA *)new RNA((char const (*))arg1,arg2,(char const *)arg3);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jlong jarg3, jobject jarg3_) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  Thermodynamics *arg3 = (Thermodynamics *) 0 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg3_;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = *(Thermodynamics **)&jarg3; 
  result = (RNA *)new RNA((char const (*))arg1,arg2,(Thermodynamics const *)arg3);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_16(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jboolean jarg3) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  bool arg3 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (RNA *)new RNA((char const (*))arg1,arg2,arg3);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_17(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  result = (RNA *)new RNA((char const (*))arg1,arg2);
  *(RNA **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_18(JNIEnv *jenv, jclass jcls, jboolean jarg1) {
  jlong jresult = 0 ;
  bool arg1 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = jarg1 ? true : false; 
  result = (RNA *)new RNA(arg1);
  *(RNA **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1RNA_1_1SWIG_19(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (RNA *)new RNA();
  *(RNA **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetErrorCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)((RNA const *)arg1)->GetErrorCode();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetErrorMessage(JNIEnv *jenv, jclass jcls, jint jarg1) {
  jstring jresult = 0 ;
  int arg1 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (int)jarg1; 
  result = (char *)RNA::GetErrorMessage(arg1);
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetFullErrorMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = ((RNA const *)arg1)->GetFullErrorMessage();
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetErrorDetails(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = ((RNA const *)arg1)->GetErrorDetails();
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SetErrorDetails(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  RNA *arg1 = (RNA *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  (arg1)->SetErrorDetails((std::string const &)*arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SetSequenceLabel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  RNA *arg1 = (RNA *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  (arg1)->SetSequenceLabel((std::string const &)*arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ResetError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  RNA *arg1 = (RNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  (arg1)->ResetError();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1EnsureStructureCapcacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  (arg1)->EnsureStructureCapcacity(arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SpecifyPair_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->SpecifyPair(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SpecifyPair_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->SpecifyPair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1RemovePairs_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  bool arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->RemovePairs(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1RemovePairs_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->RemovePairs(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1RemovePairs_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->RemovePairs();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1RemoveBasePair_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->RemoveBasePair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1RemoveBasePair_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->RemoveBasePair(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1CalculateFreeEnergy_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  bool arg3 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (double)(arg1)->CalculateFreeEnergy(arg2,arg3);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1CalculateFreeEnergy_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (double)(arg1)->CalculateFreeEnergy(arg2);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1CalculateFreeEnergy_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (double)(arg1)->CalculateFreeEnergy();
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ExteriorLoopCorrection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3, jint jarg4, jint jarg5) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  bool arg3 ;
  int arg4 ;
  int arg5 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = jarg3 ? true : false; 
  arg4 = (int)jarg4; 
  arg5 = (int)jarg5; 
  result = (double)(arg1)->ExteriorLoopCorrection(arg2,arg3,arg4,arg5);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1WriteThermodynamicDetails_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jboolean jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  bool arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->WriteThermodynamicDetails((char const (*))arg2,arg3);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1WriteThermodynamicDetails_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->WriteThermodynamicDetails((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jstring jarg5, jint jarg6, jboolean jarg7, jboolean jarg8, jboolean jarg9) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  char *arg5 ;
  int arg6 ;
  bool arg7 ;
  bool arg8 ;
  bool arg9 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = (int)jarg6; 
  arg7 = jarg7 ? true : false; 
  arg8 = jarg8 ? true : false; 
  arg9 = jarg9 ? true : false; 
  result = (int)(arg1)->FoldSingleStrand(arg2,arg3,arg4,(char const (*))arg5,arg6,arg7,arg8,arg9);
  jresult = (jint)result; 
  
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jstring jarg5, jint jarg6, jboolean jarg7, jboolean jarg8) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  char *arg5 ;
  int arg6 ;
  bool arg7 ;
  bool arg8 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = (int)jarg6; 
  arg7 = jarg7 ? true : false; 
  arg8 = jarg8 ? true : false; 
  result = (int)(arg1)->FoldSingleStrand(arg2,arg3,arg4,(char const (*))arg5,arg6,arg7,arg8);
  jresult = (jint)result; 
  
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jstring jarg5, jint jarg6, jboolean jarg7) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  char *arg5 ;
  int arg6 ;
  bool arg7 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = (int)jarg6; 
  arg7 = jarg7 ? true : false; 
  result = (int)(arg1)->FoldSingleStrand(arg2,arg3,arg4,(char const (*))arg5,arg6,arg7);
  jresult = (jint)result; 
  
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jstring jarg5, jint jarg6) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  char *arg5 ;
  int arg6 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = (int)jarg6; 
  result = (int)(arg1)->FoldSingleStrand(arg2,arg3,arg4,(char const (*))arg5,arg6);
  jresult = (jint)result; 
  
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jstring jarg5) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  char *arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  result = (int)(arg1)->FoldSingleStrand(arg2,arg3,arg4,(char const (*))arg5);
  jresult = (jint)result; 
  
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->FoldSingleStrand(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_16(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->FoldSingleStrand(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_17(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  result = (int)(arg1)->FoldSingleStrand(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1FoldSingleStrand_1_1SWIG_18(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->FoldSingleStrand();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GenerateAllSuboptimalStructures_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jdouble jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  double arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (double)jarg3; 
  result = (int)(arg1)->GenerateAllSuboptimalStructures(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GenerateAllSuboptimalStructures_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  result = (int)(arg1)->GenerateAllSuboptimalStructures(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GenerateAllSuboptimalStructures_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GenerateAllSuboptimalStructures();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1MaximizeExpectedAccuracy_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jint jarg3, jint jarg4, jdouble jarg5) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double arg2 ;
  int arg3 ;
  int arg4 ;
  double arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = (double)jarg5; 
  result = (int)(arg1)->MaximizeExpectedAccuracy(arg2,arg3,arg4,arg5);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1MaximizeExpectedAccuracy_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double arg2 ;
  int arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->MaximizeExpectedAccuracy(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1MaximizeExpectedAccuracy_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->MaximizeExpectedAccuracy(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1MaximizeExpectedAccuracy_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->MaximizeExpectedAccuracy(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1MaximizeExpectedAccuracy_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->MaximizeExpectedAccuracy();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1PartitionFunction_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jboolean jarg4, jboolean jarg5) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  bool arg4 ;
  bool arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = jarg4 ? true : false; 
  arg5 = jarg5 ? true : false; 
  result = (int)(arg1)->PartitionFunction((char const (*))arg2,arg3,arg4,arg5);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1PartitionFunction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jboolean jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  bool arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->PartitionFunction((char const (*))arg2,arg3,arg4);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1PartitionFunction_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  result = (int)(arg1)->PartitionFunction((char const (*))arg2,arg3);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1PartitionFunction_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->PartitionFunction((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1PartitionFunction_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->PartitionFunction();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1PredictProbablePairs_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  result = (int)(arg1)->PredictProbablePairs(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1PredictProbablePairs_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->PredictProbablePairs();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnot_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jdouble jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  double arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (double)jarg4; 
  result = (int)(arg1)->ProbKnot(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnot_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->ProbKnot(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnot_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->ProbKnot(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnot_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->ProbKnot();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnotFromSample_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jdouble jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  double arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (double)jarg4; 
  result = (int)(arg1)->ProbKnotFromSample(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnotFromSample_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->ProbKnotFromSample(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnotFromSample_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->ProbKnotFromSample(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ProbKnotFromSample_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->ProbKnotFromSample();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReFoldSingleStrand_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->ReFoldSingleStrand(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReFoldSingleStrand_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->ReFoldSingleStrand(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReFoldSingleStrand_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  float arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (float)jarg2; 
  result = (int)(arg1)->ReFoldSingleStrand(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReFoldSingleStrand_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->ReFoldSingleStrand();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1Stochastic_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->Stochastic(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1Stochastic_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->Stochastic(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1Stochastic_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->Stochastic();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ForceDoubleStranded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->ForceDoubleStranded(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ForceFMNCleavage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->ForceFMNCleavage(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ForceMaximumPairingDistance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->ForceMaximumPairingDistance(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ForceModification(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->ForceModification(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ForcePair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->ForcePair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ForceProhibitPair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->ForceProhibitPair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ForceSingleStranded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->ForceSingleStranded(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetForcedDoubleStranded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetForcedDoubleStranded(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetForcedFMNCleavage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetForcedFMNCleavage(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetForcedModification(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetForcedModification(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetForcedPair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  bool arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->GetForcedPair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetForcedProhibitedPair(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  bool arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->GetForcedProhibitedPair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetForcedSingleStranded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetForcedSingleStranded(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetMaximumPairingDistance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GetMaximumPairingDistance();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNumberOfForcedDoubleStranded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GetNumberOfForcedDoubleStranded();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNumberOfForcedFMNCleavages(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GetNumberOfForcedFMNCleavages();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNumberOfForcedModifications(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GetNumberOfForcedModifications();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNumberOfForcedPairs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GetNumberOfForcedPairs();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNumberOfForcedProhibitedPairs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GetNumberOfForcedProhibitedPairs();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNumberOfForcedSingleStranded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->GetNumberOfForcedSingleStranded();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadConstraints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadConstraints((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadSHAPE_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jdouble jarg4, jint jarg5, jboolean jarg6) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  double arg4 ;
  RestraintType arg5 ;
  bool arg6 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (RestraintType)jarg5; 
  arg6 = jarg6 ? true : false; 
  result = (int)(arg1)->ReadSHAPE((char const (*))arg2,arg3,arg4,arg5,arg6);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadSHAPE_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jdouble jarg4, jint jarg5) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  double arg4 ;
  RestraintType arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (RestraintType)jarg5; 
  result = (int)(arg1)->ReadSHAPE((char const (*))arg2,arg3,arg4,arg5);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadSHAPE_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jdouble jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  double arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  result = (int)(arg1)->ReadSHAPE((char const (*))arg2,arg3,arg4);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadSHAPE_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jdouble jarg4, jdouble jarg5, jdouble jarg6, jint jarg7) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  double arg6 ;
  RestraintType arg7 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  arg6 = (double)jarg6; 
  arg7 = (RestraintType)jarg7; 
  result = (int)(arg1)->ReadSHAPE((char const (*))arg2,arg3,arg4,arg5,arg6,arg7);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadSHAPE_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jdouble jarg4, jdouble jarg5, jdouble jarg6) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  double arg6 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  arg6 = (double)jarg6; 
  result = (int)(arg1)->ReadSHAPE((char const (*))arg2,arg3,arg4,arg5,arg6);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadDMS_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jboolean jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  bool arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = jarg3 ? true : false; 
  result = (int)(arg1)->ReadDMS((char const (*))arg2,arg3);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadDMS_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadDMS((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadDSO(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadDSO((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadSSO(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadSSO((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ReadExperimentalPairBonus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3, jdouble jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  double arg3 ;
  double arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  result = (int)(arg1)->ReadExperimentalPairBonus((char const (*))arg2,arg3,arg4);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1RemoveConstraints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  RNA *arg1 = (RNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  (arg1)->RemoveConstraints();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SetConstraints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  RNA *arg1 = (RNA *) 0 ;
  std::vector< int > arg2 ;
  std::vector< int > *argp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(RNA **)&jarg1; 
  argp2 = *(std::vector< int > **)&jarg2; 
  if (!argp2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::vector< int >");
    return ;
  }
  arg2 = *argp2; 
  (arg1)->SetConstraints(arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SetExtrinsic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jdouble jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  double arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (double)jarg4; 
  result = (int)(arg1)->SetExtrinsic(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1WriteConstraints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->WriteConstraints((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1AddComment_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (int)jarg3; 
  result = (int)(arg1)->AddComment((char const (*))arg2,arg3);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1AddComment_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->AddComment((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1WriteCt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)((RNA const *)arg1)->WriteCt((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1WriteDotBracket_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int arg3 ;
  DotBracketFormat arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (int)jarg3; 
  arg4 = (DotBracketFormat)jarg4; 
  result = (int)((RNA const *)arg1)->WriteDotBracket((char const (*))arg2,arg3,arg4);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1WriteDotBracket_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (int)jarg3; 
  result = (int)((RNA const *)arg1)->WriteDotBracket((char const (*))arg2,arg3);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1WriteDotBracket_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)((RNA const *)arg1)->WriteDotBracket((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1BreakPseudoknot_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jint jarg3, jboolean jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  bool arg2 ;
  int arg3 ;
  bool arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  arg3 = (int)jarg3; 
  arg4 = jarg4 ? true : false; 
  result = (int)(arg1)->BreakPseudoknot(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1BreakPseudoknot_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  bool arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->BreakPseudoknot(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1BreakPseudoknot_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  bool arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  result = (int)(arg1)->BreakPseudoknot(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1BreakPseudoknot_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)(arg1)->BreakPseudoknot();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1ContainsPseudoknot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jboolean jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (bool)(arg1)->ContainsPseudoknot(arg2);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetEnsembleEnergy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (double)(arg1)->GetEnsembleEnergy();
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetEnsembleDefect_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (double)(arg1)->GetEnsembleDefect(arg2);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetEnsembleDefect_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (double)(arg1)->GetEnsembleDefect();
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetFreeEnergy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (double)(arg1)->GetFreeEnergy(arg2);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetPair_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->GetPair(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetPair_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetPair(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetPairEnergy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (double)(arg1)->GetPairEnergy(arg2,arg3);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetPairProbability(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (double)(arg1)->GetPairProbability(arg2,arg3);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetPairProbabilities(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdoubleArray jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  double *arg2 = (double *) 0 ;
  int arg3 ;
  jdouble *jarr2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  if (!SWIG_JavaArrayInDouble(jenv, &jarr2, (double **)&arg2, jarg2)) return 0; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->GetPairProbabilities(arg2,arg3);
  jresult = (jint)result; 
  SWIG_JavaArrayArgoutDouble(jenv, jarr2, (double *)arg2, jarg2); 
  delete [] arg2; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetStructureNumber(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)((RNA const *)arg1)->GetStructureNumber();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1DetermineDrawingCoordinates_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->DetermineDrawingCoordinates(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1DetermineDrawingCoordinates_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->DetermineDrawingCoordinates(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetCommentString_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jstring jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (arg1)->GetCommentString(arg2);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetCommentString_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (arg1)->GetCommentString();
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNucleotideXCoordinate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetNucleotideXCoordinate(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNucleotideYCoordinate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetNucleotideYCoordinate(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetLabelXCoordinate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetLabelXCoordinate(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetLabelYCoordinate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)(arg1)->GetLabelYCoordinate(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jchar JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetNucleotide(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jchar jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  char result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (char)(arg1)->GetNucleotide(arg2);
  jresult = (jchar)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetSequenceLength(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (int)((RNA const *)arg1)->GetSequenceLength();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetSequence_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (char *)((RNA const *)arg1)->GetSequence();
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetSequence_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) {
  jstring jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  size_t arg2 ;
  size_t arg3 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (size_t)jarg2; 
  arg3 = (size_t)jarg3; 
  result = ((RNA const *)arg1)->GetSequence(arg2,arg3);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetSequence_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  jstring jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  size_t arg2 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (size_t)jarg2; 
  result = ((RNA const *)arg1)->GetSequence(arg2);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetBackboneType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (bool)((RNA const *)arg1)->GetBackboneType();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetVprimeQ(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (double)(arg1)->GetVprimeQ(arg2,arg3);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetW(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jdouble jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int arg3 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (double)(arg1)->GetW(arg2,arg3);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetStructure(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  structure *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (structure *)(arg1)->GetStructure();
  *(structure **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SetProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  RNA *arg1 = (RNA *) 0 ;
  ProgressHandler *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = *(ProgressHandler **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "ProgressHandler & reference is null");
    return ;
  } 
  (arg1)->SetProgress(*arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1StopProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  RNA *arg1 = (RNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  (arg1)->StopProgress();
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1GetProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  ProgressHandler *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  result = (ProgressHandler *)(arg1)->GetProgress();
  *(ProgressHandler **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1RNA(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  RNA *arg1 = (RNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(RNA **)&jarg1; 
  delete arg1;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1CopyThermo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  RNA *arg1 = (RNA *) 0 ;
  Thermodynamics *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = *(Thermodynamics **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Thermodynamics & reference is null");
    return ;
  } 
  (arg1)->CopyThermo(*arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1getInts(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jintArray jarg2, jint jarg3) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  intArr arg2 ;
  int arg3 ;
  jint *jarr2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  if (!SWIG_JavaArrayInInt(jenv, &jarr2, (int **)&arg2, jarg2)) return 0; 
  arg3 = (int)jarg3; 
  result = (int)RNA_getInts(arg1,arg2,arg3);
  jresult = (jint)result; 
  SWIG_JavaArrayArgoutInt(jenv, jarr2, (int *)arg2, jarg2); 
  delete [] arg2; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1initInts(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  RNA *arg1 = (RNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  RNA_initInts(arg1);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1getIntAt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jint jresult = 0 ;
  RNA *arg1 = (RNA *) 0 ;
  int arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(RNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (int)RNA_getIntAt(arg1,arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_COMPOUNDMESSAGELENGTH_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(200);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1TwoRNA_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jboolean jarg3) {
  jlong jresult = 0 ;
  char *arg1 ;
  char *arg2 ;
  bool arg3 ;
  TwoRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = jarg3 ? true : false; 
  result = (TwoRNA *)new TwoRNA((char const (*))arg1,(char const (*))arg2,arg3);
  *(TwoRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1TwoRNA_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  char *arg1 ;
  char *arg2 ;
  TwoRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (TwoRNA *)new TwoRNA((char const (*))arg1,(char const (*))arg2);
  *(TwoRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1TwoRNA_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4, jboolean jarg5) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 ;
  RNAInputType arg4 ;
  bool arg5 ;
  TwoRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (RNAInputType)jarg4; 
  arg5 = jarg5 ? true : false; 
  result = (TwoRNA *)new TwoRNA((char const (*))arg1,arg2,(char const (*))arg3,arg4,arg5);
  *(TwoRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1TwoRNA_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 ;
  RNAInputType arg4 ;
  TwoRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (RNAInputType)jarg4; 
  result = (TwoRNA *)new TwoRNA((char const (*))arg1,arg2,(char const (*))arg3,arg4);
  *(TwoRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1TwoRNA_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4, jlong jarg5, jobject jarg5_) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 ;
  RNAInputType arg4 ;
  Thermodynamics *arg5 = (Thermodynamics *) 0 ;
  TwoRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg5_;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (RNAInputType)jarg4; 
  arg5 = *(Thermodynamics **)&jarg5; 
  result = (TwoRNA *)new TwoRNA((char const (*))arg1,arg2,(char const (*))arg3,arg4,(Thermodynamics const *)arg5);
  *(TwoRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1TwoRNA_1_1SWIG_15(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  TwoRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (TwoRNA *)new TwoRNA();
  *(TwoRNA **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1SetTemperature(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  jint jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  double arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->SetTemperature(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1GetTemperature(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  result = (double)((TwoRNA const *)arg1)->GetTemperature();
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1GetErrorCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  result = (int)((TwoRNA const *)arg1)->GetErrorCode();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1GetErrorMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jstring jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  int arg2 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (char *)(arg1)->GetErrorMessage(arg2);
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1GetErrorDetails(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  result = ((TwoRNA const *)arg1)->GetErrorDetails();
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1SetErrorDetails(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  (arg1)->SetErrorDetails((std::string const &)*arg2);
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1GetErrorMessageString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jstring jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  int arg2 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (arg1)->GetErrorMessageString(arg2);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1ResetError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  (arg1)->ResetError();
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1GetRNA1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  result = (RNA *)(arg1)->GetRNA1();
  *(RNA **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1GetRNA2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  result = (RNA *)(arg1)->GetRNA2();
  *(RNA **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1TwoRNA(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(TwoRNA **)&jarg1; 
  delete arg1;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1compoundmessage_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  char *arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  {
    if(arg2) {
      strncpy((char*)arg1->compoundmessage, (const char *)arg2, 200-1);
      arg1->compoundmessage[200-1] = 0;
    } else {
      arg1->compoundmessage[0] = 0;
    }
  }
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TwoRNA_1compoundmessage_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  TwoRNA *arg1 = (TwoRNA *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(TwoRNA **)&jarg1; 
  result = (char *)(char *) ((arg1)->compoundmessage);
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1HybridRNA_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jboolean jarg3) {
  jlong jresult = 0 ;
  char *arg1 ;
  char *arg2 ;
  bool arg3 ;
  HybridRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = jarg3 ? true : false; 
  result = (HybridRNA *)new HybridRNA((char const (*))arg1,(char const (*))arg2,arg3);
  *(HybridRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1HybridRNA_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  char *arg1 ;
  char *arg2 ;
  HybridRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (HybridRNA *)new HybridRNA((char const (*))arg1,(char const (*))arg2);
  *(HybridRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1HybridRNA_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4, jboolean jarg5) {
  jlong jresult = 0 ;
  char *arg1 ;
  int arg2 ;
  char *arg3 ;
  int arg4 ;
  bool arg5 ;
  HybridRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (int)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (int)jarg4; 
  arg5 = jarg5 ? true : false; 
  result = (HybridRNA *)new HybridRNA((char const (*))arg1,arg2,(char const (*))arg3,arg4,arg5);
  *(HybridRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1HybridRNA_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4) {
  jlong jresult = 0 ;
  char *arg1 ;
  int arg2 ;
  char *arg3 ;
  int arg4 ;
  HybridRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (int)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (int)jarg4; 
  result = (HybridRNA *)new HybridRNA((char const (*))arg1,arg2,(char const (*))arg3,arg4);
  *(HybridRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1HybridRNA_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4, jstring jarg5) {
  jlong jresult = 0 ;
  char *arg1 ;
  int arg2 ;
  char *arg3 ;
  int arg4 ;
  char *arg5 = (char *) 0 ;
  HybridRNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (int)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  result = (HybridRNA *)new HybridRNA((char const (*))arg1,arg2,(char const (*))arg3,arg4,(char const *)arg5);
  *(HybridRNA **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1AccessFold_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jfloat jarg3, jint jarg4, jint jarg5, jint jarg6) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  double arg2 ;
  float arg3 ;
  int arg4 ;
  int arg5 ;
  int arg6 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (float)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = (int)jarg5; 
  arg6 = (int)jarg6; 
  result = (int)(arg1)->AccessFold(arg2,arg3,arg4,arg5,arg6);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1AccessFold_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jfloat jarg3, jint jarg4, jint jarg5) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  double arg2 ;
  float arg3 ;
  int arg4 ;
  int arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (float)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = (int)jarg5; 
  result = (int)(arg1)->AccessFold(arg2,arg3,arg4,arg5);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1AccessFold_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jfloat jarg3, jint jarg4) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  double arg2 ;
  float arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (float)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->AccessFold(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1AccessFold_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jfloat jarg3) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  double arg2 ;
  float arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (float)jarg3; 
  result = (int)(arg1)->AccessFold(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1AccessFold_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  double arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (double)jarg2; 
  result = (int)(arg1)->AccessFold(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1AccessFold_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (int)(arg1)->AccessFold();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldBimolecular_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jstring jarg5, jint jarg6) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  char *arg5 ;
  int arg6 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = (int)jarg6; 
  result = (int)(arg1)->FoldBimolecular(arg2,arg3,arg4,(char const (*))arg5,arg6);
  jresult = (jint)result; 
  
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldBimolecular_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jstring jarg5) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  char *arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  result = (int)(arg1)->FoldBimolecular(arg2,arg3,arg4,(char const (*))arg5);
  jresult = (jint)result; 
  
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldBimolecular_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->FoldBimolecular(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldBimolecular_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->FoldBimolecular(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldBimolecular_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  result = (int)(arg1)->FoldBimolecular(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldBimolecular_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (int)(arg1)->FoldBimolecular();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldDuplex_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4, jint jarg5) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  int arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  arg5 = (int)jarg5; 
  result = (int)(arg1)->FoldDuplex(arg2,arg3,arg4,arg5);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldDuplex_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3, jint jarg4) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (int)(arg1)->FoldDuplex(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldDuplex_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2, jint jarg3) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->FoldDuplex(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldDuplex_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  float arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (float)jarg2; 
  result = (int)(arg1)->FoldDuplex(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1FoldDuplex_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (int)(arg1)->FoldDuplex();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1PartitionFunctionBimolecular_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->PartitionFunctionBimolecular((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1PartitionFunctionBimolecular_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (int)(arg1)->PartitionFunctionBimolecular();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1GetRNA1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (RNA *)(arg1)->GetRNA1();
  *(RNA **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1GetRNA2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  RNA *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (RNA *)(arg1)->GetRNA2();
  *(RNA **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1GetErrorCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (int)(arg1)->GetErrorCode();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1GetMyErrorMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jstring jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  int arg2 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (char *)(arg1)->GetErrorMessage(arg2);
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1GetForbidIntramolecular(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  result = (bool)(arg1)->GetForbidIntramolecular();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1SetForbidIntramolecular(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  (arg1)->SetForbidIntramolecular(arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1SetProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  ProgressHandler *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(HybridRNA **)&jarg1; 
  arg2 = *(ProgressHandler **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "ProgressHandler & reference is null");
    return ;
  } 
  (arg1)->SetProgress(*arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1StopProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(HybridRNA **)&jarg1; 
  (arg1)->StopProgress();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1HybridRNA(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  HybridRNA *arg1 = (HybridRNA *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(HybridRNA **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (Dynalign_object *)new Dynalign_object();
  *(Dynalign_object **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jboolean jarg3) {
  jlong jresult = 0 ;
  char *arg1 ;
  char *arg2 ;
  bool arg3 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = jarg3 ? true : false; 
  result = (Dynalign_object *)new Dynalign_object((char const (*))arg1,(char const (*))arg2,arg3);
  *(Dynalign_object **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  char *arg1 ;
  char *arg2 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (Dynalign_object *)new Dynalign_object((char const (*))arg1,(char const (*))arg2);
  *(Dynalign_object **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4, jboolean jarg5) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 ;
  RNAInputType arg4 ;
  bool arg5 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (RNAInputType)jarg4; 
  arg5 = jarg5 ? true : false; 
  result = (Dynalign_object *)new Dynalign_object((char const (*))arg1,arg2,(char const (*))arg3,arg4,arg5);
  *(Dynalign_object **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 ;
  RNAInputType arg4 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (RNAInputType)jarg4; 
  result = (Dynalign_object *)new Dynalign_object((char const (*))arg1,arg2,(char const (*))arg3,arg4);
  *(Dynalign_object **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jint jarg4, jlong jarg5, jobject jarg5_) {
  jlong jresult = 0 ;
  char *arg1 ;
  RNAInputType arg2 ;
  char *arg3 ;
  RNAInputType arg4 ;
  Thermodynamics *arg5 = (Thermodynamics *) 0 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg5_;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (RNAInputType)jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = (RNAInputType)jarg4; 
  arg5 = *(Thermodynamics **)&jarg5; 
  result = (Dynalign_object *)new Dynalign_object((char const (*))arg1,arg2,(char const (*))arg3,arg4,(Thermodynamics const *)arg5);
  *(Dynalign_object **)&jresult = result; 
  
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_16(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  char *arg1 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  result = (Dynalign_object *)new Dynalign_object((char const (*))arg1);
  *(Dynalign_object **)&jresult = result; 
  
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_new_1Dynalign_1object_1_1SWIG_17(JNIEnv *jenv, jclass jcls, jstring jarg1, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  Dynalign_object *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  result = (Dynalign_object *)new Dynalign_object((char const *)arg1,arg2,arg3,arg4,arg5);
  *(Dynalign_object **)&jresult = result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7, jboolean jarg8, jstring jarg9, jboolean jarg10, jshort jarg11, jboolean jarg12, jshort jarg13, jint jarg14) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  bool arg8 ;
  char *arg9 ;
  bool arg10 ;
  short arg11 ;
  bool arg12 ;
  short arg13 ;
  int arg14 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  arg8 = jarg8 ? true : false; 
  arg9 = 0;
  if (jarg9) {
    arg9 = (char *)jenv->GetStringUTFChars(jarg9, 0);
    if (!arg9) return 0;
  }
  arg10 = jarg10 ? true : false; 
  arg11 = (short)jarg11; 
  arg12 = jarg12 ? true : false; 
  arg13 = (short)jarg13; 
  arg14 = (int)jarg14; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const (*))arg9,arg10,arg11,arg12,arg13,arg14);
  jresult = (jint)result; 
  
  if (arg9) jenv->ReleaseStringUTFChars(jarg9, (const char *)arg9);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7, jboolean jarg8, jstring jarg9, jboolean jarg10, jshort jarg11, jboolean jarg12, jshort jarg13) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  bool arg8 ;
  char *arg9 ;
  bool arg10 ;
  short arg11 ;
  bool arg12 ;
  short arg13 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  arg8 = jarg8 ? true : false; 
  arg9 = 0;
  if (jarg9) {
    arg9 = (char *)jenv->GetStringUTFChars(jarg9, 0);
    if (!arg9) return 0;
  }
  arg10 = jarg10 ? true : false; 
  arg11 = (short)jarg11; 
  arg12 = jarg12 ? true : false; 
  arg13 = (short)jarg13; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const (*))arg9,arg10,arg11,arg12,arg13);
  jresult = (jint)result; 
  
  if (arg9) jenv->ReleaseStringUTFChars(jarg9, (const char *)arg9);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7, jboolean jarg8, jstring jarg9, jboolean jarg10, jshort jarg11, jboolean jarg12) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  bool arg8 ;
  char *arg9 ;
  bool arg10 ;
  short arg11 ;
  bool arg12 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  arg8 = jarg8 ? true : false; 
  arg9 = 0;
  if (jarg9) {
    arg9 = (char *)jenv->GetStringUTFChars(jarg9, 0);
    if (!arg9) return 0;
  }
  arg10 = jarg10 ? true : false; 
  arg11 = (short)jarg11; 
  arg12 = jarg12 ? true : false; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const (*))arg9,arg10,arg11,arg12);
  jresult = (jint)result; 
  
  if (arg9) jenv->ReleaseStringUTFChars(jarg9, (const char *)arg9);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7, jboolean jarg8, jstring jarg9, jboolean jarg10, jshort jarg11) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  bool arg8 ;
  char *arg9 ;
  bool arg10 ;
  short arg11 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  arg8 = jarg8 ? true : false; 
  arg9 = 0;
  if (jarg9) {
    arg9 = (char *)jenv->GetStringUTFChars(jarg9, 0);
    if (!arg9) return 0;
  }
  arg10 = jarg10 ? true : false; 
  arg11 = (short)jarg11; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const (*))arg9,arg10,arg11);
  jresult = (jint)result; 
  
  if (arg9) jenv->ReleaseStringUTFChars(jarg9, (const char *)arg9);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7, jboolean jarg8, jstring jarg9, jboolean jarg10) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  bool arg8 ;
  char *arg9 ;
  bool arg10 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  arg8 = jarg8 ? true : false; 
  arg9 = 0;
  if (jarg9) {
    arg9 = (char *)jenv->GetStringUTFChars(jarg9, 0);
    if (!arg9) return 0;
  }
  arg10 = jarg10 ? true : false; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const (*))arg9,arg10);
  jresult = (jint)result; 
  
  if (arg9) jenv->ReleaseStringUTFChars(jarg9, (const char *)arg9);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7, jboolean jarg8, jstring jarg9) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  bool arg8 ;
  char *arg9 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  arg8 = jarg8 ? true : false; 
  arg9 = 0;
  if (jarg9) {
    arg9 = (char *)jenv->GetStringUTFChars(jarg9, 0);
    if (!arg9) return 0;
  }
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const (*))arg9);
  jresult = (jint)result; 
  
  if (arg9) jenv->ReleaseStringUTFChars(jarg9, (const char *)arg9);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_16(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7, jboolean jarg8) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  bool arg8 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  arg8 = jarg8 ? true : false; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_17(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6, jfloat jarg7) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  float arg7 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  arg7 = (float)jarg7; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6,arg7);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_18(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5, jshort jarg6) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  short arg6 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  arg6 = (short)jarg6; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5,arg6);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_19(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4, jshort jarg5) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  short arg5 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  arg5 = (short)jarg5; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4,arg5);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_110(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3, jshort jarg4) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  short arg4 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  arg4 = (short)jarg4; 
  result = (int)(arg1)->Dynalign(arg2,arg3,arg4);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_111(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2, jshort jarg3) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  short arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  arg3 = (short)jarg3; 
  result = (int)(arg1)->Dynalign(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_112(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  short arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (short)jarg2; 
  result = (int)(arg1)->Dynalign(arg2);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Dynalign_1_1SWIG_113(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  result = (int)(arg1)->Dynalign();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1WriteAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  char *arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  (arg1)->WriteAlignment((char const (*))arg2);
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1ForceAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->ForceAlignment(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1GetForcedAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  int arg2 ;
  int arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  result = (int)(arg1)->GetForcedAlignment(arg2,arg3);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1ReadAlignmentConstraints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->ReadAlignmentConstraints((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Templatefromct(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  char *arg2 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (int)(arg1)->Templatefromct((char const (*))arg2);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1Templatefromdsv(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jfloat jarg3) {
  jint jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  char *arg2 ;
  float arg3 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (float)jarg3; 
  result = (int)(arg1)->Templatefromdsv((char const (*))arg2,arg3);
  jresult = (jint)result; 
  
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1GetBestPairEnergy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3, jint jarg4) {
  jdouble jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  int arg2 ;
  int arg3 ;
  int arg4 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (int)jarg4; 
  result = (double)(arg1)->GetBestPairEnergy(arg2,arg3,arg4);
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1GetLowestEnergy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  result = (double)(arg1)->GetLowestEnergy();
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1GetErrorMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jstring jresult = 0 ;
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  int arg2 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (char *)(arg1)->GetErrorMessage(arg2);
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1SetProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  ProgressHandler *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(Dynalign_object **)&jarg1; 
  arg2 = *(ProgressHandler **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "ProgressHandler & reference is null");
    return ;
  } 
  (arg1)->SetProgress(*arg2);
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1StopProgress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(Dynalign_object **)&jarg1; 
  (arg1)->StopProgress();
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_delete_1Dynalign_1object(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  Dynalign_object *arg1 = (Dynalign_object *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(Dynalign_object **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_getDataPath_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jstring jresult = 0 ;
  char *arg1 = (char *) (char *)0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  result = (char *)getDataPath((char const *)arg1);
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_getDataPath_1_1SWIG_11(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *)getDataPath();
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_setDataPath(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  char *arg1 = (char *) (char *)0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return ;
  }
  setDataPath((char const *)arg1);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}


SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_SimpleProgressHandler_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(ProgressHandler **)&baseptr = *(SimpleProgressHandler **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_TProgressDialog_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(ProgressHandler **)&baseptr = *(TProgressDialog **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_PartialProgress_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(ProgressHandler **)&baseptr = *(PartialProgress **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_RNA_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(Thermodynamics **)&baseptr = *(RNA **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_HybridRNA_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(RNA **)&baseptr = *(HybridRNA **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_ur_1rna_RNAstructure_backend_RNABackendJNI_Dynalign_1object_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(TwoRNA **)&baseptr = *(Dynalign_object **)&jarg1;
    return baseptr;
}

#ifdef __cplusplus
}
#endif

