diff --git a/build.xml b/build.xml
index 2cb4a302ae..7b1d5b33a3 100644
--- a/build.xml
+++ b/build.xml
@@ -31,7 +31,8 @@ SPDX-License-Identifier: Apache-2.0
runtime-princess,
runtime-smtinterpol,
runtime-yices2,
- runtime-z3
+ runtime-z3,
+ runtime-dreal
"/>
@@ -81,6 +82,7 @@ SPDX-License-Identifier: Apache-2.0
+
diff --git a/build/build-publish-solvers.xml b/build/build-publish-solvers.xml
index b88aea311f..377db04fa8 100644
--- a/build/build-publish-solvers.xml
+++ b/build/build-publish-solvers.xml
@@ -11,7 +11,7 @@ SPDX-License-Identifier: Apache-2.0
-->
-
+
@@ -20,5 +20,6 @@ SPDX-License-Identifier: Apache-2.0
+
diff --git a/build/build-publish-solvers/solver-dreal.xml b/build/build-publish-solvers/solver-dreal.xml
new file mode 100644
index 0000000000..263549d96e
--- /dev/null
+++ b/build/build-publish-solvers/solver-dreal.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Please specify a custom revision with the flag -Ddreal.customRev=XXX.
+ The custom revision has to be unique amongst the already known version
+ numbers from the ivy repository. The script will append the git revision.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/ivy.xml b/lib/ivy.xml
index d24ed0975a..bc9d6d46bd 100644
--- a/lib/ivy.xml
+++ b/lib/ivy.xml
@@ -41,6 +41,7 @@ SPDX-License-Identifier: Apache-2.0
+
@@ -165,6 +166,7 @@ SPDX-License-Identifier: Apache-2.0
+
diff --git a/lib/native/source/dreal/Documentation.md b/lib/native/source/dreal/Documentation.md
new file mode 100644
index 0000000000..053fdda997
--- /dev/null
+++ b/lib/native/source/dreal/Documentation.md
@@ -0,0 +1,239 @@
+
+
+## Documentation:
+### Building on Ubuntu 23.10
+0. Get the source from github
+1. Install Bazel from the github release
+`https://github.com/bazelbuild/bazel/releases/download/7.1.1/bazel_7.1.1-linux-x86_64.deb`
+2. Get libibex from the ppa
+`https://launchpad.net/~dreal/+archive/ubuntu/dreal/+sourcepub/13805166/+listing-archive-extra`
+3. Install missing dependencies with apt
+```
+bison
+coinor-libclp-dev
+g++
+libfl-dev
+libgmp-dev
+libibex-dev
+libnlopt-cxx-dev
+libpython3-dev
+pkg-config
+python3-distutils
+python3-minimal
+zlib1g-dev
+```
+4. Build with bazel
+`bazel build //...`
+5. Comment out the broken test
+6. Run bazel again
+7. Library can be found in `bazel-bin/libdreal_.so`. Run `bazel build //:package_debian` to
+ generate a deb package and install it.
+8. Compile the SIWG wrapper with `g++ -fpic -c dreal_wrap.cxx -I/usr/lib/jvm/java-20-openjdk-amd64/include/ -I/usr/lib/jvm/java-20-openjdk-amd64/include/linux -I/opt/libibex/2.7.4/include/ -I/opt/libibex/2.7.4/include/ibex -I/opt/libibex/2.7.4/include/ibex/3rd -I/opt/dreal/4.21.06.2/include/`
+9. Then link it with `g++ -shared dreal_wrap.o -L/opt/libibex/2.7.4/lib -L/opt/dreal/4.21.06.2/lib
+ -ldreal_ -libex -o libdrealjava.so`
+10. Patch with rpath
+
+### How to build the library:
+1. Install the dependencies for libibex-dev
+ ```bash
+ sudo apt-get update && apt install -y software-properties-common
+ ```
+2. Install git, curl, g++, java. Curl is used, because dReal will be installed and in the
+ directory dreal, all the header files can be found. In the directory symbolic, for example,
+ will be every header file, that is used in the wrapper. If dReal is just cloned, the header
+ files will not be in the directory dreal/symbolic, they will be in the directory
+ third_party/com_github_robotlocomotion_drake/dreal/symbolic. For the wrapper it is easier to
+ just import the dreal/dreal.h file with all the necassary header files and use the installed
+ version of dReal, because C++ will find all the header files at one place.
+ ```bash
+ sudo apt update && apt install -y git -y curl -y g++ -y openjdk-11-jdk
+ ```
+3. Install dReal and dependencies
+ ```bash
+ sudo curl -fsSL https://raw.githubusercontent.com/dreal/dreal4/master/setup/ubuntu/22.04/install.
+ sh | bash
+ ```
+4. Move the shared libraries into the system folder. Otherwise, when creating the shared library
+ for the JNI, it will not find libibex.so or libdreal.so.
+ ```bash
+ sudo cp /opt/dreal/4.21.06.2/lib/libdreal.so /usr/lib/ &&
+ sudo cp /opt/libibex/2.7.4/lib/libibex.so /usr/lib/
+ ```
+5. Compile the wrapper file and create the shared library
+ ```
+ c++ -fpic -c dreal_wrap.cxx -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/ -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/linux -I/opt/dreal/4.21.06.2/include -I/opt/libibex/2.7.4/include -I/opt/libibex/2.7.4/include/ibex -I/opt/libibex/2.7.4/include/ibex/3rd -I/usr/include/coin -L/opt/dreal/4.21.06.2/lib -L/opt/libibex/2.7.4/lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib -ldreal -libex -lClpSolver -lClp -lCoinUtils -lbz2 -lz -llapack -lblas -lm -lnlopt
+ c++ -shared dreal_wrap.o -L/opt/dreal/4.21.06.2/lib -L/opt/libibex/2.7.4/lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib -ldreal -libex -lClpSolver -lClp -lCoinUtils -lbz2 -lz -llapack -lblas -lm -lnlopt -o libdreal4.so
+ ```
+
+### SWIG:
+It is also possible to generate new JNI code. For that a SWIG interface needs to be created and
+functions and headers need to be in that file, that should be translated.
+#### Example for dReal:
+- create SWIG interface (file with .i) and put functions and header in that file
+- It is possible to overload operators in C++, therefore, it is possible to tell swig to rename the overloaded operators, so that those can be translated to java as well. For that use the ```rename``` command.
+- There are a lot of overloads in dReal, especially in the symbolic.h file and the includes of the file. Those overloaded methods need to be handled with rename.
+- The interface-file also needs a few includes for handling specific C++ class templates if the
+ translated code uses them:
+ ```
+ %include "std_string.i"
+ %include "std_vector.i"
+ %include "std_unordered_map.i"
+ %include "std_pair.i"
+ %include "std_shared_ptr.i"
+ %include "std_set.i"
+ %include "std_map.i"
+ ```
+- To use std::set and so on, you need to specify how the template is going to be named, so to wrap std::set with a certain type, it needs to be specified, for example:
+ ```
+ std::set ->
+ %template() std::set
+ ```
+ So SWIG knows how to name the generated class.
+- In C++ templates can be used. A template is a construct that generates an ordinary type or function at compile time based on arguments the user supplies for the template parameters.
+In order to use that, the templates must be wrapped with a type, to do so, in the interface file the template needs to be defined and wrapped like:
+ ```
+ namespace dreal {
+ template
+ class OptionValue {
+ public:
+ enum class Type {
+ DEFAULT, ///< Default value
+ FROM_FILE, ///< Updated by a set-option/set-info in a file
+ FROM_COMMAND_LINE, ///< Updated by a command-line argument
+ FROM_CODE, ///< Explicitly updated by a code
+ };
+
+ /// Constructs an option value with @p value.
+ explicit OptionValue(T value)
+ : value_{std::move(value)}, type_{Type::DEFAULT} {}
+
+ /// Default copy constructor.
+ OptionValue(const OptionValue&) = default;
+
+ /// Default move constructor.
+ OptionValue(OptionValue&&) noexcept = default;
+
+ /// Default copy assign operator.
+ OptionValue& operator=(const OptionValue&) = default;
+
+ /// Default move assign operator.
+ OptionValue& operator=(OptionValue&&) noexcept = default;
+
+ /// Default destructor.
+ ~OptionValue() = default;
+
+ /// Copy-assign operator for T.
+ ///
+ /// Note: It sets value with `Type::FROM_CODE` type.
+ OptionValue& operator=(const T& value) {
+ value_ = value;
+ type_ = Type::FROM_CODE;
+ return *this;
+ }
+
+ /// Move-assign operator for T.
+ ///
+ /// Note: It sets value with `Type::FROM_CODE` type.
+ OptionValue& operator=(T&& value) {
+ value_ = std::move(value);
+ type_ = Type::FROM_CODE;
+ return *this;
+ }
+
+ /// Returns the value.
+ const T& get() const { return value_; }
+
+ /// Sets the value to @p value which is given by a command-line argument.
+ void set_from_command_line(const T& value) {
+ if (type_ != Type::FROM_CODE) {
+ value_ = value;
+ type_ = Type::FROM_COMMAND_LINE;
+ }
+ }
+
+ /// Sets the value to @p value which is provided from a file.
+ ///
+ /// @note This operation is ignored if the current value is set by
+ /// command-line.
+ void set_from_file(const T& value) {
+ switch (type_) {
+ case Type::DEFAULT:
+ case Type::FROM_FILE:
+ value_ = value;
+ type_ = Type::FROM_FILE;
+ return;
+
+ case Type::FROM_COMMAND_LINE:
+ case Type::FROM_CODE:
+ // No operation.
+ return;
+ }
+ }
+
+ friend std::ostream& operator<<(std::ostream& os, Type type) {
+ switch (type) {
+ case OptionValue::Type::DEFAULT:
+ return os << "DEFAULT";
+ case OptionValue::Type::FROM_FILE:
+ return os << "FROM_FILE";
+ case OptionValue::Type::FROM_COMMAND_LINE:
+ return os << "FROM_COMMAND_LINE";
+ case OptionValue::Type::FROM_CODE:
+ return os << "FROM_CODE";
+ }
+ }
+
+ private:
+ T value_;
+ Type type_;
+ };
+
+ %template(OptionValueBool) OptionValue;
+ %template(OptionValueInt) OptionValue;
+ %template(OptionValueDouble) OptionValue;
+ %template(OptionValueUnsignedInt) OptionValue;
+ }
+ ```
+
+- The order of the includes is important, so that a class that is used in different headers must be wraped first, so it is known to SWIG in other files
+- To create a wrapper file with SWIG use the following command :
+ - C++
+ ```bash
+ swig -c++ -java .i
+ ```
+- Compile _wrap.cxx to create the extension lib.so (unix). In order to compile the C++ wrappers, the compiler needs the jni.h and jni_md.h header files which are part of the JDK. They are usually in directories like this:
+ ```bash
+ /usr/java/include
+ /usr/java/include/
+ ```
+ Use the following commands (be careful with dependencies):
+ - C++:
+ ```bash
+ # General usage
+ c++ -fpic -c _wrap.cxx -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/ -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/linux
+
+ # This is specific for dReal, so that all the right dependencies are included
+ c++ -fpic -c dreal_wrap.cxx -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/ -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/linux -I/opt/dreal/4.21.06.2/include -I/opt/libibex/2.7.4/include -I/opt/libibex/2.7.4/include/ibex -I/opt/libibex/2.7.4/include/ibex/3rd -I/usr/include/coin -L/opt/dreal/4.21.06.2/lib -L/opt/libibex/2.7.4/lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib -ldreal -libex -lClpSolver -lClp -lCoinUtils -lbz2 -lz -llapack -lblas -lm -lnlopt
+ ```
+
+ For the libaries to work, the dependencies of ibex and dreal are needed. Therefore, the library is compiled with those two libraries, which should be both in the same directory:
+ ```bash
+ # General usage
+ c++ -shared _wrap.o -o .so
+
+ # This is specific for dReal, so that all the right dependencies are included
+ c++ -shared dreal_wrap.o -L/opt/dreal/4.21.06.2/lib -L/opt/libibex/2.7.4/lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib -ldreal -libex -lClpSolver -lClp -lCoinUtils -lbz2 -lz -llapack -lblas -lm -lnlopt -o libdreal4.so
+
+ ```
+
+
+
+
diff --git a/lib/native/source/dreal/dreal_wrap.cxx b/lib/native/source/dreal/dreal_wrap.cxx
new file mode 100644
index 0000000000..9bdd9c986a
--- /dev/null
+++ b/lib/native/source/dreal/dreal_wrap.cxx
@@ -0,0 +1,11925 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+
+#define SWIG_VERSION 0x040101
+#define SWIGJAVA
+
+/* -----------------------------------------------------------------------------
+ * 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
+
+
+#include
+#include
+#include
+
+
+/* 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_JavaIllegalStateException,
+} 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_JavaIllegalStateException, "java/lang/IllegalStateException" },
+ { (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) do { if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } } while (0)
+
+/* SWIG Errors applicable to all language modules, values are reserved from -1 to -99 */
+#define SWIG_UnknownError -1
+#define SWIG_IOError -2
+#define SWIG_RuntimeError -3
+#define SWIG_IndexError -4
+#define SWIG_TypeError -5
+#define SWIG_DivisionByZero -6
+#define SWIG_OverflowError -7
+#define SWIG_SyntaxError -8
+#define SWIG_ValueError -9
+#define SWIG_SystemError -10
+#define SWIG_AttributeError -11
+#define SWIG_MemoryError -12
+#define SWIG_NullReferenceError -13
+
+
+
+#ifdef __cplusplus
+#include
+/* SwigValueWrapper is described in swig.swg */
+template class SwigValueWrapper {
+ struct SwigSmartPointer {
+ T *ptr;
+ SwigSmartPointer(T *p) : ptr(p) { }
+ ~SwigSmartPointer() { delete ptr; }
+ SwigSmartPointer& operator=(SwigSmartPointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
+ void reset(T *p) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = p; }
+ } pointer;
+ SwigValueWrapper& operator=(const SwigValueWrapper& rhs);
+ SwigValueWrapper(const SwigValueWrapper& rhs);
+public:
+ SwigValueWrapper() : pointer(0) { }
+ SwigValueWrapper& operator=(const T& t) { SwigSmartPointer tmp(new T(t)); pointer = tmp; return *this; }
+#if __cplusplus >=201103L
+ SwigValueWrapper& operator=(T&& t) { SwigSmartPointer tmp(new T(std::move(t))); pointer = tmp; return *this; }
+ operator T&&() const { return std::move(*pointer.ptr); }
+#else
+ operator T&() const { return *pointer.ptr; }
+#endif
+ T *operator&() const { return pointer.ptr; }
+ static void reset(SwigValueWrapper& t, T *p) { t.pointer.reset(p); }
+};
+
+/*
+ * SwigValueInit() is a generic initialisation solution as the following approach:
+ *
+ * T c_result = T();
+ *
+ * doesn't compile for all types for example:
+ *
+ * unsigned int c_result = unsigned int();
+ */
+template T SwigValueInit() {
+ return T();
+}
+
+#if __cplusplus >=201103L
+# define SWIG_STD_MOVE(OBJ) std::move(OBJ)
+#else
+# define SWIG_STD_MOVE(OBJ) OBJ
+#endif
+
+#endif
+
+
+// #include "dreal/symbolic/symbolic.h"
+// #include "dreal/smt2/logic.h"
+// #include "dreal/util/box.h"
+// #include "/opt/libibex/2.7.4/include/ibex.h"
+// #include "/opt/libibex/2.7.4/include/ibex/ibex_Vector.h"
+// #include "dreal/solver/config.h"
+// #include "dreal/api/api.h"
+// #include "dreal/solver/context.h"
+
+#include "dreal/dreal.h"
+
+
+// using namespace ibex;
+// using namespace dreal;
+// using namespace dreal::drake::symbolic;
+
+// include optional??
+//#include
+
+#include
+
+
+#include
+#include
+
+
+#include
+#include
+
+
+#include
+#include
+
+
+SWIGINTERN void SWIG_JavaException(JNIEnv *jenv, int code, const char *msg) {
+ SWIG_JavaExceptionCodes exception_code = SWIG_JavaUnknownError;
+ switch(code) {
+ case SWIG_MemoryError:
+ exception_code = SWIG_JavaOutOfMemoryError;
+ break;
+ case SWIG_IOError:
+ exception_code = SWIG_JavaIOException;
+ break;
+ case SWIG_SystemError:
+ case SWIG_RuntimeError:
+ exception_code = SWIG_JavaRuntimeException;
+ break;
+ case SWIG_OverflowError:
+ case SWIG_IndexError:
+ exception_code = SWIG_JavaIndexOutOfBoundsException;
+ break;
+ case SWIG_DivisionByZero:
+ exception_code = SWIG_JavaArithmeticException;
+ break;
+ case SWIG_SyntaxError:
+ case SWIG_ValueError:
+ case SWIG_TypeError:
+ exception_code = SWIG_JavaIllegalArgumentException;
+ break;
+ case SWIG_UnknownError:
+ default:
+ exception_code = SWIG_JavaUnknownError;
+ break;
+ }
+ SWIG_JavaThrowException(jenv, exception_code, msg);
+}
+
+
+#include
+#include
+
+
+#include
+
+
+#include
+#include
+
+
+#include
+#include
+
+SWIGINTERN void std_set_Sl_dreal_drake_symbolic_Formula_Sg__iterator_incrementUnchecked(std::set< dreal::drake::symbolic::Formula >::iterator *self){
+ ++(*self);
+ }
+SWIGINTERN dreal::drake::symbolic::Formula std_set_Sl_dreal_drake_symbolic_Formula_Sg__iterator_derefUnchecked(std::set< dreal::drake::symbolic::Formula >::iterator const *self){
+ return **self;
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Formula_Sg__iterator_isNot(std::set< dreal::drake::symbolic::Formula >::iterator const *self,std::set< dreal::drake::symbolic::Formula >::iterator other){
+ return (*self != other);
+ }
+
+/* Check for overflow converting to Java int (always signed 32-bit) from (unsigned variable-bit) size_t */
+SWIGINTERN jint SWIG_JavaIntFromSize_t(size_t size) {
+ static const jint JINT_MAX = 0x7FFFFFFF;
+ return (size > (size_t)JINT_MAX) ? -1 : (jint)size;
+}
+
+
+ SWIGINTERN jint SWIG_SetSize(size_t size) {
+ jint sz = SWIG_JavaIntFromSize_t(size);
+ if (sz == -1) {
+ throw std::out_of_range("set size is too large to fit into a Java int");
+ }
+
+ return sz;
+ }
+
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Formula_Sg__addImpl(std::set< dreal::drake::symbolic::Formula > *self,dreal::drake::symbolic::Formula const &key){
+ return self->insert(key).second;
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Formula_Sg__containsImpl(std::set< dreal::drake::symbolic::Formula > *self,dreal::drake::symbolic::Formula const &key){
+ return (self->count(key) > 0);
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Formula_Sg__removeImpl(std::set< dreal::drake::symbolic::Formula > *self,dreal::drake::symbolic::Formula const &key){
+ return (self->erase(key) > 0);
+ }
+SWIGINTERN jint std_set_Sl_dreal_drake_symbolic_Formula_Sg__sizeImpl(std::set< dreal::drake::symbolic::Formula > const *self){
+ return SWIG_SetSize(self->size());
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Formula_Sg__hasNextImpl(std::set< dreal::drake::symbolic::Formula > const *self,std::set< dreal::drake::symbolic::Formula >::iterator const &itr){
+ return (itr != self->end());
+ }
+
+SWIGINTERN jint SWIG_VectorSize(size_t size) {
+ jint sz = SWIG_JavaIntFromSize_t(size);
+ if (sz == -1)
+ throw std::out_of_range("vector size is too large to fit into a Java int");
+ return sz;
+}
+
+SWIGINTERN std::vector< dreal::drake::symbolic::Formula > *new_std_vector_Sl_dreal_drake_symbolic_Formula_Sg___SWIG_2(jint count,dreal::drake::symbolic::Formula const &value){
+ if (count < 0)
+ throw std::out_of_range("vector count must be positive");
+ return new std::vector< dreal::drake::symbolic::Formula >(static_cast::size_type>(count), value);
+ }
+SWIGINTERN jint std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doSize(std::vector< dreal::drake::symbolic::Formula > const *self){
+ return SWIG_VectorSize(self->size());
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doAdd__SWIG_0(std::vector< dreal::drake::symbolic::Formula > *self,std::vector< dreal::drake::symbolic::Formula >::value_type const &x){
+ self->push_back(x);
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doAdd__SWIG_1(std::vector< dreal::drake::symbolic::Formula > *self,jint index,std::vector< dreal::drake::symbolic::Formula >::value_type const &x){
+ jint size = static_cast(self->size());
+ if (0 <= index && index <= size) {
+ self->insert(self->begin() + index, x);
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Formula >::value_type std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doRemove(std::vector< dreal::drake::symbolic::Formula > *self,jint index){
+ jint size = static_cast(self->size());
+ if (0 <= index && index < size) {
+ dreal::drake::symbolic::Formula const old_value = (*self)[index];
+ self->erase(self->begin() + index);
+ return old_value;
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Formula >::value_type const &std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doGet(std::vector< dreal::drake::symbolic::Formula > *self,jint index){
+ jint size = static_cast(self->size());
+ if (index >= 0 && index < size)
+ return (*self)[index];
+ else
+ throw std::out_of_range("vector index out of range");
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Formula >::value_type std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doSet(std::vector< dreal::drake::symbolic::Formula > *self,jint index,std::vector< dreal::drake::symbolic::Formula >::value_type const &val){
+ jint size = static_cast(self->size());
+ if (index >= 0 && index < size) {
+ dreal::drake::symbolic::Formula const old_value = (*self)[index];
+ (*self)[index] = val;
+ return old_value;
+ }
+ else
+ throw std::out_of_range("vector index out of range");
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doRemoveRange(std::vector< dreal::drake::symbolic::Formula > *self,jint fromIndex,jint toIndex){
+ jint size = static_cast(self->size());
+ if (0 <= fromIndex && fromIndex <= toIndex && toIndex <= size) {
+ self->erase(self->begin() + fromIndex, self->begin() + toIndex);
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Variable > *new_std_vector_Sl_dreal_drake_symbolic_Variable_Sg___SWIG_2(jint count,dreal::drake::symbolic::Variable const &value){
+ if (count < 0)
+ throw std::out_of_range("vector count must be positive");
+ return new std::vector< dreal::drake::symbolic::Variable >(static_cast::size_type>(count), value);
+ }
+SWIGINTERN jint std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doSize(std::vector< dreal::drake::symbolic::Variable > const *self){
+ return SWIG_VectorSize(self->size());
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doAdd__SWIG_0(std::vector< dreal::drake::symbolic::Variable > *self,std::vector< dreal::drake::symbolic::Variable >::value_type const &x){
+ self->push_back(x);
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doAdd__SWIG_1(std::vector< dreal::drake::symbolic::Variable > *self,jint index,std::vector< dreal::drake::symbolic::Variable >::value_type const &x){
+ jint size = static_cast(self->size());
+ if (0 <= index && index <= size) {
+ self->insert(self->begin() + index, x);
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Variable >::value_type std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doRemove(std::vector< dreal::drake::symbolic::Variable > *self,jint index){
+ jint size = static_cast(self->size());
+ if (0 <= index && index < size) {
+ dreal::drake::symbolic::Variable const old_value = (*self)[index];
+ self->erase(self->begin() + index);
+ return old_value;
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Variable >::value_type const &std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doGet(std::vector< dreal::drake::symbolic::Variable > *self,jint index){
+ jint size = static_cast(self->size());
+ if (index >= 0 && index < size)
+ return (*self)[index];
+ else
+ throw std::out_of_range("vector index out of range");
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Variable >::value_type std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doSet(std::vector< dreal::drake::symbolic::Variable > *self,jint index,std::vector< dreal::drake::symbolic::Variable >::value_type const &val){
+ jint size = static_cast(self->size());
+ if (index >= 0 && index < size) {
+ dreal::drake::symbolic::Variable const old_value = (*self)[index];
+ (*self)[index] = val;
+ return old_value;
+ }
+ else
+ throw std::out_of_range("vector index out of range");
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doRemoveRange(std::vector< dreal::drake::symbolic::Variable > *self,jint fromIndex,jint toIndex){
+ jint size = static_cast(self->size());
+ if (0 <= fromIndex && fromIndex <= toIndex && toIndex <= size) {
+ self->erase(self->begin() + fromIndex, self->begin() + toIndex);
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Expression > *new_std_vector_Sl_dreal_drake_symbolic_Expression_Sg___SWIG_2(jint count,dreal::drake::symbolic::Expression const &value){
+ if (count < 0)
+ throw std::out_of_range("vector count must be positive");
+ return new std::vector< dreal::drake::symbolic::Expression >(static_cast::size_type>(count), value);
+ }
+SWIGINTERN jint std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doSize(std::vector< dreal::drake::symbolic::Expression > const *self){
+ return SWIG_VectorSize(self->size());
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doAdd__SWIG_0(std::vector< dreal::drake::symbolic::Expression > *self,std::vector< dreal::drake::symbolic::Expression >::value_type const &x){
+ self->push_back(x);
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doAdd__SWIG_1(std::vector< dreal::drake::symbolic::Expression > *self,jint index,std::vector< dreal::drake::symbolic::Expression >::value_type const &x){
+ jint size = static_cast(self->size());
+ if (0 <= index && index <= size) {
+ self->insert(self->begin() + index, x);
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Expression >::value_type std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doRemove(std::vector< dreal::drake::symbolic::Expression > *self,jint index){
+ jint size = static_cast(self->size());
+ if (0 <= index && index < size) {
+ dreal::drake::symbolic::Expression const old_value = (*self)[index];
+ self->erase(self->begin() + index);
+ return old_value;
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Expression >::value_type const &std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doGet(std::vector< dreal::drake::symbolic::Expression > *self,jint index){
+ jint size = static_cast(self->size());
+ if (index >= 0 && index < size)
+ return (*self)[index];
+ else
+ throw std::out_of_range("vector index out of range");
+ }
+SWIGINTERN std::vector< dreal::drake::symbolic::Expression >::value_type std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doSet(std::vector< dreal::drake::symbolic::Expression > *self,jint index,std::vector< dreal::drake::symbolic::Expression >::value_type const &val){
+ jint size = static_cast(self->size());
+ if (index >= 0 && index < size) {
+ dreal::drake::symbolic::Expression const old_value = (*self)[index];
+ (*self)[index] = val;
+ return old_value;
+ }
+ else
+ throw std::out_of_range("vector index out of range");
+ }
+SWIGINTERN void std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doRemoveRange(std::vector< dreal::drake::symbolic::Expression > *self,jint fromIndex,jint toIndex){
+ jint size = static_cast(self->size());
+ if (0 <= fromIndex && fromIndex <= toIndex && toIndex <= size) {
+ self->erase(self->begin() + fromIndex, self->begin() + toIndex);
+ } else {
+ throw std::out_of_range("vector index out of range");
+ }
+ }
+SWIGINTERN std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_getNextUnchecked(std::map< dreal::drake::symbolic::Expression,double >::iterator *self){
+ std::map< dreal::drake::symbolic::Expression, double, std::less< dreal::drake::symbolic::Expression > >::iterator copy = (*self);
+ return ++copy;
+ }
+SWIGINTERN bool std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_isNot(std::map< dreal::drake::symbolic::Expression,double >::iterator const *self,std::map< dreal::drake::symbolic::Expression,double >::iterator other){
+ return (*self != other);
+ }
+SWIGINTERN dreal::drake::symbolic::Expression std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_getKey(std::map< dreal::drake::symbolic::Expression,double >::iterator const *self){
+ return (*self)->first;
+ }
+SWIGINTERN double std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_getValue(std::map< dreal::drake::symbolic::Expression,double >::iterator const *self){
+ return (*self)->second;
+ }
+SWIGINTERN void std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_setValue(std::map< dreal::drake::symbolic::Expression,double >::iterator *self,double const &newValue){
+ (*self)->second = newValue;
+ }
+
+ SWIGINTERN jint SWIG_MapSize(size_t size) {
+ jint sz = SWIG_JavaIntFromSize_t(size);
+ if (sz == -1) {
+ throw std::out_of_range("map size is too large to fit into a Java int");
+ }
+
+ return sz;
+ }
+
+SWIGINTERN jint std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__sizeImpl(std::map< dreal::drake::symbolic::Expression,double > const *self){
+ return SWIG_MapSize(self->size());
+ }
+SWIGINTERN bool std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__containsImpl(std::map< dreal::drake::symbolic::Expression,double > *self,dreal::drake::symbolic::Expression const &key){
+ return (self->count(key) > 0);
+ }
+SWIGINTERN void std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__putUnchecked(std::map< dreal::drake::symbolic::Expression,double > *self,dreal::drake::symbolic::Expression const &key,double const &value){
+ (*self)[key] = value;
+ }
+SWIGINTERN void std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__removeUnchecked(std::map< dreal::drake::symbolic::Expression,double > *self,std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator const itr){
+ self->erase(itr);
+ }
+SWIGINTERN std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_getNextUnchecked(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *self){
+ std::map< dreal::drake::symbolic::Expression, dreal::drake::symbolic::Expression, std::less< dreal::drake::symbolic::Expression > >::iterator copy = (*self);
+ return ++copy;
+ }
+SWIGINTERN bool std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_isNot(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator const *self,std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator other){
+ return (*self != other);
+ }
+SWIGINTERN dreal::drake::symbolic::Expression std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_getKey(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator const *self){
+ return (*self)->first;
+ }
+SWIGINTERN dreal::drake::symbolic::Expression std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_getValue(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator const *self){
+ return (*self)->second;
+ }
+SWIGINTERN void std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_setValue(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *self,dreal::drake::symbolic::Expression const &newValue){
+ (*self)->second = newValue;
+ }
+SWIGINTERN jint std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__sizeImpl(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > const *self){
+ return SWIG_MapSize(self->size());
+ }
+SWIGINTERN bool std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__containsImpl(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *self,dreal::drake::symbolic::Expression const &key){
+ return (self->count(key) > 0);
+ }
+SWIGINTERN void std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__putUnchecked(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *self,dreal::drake::symbolic::Expression const &key,dreal::drake::symbolic::Expression const &value){
+ (*self)[key] = value;
+ }
+SWIGINTERN void std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__removeUnchecked(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *self,std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator const itr){
+ self->erase(itr);
+ }
+SWIGINTERN std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_getNextUnchecked(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *self){
+ std::unordered_map< dreal::drake::symbolic::Variable, int >::iterator copy = (*self);
+ return ++copy;
+ }
+SWIGINTERN bool std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_isNot(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const *self,std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator other){
+ return (*self != other);
+ }
+SWIGINTERN dreal::drake::symbolic::Variable std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_getKey(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const *self){
+ return (*self)->first;
+ }
+SWIGINTERN int std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_getValue(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const *self){
+ return (*self)->second;
+ }
+SWIGINTERN void std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_setValue(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *self,int const &newValue){
+ (*self)->second = newValue;
+ }
+SWIGINTERN jint std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__sizeImpl(std::unordered_map< dreal::drake::symbolic::Variable,int > const *self){
+ return SWIG_MapSize(self->size());
+ }
+SWIGINTERN bool std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__containsImpl(std::unordered_map< dreal::drake::symbolic::Variable,int > *self,dreal::drake::symbolic::Variable const &key){
+ return (self->count(key) > 0);
+ }
+SWIGINTERN void std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__putUnchecked(std::unordered_map< dreal::drake::symbolic::Variable,int > *self,dreal::drake::symbolic::Variable const &key,int const &value){
+ (*self)[key] = value;
+ }
+SWIGINTERN void std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__removeUnchecked(std::unordered_map< dreal::drake::symbolic::Variable,int > *self,std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const itr){
+ self->erase(itr);
+ }
+SWIGINTERN void std_set_Sl_dreal_drake_symbolic_Variable_Sg__iterator_incrementUnchecked(std::set< dreal::drake::symbolic::Variable >::iterator *self){
+ ++(*self);
+ }
+SWIGINTERN dreal::drake::symbolic::Variable std_set_Sl_dreal_drake_symbolic_Variable_Sg__iterator_derefUnchecked(std::set< dreal::drake::symbolic::Variable >::iterator const *self){
+ return **self;
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Variable_Sg__iterator_isNot(std::set< dreal::drake::symbolic::Variable >::iterator const *self,std::set< dreal::drake::symbolic::Variable >::iterator other){
+ return (*self != other);
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Variable_Sg__addImpl(std::set< dreal::drake::symbolic::Variable > *self,dreal::drake::symbolic::Variable const &key){
+ return self->insert(key).second;
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Variable_Sg__containsImpl(std::set< dreal::drake::symbolic::Variable > *self,dreal::drake::symbolic::Variable const &key){
+ return (self->count(key) > 0);
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Variable_Sg__removeImpl(std::set< dreal::drake::symbolic::Variable > *self,dreal::drake::symbolic::Variable const &key){
+ return (self->erase(key) > 0);
+ }
+SWIGINTERN jint std_set_Sl_dreal_drake_symbolic_Variable_Sg__sizeImpl(std::set< dreal::drake::symbolic::Variable > const *self){
+ return SWIG_SetSize(self->size());
+ }
+SWIGINTERN bool std_set_Sl_dreal_drake_symbolic_Variable_Sg__hasNextImpl(std::set< dreal::drake::symbolic::Variable > const *self,std::set< dreal::drake::symbolic::Variable >::iterator const &itr){
+ return (itr != self->end());
+ }
+
+#include
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetIteratorIncrementUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::set< dreal::drake::symbolic::Formula >::iterator *arg1 = (std::set< dreal::drake::symbolic::Formula >::iterator *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jarg1;
+ std_set_Sl_dreal_drake_symbolic_Formula_Sg__iterator_incrementUnchecked(arg1);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetIteratorDerefUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula >::iterator *arg1 = (std::set< dreal::drake::symbolic::Formula >::iterator *) 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jarg1;
+ result = std_set_Sl_dreal_drake_symbolic_Formula_Sg__iterator_derefUnchecked((std::set< dreal::drake::symbolic::Formula >::iterator const *)arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetIteratorIsNot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula >::iterator *arg1 = (std::set< dreal::drake::symbolic::Formula >::iterator *) 0 ;
+ std::set< dreal::drake::symbolic::Formula >::iterator arg2 ;
+ std::set< dreal::drake::symbolic::Formula >::iterator *argp2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jarg1;
+ argp2 = *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::set< dreal::drake::symbolic::Formula >::iterator");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Formula_Sg__iterator_isNot((std::set< dreal::drake::symbolic::Formula >::iterator const *)arg1,SWIG_STD_MOVE(arg2));
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteFormulaSetIterator(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::set< dreal::drake::symbolic::Formula >::iterator *arg1 = (std::set< dreal::drake::symbolic::Formula >::iterator *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaSetSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::set< dreal::drake::symbolic::Formula > *)new std::set< dreal::drake::symbolic::Formula >();
+ *(std::set< dreal::drake::symbolic::Formula > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaSetSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::set< dreal::drake::symbolic::Formula > const & is null");
+ return 0;
+ }
+ result = (std::set< dreal::drake::symbolic::Formula > *)new std::set< dreal::drake::symbolic::Formula >((std::set< dreal::drake::symbolic::Formula > const &)*arg1);
+ *(std::set< dreal::drake::symbolic::Formula > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ result = (bool)((std::set< dreal::drake::symbolic::Formula > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetBegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ std::set< dreal::drake::symbolic::Formula >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ result = (arg1)->begin();
+ *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jresult = new std::set< dreal::drake::symbolic::Formula >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetEnd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ std::set< dreal::drake::symbolic::Formula >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ result = (arg1)->end();
+ *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jresult = new std::set< dreal::drake::symbolic::Formula >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetAddImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Formula_Sg__addImpl(arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetContainsImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Formula_Sg__containsImpl(arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetRemoveImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Formula_Sg__removeImpl(arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetSizeImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ try {
+ result = std_set_Sl_dreal_drake_symbolic_Formula_Sg__sizeImpl((std::set< dreal::drake::symbolic::Formula > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSetHasNextImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+ std::set< dreal::drake::symbolic::Formula >::iterator *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = *(std::set< dreal::drake::symbolic::Formula >::iterator **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::set< dreal::drake::symbolic::Formula >::iterator const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Formula_Sg__hasNextImpl((std::set< dreal::drake::symbolic::Formula > const *)arg1,(std::set< dreal::drake::symbolic::Formula >::iterator const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteFormulaSet(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::set< dreal::drake::symbolic::Formula > *arg1 = (std::set< dreal::drake::symbolic::Formula > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaVectorSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::vector< dreal::drake::symbolic::Formula > *)new std::vector< dreal::drake::symbolic::Formula >();
+ *(std::vector< dreal::drake::symbolic::Formula > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaVectorSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Formula > const & is null");
+ return 0;
+ }
+ result = (std::vector< dreal::drake::symbolic::Formula > *)new std::vector< dreal::drake::symbolic::Formula >((std::vector< dreal::drake::symbolic::Formula > const &)*arg1);
+ *(std::vector< dreal::drake::symbolic::Formula > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorCapacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ std::vector< dreal::drake::symbolic::Formula >::size_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ result = ((std::vector< dreal::drake::symbolic::Formula > const *)arg1)->capacity();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorReserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ std::vector< dreal::drake::symbolic::Formula >::size_type arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = (std::vector< dreal::drake::symbolic::Formula >::size_type)jarg2;
+ try {
+ (arg1)->reserve(arg2);
+ } catch(std::length_error &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ result = (bool)((std::vector< dreal::drake::symbolic::Formula > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaVectorSWIG2(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ jint arg1 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ try {
+ result = (std::vector< dreal::drake::symbolic::Formula > *)new_std_vector_Sl_dreal_drake_symbolic_Formula_Sg___SWIG_2(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Formula const &)*arg2);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Formula > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorDoSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doSize((std::vector< dreal::drake::symbolic::Formula > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorDoAddSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ std::vector< dreal::drake::symbolic::Formula >::value_type *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = *(std::vector< dreal::drake::symbolic::Formula >::value_type **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Formula >::value_type const & is null");
+ return ;
+ }
+ std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doAdd__SWIG_0(arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorDoAddSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) {
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Formula >::value_type *arg3 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg3_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = *(std::vector< dreal::drake::symbolic::Formula >::value_type **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Formula >::value_type const & is null");
+ return ;
+ }
+ try {
+ std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doAdd__SWIG_1(arg1,SWIG_STD_MOVE(arg2),(dreal::drake::symbolic::Formula const &)*arg3);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorDoRemove(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Formula >::value_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = jarg2;
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doRemove(arg1,SWIG_STD_MOVE(arg2));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Formula >::value_type **)&jresult = new std::vector< dreal::drake::symbolic::Formula >::value_type(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorDoGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Formula >::value_type *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = jarg2;
+ try {
+ result = (std::vector< dreal::drake::symbolic::Formula >::value_type *) &std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doGet(arg1,SWIG_STD_MOVE(arg2));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Formula >::value_type **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaVectorDoSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Formula >::value_type *arg3 = 0 ;
+ std::vector< dreal::drake::symbolic::Formula >::value_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg3_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = *(std::vector< dreal::drake::symbolic::Formula >::value_type **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Formula >::value_type const & is null");
+ return 0;
+ }
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doSet(arg1,SWIG_STD_MOVE(arg2),(dreal::drake::symbolic::Formula const &)*arg3);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Formula >::value_type **)&jresult = new std::vector< dreal::drake::symbolic::Formula >::value_type(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_FormulaVectorDoRemoveRange(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+ jint arg2 ;
+ jint arg3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = jarg3;
+ try {
+ std_vector_Sl_dreal_drake_symbolic_Formula_Sg__doRemoveRange(arg1,SWIG_STD_MOVE(arg2),SWIG_STD_MOVE(arg3));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteFormulaVector(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = (std::vector< dreal::drake::symbolic::Formula > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableVectorSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::vector< dreal::drake::symbolic::Variable > *)new std::vector< dreal::drake::symbolic::Variable >();
+ *(std::vector< dreal::drake::symbolic::Variable > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableVectorSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Variable > const & is null");
+ return 0;
+ }
+ result = (std::vector< dreal::drake::symbolic::Variable > *)new std::vector< dreal::drake::symbolic::Variable >((std::vector< dreal::drake::symbolic::Variable > const &)*arg1);
+ *(std::vector< dreal::drake::symbolic::Variable > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorCapacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ std::vector< dreal::drake::symbolic::Variable >::size_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ result = ((std::vector< dreal::drake::symbolic::Variable > const *)arg1)->capacity();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorReserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ std::vector< dreal::drake::symbolic::Variable >::size_type arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = (std::vector< dreal::drake::symbolic::Variable >::size_type)jarg2;
+ try {
+ (arg1)->reserve(arg2);
+ } catch(std::length_error &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ result = (bool)((std::vector< dreal::drake::symbolic::Variable > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableVectorSWIG2(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ jint arg1 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ try {
+ result = (std::vector< dreal::drake::symbolic::Variable > *)new_std_vector_Sl_dreal_drake_symbolic_Variable_Sg___SWIG_2(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Variable const &)*arg2);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Variable > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorDoSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doSize((std::vector< dreal::drake::symbolic::Variable > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorDoAddSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ std::vector< dreal::drake::symbolic::Variable >::value_type *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = *(std::vector< dreal::drake::symbolic::Variable >::value_type **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Variable >::value_type const & is null");
+ return ;
+ }
+ std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doAdd__SWIG_0(arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorDoAddSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) {
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Variable >::value_type *arg3 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg3_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = *(std::vector< dreal::drake::symbolic::Variable >::value_type **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Variable >::value_type const & is null");
+ return ;
+ }
+ try {
+ std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doAdd__SWIG_1(arg1,SWIG_STD_MOVE(arg2),(dreal::drake::symbolic::Variable const &)*arg3);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorDoRemove(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Variable >::value_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = jarg2;
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doRemove(arg1,SWIG_STD_MOVE(arg2));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Variable >::value_type **)&jresult = new std::vector< dreal::drake::symbolic::Variable >::value_type(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorDoGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Variable >::value_type *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = jarg2;
+ try {
+ result = (std::vector< dreal::drake::symbolic::Variable >::value_type *) &std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doGet(arg1,SWIG_STD_MOVE(arg2));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Variable >::value_type **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorDoSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Variable >::value_type *arg3 = 0 ;
+ std::vector< dreal::drake::symbolic::Variable >::value_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg3_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = *(std::vector< dreal::drake::symbolic::Variable >::value_type **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Variable >::value_type const & is null");
+ return 0;
+ }
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doSet(arg1,SWIG_STD_MOVE(arg2),(dreal::drake::symbolic::Variable const &)*arg3);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Variable >::value_type **)&jresult = new std::vector< dreal::drake::symbolic::Variable >::value_type(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableVectorDoRemoveRange(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+ jint arg2 ;
+ jint arg3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = jarg3;
+ try {
+ std_vector_Sl_dreal_drake_symbolic_Variable_Sg__doRemoveRange(arg1,SWIG_STD_MOVE(arg2),SWIG_STD_MOVE(arg3));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteVariableVector(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = (std::vector< dreal::drake::symbolic::Variable > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionVectorSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::vector< dreal::drake::symbolic::Expression > *)new std::vector< dreal::drake::symbolic::Expression >();
+ *(std::vector< dreal::drake::symbolic::Expression > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionVectorSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Expression > const & is null");
+ return 0;
+ }
+ result = (std::vector< dreal::drake::symbolic::Expression > *)new std::vector< dreal::drake::symbolic::Expression >((std::vector< dreal::drake::symbolic::Expression > const &)*arg1);
+ *(std::vector< dreal::drake::symbolic::Expression > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorCapacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ std::vector< dreal::drake::symbolic::Expression >::size_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ result = ((std::vector< dreal::drake::symbolic::Expression > const *)arg1)->capacity();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorReserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ std::vector< dreal::drake::symbolic::Expression >::size_type arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = (std::vector< dreal::drake::symbolic::Expression >::size_type)jarg2;
+ try {
+ (arg1)->reserve(arg2);
+ } catch(std::length_error &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ result = (bool)((std::vector< dreal::drake::symbolic::Expression > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionVectorSWIG2(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ jint arg1 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ try {
+ result = (std::vector< dreal::drake::symbolic::Expression > *)new_std_vector_Sl_dreal_drake_symbolic_Expression_Sg___SWIG_2(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Expression const &)*arg2);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Expression > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorDoSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doSize((std::vector< dreal::drake::symbolic::Expression > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorDoAddSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ std::vector< dreal::drake::symbolic::Expression >::value_type *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = *(std::vector< dreal::drake::symbolic::Expression >::value_type **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Expression >::value_type const & is null");
+ return ;
+ }
+ std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doAdd__SWIG_0(arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorDoAddSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) {
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Expression >::value_type *arg3 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg3_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = *(std::vector< dreal::drake::symbolic::Expression >::value_type **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Expression >::value_type const & is null");
+ return ;
+ }
+ try {
+ std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doAdd__SWIG_1(arg1,SWIG_STD_MOVE(arg2),(dreal::drake::symbolic::Expression const &)*arg3);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorDoRemove(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Expression >::value_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = jarg2;
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doRemove(arg1,SWIG_STD_MOVE(arg2));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Expression >::value_type **)&jresult = new std::vector< dreal::drake::symbolic::Expression >::value_type(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorDoGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Expression >::value_type *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = jarg2;
+ try {
+ result = (std::vector< dreal::drake::symbolic::Expression >::value_type *) &std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doGet(arg1,SWIG_STD_MOVE(arg2));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Expression >::value_type **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorDoSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ jint arg2 ;
+ std::vector< dreal::drake::symbolic::Expression >::value_type *arg3 = 0 ;
+ std::vector< dreal::drake::symbolic::Expression >::value_type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg3_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = *(std::vector< dreal::drake::symbolic::Expression >::value_type **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Expression >::value_type const & is null");
+ return 0;
+ }
+ try {
+ result = std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doSet(arg1,SWIG_STD_MOVE(arg2),(dreal::drake::symbolic::Expression const &)*arg3);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ *(std::vector< dreal::drake::symbolic::Expression >::value_type **)&jresult = new std::vector< dreal::drake::symbolic::Expression >::value_type(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionVectorDoRemoveRange(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+ jint arg2 ;
+ jint arg3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = jarg2;
+ arg3 = jarg3;
+ try {
+ std_vector_Sl_dreal_drake_symbolic_Expression_Sg__doRemoveRange(arg1,SWIG_STD_MOVE(arg2),SWIG_STD_MOVE(arg3));
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return ;
+ }
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteExpressionVector(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = (std::vector< dreal::drake::symbolic::Expression > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionDoubleMapSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::map< dreal::drake::symbolic::Expression,double > *)new std::map< dreal::drake::symbolic::Expression,double >();
+ *(std::map< dreal::drake::symbolic::Expression,double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionDoubleMapSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::map< dreal::drake::symbolic::Expression,double > const & is null");
+ return 0;
+ }
+ result = (std::map< dreal::drake::symbolic::Expression,double > *)new std::map< dreal::drake::symbolic::Expression,double >((std::map< dreal::drake::symbolic::Expression,double > const &)*arg1);
+ *(std::map< dreal::drake::symbolic::Expression,double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapIteratorGetNextUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,double >::iterator *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jarg1;
+ result = std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_getNextUnchecked(arg1);
+ *(std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapIteratorIsNot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,double >::iterator *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator arg2 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator *argp2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jarg1;
+ argp2 = *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::map< dreal::drake::symbolic::Expression,double >::iterator");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_isNot((std::map< dreal::drake::symbolic::Expression,double >::iterator const *)arg1,SWIG_STD_MOVE(arg2));
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapIteratorGetKey(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,double >::iterator *) 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jarg1;
+ result = std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_getKey((std::map< dreal::drake::symbolic::Expression,double >::iterator const *)arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapIteratorGetValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,double >::iterator *) 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jarg1;
+ result = (double)std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_getValue((std::map< dreal::drake::symbolic::Expression,double >::iterator const *)arg1);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapIteratorSsetValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ std::map< dreal::drake::symbolic::Expression,double >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,double >::iterator *) 0 ;
+ double *arg2 = 0 ;
+ double temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jarg1;
+ temp2 = (double)jarg2;
+ arg2 = &temp2;
+ std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__iterator_setValue(arg1,(double const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteExpressionDoubleMapIterator(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::map< dreal::drake::symbolic::Expression,double >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,double >::iterator *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ result = (bool)((std::map< dreal::drake::symbolic::Expression,double > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapFind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (arg1)->find((dreal::drake::symbolic::Expression const &)*arg2);
+ *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,double >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapBegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ result = (arg1)->begin();
+ *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,double >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapEnd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,double >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ result = (arg1)->end();
+ *(std::map< dreal::drake::symbolic::Expression,double >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,double >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapSizeImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ try {
+ result = std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__sizeImpl((std::map< dreal::drake::symbolic::Expression,double > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapContainsImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__containsImpl(arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapPutUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jdouble jarg3) {
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ double *arg3 = 0 ;
+ double temp3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ temp3 = (double)jarg3;
+ arg3 = &temp3;
+ std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__putUnchecked(arg1,(dreal::drake::symbolic::Expression const &)*arg2,(double const &)*arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDoubleMapRemoveUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator arg2 ;
+ std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator const *argp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ argp2 = *(std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > >::iterator const");
+ return ;
+ }
+ arg2 = *argp2;
+ std_map_Sl_dreal_drake_symbolic_Expression_Sc_double_Sg__removeUnchecked(arg1,SWIG_STD_MOVE(arg2));
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteExpressionDoubleMap(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::map< dreal::drake::symbolic::Expression,double > *arg1 = (std::map< dreal::drake::symbolic::Expression,double > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,double > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionExpressionMapSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *)new std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >();
+ *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionExpressionMapSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > const & is null");
+ return 0;
+ }
+ result = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *)new std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >((std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > const &)*arg1);
+ *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapIteratorGetNextUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jarg1;
+ result = std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_getNextUnchecked(arg1);
+ *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapIteratorIsNot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator arg2 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *argp2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jarg1;
+ argp2 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_isNot((std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator const *)arg1,SWIG_STD_MOVE(arg2));
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapIteratorGetKey(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *) 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jarg1;
+ result = std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_getKey((std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator const *)arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapIteratorGetValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *) 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jarg1;
+ result = std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_getValue((std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator const *)arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapIteratorSetValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__iterator_setValue(arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteExpressionExpressionMapIterator(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ result = (bool)((std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapFind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (arg1)->find((dreal::drake::symbolic::Expression const &)*arg2);
+ *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapBegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ result = (arg1)->begin();
+ *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapEnd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ result = (arg1)->end();
+ *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator **)&jresult = new std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapSizeImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ try {
+ result = std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__sizeImpl((std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapContainsImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__containsImpl(arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapPutUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *arg3 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ arg3 = *(dreal::drake::symbolic::Expression **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__putUnchecked(arg1,(dreal::drake::symbolic::Expression const &)*arg2,(dreal::drake::symbolic::Expression const &)*arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpressionMapRemoveUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator arg2 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator const *argp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ argp2 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > >::iterator const");
+ return ;
+ }
+ arg2 = *argp2;
+ std_map_Sl_dreal_drake_symbolic_Expression_Sc_dreal_drake_symbolic_Expression_Sg__removeUnchecked(arg1,SWIG_STD_MOVE(arg2));
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteExpressionExpressionMap(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *arg1 = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newDoubleIntPairSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::pair< double,int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::pair< double,int > *)new std::pair< double,int >();
+ *(std::pair< double,int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newDoubleIntPairSWIG1(JNIEnv *jenv, jclass jcls, jdouble jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ double arg1 ;
+ int arg2 ;
+ std::pair< double,int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (double)jarg1;
+ arg2 = (int)jarg2;
+ result = (std::pair< double,int > *)new std::pair< double,int >(arg1,arg2);
+ *(std::pair< double,int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newDoubleIntPairSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::pair< double,int > *arg1 = 0 ;
+ std::pair< double,int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< double,int > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::pair< double,int > const & is null");
+ return 0;
+ }
+ result = (std::pair< double,int > *)new std::pair< double,int >((std::pair< double,int > const &)*arg1);
+ *(std::pair< double,int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_doubleIntPairFirstSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ std::pair< double,int > *arg1 = (std::pair< double,int > *) 0 ;
+ double arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< double,int > **)&jarg1;
+ arg2 = (double)jarg2;
+ if (arg1) (arg1)->first = arg2;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_doubleIntPairFirstGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ std::pair< double,int > *arg1 = (std::pair< double,int > *) 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< double,int > **)&jarg1;
+ result = (double) ((arg1)->first);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_doubleIntPairSecondSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ std::pair< double,int > *arg1 = (std::pair< double,int > *) 0 ;
+ int arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< double,int > **)&jarg1;
+ arg2 = (int)jarg2;
+ if (arg1) (arg1)->second = arg2;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_doubleIntPairSecondGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::pair< double,int > *arg1 = (std::pair< double,int > *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< double,int > **)&jarg1;
+ result = (int) ((arg1)->second);
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteDoubleIntPair(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::pair< double,int > *arg1 = (std::pair< double,int > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::pair< double,int > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newBoxBoxPairSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::pair< dreal::Box,dreal::Box > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::pair< dreal::Box,dreal::Box > *)new std::pair< dreal::Box,dreal::Box >();
+ *(std::pair< dreal::Box,dreal::Box > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newBoxBoxPairSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::Box arg1 ;
+ dreal::Box arg2 ;
+ dreal::Box *argp1 ;
+ dreal::Box *argp2 ;
+ std::pair< dreal::Box,dreal::Box > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ argp1 = *(dreal::Box **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::Box");
+ return 0;
+ }
+ arg1 = *argp1;
+ argp2 = *(dreal::Box **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::Box");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (std::pair< dreal::Box,dreal::Box > *)new std::pair< dreal::Box,dreal::Box >(arg1,arg2);
+ *(std::pair< dreal::Box,dreal::Box > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newBoxBoxPairSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::pair< dreal::Box,dreal::Box > *arg1 = 0 ;
+ std::pair< dreal::Box,dreal::Box > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< dreal::Box,dreal::Box > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::pair< dreal::Box,dreal::Box > const & is null");
+ return 0;
+ }
+ result = (std::pair< dreal::Box,dreal::Box > *)new std::pair< dreal::Box,dreal::Box >((std::pair< dreal::Box,dreal::Box > const &)*arg1);
+ *(std::pair< dreal::Box,dreal::Box > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxBoxPairFirstSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::pair< dreal::Box,dreal::Box > *arg1 = (std::pair< dreal::Box,dreal::Box > *) 0 ;
+ dreal::Box *arg2 = (dreal::Box *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::pair< dreal::Box,dreal::Box > **)&jarg1;
+ arg2 = *(dreal::Box **)&jarg2;
+ if (arg1) (arg1)->first = *arg2;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxBoxPairFirstGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::pair< dreal::Box,dreal::Box > *arg1 = (std::pair< dreal::Box,dreal::Box > *) 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< dreal::Box,dreal::Box > **)&jarg1;
+ result = (dreal::Box *)& ((arg1)->first);
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxBoxPairSecondSet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::pair< dreal::Box,dreal::Box > *arg1 = (std::pair< dreal::Box,dreal::Box > *) 0 ;
+ dreal::Box *arg2 = (dreal::Box *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::pair< dreal::Box,dreal::Box > **)&jarg1;
+ arg2 = *(dreal::Box **)&jarg2;
+ if (arg1) (arg1)->second = *arg2;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxBoxPairSecondGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::pair< dreal::Box,dreal::Box > *arg1 = (std::pair< dreal::Box,dreal::Box > *) 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::pair< dreal::Box,dreal::Box > **)&jarg1;
+ result = (dreal::Box *)& ((arg1)->second);
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteBoxBoxPair(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::pair< dreal::Box,dreal::Box > *arg1 = (std::pair< dreal::Box,dreal::Box > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::pair< dreal::Box,dreal::Box > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVaribaleIntUnorderedMapSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::unordered_map< dreal::drake::symbolic::Variable,int > *)new std::unordered_map< dreal::drake::symbolic::Variable,int >();
+ *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVaribaleIntUnorderedMapSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::unordered_map< dreal::drake::symbolic::Variable,int > const & is null");
+ return 0;
+ }
+ result = (std::unordered_map< dreal::drake::symbolic::Variable,int > *)new std::unordered_map< dreal::drake::symbolic::Variable,int >((std::unordered_map< dreal::drake::symbolic::Variable,int > const &)*arg1);
+ *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapIteratorGetNextUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *) 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg1;
+ result = std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_getNextUnchecked(arg1);
+ *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jresult = new std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapIteratorIsNot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *) 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator arg2 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *argp2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg1;
+ argp2 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_isNot((std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const *)arg1,SWIG_STD_MOVE(arg2));
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapIteratorGetKey(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *) 0 ;
+ dreal::drake::symbolic::Variable result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg1;
+ result = std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_getKey((std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const *)arg1);
+ *(dreal::drake::symbolic::Variable **)&jresult = new dreal::drake::symbolic::Variable(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapIteratorGetValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg1;
+ result = (int)std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_getValue((std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const *)arg1);
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapIteratorSetValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *) 0 ;
+ int *arg2 = 0 ;
+ int temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg1;
+ temp2 = (int)jarg2;
+ arg2 = &temp2;
+ std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__iterator_setValue(arg1,(int const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteVaribaleIntUnorderedMapIterator(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ result = (bool)((std::unordered_map< dreal::drake::symbolic::Variable,int > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapFind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (arg1)->find((dreal::drake::symbolic::Variable const &)*arg2);
+ *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jresult = new std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapBegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ result = (arg1)->begin();
+ *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jresult = new std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapEnd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ result = (arg1)->end();
+ *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jresult = new std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapSizeImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ try {
+ result = std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__sizeImpl((std::unordered_map< dreal::drake::symbolic::Variable,int > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapContainsImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__containsImpl(arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapPutUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) {
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ int *arg3 = 0 ;
+ int temp3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ temp3 = (int)jarg3;
+ arg3 = &temp3;
+ std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__putUnchecked(arg1,(dreal::drake::symbolic::Variable const &)*arg2,(int const &)*arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_varibaleIntUnorderedMapRemoveUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator arg2 ;
+ std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const *argp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ argp2 = *(std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::unordered_map< dreal::drake::symbolic::Variable,int >::iterator const");
+ return ;
+ }
+ arg2 = *argp2;
+ std_unordered_map_Sl_dreal_drake_symbolic_Variable_Sc_int_Sg__removeUnchecked(arg1,SWIG_STD_MOVE(arg2));
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteVaribaleIntUnorderedMap(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::unordered_map< dreal::drake::symbolic::Variable,int > *arg1 = (std::unordered_map< dreal::drake::symbolic::Variable,int > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::unordered_map< dreal::drake::symbolic::Variable,int > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newSharedPointerToVector(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::shared_ptr< std::vector< dreal::drake::symbolic::Variable > > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::shared_ptr< std::vector< dreal::drake::symbolic::Variable > > *)new std::shared_ptr< std::vector< dreal::drake::symbolic::Variable > >();
+ *(std::shared_ptr< std::vector< dreal::drake::symbolic::Variable > > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteSharedPointerToVector(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::shared_ptr< std::vector< dreal::drake::symbolic::Variable > > *arg1 = (std::shared_ptr< std::vector< dreal::drake::symbolic::Variable > > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::shared_ptr< std::vector< dreal::drake::symbolic::Variable > > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newSharedPointerToUnorderedMapWithHashValue(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::shared_ptr< std::unordered_map< dreal::drake::symbolic::Variable,int,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::shared_ptr< std::unordered_map< dreal::drake::symbolic::Variable,int,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > > *)new std::shared_ptr< std::unordered_map< dreal::drake::symbolic::Variable,int,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > >();
+ *(std::shared_ptr< std::unordered_map< dreal::drake::symbolic::Variable,int,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteSharedPointerToUnorderedMapWithHashValue(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::shared_ptr< std::unordered_map< dreal::drake::symbolic::Variable,int,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > > *arg1 = (std::shared_ptr< std::unordered_map< dreal::drake::symbolic::Variable,int,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::shared_ptr< std::unordered_map< dreal::drake::symbolic::Variable,int,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newSharedPointerToUnorderedMap(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::shared_ptr< std::unordered_map< int,dreal::drake::symbolic::Variable > > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::shared_ptr< std::unordered_map< int,dreal::drake::symbolic::Variable > > *)new std::shared_ptr< std::unordered_map< int,dreal::drake::symbolic::Variable > >();
+ *(std::shared_ptr< std::unordered_map< int,dreal::drake::symbolic::Variable > > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteSharedPointerToUnorderedMap(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::shared_ptr< std::unordered_map< int,dreal::drake::symbolic::Variable > > *arg1 = (std::shared_ptr< std::unordered_map< int,dreal::drake::symbolic::Variable > > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::shared_ptr< std::unordered_map< int,dreal::drake::symbolic::Variable > > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Variable *)new dreal::drake::symbolic::Variable((dreal::drake::symbolic::Variable const &)*arg1);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Variable *) &(arg1)->operator =((dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableSWIG1(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::drake::symbolic::Variable *)new dreal::drake::symbolic::Variable();
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteVariable(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableSWIG2(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ std::string arg1 ;
+ dreal::drake::symbolic::Variable::Type arg2 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (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;
+ (&arg1)->assign(arg1_pstr);
+ jenv->ReleaseStringUTFChars(jarg1, arg1_pstr);
+ arg2 = (dreal::drake::symbolic::Variable::Type)jarg2;
+ result = (dreal::drake::symbolic::Variable *)new dreal::drake::symbolic::Variable(arg1,arg2);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableSWIG3(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+ jlong jresult = 0 ;
+ std::string arg1 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (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;
+ (&arg1)->assign(arg1_pstr);
+ jenv->ReleaseStringUTFChars(jarg1, arg1_pstr);
+ result = (dreal::drake::symbolic::Variable *)new dreal::drake::symbolic::Variable(arg1);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableSWIG4(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jboolean jarg3) {
+ jlong jresult = 0 ;
+ std::string arg1 ;
+ dreal::drake::symbolic::Variable::Type arg2 ;
+ bool arg3 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (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;
+ (&arg1)->assign(arg1_pstr);
+ jenv->ReleaseStringUTFChars(jarg1, arg1_pstr);
+ arg2 = (dreal::drake::symbolic::Variable::Type)jarg2;
+ arg3 = jarg3 ? true : false;
+ result = (dreal::drake::symbolic::Variable *)new dreal::drake::symbolic::Variable(arg1,arg2,arg3);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableIsDummy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Variable const *)arg1)->is_dummy();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableGetId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ dreal::drake::symbolic::Variable::Id result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ result = ((dreal::drake::symbolic::Variable const *)arg1)->get_id();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableGetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ dreal::drake::symbolic::Variable::Type result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ result = (dreal::drake::symbolic::Variable::Type)((dreal::drake::symbolic::Variable const *)arg1)->get_type();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableGetHash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ result = ((dreal::drake::symbolic::Variable const *)arg1)->get_hash();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableGetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ std::string result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ result = ((dreal::drake::symbolic::Variable const *)arg1)->get_name();
+ jresult = jenv->NewStringUTF((&result)->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableToString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ std::string result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ result = ((dreal::drake::symbolic::Variable const *)arg1)->to_string();
+ jresult = jenv->NewStringUTF((&result)->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Variable const *)arg1)->equal_to((dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableLess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = (dreal::drake::symbolic::Variable *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Variable const *)arg1)->less((dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &operator <<(*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::drake::symbolic::Variable::Type arg2 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = (dreal::drake::symbolic::Variable::Type)jarg2;
+ result = (std::ostream *) &dreal::drake::symbolic::operator <<(*arg1,arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariablesSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Variables *)new dreal::drake::symbolic::Variables((dreal::drake::symbolic::Variables const &)*arg1);
+ *(dreal::drake::symbolic::Variables **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ dreal::drake::symbolic::Variables *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Variables *) &(arg1)->operator =((dreal::drake::symbolic::Variables const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariablesSWIG1(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::drake::symbolic::Variables *)new dreal::drake::symbolic::Variables();
+ *(dreal::drake::symbolic::Variables **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteVariables(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariablesSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ SwigValueWrapper< std::initializer_list< dreal::drake::symbolic::Variable > > arg1 ;
+ dreal::drake::symbolic::Variables *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+
+ result = (dreal::drake::symbolic::Variables *)new dreal::drake::symbolic::Variables(arg1);
+ *(dreal::drake::symbolic::Variables **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesGetHash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = ((dreal::drake::symbolic::Variables const *)arg1)->get_hash();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ //SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::size_type > result;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = ((dreal::drake::symbolic::Variables const *)arg1)->size();
+ //*(dreal::drake::symbolic::Variables::size_type **)&jresult = new dreal::drake::symbolic::Variables::size_type(result);
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Variables const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesToString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ std::string result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = ((dreal::drake::symbolic::Variables const *)arg1)->to_string();
+ jresult = jenv->NewStringUTF((&result)->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesBeginSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = (arg1)->begin();
+ *(dreal::drake::symbolic::Variables::iterator **)&jresult = new dreal::drake::symbolic::Variables::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesEndSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = (arg1)->end();
+ *(dreal::drake::symbolic::Variables::iterator **)&jresult = new dreal::drake::symbolic::Variables::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesCbegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::const_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = ((dreal::drake::symbolic::Variables const *)arg1)->cbegin();
+ *(dreal::drake::symbolic::Variables::const_iterator **)&jresult = new dreal::drake::symbolic::Variables::const_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesCend(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::const_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = ((dreal::drake::symbolic::Variables const *)arg1)->cend();
+ *(dreal::drake::symbolic::Variables::const_iterator **)&jresult = new dreal::drake::symbolic::Variables::const_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesRbeginSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::reverse_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = (arg1)->rbegin();
+ *(dreal::drake::symbolic::Variables::reverse_iterator **)&jresult = new dreal::drake::symbolic::Variables::reverse_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesRendSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::reverse_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = (arg1)->rend();
+ *(dreal::drake::symbolic::Variables::reverse_iterator **)&jresult = new dreal::drake::symbolic::Variables::reverse_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesCrbegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::const_reverse_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = ((dreal::drake::symbolic::Variables const *)arg1)->crbegin();
+ *(dreal::drake::symbolic::Variables::const_reverse_iterator **)&jresult = new dreal::drake::symbolic::Variables::const_reverse_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesCrend(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::const_reverse_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ result = ((dreal::drake::symbolic::Variables const *)arg1)->crend();
+ *(dreal::drake::symbolic::Variables::const_reverse_iterator **)&jresult = new dreal::drake::symbolic::Variables::const_reverse_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesInsertSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ (arg1)->insert((dreal::drake::symbolic::Variable const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesInsertSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return ;
+ }
+ (arg1)->insert((dreal::drake::symbolic::Variables const &)*arg2);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesEraseSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ //SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::size_type > result;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (arg1)->erase((dreal::drake::symbolic::Variable const &)*arg2);
+ //*(dreal::drake::symbolic::Variables::size_type **)&jresult = new dreal::drake::symbolic::Variables::size_type(result);
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesEraseSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ //SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::size_type > result;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (arg1)->erase((dreal::drake::symbolic::Variables const &)*arg2);
+ //*(dreal::drake::symbolic::Variables::size_type **)&jresult = new dreal::drake::symbolic::Variables::size_type(result);
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesFindSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ SwigValueWrapper< std::set< dreal::drake::symbolic::Variable >::iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (arg1)->find((dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Variables::iterator **)&jresult = new dreal::drake::symbolic::Variables::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesInclude(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Variables const *)arg1)->include((dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesIsSubsetOf(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Variables const *)arg1)->IsSubsetOf((dreal::drake::symbolic::Variables const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesIsSupersetOf(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Variables const *)arg1)->IsSupersetOf((dreal::drake::symbolic::Variables const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesIsStrictSubsetOf(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Variables const *)arg1)->IsStrictSubsetOf((dreal::drake::symbolic::Variables const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variablesIsStrictSupersetOf(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = (dreal::drake::symbolic::Variables *) 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Variables const *)arg1)->IsStrictSupersetOf((dreal::drake::symbolic::Variables const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_equalSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (bool)operator ==((dreal::drake::symbolic::Variables const &)*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_lessSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (bool)operator <((dreal::drake::symbolic::Variables const &)*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &operator <<(*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_intersect(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::intersect((dreal::drake::symbolic::Variables const &)*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addEqualSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator +=(*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addEqualSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator +=(*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables arg1 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ dreal::drake::symbolic::Variables *argp1 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ argp1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::drake::symbolic::Variables");
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator +(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Variables const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables arg1 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Variables *argp1 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ argp1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::drake::symbolic::Variables");
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator +(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variables arg2 ;
+ dreal::drake::symbolic::Variables *argp2 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ argp2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::drake::symbolic::Variables");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = dreal::drake::symbolic::operator +((dreal::drake::symbolic::Variable const &)*arg1,SWIG_STD_MOVE(arg2));
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractEqualSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator -=(*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractEqualSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator -=(*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables arg1 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ dreal::drake::symbolic::Variables *argp1 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ argp1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::drake::symbolic::Variables");
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator -(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Variables const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables arg1 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Variables *argp1 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ argp1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::drake::symbolic::Variables");
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator -(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newEnvironmentSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = 0 ;
+ dreal::drake::symbolic::Environment *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Environment *)new dreal::drake::symbolic::Environment((dreal::drake::symbolic::Environment const &)*arg1);
+ *(dreal::drake::symbolic::Environment **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ dreal::drake::symbolic::Environment *arg2 = 0 ;
+ dreal::drake::symbolic::Environment *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Environment **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Environment *) &(arg1)->operator =((dreal::drake::symbolic::Environment const &)*arg2);
+ *(dreal::drake::symbolic::Environment **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newEnvironmentSWIG1(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::drake::symbolic::Environment *)new dreal::drake::symbolic::Environment();
+ *(dreal::drake::symbolic::Environment **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteEnvironment(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newEnvironmentSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ SwigValueWrapper< std::initializer_list< std::unordered_map< dreal::drake::symbolic::Variable,double,dreal::drake::hash_value< dreal::drake::symbolic::Variable > >::value_type > > arg1 ;
+ dreal::drake::symbolic::Environment *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+
+ result = (dreal::drake::symbolic::Environment *)new dreal::drake::symbolic::Environment(arg1);
+ *(dreal::drake::symbolic::Environment **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newEnvironmentSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ SwigValueWrapper< std::initializer_list< dreal::drake::symbolic::Variable > > arg1 ;
+ dreal::drake::symbolic::Environment *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+
+ result = (dreal::drake::symbolic::Environment *)new dreal::drake::symbolic::Environment(arg1);
+ *(dreal::drake::symbolic::Environment **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newEnvironmentSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ SwigValueWrapper< std::unordered_map< dreal::drake::symbolic::Variable,double,dreal::drake::hash_value< dreal::drake::symbolic::Variable > > > arg1 ;
+ dreal::drake::symbolic::Environment::map *argp1 ;
+ dreal::drake::symbolic::Environment *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ argp1 = *(dreal::drake::symbolic::Environment::map **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::drake::symbolic::Environment::map");
+ return 0;
+ }
+ arg1 = *argp1;
+ result = (dreal::drake::symbolic::Environment *)new dreal::drake::symbolic::Environment(arg1);
+ *(dreal::drake::symbolic::Environment **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentBeginSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ SwigValueWrapper< std::unordered_map< dreal::drake::symbolic::Variable,double,dreal::drake::hash_value< dreal::drake::symbolic::Variable > >::iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = (arg1)->begin();
+ *(dreal::drake::symbolic::Environment::iterator **)&jresult = new dreal::drake::symbolic::Environment::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentEndSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ SwigValueWrapper< std::unordered_map< dreal::drake::symbolic::Variable,double,dreal::drake::hash_value< dreal::drake::symbolic::Variable > >::iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = (arg1)->end();
+ *(dreal::drake::symbolic::Environment::iterator **)&jresult = new dreal::drake::symbolic::Environment::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_EnvironmentCbegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ SwigValueWrapper< std::unordered_map< dreal::drake::symbolic::Variable,double,dreal::drake::hash_value< dreal::drake::symbolic::Variable > >::const_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = ((dreal::drake::symbolic::Environment const *)arg1)->cbegin();
+ *(dreal::drake::symbolic::Environment::const_iterator **)&jresult = new dreal::drake::symbolic::Environment::const_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentCend(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ SwigValueWrapper< std::unordered_map< dreal::drake::symbolic::Variable,double,dreal::drake::hash_value< dreal::drake::symbolic::Variable > >::const_iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = ((dreal::drake::symbolic::Environment const *)arg1)->cend();
+ *(dreal::drake::symbolic::Environment::const_iterator **)&jresult = new dreal::drake::symbolic::Environment::const_iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentInsert(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jdouble jarg3) {
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ dreal::drake::symbolic::Environment::key_type *arg2 = 0 ;
+ dreal::drake::symbolic::Environment::mapped_type *arg3 = 0 ;
+ dreal::drake::symbolic::Environment::mapped_type temp3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Environment::key_type **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment::key_type const & is null");
+ return ;
+ }
+ temp3 = (dreal::drake::symbolic::Environment::mapped_type)jarg3;
+ arg3 = &temp3;
+ (arg1)->insert((dreal::drake::symbolic::Environment::key_type const &)*arg2,(dreal::drake::symbolic::Environment::mapped_type const &)*arg3);
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Environment const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = ((dreal::drake::symbolic::Environment const *)arg1)->size();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentFindSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ dreal::drake::symbolic::Environment::key_type *arg2 = 0 ;
+ SwigValueWrapper< std::unordered_map< dreal::drake::symbolic::Variable,double,dreal::drake::hash_value< dreal::drake::symbolic::Variable > >::iterator > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Environment::key_type **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment::key_type const & is null");
+ return 0;
+ }
+ result = (arg1)->find((dreal::drake::symbolic::Environment::key_type const &)*arg2);
+ *(dreal::drake::symbolic::Environment::iterator **)&jresult = new dreal::drake::symbolic::Environment::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentDomain(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ dreal::drake::symbolic::Variables result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = ((dreal::drake::symbolic::Environment const *)arg1)->domain();
+ *(dreal::drake::symbolic::Variables **)&jresult = new dreal::drake::symbolic::Variables(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentToString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ std::string result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ result = ((dreal::drake::symbolic::Environment const *)arg1)->to_string();
+ jresult = jenv->NewStringUTF((&result)->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_environmentIndexingSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Environment *arg1 = (dreal::drake::symbolic::Environment *) 0 ;
+ dreal::drake::symbolic::Environment::key_type *arg2 = 0 ;
+ dreal::drake::symbolic::Environment::mapped_type *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Environment **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Environment::key_type **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment::key_type const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Environment::mapped_type *) &(arg1)->operator []((dreal::drake::symbolic::Environment::key_type const &)*arg2);
+ *(dreal::drake::symbolic::Environment::mapped_type **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::drake::symbolic::Environment *arg2 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Environment **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &operator <<(*arg1,(dreal::drake::symbolic::Environment const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_lessSWIG1(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::ExpressionKind arg1 ;
+ dreal::drake::symbolic::ExpressionKind arg2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (dreal::drake::symbolic::ExpressionKind)jarg1;
+ arg2 = (dreal::drake::symbolic::ExpressionKind)jarg2;
+ result = (bool)dreal::drake::symbolic::operator <(arg1,arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *)new dreal::drake::symbolic::Expression((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &(arg1)->operator =((dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteExpression(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionSWIG1(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::drake::symbolic::Expression *)new dreal::drake::symbolic::Expression();
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionSWIG2(JNIEnv *jenv, jclass jcls, jdouble jarg1) {
+ jlong jresult = 0 ;
+ double arg1 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (double)jarg1;
+ result = (dreal::drake::symbolic::Expression *)new dreal::drake::symbolic::Expression(arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *)new dreal::drake::symbolic::Expression((dreal::drake::symbolic::Variable const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionGetKind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::ExpressionKind result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = (dreal::drake::symbolic::ExpressionKind)((dreal::drake::symbolic::Expression const *)arg1)->get_kind();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionGetHash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->get_hash();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionGetVariables(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Variables *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = (dreal::drake::symbolic::Variables *) &((dreal::drake::symbolic::Expression const *)arg1)->GetVariables();
+ *(dreal::drake::symbolic::Variables **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Expression const *)arg1)->EqualTo((dreal::drake::symbolic::Expression const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionLess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Expression const *)arg1)->Less((dreal::drake::symbolic::Expression const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionIsPolynomial(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Expression const *)arg1)->is_polynomial();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionIncludeIte(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Expression const *)arg1)->include_ite();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionEvaluateSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jdouble jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Environment *arg2 = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Environment **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment const & is null");
+ return 0;
+ }
+ result = (double)((dreal::drake::symbolic::Expression const *)arg1)->Evaluate((dreal::drake::symbolic::Environment const &)*arg2);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionEvaluateSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = (double)((dreal::drake::symbolic::Expression const *)arg1)->Evaluate();
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionEvaluatePartial(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Environment *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Environment **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->EvaluatePartial((dreal::drake::symbolic::Environment const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionExpand(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->Expand();
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionSubstituteSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *arg3 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg3 = *(dreal::drake::symbolic::Expression **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->Substitute((dreal::drake::symbolic::Variable const &)*arg2,(dreal::drake::symbolic::Expression const &)*arg3);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionSubstituteSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::ExpressionSubstitution *arg2 = 0 ;
+ dreal::drake::symbolic::FormulaSubstitution *arg3 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::ExpressionSubstitution **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::ExpressionSubstitution const & is null");
+ return 0;
+ }
+ arg3 = *(dreal::drake::symbolic::FormulaSubstitution **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::FormulaSubstitution const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->Substitute((dreal::drake::symbolic::ExpressionSubstitution const &)*arg2,(dreal::drake::symbolic::FormulaSubstitution const &)*arg3);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionSubstituteSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::ExpressionSubstitution *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::ExpressionSubstitution **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::ExpressionSubstitution const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->Substitute((dreal::drake::symbolic::ExpressionSubstitution const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionSubstituteSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::FormulaSubstitution *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::FormulaSubstitution **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::FormulaSubstitution const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->Substitute((dreal::drake::symbolic::FormulaSubstitution const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDifferentiate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->Differentiate((dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionToString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ std::string result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = ((dreal::drake::symbolic::Expression const *)arg1)->to_string();
+ jresult = jenv->NewStringUTF((&result)->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionZero(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::drake::symbolic::Expression::Zero();
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionOne(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::drake::symbolic::Expression::One();
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionPi(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::drake::symbolic::Expression::Pi();
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionE(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::drake::symbolic::Expression::E();
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionNaN(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::drake::symbolic::Expression::NaN();
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator +((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addEqualSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &operator +=(*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionIncrementSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = (dreal::drake::symbolic::Expression *) &(arg1)->operator ++();
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionIncrementSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ int arg2 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = (int)jarg2;
+ result = (arg1)->operator ++(arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator -((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractEqualSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &operator -=(*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addSWIG7(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator +((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractSWIG6(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator -((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDecrementSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ result = (dreal::drake::symbolic::Expression *) &(arg1)->operator --();
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_expressionDecrementSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = (dreal::drake::symbolic::Expression *) 0 ;
+ int arg2 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ arg2 = (int)jarg2;
+ result = (arg1)->operator --(arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_multiplySWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator *((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_multiplyEqual(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &operator *=(*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_divide(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression arg1 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *argp1 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ argp1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::drake::symbolic::Expression");
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator /(SWIG_STD_MOVE(arg1),(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_divideEqual(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &operator /=(*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_realConstant(JNIEnv *jenv, jclass jcls, jdouble jarg1, jdouble jarg2, jboolean jarg3) {
+ jlong jresult = 0 ;
+ double arg1 ;
+ double arg2 ;
+ bool arg3 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (double)jarg1;
+ arg2 = (double)jarg2;
+ arg3 = jarg3 ? true : false;
+ result = dreal::drake::symbolic::real_constant(arg1,arg2,arg3);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_log(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::log((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_abs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::abs((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_exp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::exp((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_sqrt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::sqrt((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_pow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::pow((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_sin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::sin((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_cos(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::cos((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_tan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::tan((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_asin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::asin((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_acos(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::acos((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_atan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::atan((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_atan2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::atan2((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_sinh(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::sinh((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_cosh(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::cosh((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_tanh(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::tanh((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_min(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::min((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_max(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::max((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_ifThenElse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *arg3 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg3 = *(dreal::drake::symbolic::Expression **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::if_then_else((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2,(dreal::drake::symbolic::Expression const &)*arg3);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_uninterpretedFunction(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::string *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ 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);
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::uninterpreted_function((std::string const &)*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &operator <<(*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isConstantSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_constant((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isRealConstant(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_real_constant((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isVvariableSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_variable((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isAddition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_addition((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isMultiplication(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_multiplication((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isDivision(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_division((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isLog(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_log((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isAbs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_abs((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isExp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_exp((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isSqrt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_sqrt((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isPow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_pow((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isSin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_sin((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isCos(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_cos((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isTan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_tan((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isAsin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_asin((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isAcos(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_acos((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isAtan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_atan((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isAtan2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_atan2((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isSinh(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_sinh((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isCosh(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_cosh((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isTanh(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_tanh((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isMin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_min((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isMax(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_max((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_is_1ifThenElse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_if_then_else((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isUninterpretedFunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_uninterpreted_function((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_sum(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Expression > const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::Sum((std::vector< dreal::drake::symbolic::Expression > const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_prod(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Expression > const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::Prod((std::vector< dreal::drake::symbolic::Expression > const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_swap(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression & is null");
+ return ;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression & is null");
+ return ;
+ }
+ dreal::drake::symbolic::swap(*arg1,*arg2);
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isConstantSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ double arg2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = (double)jarg2;
+ result = (bool)dreal::drake::symbolic::is_constant((dreal::drake::symbolic::Expression const &)*arg1,arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isZero(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_zero((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isOne(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_one((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isNegOne(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_neg_one((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isTwo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_two((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isNan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_nan((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getConstantValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (double)dreal::drake::symbolic::get_constant_value((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getLbOfRealConstant(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (double)dreal::drake::symbolic::get_lb_of_real_constant((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getUbOfRealConstant(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (double)dreal::drake::symbolic::get_ub_of_real_constant((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getVariableSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Variable *) &dreal::drake::symbolic::get_variable((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getArgument(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &dreal::drake::symbolic::get_argument((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getFirstArgument(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &dreal::drake::symbolic::get_first_argument((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getSecondArgument(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &dreal::drake::symbolic::get_second_argument((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getConstantInAddition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (double)dreal::drake::symbolic::get_constant_in_addition((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getExprToCoeffMapInAddition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > > *) &dreal::drake::symbolic::get_expr_to_coeff_map_in_addition((dreal::drake::symbolic::Expression const &)*arg1);
+ *(std::map< dreal::drake::symbolic::Expression,double,std::less< dreal::drake::symbolic::Expression > > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getConstantInMultiplication(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (double)dreal::drake::symbolic::get_constant_in_multiplication((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getBaseToExponentMapInMultiplication(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > > *) &dreal::drake::symbolic::get_base_to_exponent_map_in_multiplication((dreal::drake::symbolic::Expression const &)*arg1);
+ *(std::map< dreal::drake::symbolic::Expression,dreal::drake::symbolic::Expression,std::less< dreal::drake::symbolic::Expression > > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getConditionalFormula(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Formula *) &dreal::drake::symbolic::get_conditional_formula((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getThenExpression(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &dreal::drake::symbolic::get_then_expression((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getElseExpression(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &dreal::drake::symbolic::get_else_expression((dreal::drake::symbolic::Expression const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getUninterpretedFunction_1name(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ std::string *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (std::string *) &dreal::drake::symbolic::get_uninterpreted_function_name((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = jenv->NewStringUTF(result->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_addSWIG8(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator +((dreal::drake::symbolic::Variable const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_substractSWIG8(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Expression result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator -((dreal::drake::symbolic::Variable const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = new dreal::drake::symbolic::Expression(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_lessSWIG2(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::FormulaKind arg1 ;
+ dreal::drake::symbolic::FormulaKind arg2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (dreal::drake::symbolic::FormulaKind)jarg1;
+ arg2 = (dreal::drake::symbolic::FormulaKind)jarg2;
+ result = (bool)dreal::drake::symbolic::operator <(arg1,arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::drake::symbolic::Formula *)new dreal::drake::symbolic::Formula();
+ *(dreal::drake::symbolic::Formula **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Formula *)new dreal::drake::symbolic::Formula((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Formula *) &(arg1)->operator =((dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteFormula(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newFormulaSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Formula *)new dreal::drake::symbolic::Formula((dreal::drake::symbolic::Variable const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaGetKind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::FormulaKind result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ result = (dreal::drake::symbolic::FormulaKind)((dreal::drake::symbolic::Formula const *)arg1)->get_kind();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaGetHash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ size_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ result = ((dreal::drake::symbolic::Formula const *)arg1)->get_hash();
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaGetFreeVariables(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::Variables *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ result = (dreal::drake::symbolic::Variables *) &((dreal::drake::symbolic::Formula const *)arg1)->GetFreeVariables();
+ *(dreal::drake::symbolic::Variables **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Formula const *)arg1)->EqualTo((dreal::drake::symbolic::Formula const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaLess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Formula const *)arg1)->Less((dreal::drake::symbolic::Formula const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaEvaluateSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::Environment *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Environment **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Environment const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::drake::symbolic::Formula const *)arg1)->Evaluate((dreal::drake::symbolic::Environment const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaEvaluateSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Formula const *)arg1)->Evaluate();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSubstituteSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *arg3 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg3 = *(dreal::drake::symbolic::Expression **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Formula const *)arg1)->Substitute((dreal::drake::symbolic::Variable const &)*arg2,(dreal::drake::symbolic::Expression const &)*arg3);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSubstituteSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula *arg3 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg3 = *(dreal::drake::symbolic::Formula **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Formula const *)arg1)->Substitute((dreal::drake::symbolic::Variable const &)*arg2,(dreal::drake::symbolic::Formula const &)*arg3);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSubstituteSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::ExpressionSubstitution *arg2 = 0 ;
+ dreal::drake::symbolic::FormulaSubstitution *arg3 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::ExpressionSubstitution **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::ExpressionSubstitution const & is null");
+ return 0;
+ }
+ arg3 = *(dreal::drake::symbolic::FormulaSubstitution **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::FormulaSubstitution const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Formula const *)arg1)->Substitute((dreal::drake::symbolic::ExpressionSubstitution const &)*arg2,(dreal::drake::symbolic::FormulaSubstitution const &)*arg3);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSubstituteSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::ExpressionSubstitution *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::ExpressionSubstitution **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::ExpressionSubstitution const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Formula const *)arg1)->Substitute((dreal::drake::symbolic::ExpressionSubstitution const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaSubstituteSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ dreal::drake::symbolic::FormulaSubstitution *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::FormulaSubstitution **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::FormulaSubstitution const & is null");
+ return 0;
+ }
+ result = ((dreal::drake::symbolic::Formula const *)arg1)->Substitute((dreal::drake::symbolic::FormulaSubstitution const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaToString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ std::string result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ result = ((dreal::drake::symbolic::Formula const *)arg1)->to_string();
+ jresult = jenv->NewStringUTF((&result)->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaTrue(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::drake::symbolic::Formula::True();
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaFalse(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::drake::symbolic::Formula::False();
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaBoolOperator(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Formula const *)arg1)->operator bool();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG5(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &operator <<(*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isFalse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_false((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isTrue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_true((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isVariableSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_variable((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_equal_to((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isNotEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_not_equal_to((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isGreaterThan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_greater_than((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isGreaterThanOrEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_greater_than_or_equal_to((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isLessThan(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_less_than((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isLessThanOrEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_less_than_or_equal_to((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isRelational(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_relational((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isConjunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_conjunction((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isDisjunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_disjunction((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isNegation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_negation((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isForall(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_forall((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaMakeConjunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::Formula::make_conjunction(*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaMakeDisjunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::Formula::make_disjunction(*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = operator !((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_equalSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator ==((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notEqualSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator !=((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_lessSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator <((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_lessEqual(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator <=((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_grater(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator >((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_graterEqual(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = operator >=((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Expression const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaIncludeIte(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = (dreal::drake::symbolic::Formula *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ result = (bool)((dreal::drake::symbolic::Formula const *)arg1)->include_ite();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_forall(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::forall((dreal::drake::symbolic::Variables const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_andSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator &&((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_andSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator &&((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_andSWIG6(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator &&((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_andSWIG8(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator &&((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_orSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ||((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_orSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ||((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_orSWIG6(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ||((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_orSWIG8(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ||((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator !((dreal::drake::symbolic::Variable const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_equalSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ==((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_equalSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ==((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_equalSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ==((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_equalSWIG5(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator ==((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notEqualSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator !=((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notEqualSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator !=((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notEqualSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator !=((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notEqualSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::operator !=((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isNary(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::drake::symbolic::is_nary((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getVariableSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Variable *) &dreal::drake::symbolic::get_variable((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getLhsExpression(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &dreal::drake::symbolic::get_lhs_expression((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getRhsExpression(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Expression *) &dreal::drake::symbolic::get_rhs_expression((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getOperands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (std::set< dreal::drake::symbolic::Formula > *) &dreal::drake::symbolic::get_operands((dreal::drake::symbolic::Formula const &)*arg1);
+ *(std::set< dreal::drake::symbolic::Formula > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getOperand(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Formula *) &dreal::drake::symbolic::get_operand((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getQuantifiedVariables(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Variables *) &dreal::drake::symbolic::get_quantified_variables((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Variables **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getQuantifiedFormula(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (dreal::drake::symbolic::Formula *) &dreal::drake::symbolic::get_quantified_formula((dreal::drake::symbolic::Formula const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_logicAnd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::drake::symbolic::detail::logic_and((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_implySWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::imply((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_implySWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::imply((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_implySWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::imply((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_implySWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::imply((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_iffSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::iff((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_iffSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::iff((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_iffSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::iff((dreal::drake::symbolic::Formula const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_iffSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Variable *arg1 = 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variable **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = dreal::iff((dreal::drake::symbolic::Variable const &)*arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_map(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Formula > *arg1 = 0 ;
+ std::function< dreal::drake::symbolic::Formula (dreal::drake::symbolic::Formula const &) > *arg2 = 0 ;
+ std::set< dreal::drake::symbolic::Formula > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Formula > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::set< dreal::drake::symbolic::Formula > const & is null");
+ return 0;
+ }
+ arg2 = *(std::function< dreal::drake::symbolic::Formula (dreal::drake::symbolic::Formula const &) > **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::function< dreal::drake::symbolic::Formula (dreal::drake::symbolic::Formula const &) > const & is null");
+ return 0;
+ }
+ result = dreal::map((std::set< dreal::drake::symbolic::Formula > const &)*arg1,(std::function< dreal::drake::symbolic::Formula (dreal::drake::symbolic::Formula const &) > const &)*arg2);
+ *(std::set< dreal::drake::symbolic::Formula > **)&jresult = new std::set< dreal::drake::symbolic::Formula >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isAtomic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::is_atomic((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isClause(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::is_clause((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getClauses(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ std::set< dreal::drake::symbolic::Formula > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = dreal::get_clauses((dreal::drake::symbolic::Formula const &)*arg1);
+ *(std::set< dreal::drake::symbolic::Formula > **)&jresult = new std::set< dreal::drake::symbolic::Formula >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isCnf(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::is_cnf((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_haveIntersection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Variables *arg1 = 0 ;
+ dreal::drake::symbolic::Variables *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::drake::symbolic::Variables **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Variables **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variables const & is null");
+ return 0;
+ }
+ result = (bool)dreal::HaveIntersection((dreal::drake::symbolic::Variables const &)*arg1,(dreal::drake::symbolic::Variables const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deltaStrengthen(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ double arg2 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = (double)jarg2;
+ result = dreal::DeltaStrengthen((dreal::drake::symbolic::Formula const &)*arg1,arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deltaWeaken(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ jlong jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ double arg2 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = (double)jarg2;
+ result = dreal::DeltaWeaken((dreal::drake::symbolic::Formula const &)*arg1,arg2);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isDifferentiableSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ result = (bool)dreal::IsDifferentiable((dreal::drake::symbolic::Formula const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_isDifferentiableSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ result = (bool)dreal::IsDifferentiable((dreal::drake::symbolic::Expression const &)*arg1);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_makeConjunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Formula > const & is null");
+ return 0;
+ }
+ result = dreal::make_conjunction((std::vector< dreal::drake::symbolic::Formula > const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_makeDisjunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Formula > *arg1 = 0 ;
+ dreal::drake::symbolic::Formula result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Formula > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Formula > const & is null");
+ return 0;
+ }
+ result = dreal::make_disjunction((std::vector< dreal::drake::symbolic::Formula > const &)*arg1);
+ *(dreal::drake::symbolic::Formula **)&jresult = new dreal::drake::symbolic::Formula(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_createVectorSWIG0(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jint jarg3) {
+ jlong jresult = 0 ;
+ std::string *arg1 = 0 ;
+ int arg2 ;
+ dreal::drake::symbolic::Variable::Type arg3 ;
+ std::vector< dreal::drake::symbolic::Variable > 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);
+ arg2 = (int)jarg2;
+ arg3 = (dreal::drake::symbolic::Variable::Type)jarg3;
+ result = dreal::CreateVector((std::string const &)*arg1,arg2,arg3);
+ *(std::vector< dreal::drake::symbolic::Variable > **)&jresult = new std::vector< dreal::drake::symbolic::Variable >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_createVectorSWIG1(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ std::string *arg1 = 0 ;
+ int arg2 ;
+ std::vector< dreal::drake::symbolic::Variable > 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);
+ arg2 = (int)jarg2;
+ result = dreal::CreateVector((std::string const &)*arg1,arg2);
+ *(std::vector< dreal::drake::symbolic::Variable > **)&jresult = new std::vector< dreal::drake::symbolic::Variable >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_not(JNIEnv *jenv, jclass jcls, jint jarg1) {
+ jint jresult = 0 ;
+ dreal::RelationalOperator arg1 ;
+ dreal::RelationalOperator result;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (dreal::RelationalOperator)jarg1;
+ result = (dreal::RelationalOperator)dreal::operator !(arg1);
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG6(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::RelationalOperator arg2 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = (dreal::RelationalOperator)jarg2;
+ result = (std::ostream *) &dreal::operator <<(*arg1,arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_parseLogic(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+ jint jresult = 0 ;
+ std::string *arg1 = 0 ;
+ dreal::Logic 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 = (dreal::Logic)dreal::parse_logic((std::string const &)*arg1);
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG7(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::Logic *arg2 = 0 ;
+ dreal::Logic temp2 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ temp2 = (dreal::Logic)jarg2;
+ arg2 = &temp2;
+ result = (std::ostream *) &dreal::operator <<(*arg1,(enum dreal::Logic const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newBoxSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::Box *)new dreal::Box();
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newBoxSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg1 = 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Variable > const & is null");
+ return 0;
+ }
+ result = (dreal::Box *)new dreal::Box((std::vector< dreal::drake::symbolic::Variable > const &)*arg1);
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newBoxSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ result = (dreal::Box *)new dreal::Box((dreal::Box const &)*arg1);
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::Box *arg2 = 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::Box **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ result = (dreal::Box *) &(arg1)->operator =((dreal::Box const &)*arg2);
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteBox(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::Box **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxAddSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ (arg1)->Add((dreal::drake::symbolic::Variable const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxAdd_SWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jdouble jarg3, jdouble jarg4) {
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ double arg3 ;
+ double arg4 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ arg3 = (double)jarg3;
+ arg4 = (double)jarg4;
+ (arg1)->Add((dreal::drake::symbolic::Variable const &)*arg2,arg3,arg4);
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ result = (bool)((dreal::Box const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxSetEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ (arg1)->set_empty();
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ result = (int)((dreal::Box const *)arg1)->size();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxIndexingSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ int arg2 ;
+ dreal::Box::Interval *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = (int)jarg2;
+ result = (dreal::Box::Interval *) &(arg1)->operator [](arg2);
+ *(dreal::Box::Interval **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxIndexingSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::Box::Interval *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (dreal::Box::Interval *) &(arg1)->operator []((dreal::drake::symbolic::Variable const &)*arg2);
+ *(dreal::Box::Interval **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxVariables(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ result = (std::vector< dreal::drake::symbolic::Variable > *) &((dreal::Box const *)arg1)->variables();
+ *(std::vector< dreal::drake::symbolic::Variable > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ int arg2 ;
+ dreal::drake::symbolic::Variable *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = (int)jarg2;
+ result = (dreal::drake::symbolic::Variable *) &((dreal::Box const *)arg1)->variable(arg2);
+ *(dreal::drake::symbolic::Variable **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxHasVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)((dreal::Box const *)arg1)->has_variable((dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxIntervalVector(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::Box::IntervalVector *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ result = (dreal::Box::IntervalVector *) &((dreal::Box const *)arg1)->interval_vector();
+ *(dreal::Box::IntervalVector **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxMutableIntervalVector(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::Box::IntervalVector *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ result = (dreal::Box::IntervalVector *) &(arg1)->mutable_interval_vector();
+ *(dreal::Box::IntervalVector **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jint jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (int)((dreal::Box const *)arg1)->index((dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxMaxDiam(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ std::pair< double,int > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ result = ((dreal::Box const *)arg1)->MaxDiam();
+ *(std::pair< double,int > **)&jresult = new std::pair< double,int >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxBisectSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ int arg2 ;
+ std::pair< dreal::Box,dreal::Box > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = (int)jarg2;
+ result = ((dreal::Box const *)arg1)->bisect(arg2);
+ *(std::pair< dreal::Box,dreal::Box > **)&jresult = new std::pair< dreal::Box,dreal::Box >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxBisectSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ std::pair< dreal::Box,dreal::Box > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = ((dreal::Box const *)arg1)->bisect((dreal::drake::symbolic::Variable const &)*arg2);
+ *(std::pair< dreal::Box,dreal::Box > **)&jresult = new std::pair< dreal::Box,dreal::Box >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_boxInplaceUnion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::Box *arg1 = (dreal::Box *) 0 ;
+ dreal::Box *arg2 = 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ arg2 = *(dreal::Box **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ result = (dreal::Box *) &(arg1)->InplaceUnion((dreal::Box const &)*arg2);
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG8(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::Box *arg2 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(dreal::Box **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &operator <<(*arg1,(dreal::Box const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_equal(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::Box *arg1 = 0 ;
+ dreal::Box *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::Box **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ result = (bool)dreal::operator ==((dreal::Box const &)*arg1,(dreal::Box const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_notEqual(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ dreal::Box *arg1 = 0 ;
+ dreal::Box *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Box **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::Box **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box const & is null");
+ return 0;
+ }
+ result = (bool)dreal::operator !=((dreal::Box const &)*arg1,(dreal::Box const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_displayDiff(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ std::vector< dreal::drake::symbolic::Variable > *arg2 = 0 ;
+ dreal::Box::IntervalVector *arg3 = 0 ;
+ dreal::Box::IntervalVector *arg4 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(std::vector< dreal::drake::symbolic::Variable > **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Variable > const & is null");
+ return 0;
+ }
+ arg3 = *(dreal::Box::IntervalVector **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box::IntervalVector const & is null");
+ return 0;
+ }
+ arg4 = *(dreal::Box::IntervalVector **)&jarg4;
+ if (!arg4) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Box::IntervalVector const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &dreal::DisplayDiff(*arg1,(std::vector< dreal::drake::symbolic::Variable > const &)*arg2,(ibex::IntervalVector const &)*arg3,(ibex::IntervalVector const &)*arg4);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueBoolSWIG0(JNIEnv *jenv, jclass jcls, jboolean jarg1) {
+ jlong jresult = 0 ;
+ bool arg1 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = jarg1 ? true : false;
+ result = (dreal::OptionValue< bool > *)new dreal::OptionValue< bool >(arg1);
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueBoolSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< bool > *arg1 = 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< bool > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< bool > *)new dreal::OptionValue< bool >((dreal::OptionValue< bool > const &)*arg1);
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueBoolAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< bool > *arg1 = (dreal::OptionValue< bool > *) 0 ;
+ dreal::OptionValue< bool > *arg2 = 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ arg2 = *(dreal::OptionValue< bool > **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< bool > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< bool > *) &(arg1)->operator =((dreal::OptionValue< bool > const &)*arg2);
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteOptionValueBool(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::OptionValue< bool > *arg1 = (dreal::OptionValue< bool > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueBoolAssignOperatorSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< bool > *arg1 = (dreal::OptionValue< bool > *) 0 ;
+ bool *arg2 = 0 ;
+ bool temp2 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ temp2 = jarg2 ? true : false;
+ arg2 = &temp2;
+ result = (dreal::OptionValue< bool > *) &(arg1)->operator =((bool const &)*arg2);
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueBoolAssignOperatorSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< bool > *arg1 = (dreal::OptionValue< bool > *) 0 ;
+ bool *arg2 = 0 ;
+ std::unique_ptr< bool > rvrdeleter2 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ arg2 = *(bool **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "bool && is null");
+ return 0;
+ }
+ rvrdeleter2.reset(arg2);
+ result = (dreal::OptionValue< bool > *) &(arg1)->operator =((bool &&)*arg2);
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueBoolGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::OptionValue< bool > *arg1 = (dreal::OptionValue< bool > *) 0 ;
+ bool *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ result = (bool *) &((dreal::OptionValue< bool > const *)arg1)->get();
+ jresult = (jboolean)*result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueBoolSetFromCommandLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+ dreal::OptionValue< bool > *arg1 = (dreal::OptionValue< bool > *) 0 ;
+ bool *arg2 = 0 ;
+ bool temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ temp2 = jarg2 ? true : false;
+ arg2 = &temp2;
+ (arg1)->set_from_command_line((bool const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueBoolSetFromFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+ dreal::OptionValue< bool > *arg1 = (dreal::OptionValue< bool > *) 0 ;
+ bool *arg2 = 0 ;
+ bool temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< bool > **)&jarg1;
+ temp2 = jarg2 ? true : false;
+ arg2 = &temp2;
+ (arg1)->set_from_file((bool const &)*arg2);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueIntSWIG0(JNIEnv *jenv, jclass jcls, jint jarg1) {
+ jlong jresult = 0 ;
+ int arg1 ;
+ dreal::OptionValue< int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (int)jarg1;
+ result = (dreal::OptionValue< int > *)new dreal::OptionValue< int >(arg1);
+ *(dreal::OptionValue< int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueIntSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< int > *arg1 = 0 ;
+ dreal::OptionValue< int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< int > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< int > *)new dreal::OptionValue< int >((dreal::OptionValue< int > const &)*arg1);
+ *(dreal::OptionValue< int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueIntAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< int > *arg1 = (dreal::OptionValue< int > *) 0 ;
+ dreal::OptionValue< int > *arg2 = 0 ;
+ dreal::OptionValue< int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ arg2 = *(dreal::OptionValue< int > **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< int > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< int > *) &(arg1)->operator =((dreal::OptionValue< int > const &)*arg2);
+ *(dreal::OptionValue< int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteOptionValueInt(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::OptionValue< int > *arg1 = (dreal::OptionValue< int > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueIntAssignOperatorSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< int > *arg1 = (dreal::OptionValue< int > *) 0 ;
+ int *arg2 = 0 ;
+ int temp2 ;
+ dreal::OptionValue< int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ temp2 = (int)jarg2;
+ arg2 = &temp2;
+ result = (dreal::OptionValue< int > *) &(arg1)->operator =((int const &)*arg2);
+ *(dreal::OptionValue< int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueIntAssignOperatorSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< int > *arg1 = (dreal::OptionValue< int > *) 0 ;
+ int *arg2 = 0 ;
+ std::unique_ptr< int > rvrdeleter2 ;
+ dreal::OptionValue< int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ arg2 = *(int **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "int && is null");
+ return 0;
+ }
+ rvrdeleter2.reset(arg2);
+ result = (dreal::OptionValue< int > *) &(arg1)->operator =((int &&)*arg2);
+ *(dreal::OptionValue< int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueIntGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::OptionValue< int > *arg1 = (dreal::OptionValue< int > *) 0 ;
+ int *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ result = (int *) &((dreal::OptionValue< int > const *)arg1)->get();
+ jresult = (jint)*result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueIntSetFromCommandLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ dreal::OptionValue< int > *arg1 = (dreal::OptionValue< int > *) 0 ;
+ int *arg2 = 0 ;
+ int temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ temp2 = (int)jarg2;
+ arg2 = &temp2;
+ (arg1)->set_from_command_line((int const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueIntSetFromFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ dreal::OptionValue< int > *arg1 = (dreal::OptionValue< int > *) 0 ;
+ int *arg2 = 0 ;
+ int temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< int > **)&jarg1;
+ temp2 = (int)jarg2;
+ arg2 = &temp2;
+ (arg1)->set_from_file((int const &)*arg2);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueDoubleSWIG0(JNIEnv *jenv, jclass jcls, jdouble jarg1) {
+ jlong jresult = 0 ;
+ double arg1 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (double)jarg1;
+ result = (dreal::OptionValue< double > *)new dreal::OptionValue< double >(arg1);
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueDoubleSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< double > *arg1 = 0 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< double > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< double > *)new dreal::OptionValue< double >((dreal::OptionValue< double > const &)*arg1);
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueDoubleAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< double > *arg1 = (dreal::OptionValue< double > *) 0 ;
+ dreal::OptionValue< double > *arg2 = 0 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ arg2 = *(dreal::OptionValue< double > **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< double > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< double > *) &(arg1)->operator =((dreal::OptionValue< double > const &)*arg2);
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteOptionValueDouble(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::OptionValue< double > *arg1 = (dreal::OptionValue< double > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueDoubleAssignOperatorSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< double > *arg1 = (dreal::OptionValue< double > *) 0 ;
+ double *arg2 = 0 ;
+ double temp2 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ temp2 = (double)jarg2;
+ arg2 = &temp2;
+ result = (dreal::OptionValue< double > *) &(arg1)->operator =((double const &)*arg2);
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueDoubleAssignOperatorSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< double > *arg1 = (dreal::OptionValue< double > *) 0 ;
+ double *arg2 = 0 ;
+ std::unique_ptr< double > rvrdeleter2 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ arg2 = *(double **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "double && is null");
+ return 0;
+ }
+ rvrdeleter2.reset(arg2);
+ result = (dreal::OptionValue< double > *) &(arg1)->operator =((double &&)*arg2);
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueDoubleGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::OptionValue< double > *arg1 = (dreal::OptionValue< double > *) 0 ;
+ double *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ result = (double *) &((dreal::OptionValue< double > const *)arg1)->get();
+ jresult = (jdouble)*result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueDoubleSetFromCommandLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ dreal::OptionValue< double > *arg1 = (dreal::OptionValue< double > *) 0 ;
+ double *arg2 = 0 ;
+ double temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ temp2 = (double)jarg2;
+ arg2 = &temp2;
+ (arg1)->set_from_command_line((double const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueDoubleSetFromFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) {
+ dreal::OptionValue< double > *arg1 = (dreal::OptionValue< double > *) 0 ;
+ double *arg2 = 0 ;
+ double temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< double > **)&jarg1;
+ temp2 = (double)jarg2;
+ arg2 = &temp2;
+ (arg1)->set_from_file((double const &)*arg2);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueUnsignedIntSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ uint32_t arg1 ;
+ uint32_t *argp1 ;
+ dreal::OptionValue< uint32_t > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ argp1 = *(uint32_t **)&jarg1;
+ if (!argp1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint32_t");
+ return 0;
+ }
+ arg1 = *argp1;
+ result = (dreal::OptionValue< uint32_t > *)new dreal::OptionValue< uint32_t >(arg1);
+ *(dreal::OptionValue< uint32_t > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newOptionValueUnsignedIntSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< uint32_t > *arg1 = 0 ;
+ dreal::OptionValue< uint32_t > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< uint32_t > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< uint32_t > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< uint32_t > *)new dreal::OptionValue< uint32_t >((dreal::OptionValue< uint32_t > const &)*arg1);
+ *(dreal::OptionValue< uint32_t > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueUnsignedIntAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< uint32_t > *arg1 = (dreal::OptionValue< uint32_t > *) 0 ;
+ dreal::OptionValue< uint32_t > *arg2 = 0 ;
+ dreal::OptionValue< uint32_t > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::OptionValue< uint32_t > **)&jarg1;
+ arg2 = *(dreal::OptionValue< uint32_t > **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::OptionValue< uint32_t > const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< uint32_t > *) &(arg1)->operator =((dreal::OptionValue< uint32_t > const &)*arg2);
+ *(dreal::OptionValue< uint32_t > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteOptionValueUnsignedInt(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::OptionValue< uint32_t > *arg1 = (dreal::OptionValue< uint32_t > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::OptionValue< uint32_t > **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueUnsignedIntAssignOperatorSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< uint32_t > *arg1 = (dreal::OptionValue< uint32_t > *) 0 ;
+ uint32_t *arg2 = 0 ;
+ dreal::OptionValue< uint32_t > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< uint32_t > **)&jarg1;
+ arg2 = *(uint32_t **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint32_t const & is null");
+ return 0;
+ }
+ result = (dreal::OptionValue< uint32_t > *) &(arg1)->operator =((uint32_t const &)*arg2);
+ *(dreal::OptionValue< uint32_t > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueUnsignedIntGet(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::OptionValue< uint32_t > *arg1 = (dreal::OptionValue< uint32_t > *) 0 ;
+ uint32_t *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< uint32_t > **)&jarg1;
+ result = (uint32_t *) &((dreal::OptionValue< uint32_t > const *)arg1)->get();
+ *(uint32_t **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueUnsignedIntSetFromCommandLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ dreal::OptionValue< uint32_t > *arg1 = (dreal::OptionValue< uint32_t > *) 0 ;
+ uint32_t *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< uint32_t > **)&jarg1;
+ arg2 = *(uint32_t **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint32_t const & is null");
+ return ;
+ }
+ (arg1)->set_from_command_line((uint32_t const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_optionValueUnsignedIntSetFromFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ dreal::OptionValue< uint32_t > *arg1 = (dreal::OptionValue< uint32_t > *) 0 ;
+ uint32_t *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::OptionValue< uint32_t > **)&jarg1;
+ arg2 = *(uint32_t **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint32_t const & is null");
+ return ;
+ }
+ (arg1)->set_from_file((uint32_t const &)*arg2);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newConfigSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::Config *result = 0 ;
+
+ dreal::Config *config = new dreal::Config();
+ // To create the right default configuration
+ config->mutable_precision() = 0.001;
+ config->mutable_produce_models() = false;
+ config->mutable_use_polytope() = false;
+ config->mutable_use_polytope_in_forall() = false;
+ config->mutable_use_worklist_fixpoint() = false;
+ config->mutable_use_local_optimization() = false;
+ //config->mutable_dump_theory_literals() = false;
+ config->mutable_number_of_jobs() = 1;
+ config->mutable_stack_left_box_first() = false;
+ config->mutable_smtlib2_compliant() = false;
+
+ config->mutable_nlopt_ftol_rel() = 1e-6;
+ config->mutable_nlopt_ftol_abs() = 1e-6;
+ config->mutable_nlopt_maxeval() = 100;
+ config->mutable_nlopt_maxtime() = 0.01;
+
+ config->mutable_sat_default_phase() = dreal::Config::SatDefaultPhase::JeroslowWang;
+ config->mutable_random_seed() = 0;
+
+ config->mutable_brancher() = dreal::BranchLargestFirst;
+
+ (void)jenv;
+ (void)jcls;
+ //result = (dreal::Config *)new dreal::Config();
+ //*(dreal::Config **)&jresult = result;
+ *(dreal::Config **)&jresult = config;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newConfigSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = 0 ;
+ dreal::Config *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Config const & is null");
+ return 0;
+ }
+ result = (dreal::Config *)new dreal::Config((dreal::Config const &)*arg1);
+ *(dreal::Config **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configAssignOperatorSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::Config *arg2 = 0 ;
+ dreal::Config *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Config **)&jarg1;
+ arg2 = *(dreal::Config **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Config const & is null");
+ return 0;
+ }
+ result = (dreal::Config *) &(arg1)->operator =((dreal::Config const &)*arg2);
+ *(dreal::Config **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteConfig(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::Config **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configPrecision(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (double)((dreal::Config const *)arg1)->precision();
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutablePrecision(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< double > *) &(arg1)->mutable_precision();
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configProduceModels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (bool)((dreal::Config const *)arg1)->produce_models();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableProduceModels(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< bool > *) &(arg1)->mutable_produce_models();
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configUsePolytope(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (bool)((dreal::Config const *)arg1)->use_polytope();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUsePolytope(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< bool > *) &(arg1)->mutable_use_polytope();
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configUsePolytopeInForall(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (bool)((dreal::Config const *)arg1)->use_polytope_in_forall();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUsePolytopeInForall(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< bool > *) &(arg1)->mutable_use_polytope_in_forall();
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configUseWorklistFixpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (bool)((dreal::Config const *)arg1)->use_worklist_fixpoint();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUseWorklistFixpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< bool > *) &(arg1)->mutable_use_worklist_fixpoint();
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configUseLocalOptimization(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (bool)((dreal::Config const *)arg1)->use_local_optimization();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUseLocalOptimization(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< bool > *) &(arg1)->mutable_use_local_optimization();
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+// SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_Config_1dump_1theory_1literals(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+// jboolean jresult = 0 ;
+// dreal::Config *arg1 = (dreal::Config *) 0 ;
+// bool result;
+//
+// (void)jenv;
+// (void)jcls;
+// (void)jarg1_;
+// arg1 = *(dreal::Config **)&jarg1;
+// result = (bool)((dreal::Config const *)arg1)->dump_theory_literals();
+// jresult = (jboolean)result;
+// return jresult;
+// }
+//
+//
+// SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_Config_1mutable_1dump_1theory_1literals(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+// jlong jresult = 0 ;
+// dreal::Config *arg1 = (dreal::Config *) 0 ;
+// dreal::OptionValue< bool > *result = 0 ;
+//
+// (void)jenv;
+// (void)jcls;
+// (void)jarg1_;
+// arg1 = *(dreal::Config **)&jarg1;
+// result = (dreal::OptionValue< bool > *) &(arg1)->mutable_dump_theory_literals();
+// *(dreal::OptionValue< bool > **)&jresult = result;
+// return jresult;
+// }
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configNumberOfJobs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (int)((dreal::Config const *)arg1)->number_of_jobs();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNumberOfJobs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< int > *) &(arg1)->mutable_number_of_jobs();
+ *(dreal::OptionValue< int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configStackLeftBoxFirst(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (bool)((dreal::Config const *)arg1)->stack_left_box_first();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableStackLeftBoxFirst(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< bool > *) &(arg1)->mutable_stack_left_box_first();
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configBrancher(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::Config::Brancher *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::Config::Brancher *) &((dreal::Config const *)arg1)->brancher();
+ *(dreal::Config::Brancher **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableBrancher(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< dreal::Config::Brancher > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< dreal::Config::Brancher > *) &(arg1)->mutable_brancher();
+ *(dreal::OptionValue< dreal::Config::Brancher > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configNloptFtolRel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (double)((dreal::Config const *)arg1)->nlopt_ftol_rel();
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptFtolRel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< double > *) &(arg1)->mutable_nlopt_ftol_rel();
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configNloptFtolAbs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (double)((dreal::Config const *)arg1)->nlopt_ftol_abs();
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptFtolAbs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< double > *) &(arg1)->mutable_nlopt_ftol_abs();
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configNloptMaxeval(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (int)((dreal::Config const *)arg1)->nlopt_maxeval();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptMaxeval(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< int > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< int > *) &(arg1)->mutable_nlopt_maxeval();
+ *(dreal::OptionValue< int > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configNloptMaxtime(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jdouble jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (double)((dreal::Config const *)arg1)->nlopt_maxtime();
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptMaxtime(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< double > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< double > *) &(arg1)->mutable_nlopt_maxtime();
+ *(dreal::OptionValue< double > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configSatDefaultPhaseFalseGet(JNIEnv *jenv, jclass jcls) {
+ jint jresult = 0 ;
+ dreal::Config::SatDefaultPhase result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::Config::SatDefaultPhase)dreal::Config::SatDefaultPhase::False;
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configSatDefaultPhaseTrueGet(JNIEnv *jenv, jclass jcls) {
+ jint jresult = 0 ;
+ dreal::Config::SatDefaultPhase result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::Config::SatDefaultPhase)dreal::Config::SatDefaultPhase::True;
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configSatDefaultPhaseJeroslowWangGet(JNIEnv *jenv, jclass jcls) {
+ jint jresult = 0 ;
+ dreal::Config::SatDefaultPhase result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::Config::SatDefaultPhase)dreal::Config::SatDefaultPhase::JeroslowWang;
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configSatDefaultPhaseRandomInitialPhaseGet(JNIEnv *jenv, jclass jcls) {
+ jint jresult = 0 ;
+ dreal::Config::SatDefaultPhase result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::Config::SatDefaultPhase)dreal::Config::SatDefaultPhase::RandomInitialPhase;
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configSatDefaultPhase(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::Config::SatDefaultPhase result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::Config::SatDefaultPhase)((dreal::Config const *)arg1)->sat_default_phase();
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableSatDefaultPhase(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< dreal::Config::SatDefaultPhase > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< dreal::Config::SatDefaultPhase > *) &(arg1)->mutable_sat_default_phase();
+ *(dreal::OptionValue< dreal::Config::SatDefaultPhase > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configRandomSeed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ uint32_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = ((dreal::Config const *)arg1)->random_seed();
+ //*(uint32_t **)&jresult = new uint32_t(result);
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableRandomSeed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< uint32_t > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< uint32_t > *) &(arg1)->mutable_random_seed();
+ *(dreal::OptionValue< uint32_t > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configSmtlib2Compliant(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (bool)((dreal::Config const *)arg1)->smtlib2_compliant();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableSmtlib2Compliant(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = (dreal::Config *) 0 ;
+ dreal::OptionValue< bool > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ result = (dreal::OptionValue< bool > *) &(arg1)->mutable_smtlib2_compliant();
+ *(dreal::OptionValue< bool > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configKDefaultPrecisionGet(JNIEnv *jenv, jclass jcls) {
+ jdouble jresult = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (double)dreal::Config::kDefaultPrecision;
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configKDefaultNloptFtolRelGet(JNIEnv *jenv, jclass jcls) {
+ jdouble jresult = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (double)dreal::Config::kDefaultNloptFtolRel;
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configKDefaultNloptFtolAbsGet(JNIEnv *jenv, jclass jcls) {
+ jdouble jresult = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (double)dreal::Config::kDefaultNloptFtolAbs;
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configKDefaultNloptMaxEvalGet(JNIEnv *jenv, jclass jcls) {
+ jint jresult = 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (int)dreal::Config::kDefaultNloptMaxEval;
+ jresult = (jint)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jdouble JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configKDefaultNloptMaxTimeGet(JNIEnv *jenv, jclass jcls) {
+ jdouble jresult = 0 ;
+ double result;
+
+ (void)jenv;
+ (void)jcls;
+ result = (double)dreal::Config::kDefaultNloptMaxTime;
+ jresult = (jdouble)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG9(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::Config::SatDefaultPhase *arg2 = 0 ;
+ dreal::Config::SatDefaultPhase temp2 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ temp2 = (dreal::Config::SatDefaultPhase)jarg2;
+ arg2 = &temp2;
+ result = (std::ostream *) &dreal::operator <<(*arg1,(enum dreal::Config::SatDefaultPhase const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_insertOperatorSWIG22(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
+ std::ostream *arg1 = 0 ;
+ dreal::Config *arg2 = 0 ;
+ std::ostream *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg2_;
+ arg1 = *(std::ostream **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ostream & is null");
+ return 0;
+ }
+ arg2 = *(dreal::Config **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Config const & is null");
+ return 0;
+ }
+ result = (std::ostream *) &dreal::operator <<(*arg1,(dreal::Config const &)*arg2);
+ *(std::ostream **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_checkSatisfiabilitySWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2, jlong jarg3, jobject jarg3_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *arg1 = 0 ;
+ double arg2 ;
+ dreal::Box *arg3 = (dreal::Box *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg3_;
+ arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg2 = (double)jarg2;
+ arg3 = *(dreal::Box **)&jarg3;
+ result = (bool)dreal::CheckSatisfiability((dreal::drake::symbolic::Formula const &)*arg1,arg2,arg3);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+// rewritten
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_checkSatisfiabilitySWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Formula *f = 0 ;
+ dreal::Box *box = (dreal::Box *) 0 ;
+ dreal::Config *config = (dreal::Config *) 0;
+
+
+ // dreal::Config *config = new dreal::Config();
+ // config->mutable_precision() = 0.001;
+ // config->mutable_produce_models() = false;
+ // config->mutable_use_polytope() = false;
+ // config->mutable_use_polytope_in_forall() = false;
+ // config->mutable_use_worklist_fixpoint() = false;
+ // config->mutable_use_local_optimization() = false;
+ // //config->mutable_dump_theory_literals() = false;
+ // config->mutable_number_of_jobs() = 1;
+ // config->mutable_stack_left_box_first() = false;
+ // config->mutable_smtlib2_compliant() = false;
+
+ // config->mutable_nlopt_ftol_rel() = 1e-6;
+ // config->mutable_nlopt_ftol_abs() = 1e-6;
+ // config->mutable_nlopt_maxeval() = 100;
+ // config->mutable_nlopt_maxtime() = 0.01;
+
+ // config->mutable_sat_default_phase() = dreal::Config::SatDefaultPhase::JeroslowWang;
+ // config->mutable_random_seed() = 0;
+
+ // config->mutable_brancher() = dreal::BranchLargestFirst;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+ f = *(dreal::drake::symbolic::Formula **)&jarg1;
+ if (!f) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ config = *(dreal::Config **)&jarg2;
+ if (!config) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::Config");
+ return 0;
+ }
+ //arg2 = *argp2;
+
+ box = *(dreal::Box **)&jarg3;
+
+ // std::cerr << "Now Config is used from java" << std::endl;
+ // //std::cerr << argconfig->precision() << std::endl;
+ // std::cerr << argconfig->number_of_jobs() << std::endl;
+
+ dreal::Context *context = new dreal::Context(*config);
+ for (dreal::Variable v : f->GetFreeVariables()) {
+ context->DeclareVariable(v);
+ }
+ context->Assert(*f);
+ dreal::optional result = context->CheckSat();
+ if (result) {
+ DREAL_ASSERT(box);
+ *box = *result;
+ //std::cerr << *box << std::endl;
+ jresult = (jboolean)true;
+ } else {
+ jresult = (jboolean)false;
+ }
+ return jresult;
+ //return true;
+}
+
+
+// SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_CheckSatisfiability_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+// jboolean jresult = 0 ;
+// dreal::drake::symbolic::Formula *arg1 = 0 ;
+// dreal::Config arg2 ;
+// dreal::Box *arg3 = (dreal::Box *) 0 ;
+// dreal::Config *argp2 ;
+// bool result;
+
+// (void)jenv;
+// (void)jcls;
+// (void)jarg1_;
+// (void)jarg2_;
+// (void)jarg3_;
+// arg1 = *(dreal::drake::symbolic::Formula **)&jarg1;
+// if (!arg1) {
+// SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+// return 0;
+// }
+// argp2 = *(dreal::Config **)&jarg2;
+// if (!argp2) {
+// SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::Config");
+// return 0;
+// }
+// arg2 = *argp2;
+// arg3 = *(dreal::Box **)&jarg3;
+// result = (bool)dreal::CheckSatisfiability((dreal::drake::symbolic::Formula const &)*arg1,SWIG_STD_MOVE(arg2),arg3);
+// jresult = (jboolean)result;
+// return jresult;
+// }
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_minimizeSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jdouble jarg3, jlong jarg4, jobject jarg4_) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ double arg3 ;
+ dreal::Box *arg4 = (dreal::Box *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg4_;
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ arg3 = (double)jarg3;
+ arg4 = *(dreal::Box **)&jarg4;
+ result = (bool)dreal::Minimize((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2,arg3,arg4);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_minimizeSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
+ jboolean jresult = 0 ;
+ dreal::drake::symbolic::Expression *arg1 = 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+ dreal::Config arg3 ;
+ dreal::Box *arg4 = (dreal::Box *) 0 ;
+ dreal::Config *argp3 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+
+ arg1 = *(dreal::drake::symbolic::Expression **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return 0;
+ }
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return 0;
+ }
+ argp3 = *(dreal::Config **)&jarg3;
+ if (!argp3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null dreal::Config");
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = *(dreal::Box **)&jarg4;
+ result = (bool)dreal::Minimize((dreal::drake::symbolic::Expression const &)*arg1,(dreal::drake::symbolic::Formula const &)*arg2,SWIG_STD_MOVE(arg3),arg4);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newContextSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ dreal::Context *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (dreal::Context *)new dreal::Context();
+ *(dreal::Context **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newContextSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = 0 ;
+ std::unique_ptr< dreal::Context > rvrdeleter1 ;
+ dreal::Context *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Context && is null");
+ return 0;
+ }
+ rvrdeleter1.reset(arg1);
+ result = (dreal::Context *)new dreal::Context((dreal::Context &&)*arg1);
+ *(dreal::Context **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteContext(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::Context **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newContextSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Config *arg1 = 0 ;
+ dreal::Context *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Config **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::Config const & is null");
+ return 0;
+ }
+ result = (dreal::Context *)new dreal::Context((dreal::Config const &)*arg1);
+ *(dreal::Context **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextAssert(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Formula *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Formula **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return ;
+ }
+ (arg1)->Assert((dreal::drake::symbolic::Formula const &)*arg2);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextCheckSat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ SwigValueWrapper< dreal::optional< dreal::Box > > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ result = (arg1)->CheckSat();
+ *(dreal::optional< dreal::Box > **)&jresult = new dreal::optional< dreal::Box >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextDeclareVariableSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool arg3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ arg3 = jarg3 ? true : false;
+ (arg1)->DeclareVariable((dreal::drake::symbolic::Variable const &)*arg2,arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextDeclareVariableSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ (arg1)->DeclareVariable((dreal::drake::symbolic::Variable const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextDeclareVariableSWIG2(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3,jlong jarg4, jboolean jarg5) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *arg3 = 0 ;
+ dreal::drake::symbolic::Expression *arg4 = 0 ;
+ bool arg5 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ arg3 = *(dreal::drake::symbolic::Expression **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ arg4 = *(dreal::drake::symbolic::Expression **)&jarg4;
+ if (!arg4) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ arg5 = jarg5 ? true : false;
+ (arg1)->DeclareVariable((dreal::drake::symbolic::Variable const &)*arg2,(dreal::drake::symbolic::Expression const &)*arg3,(dreal::drake::symbolic::Expression const &)*arg4,arg5);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextDeclareVariableSWIG3(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ dreal::drake::symbolic::Expression *arg3 = 0 ;
+ dreal::drake::symbolic::Expression *arg4 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ arg3 = *(dreal::drake::symbolic::Expression **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ arg4 = *(dreal::drake::symbolic::Expression **)&jarg4;
+ if (!arg4) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ (arg1)->DeclareVariable((dreal::drake::symbolic::Variable const &)*arg2,(dreal::drake::symbolic::Expression const &)*arg3,(dreal::drake::symbolic::Expression const &)*arg4);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextExit(JNIEnv *jenv, jclass jcls) {
+ (void)jenv;
+ (void)jcls;
+ dreal::Context::Exit();
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextMinimizeSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ (arg1)->Minimize((dreal::drake::symbolic::Expression const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextMinimizeSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ std::vector< dreal::drake::symbolic::Expression > *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(std::vector< dreal::drake::symbolic::Expression > **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< dreal::drake::symbolic::Expression > const & is null");
+ return ;
+ }
+ (arg1)->Minimize((std::vector< dreal::drake::symbolic::Expression > const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextMaximize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Expression *arg2 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Expression **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Expression const & is null");
+ return ;
+ }
+ (arg1)->Maximize((dreal::drake::symbolic::Expression const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextPop(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ int arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = (int)jarg2;
+ (arg1)->Pop(arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextPush(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ int arg2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = (int)jarg2;
+ (arg1)->Push(arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextSetInfoSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ std::string *arg2 = 0 ;
+ double arg3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&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 = (double)jarg3;
+ (arg1)->SetInfo((std::string const &)*arg2,arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextSetInfoSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ std::string *arg2 = 0 ;
+ std::string *arg3 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&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(!jarg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
+ return ;
+ }
+ const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3_pstr) return ;
+ std::string arg3_str(arg3_pstr);
+ arg3 = &arg3_str;
+ jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
+ (arg1)->SetInfo((std::string const &)*arg2,(std::string const &)*arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextSetInterval(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jdouble jarg3, jdouble jarg4) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ double arg3 ;
+ double arg4 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(dreal::Context **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return ;
+ }
+ arg3 = (double)jarg3;
+ arg4 = (double)jarg4;
+ (arg1)->SetInterval((dreal::drake::symbolic::Variable const &)*arg2,arg3,arg4);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextSetLogic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::Logic *arg2 = 0 ;
+ dreal::Logic temp2 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ temp2 = (dreal::Logic)jarg2;
+ arg2 = &temp2;
+ (arg1)->SetLogic((dreal::Logic const &)*arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextSetOptionSWIG0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdouble jarg3) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ std::string *arg2 = 0 ;
+ double arg3 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&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 = (double)jarg3;
+ (arg1)->SetOption((std::string const &)*arg2,arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextSetOptionSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ std::string *arg2 = 0 ;
+ std::string *arg3 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&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(!jarg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
+ return ;
+ }
+ const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
+ if (!arg3_pstr) return ;
+ std::string arg3_str(arg3_pstr);
+ arg3 = &arg3_str;
+ jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
+ (arg1)->SetOption((std::string const &)*arg2,(std::string const &)*arg3);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextGetOption(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ std::string *arg2 = 0 ;
+ SwigValueWrapper< dreal::optional< std::string > > result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&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 = ((dreal::Context const *)arg1)->GetOption((std::string const &)*arg2);
+ *(dreal::optional< std::string > **)&jresult = new dreal::optional< std::string >(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextConfig(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::Config *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ result = (dreal::Config *) &((dreal::Context const *)arg1)->config();
+ *(dreal::Config **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextMutableConfig(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::Config *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ result = (dreal::Config *) &(arg1)->mutable_config();
+ *(dreal::Config **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextVersion(JNIEnv *jenv, jclass jcls) {
+ jstring jresult = 0 ;
+ std::string result;
+
+ (void)jenv;
+ (void)jcls;
+ result = dreal::Context::version();
+ jresult = jenv->NewStringUTF((&result)->c_str());
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextAssertions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::ScopedVector< dreal::drake::symbolic::Formula > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ result = (dreal::ScopedVector< dreal::drake::symbolic::Formula > *) &((dreal::Context const *)arg1)->assertions();
+ *(dreal::ScopedVector< dreal::drake::symbolic::Formula > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextBox(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ result = (dreal::Box *) &((dreal::Context const *)arg1)->box();
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextGetModel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ dreal::Context *arg1 = (dreal::Context *) 0 ;
+ dreal::Box *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(dreal::Context **)&jarg1;
+ result = (dreal::Box *) &((dreal::Context const *)arg1)->get_model();
+ *(dreal::Box **)&jresult = result;
+ return jresult;
+}
+
+// VariableSet added later
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetIteratorIncrementUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::set< dreal::drake::symbolic::Variable >::iterator *arg1 = (std::set< dreal::drake::symbolic::Variable >::iterator *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jarg1;
+ std_set_Sl_dreal_drake_symbolic_Variable_Sg__iterator_incrementUnchecked(arg1);
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetIteratorDerefUnchecked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable >::iterator *arg1 = (std::set< dreal::drake::symbolic::Variable >::iterator *) 0 ;
+ dreal::drake::symbolic::Variable result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jarg1;
+ result = std_set_Sl_dreal_drake_symbolic_Variable_Sg__iterator_derefUnchecked((std::set< dreal::drake::symbolic::Variable >::iterator const *)arg1);
+ *(dreal::drake::symbolic::Variable **)&jresult = new dreal::drake::symbolic::Variable(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetIteratorIsNot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable >::iterator *arg1 = (std::set< dreal::drake::symbolic::Variable >::iterator *) 0 ;
+ std::set< dreal::drake::symbolic::Variable >::iterator arg2 ;
+ std::set< dreal::drake::symbolic::Variable >::iterator *argp2 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jarg1;
+ argp2 = *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jarg2;
+ if (!argp2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::set< dreal::drake::symbolic::Variable >::iterator");
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Variable_Sg__iterator_isNot((std::set< dreal::drake::symbolic::Variable >::iterator const *)arg1,SWIG_STD_MOVE(arg2));
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteVariableSetIterator(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::set< dreal::drake::symbolic::Variable >::iterator *arg1 = (std::set< dreal::drake::symbolic::Variable >::iterator *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableSetSWIG0(JNIEnv *jenv, jclass jcls) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ result = (std::set< dreal::drake::symbolic::Variable > *)new std::set< dreal::drake::symbolic::Variable >();
+ *(std::set< dreal::drake::symbolic::Variable > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newVariableSetSWIG1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ if (!arg1) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::set< dreal::drake::symbolic::Variable > const & is null");
+ return 0;
+ }
+ result = (std::set< dreal::drake::symbolic::Variable > *)new std::set< dreal::drake::symbolic::Variable >((std::set< dreal::drake::symbolic::Variable > const &)*arg1);
+ *(std::set< dreal::drake::symbolic::Variable > **)&jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetIsEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ result = (bool)((std::set< dreal::drake::symbolic::Variable > const *)arg1)->empty();
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetClear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ (arg1)->clear();
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetBegin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ std::set< dreal::drake::symbolic::Variable >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ result = (arg1)->begin();
+ *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jresult = new std::set< dreal::drake::symbolic::Variable >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetEnd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ std::set< dreal::drake::symbolic::Variable >::iterator result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ result = (arg1)->end();
+ *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jresult = new std::set< dreal::drake::symbolic::Variable >::iterator(result);
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetAddImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Variable_Sg__addImpl(arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetContainsImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Variable_Sg__containsImpl(arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetRemoveImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ dreal::drake::symbolic::Variable *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = *(dreal::drake::symbolic::Variable **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Variable const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Variable_Sg__removeImpl(arg1,(dreal::drake::symbolic::Variable const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetSizeImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ jint result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ try {
+ result = std_set_Sl_dreal_drake_symbolic_Variable_Sg__sizeImpl((std::set< dreal::drake::symbolic::Variable > const *)arg1);
+ } catch(std::out_of_range &_e) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what());
+ return 0;
+ }
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_variableSetHasNextImpl(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jboolean jresult = 0 ;
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ std::set< dreal::drake::symbolic::Variable >::iterator *arg2 = 0 ;
+ bool result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ arg2 = *(std::set< dreal::drake::symbolic::Variable >::iterator **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::set< dreal::drake::symbolic::Variable >::iterator const & is null");
+ return 0;
+ }
+ result = (bool)std_set_Sl_dreal_drake_symbolic_Variable_Sg__hasNextImpl((std::set< dreal::drake::symbolic::Variable > const *)arg1,(std::set< dreal::drake::symbolic::Variable >::iterator const &)*arg2);
+ jresult = (jboolean)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_deleteVariableSet(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ std::set< dreal::drake::symbolic::Variable > *arg1 = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = *(std::set< dreal::drake::symbolic::Variable > **)&jarg1;
+ delete arg1;
+}
+
+
+//Start of self written JNI calls
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutablePrecision0(JNIEnv *jenv, jclass jcls, jdouble value, jlong config) {
+ double val = (double)value;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_precision() = val;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableProduceModels0(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+ bool binary = (bool)boolean;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_produce_models() = binary;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUsePolytope0(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+ bool binary = (bool)boolean;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_use_polytope() = binary;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUsePolytopeInForall0(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+ bool binary = (bool)boolean;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_use_polytope_in_forall() = binary;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUseWorklistFixpoint0(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+ bool binary = (bool)boolean;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_use_worklist_fixpoint() = binary;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableUseLocalOptimization0(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+ bool binary = (bool)boolean;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_use_local_optimization() = binary;
+}
+
+// SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_Config_1mutable_1dump_1theory_1literals_10(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+// bool binary = (bool)boolean;
+// dreal::Config *configure = (dreal::Config *) 0;
+// configure = *(dreal::Config **)&config;
+// configure->mutable_dump_theory_literals() = binary;
+// }
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNumberOfJobs0(JNIEnv *jenv, jclass jcls, jint value, jlong config) {
+ int val = (int)value;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_number_of_jobs() = val;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableStackLeftBoxFirst0(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+ bool binary = (bool)boolean;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_stack_left_box_first() = binary;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptFtolRel0(JNIEnv *jenv, jclass jcls, jdouble value, jlong config) {
+ double val = (double)value;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_nlopt_ftol_rel() = val;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptFtolAbs0(JNIEnv *jenv, jclass jcls, jdouble value, jlong config) {
+ double val = (double)value;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_nlopt_ftol_abs() = val;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptMaxeval0(JNIEnv *jenv, jclass jcls, jint value, jlong config) {
+ int val = (int)value;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_nlopt_maxeval() = val;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableNloptMaxtime0(JNIEnv *jenv, jclass jcls, jdouble value, jlong config) {
+ double val = (double)value;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_nlopt_maxtime() = val;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableRandomSeed0(JNIEnv *jenv, jclass jcls, jlong seed, jlong config) {
+ uint32_t stone = (uint32_t)seed;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_random_seed() = stone;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_configMutableSmtlib2Compliant0(JNIEnv *jenv, jclass jcls, jboolean boolean, jlong config) {
+ bool binary = (bool)boolean;
+ dreal::Config *configure = (dreal::Config *) 0;
+ configure = *(dreal::Config **)&config;
+ configure->mutable_smtlib2_compliant() = binary;
+}
+
+SWIGEXPORT void Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextDeclareVariables(JNIEnv *jenv, jclass jcls, jlong cntxt, jlong f) {
+ dreal::Context *context = (dreal::Context *) 0;
+ context = *(dreal::Context **)&cntxt;
+ dreal::drake::symbolic::Formula *formula = (dreal::drake::symbolic::Formula *) 0;
+ formula = *(dreal::drake::symbolic::Formula **)&f;
+
+ (void)jenv;
+ (void)jcls;
+
+ if (!f) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "dreal::drake::symbolic::Formula const & is null");
+ return;
+ }
+
+ for (const dreal::drake::symbolic::Variable& v: formula->GetFreeVariables()) {
+ context->DeclareVariable(v);
+ }
+}
+
+SWIGEXPORT jboolean JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_contextCheckSat0(JNIEnv *jenv, jclass jcls, jlong cntxt, jlong b) {
+ jboolean jresult = 0 ;
+ dreal::Box *box = (dreal::Box *) 0 ;
+ box = *(dreal::Box **)&b;
+ dreal::Context *context = (dreal::Context *) 0;
+ context = *(dreal::Context **)&cntxt;
+
+ (void)jenv;
+ (void)jcls;
+
+ dreal::optional result = context->CheckSat();
+
+ if (result) {
+ DREAL_ASSERT(box);
+ *box = *result;
+ jresult = (jboolean)true;
+ } else {
+ jresult = (jboolean)false;
+ }
+ return jresult;
+}
+
+SWIGEXPORT void JNICALL
+Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaGetQuantifiedVariables(JNIEnv *jenv, jclass jcls, jlong set, jlong f) {
+ dreal::drake::symbolic::Formula *formula = (dreal::drake::symbolic::Formula *) 0;
+ formula = *(dreal::drake::symbolic::Formula **)&f;
+ std::set< dreal::drake::symbolic::Variable > *s = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ s = *(std::set< dreal::drake::symbolic::Variable > **)&set;
+
+ for (dreal::drake::symbolic::Variable v : dreal::drake::symbolic::get_quantified_variables(*formula)) {
+ s->insert(v);
+ }
+}
+
+SWIGEXPORT jlong JNICALL Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_newExpressionSWIG4(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong jresult = 0 ;
+ long arg1 ;
+ dreal::drake::symbolic::Expression *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ arg1 = (long)jarg1;
+ result = (dreal::drake::symbolic::Expression *)new dreal::drake::symbolic::Expression(arg1);
+ *(dreal::drake::symbolic::Expression **)&jresult = result;
+ return jresult;
+}
+
+SWIGEXPORT jstring JNICALL
+Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getResult(JNIEnv *jenv, jclass
+jcls, jlong model, jlong var) {
+ jstring result = 0;
+ dreal::Box *box = (dreal::Box *) 0;
+ dreal::drake::symbolic::Variable *variable = (dreal::drake::symbolic::Variable *) 0;
+
+ variable = *(dreal::drake::symbolic::Variable**)&var;
+ box = *(dreal::Box **)&model;
+ dreal::Box copyBox{*box};
+ std::string res;
+
+ dreal::drake::symbolic::Variable copyVar{*variable};
+
+ dreal::Box::Interval interval = copyBox[copyVar];
+ if (interval.is_empty()) {
+ res = "EMPTY";
+ } else {
+ std::string lb = std::to_string(interval.lb());
+ std::string ub = std::to_string(interval.ub());
+ res = lb + "; " + ub;
+ }
+
+ result = jenv->NewStringUTF((&res)->c_str());
+ return result;
+}
+
+SWIGEXPORT jlong JNICALL
+Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_getVariables(JNIEnv *jenv, jclass jcls, jlong set, jlong exp) {
+ dreal::drake::symbolic::Expression *expression = (dreal::drake::symbolic::Expression *) 0;
+ expression = *(dreal::drake::symbolic::Expression **)&exp;
+ std::set< dreal::drake::symbolic::Variable > *s = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ s = *(std::set< dreal::drake::symbolic::Variable > **)&set;
+
+ for (dreal::drake::symbolic::Variable v : expression->GetVariables()) {
+ s->insert(v);
+ }
+}
+
+SWIGEXPORT void JNICALL
+Java_org_sosy_1lab_java_1smt_solvers_dreal4_drealjni_DrealJNI_formulaGetFreeVariables0(JNIEnv
+*jenv, jclass jcls, jlong set, jlong f) {
+ dreal::drake::symbolic::Formula *formula = (dreal::drake::symbolic::Formula *) 0;
+ formula = *(dreal::drake::symbolic::Formula **)&f;
+ std::set< dreal::drake::symbolic::Variable > *s = (std::set< dreal::drake::symbolic::Variable > *) 0 ;
+ s = *(std::set< dreal::drake::symbolic::Variable > **)&set;
+
+ for (dreal::drake::symbolic::Variable v : formula->GetFreeVariables()) {
+ s->insert(v);
+ }
+}
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/lib/native/x86_64-linux/libdreal_.so b/lib/native/x86_64-linux/libdreal_.so
new file mode 120000
index 0000000000..88400e0f35
--- /dev/null
+++ b/lib/native/x86_64-linux/libdreal_.so
@@ -0,0 +1 @@
+../../java/runtime-dreal/libdreal_.so
\ No newline at end of file
diff --git a/lib/native/x86_64-linux/libdrealjava.so b/lib/native/x86_64-linux/libdrealjava.so
new file mode 120000
index 0000000000..618198b3e9
--- /dev/null
+++ b/lib/native/x86_64-linux/libdrealjava.so
@@ -0,0 +1 @@
+../../java/runtime-dreal/libdrealjava.so
\ No newline at end of file
diff --git a/lib/native/x86_64-linux/libibex.so b/lib/native/x86_64-linux/libibex.so
new file mode 120000
index 0000000000..be6b03d769
--- /dev/null
+++ b/lib/native/x86_64-linux/libibex.so
@@ -0,0 +1 @@
+../../java/runtime-dreal/libibex.so
\ No newline at end of file
diff --git a/solvers_ivy_conf/ivy_dreal.xml b/solvers_ivy_conf/ivy_dreal.xml
new file mode 100644
index 0000000000..fe54943919
--- /dev/null
+++ b/solvers_ivy_conf/ivy_dreal.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+ JavaSMT backend for the dReal automated reasoning tool.
+ dReal is provided under the Apache License 2.0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/solvers_maven_conf/maven_dreal_pom_template.xml b/solvers_maven_conf/maven_dreal_pom_template.xml
new file mode 100644
index 0000000000..33f3d1f2d5
--- /dev/null
+++ b/solvers_maven_conf/maven_dreal_pom_template.xml
@@ -0,0 +1,44 @@
+
+
+
+
+ 4.0.0
+ org.sosy-lab
+ javasmt-solver-dreal
+ pom
+ javasmt-solver-dreal
+ ${stage.revision}
+ JavaSMT backend for the Apron numerical abstract domain library
+ https://github.com/sosy-lab/java-smt
+
+
+
+ Apache License, Version 2.0
+ https://opensource.org/license/apache-2-0
+
+
+
+
+ Software Systems Lab
+ https://www.sosy-lab.org/
+
+
+
+ https://github.com/sosy-lab/java-smt/
+ scm:git:git://github.com/sosy-lab/java-smt.git
+ scm:git:git@github.com:sosy-lab/java-smt.git
+
+
+
+
+
+
diff --git a/src/org/sosy_lab/java_smt/SolverContextFactory.java b/src/org/sosy_lab/java_smt/SolverContextFactory.java
index f5754b32ad..316b669fd7 100644
--- a/src/org/sosy_lab/java_smt/SolverContextFactory.java
+++ b/src/org/sosy_lab/java_smt/SolverContextFactory.java
@@ -32,6 +32,7 @@
import org.sosy_lab.java_smt.solvers.boolector.BoolectorSolverContext;
import org.sosy_lab.java_smt.solvers.cvc4.CVC4SolverContext;
import org.sosy_lab.java_smt.solvers.cvc5.CVC5SolverContext;
+import org.sosy_lab.java_smt.solvers.dreal4.DReal4SolverContext;
import org.sosy_lab.java_smt.solvers.mathsat5.Mathsat5SolverContext;
import org.sosy_lab.java_smt.solvers.opensmt.OpenSmtSolverContext;
import org.sosy_lab.java_smt.solvers.princess.PrincessSolverContext;
@@ -57,7 +58,8 @@ public enum Solvers {
BOOLECTOR,
CVC4,
CVC5,
- YICES2
+ YICES2,
+ DREAL4
}
@Option(secure = true, description = "Export solver queries in SmtLib format into a file.")
@@ -290,6 +292,13 @@ private SolverContext generateContext0(Solvers solverToCreate)
case BOOLECTOR:
return BoolectorSolverContext.create(config, shutdownNotifier, logfile, randomSeed, loader);
+ // NonLinearArithmetic.USE is set, because otherwise the option to set to ALWAYS/FALLBACK
+ // would be available, but because of missing UF support, these option are not usable and
+ // only USE should be available.
+ case DREAL4:
+ return DReal4SolverContext.create(
+ shutdownNotifier, (int) randomSeed, NonLinearArithmetic.USE, loader);
+
default:
throw new AssertionError("no solver selected");
}
diff --git a/src/org/sosy_lab/java_smt/example/SolverRace.java b/src/org/sosy_lab/java_smt/example/SolverRace.java
new file mode 100644
index 0000000000..bcec44760f
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/example/SolverRace.java
@@ -0,0 +1,120 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2024 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.example;
+
+import static org.sosy_lab.java_smt.SolverContextFactory.Solvers.CVC4;
+import static org.sosy_lab.java_smt.SolverContextFactory.Solvers.CVC5;
+import static org.sosy_lab.java_smt.SolverContextFactory.Solvers.DREAL4;
+import static org.sosy_lab.java_smt.SolverContextFactory.Solvers.MATHSAT5;
+import static org.sosy_lab.java_smt.SolverContextFactory.Solvers.SMTINTERPOL;
+import static org.sosy_lab.java_smt.SolverContextFactory.Solvers.YICES2;
+import static org.sosy_lab.java_smt.SolverContextFactory.Solvers.Z3;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableSet;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import org.sosy_lab.common.ShutdownNotifier;
+import org.sosy_lab.common.configuration.Configuration;
+import org.sosy_lab.common.configuration.InvalidConfigurationException;
+import org.sosy_lab.common.log.BasicLogManager;
+import org.sosy_lab.common.log.LogManager;
+import org.sosy_lab.java_smt.SolverContextFactory;
+import org.sosy_lab.java_smt.SolverContextFactory.Solvers;
+import org.sosy_lab.java_smt.api.BasicProverEnvironment;
+import org.sosy_lab.java_smt.api.BooleanFormula;
+import org.sosy_lab.java_smt.api.BooleanFormulaManager;
+import org.sosy_lab.java_smt.api.RationalFormulaManager;
+import org.sosy_lab.java_smt.api.SolverContext;
+import org.sosy_lab.java_smt.api.SolverException;
+import org.sosy_lab.java_smt.test.HardFormulaRationalGenerator;
+
+/**
+ * This example pits all solvers supporting rationals against each other in a race to solve the same
+ * hard SMT problems. The "+" stands for one solved problem.
+ */
+public class SolverRace {
+
+ private static final ImmutableSet SOLVERS_WITH_RATIONALS =
+ ImmutableSet.of(CVC4, CVC5, DREAL4, MATHSAT5, SMTINTERPOL, YICES2, Z3);
+
+ // the maximum difficulty of the generated formulas
+ private static final int MAX_DIFFICULTY = 100;
+ // the maximum time of a thread in seconds
+ private static final int MAX_TIME = 5;
+
+ public static void main(String[] args) throws Exception {
+ for (Solvers solver : SOLVERS_WITH_RATIONALS) {
+ System.out.println(solver + ": ");
+ thread(
+ () -> {
+ for (int i = 7; i < MAX_DIFFICULTY; i++) {
+ int finalI = i;
+ Configuration config = Configuration.defaultConfiguration();
+ LogManager logger = BasicLogManager.create(config);
+ ShutdownNotifier notifier = ShutdownNotifier.createDummy();
+ try (SolverContext context =
+ SolverContextFactory.createSolverContext(config, logger, notifier, solver);
+ BasicProverEnvironment> prover = context.newProverEnvironment()) {
+ BooleanFormulaManager bfmgr =
+ context.getFormulaManager().getBooleanFormulaManager();
+ RationalFormulaManager rfmgr =
+ context.getFormulaManager().getRationalFormulaManager();
+ HardFormulaRationalGenerator gen = new HardFormulaRationalGenerator(rfmgr, bfmgr);
+ BooleanFormula threadFormula = gen.generate(finalI);
+ prover.push(threadFormula);
+ Preconditions.checkState(prover.isUnsat());
+ System.out.print("+");
+ }
+ }
+ System.out.println();
+ });
+ }
+ System.exit(0);
+ }
+
+ private SolverRace() {}
+
+ private static void thread(Run runnable) {
+ final ExecutorService runningThread = Executors.newSingleThreadExecutor();
+ final List exceptionsList = Collections.synchronizedList(new ArrayList<>());
+ Future> future =
+ runningThread.submit(
+ () -> {
+ try {
+ runnable.run();
+ } catch (Throwable e) {
+ exceptionsList.add(e);
+ }
+ });
+ try {
+ future.get(MAX_TIME, TimeUnit.SECONDS);
+ } catch (TimeoutException e) {
+ future.cancel(true);
+ System.out.println();
+ } catch (InterruptedException | ExecutionException e) {
+ exceptionsList.add(e);
+ } finally {
+ runningThread.shutdownNow();
+ }
+ Preconditions.checkState(exceptionsList.isEmpty());
+ }
+
+ /** just a small lambda-compatible interface. */
+ private interface Run {
+ void run() throws SolverException, InterruptedException, InvalidConfigurationException;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4BooleanFormulaManager.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4BooleanFormulaManager.java
new file mode 100644
index 0000000000..4417295ee8
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4BooleanFormulaManager.java
@@ -0,0 +1,445 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import java.util.Collection;
+import org.sosy_lab.java_smt.basicimpl.AbstractBooleanFormulaManager;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+public class DReal4BooleanFormulaManager
+ extends AbstractBooleanFormulaManager<
+ DRealTerm, ?>, Variable.Type.Kind, Config, DRealTerm, ?>> {
+
+ protected DReal4BooleanFormulaManager(DReal4FormulaCreator pCreator) {
+ super(pCreator);
+ }
+
+ @Override
+ protected DRealTerm, ?> makeVariableImpl(String pVar) {
+ return formulaCreator.makeVariable(getFormulaCreator().getBoolType(), pVar);
+ }
+
+ @Override
+ protected DRealTerm makeBooleanImpl(boolean value) {
+ if (value) {
+ return new DRealTerm<>(Formula.formulaTrue(), Variable.Type.BOOLEAN, FormulaKind.TRUE);
+ } else {
+ return new DRealTerm<>(Formula.formulaFalse(), Variable.Type.BOOLEAN, FormulaKind.FALSE);
+ }
+ }
+
+ @Override
+ protected DRealTerm not(DRealTerm, ?> pParam1) {
+ if (pParam1.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.not(pParam1.getFormula()), Variable.Type.BOOLEAN, FormulaKind.NOT);
+ } else if (pParam1.isVar()) {
+ Preconditions.checkState(pParam1.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.not(new Formula(pParam1.getVariable())), Variable.Type.BOOLEAN, FormulaKind.NOT);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support to create a not-Formula " + "from Expressions.");
+ }
+ }
+
+ @Override
+ protected DRealTerm and(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isVar() && pParam2.isFormula()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam1.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.and(pParam1.getVariable(), pParam2.getFormula()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else if (pParam1.isFormula() && pParam2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.and(pParam1.getFormula(), pParam2.getVariable()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam1.getType() == Variable.Type.BOOLEAN);
+ Preconditions.checkState(pParam2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.and(pParam1.getVariable(), pParam2.getVariable()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else if (pParam1.isFormula() && pParam2.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.and(pParam1.getFormula(), pParam2.getFormula()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support to create an And-Formula " + "form Expressions.");
+ }
+ }
+
+ @Override
+ protected DRealTerm andImpl(
+ Collection> pParams) {
+ Formula result = Formula.formulaTrue();
+ for (DRealTerm, ?> formula : pParams) {
+ // Only Formulas or Variables of boolean type are accepted when creating an And-Formula
+ Preconditions.checkState(
+ formula.isFormula() || (formula.isVar() && (formula.getType() == Variable.Type.BOOLEAN)));
+ if (formula.isFormula()) {
+ if (formula.getFormulaKind() == FormulaKind.FALSE) {
+ return new DRealTerm<>(Formula.formulaFalse(), Variable.Type.BOOLEAN, FormulaKind.FALSE);
+ }
+ result = Dreal.and(result, formula.getFormula());
+ } else if (formula.isVar() && formula.getType() == Variable.Type.BOOLEAN) {
+ result = Dreal.and(result, formula.getVariable());
+ } else {
+ throw new IllegalArgumentException(
+ "Expression or Variable of not boolean type are not "
+ + "supported to create an And-Formula.");
+ }
+ }
+ return new DRealTerm<>(result, Variable.Type.BOOLEAN, FormulaKind.AND);
+ }
+
+ @Override
+ protected DRealTerm or(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isVar() && pParam2.isFormula()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam1.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.or(pParam1.getVariable(), pParam2.getFormula()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.OR);
+ } else if (pParam1.isFormula() && pParam2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.or(pParam1.getFormula(), pParam2.getVariable()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.OR);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam1.getType() == Variable.Type.BOOLEAN);
+ Preconditions.checkState(pParam2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.or(pParam1.getVariable(), pParam2.getVariable()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.OR);
+ } else if (pParam1.isFormula() && pParam2.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.or(pParam1.getFormula(), pParam2.getFormula()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.OR);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support to creat an Or-Formula from " + "Expressions.");
+ }
+ }
+
+ @Override
+ protected DRealTerm orImpl(
+ Collection> pParams) {
+ Formula result = Formula.formulaFalse();
+ for (DRealTerm, ?> formula : pParams) {
+ // Only Formulas or Variables of boolean type are accepted when creating an Or-Formula
+ Preconditions.checkState(
+ formula.isFormula() || (formula.isVar() && (formula.getType() == Variable.Type.BOOLEAN)));
+ if (formula.isFormula()) {
+ if (formula.getFormulaKind() == FormulaKind.TRUE) {
+ return new DRealTerm<>(Formula.formulaTrue(), Variable.Type.BOOLEAN, FormulaKind.TRUE);
+ }
+ result = Dreal.or(result, formula.getFormula());
+ } else if (formula.isVar() && formula.getType() == Variable.Type.BOOLEAN) {
+ result = Dreal.or(result, formula.getVariable());
+ } else {
+ throw new IllegalArgumentException(
+ "Expression or Variable of not boolean type are not "
+ + "supported to create an Or-Formula.");
+ }
+ }
+ return new DRealTerm<>(result, Variable.Type.BOOLEAN, FormulaKind.OR);
+ }
+
+ // a xor b = (not(A AND B)) AND (not(not A AND not B))
+ @Override
+ protected DRealTerm xor(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isVar() && pParam2.isFormula()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam1.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.not(Dreal.and(pParam1.getVariable(), pParam2.getFormula())),
+ Dreal.not(
+ Dreal.and(Dreal.not(pParam1.getVariable()), Dreal.not(pParam2.getFormula())))),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else if (pParam1.isFormula() && pParam2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.not(Dreal.and(pParam1.getFormula(), pParam2.getVariable())),
+ Dreal.not(
+ Dreal.and(Dreal.not(pParam1.getFormula()), Dreal.not(pParam2.getVariable())))),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(pParam1.getType() == Variable.Type.BOOLEAN);
+ Preconditions.checkState(pParam2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.not(Dreal.and(pParam1.getVariable(), pParam2.getVariable())),
+ Dreal.not(
+ Dreal.and(Dreal.not(pParam1.getVariable()), Dreal.not(pParam2.getVariable())))),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else if (pParam1.isFormula() && pParam2.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.not(Dreal.and(pParam1.getFormula(), pParam2.getFormula())),
+ Dreal.not(
+ Dreal.and(Dreal.not(pParam1.getFormula()), Dreal.not(pParam2.getFormula())))),
+ Variable.Type.BOOLEAN,
+ FormulaKind.AND);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support to create a Xor-Formula " + "from Expressions.");
+ }
+ }
+
+ @Override
+ protected DRealTerm equivalence(
+ DRealTerm, ?> bits1, DRealTerm, ?> bits2) {
+ if (bits1.isVar() && bits2.isFormula()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(bits1.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.iff(bits1.getVariable(), bits2.getFormula()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ);
+ } else if (bits1.isFormula() && bits2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(bits2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.iff(bits1.getFormula(), bits2.getVariable()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ);
+ } else if (bits1.isVar() && bits2.isVar()) {
+ // Only Variables with type boolean are allowed
+ Preconditions.checkState(bits1.getType() == Variable.Type.BOOLEAN);
+ Preconditions.checkState(bits2.getType() == Variable.Type.BOOLEAN);
+ return new DRealTerm<>(
+ Dreal.iff(bits1.getVariable(), bits2.getVariable()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ);
+ } else if (bits1.isFormula() && bits2.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.iff(bits1.getFormula(), bits2.getFormula()), Variable.Type.BOOLEAN, FormulaKind.EQ);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support to create an iff-Formula " + "from Expressions.");
+ }
+ }
+
+ @Override
+ protected boolean isTrue(DRealTerm, ?> bits) {
+ if (bits.isFormula()) {
+ return Dreal.isTrue(bits.getFormula());
+ } else if (bits.isVar()) {
+ if (bits.getType() == Variable.Type.BOOLEAN) {
+ return Dreal.isTrue(new Formula(bits.getVariable()));
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support isTrue on Variables not being Boolean type.");
+ }
+ } else {
+ throw new UnsupportedOperationException("Dreal does not support isTrue on Expressions.");
+ }
+ }
+
+ @Override
+ protected boolean isFalse(DRealTerm, ?> bits) {
+ if (bits.isFormula()) {
+ return Dreal.isFalse(bits.getFormula());
+ } else if (bits.isVar()) {
+ if (bits.getType() == Variable.Type.BOOLEAN) {
+ return Dreal.isFalse(new Formula(bits.getVariable()));
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support isTrue on Variables not being Boolean type.");
+ }
+ } else {
+ throw new UnsupportedOperationException("Dreal does not support isTrue on Expressions.");
+ }
+ }
+
+ // Dreal only allows ITE on Formulas as condition, and else and then arguments to be
+ // Expressions. But because a formula can be created from a variable of boolean type and an
+ // expression can be created from a variable, there are a lot of cases that need to be
+ // considered. The rest ist implemented with (!(cond) || f1) && (cond || f2) or an exception is
+ // thrown if not possible
+ @Override
+ protected DRealTerm, ?> ifThenElse(
+ DRealTerm, ?> cond, DRealTerm, ?> f1, DRealTerm, ?> f2) {
+ if (f1.equals(f2)) {
+ return f1;
+ }
+ if (cond.isVar()) {
+ if (cond.getType() == Variable.Type.BOOLEAN) {
+ if (f1.isExp() && f2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(
+ new Formula(cond.getVariable()), f1.getExpression(), f2.getExpression()),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else if (f1.isVar() && f2.isExp()) {
+ if (f1.getType() != Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(
+ new Formula(cond.getVariable()),
+ new Expression(f1.getVariable()),
+ f2.getExpression()),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support ITE with Variable of "
+ + "Boolean type and Expression as else and then arguments.");
+ }
+ } else if (f1.isExp() && f2.isVar()) {
+ if (f2.getType() != Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(
+ new Formula(cond.getVariable()),
+ f1.getExpression(),
+ new Expression(f2.getVariable())),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support ITE with Variable of "
+ + "Boolean type and Expression as else and then arguments.");
+ }
+ } else if (f1.isVar() && f2.isVar()) {
+ if (f1.getType() != Variable.Type.BOOLEAN && f2.getType() != Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(
+ new Formula(cond.getVariable()),
+ new Expression(f1.getVariable()),
+ new Expression(f2.getVariable())),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else if (f1.getType() == Variable.Type.BOOLEAN
+ && f2.getType() == Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.or(
+ Dreal.not(new Formula(cond.getVariable())), new Formula(f1.getVariable())),
+ Dreal.or(new Formula(cond.getVariable()), new Formula(f2.getVariable()))),
+ f1.getType(),
+ FormulaKind.AND);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support Variable of boolean "
+ + "type and Variable of different type to be else and then argumnets.");
+ }
+ } else if (f1.isFormula() && f2.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.or(Dreal.not(new Formula(cond.getVariable())), f1.getFormula()),
+ Dreal.or(new Formula(cond.getVariable()), f2.getFormula())),
+ f1.getType(),
+ FormulaKind.AND);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support Expression and Formula as then and else.");
+ }
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support a Variable of not boolean type as condition.");
+ }
+ } else if (cond.isFormula()) {
+ if (f1.isExp() && f2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(cond.getFormula(), f1.getExpression(), f2.getExpression()),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else if (f1.isVar() && f2.isExp()) {
+ if (f1.getType() != Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(
+ cond.getFormula(), new Expression(f1.getVariable()), f2.getExpression()),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support ITE with Variable of "
+ + "Boolean type and Expression as else and then arguments.");
+ }
+ } else if (f1.isExp() && f2.isVar()) {
+ if (f2.getType() != Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(
+ cond.getFormula(), f1.getExpression(), new Expression(f2.getVariable())),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support ITE with Variable of "
+ + "Boolean type and Expression as else and then arguments.");
+ }
+ } else if (f1.isVar() && f2.isVar()) {
+ if (f1.getType() != Variable.Type.BOOLEAN && f2.getType() == Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.ifThenElse(
+ cond.getFormula(),
+ new Expression(f1.getVariable()),
+ new Expression(f2.getVariable())),
+ f1.getType(),
+ ExpressionKind.ITE);
+ } else if (f1.getType() == Variable.Type.BOOLEAN && f2.getType() == Variable.Type.BOOLEAN) {
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.or(Dreal.not(cond.getFormula()), new Formula(f1.getVariable())),
+ Dreal.or(cond.getFormula(), new Formula(f2.getVariable()))),
+ f1.getType(),
+ FormulaKind.AND);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support Variable of boolean "
+ + "type and Variable of different type to be else and then argumnets.");
+ }
+ } else if (f1.isFormula() && f2.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.and(
+ Dreal.or(Dreal.not(cond.getFormula()), f1.getFormula()),
+ Dreal.or(cond.getFormula(), f2.getFormula())),
+ f1.getType(),
+ FormulaKind.AND);
+ } else {
+ throw new UnsupportedOperationException(
+ "Dreal does not support Expression and Formula " + "as then and else.");
+ }
+ } else {
+ throw new UnsupportedOperationException("Dreal does not support an Expression as condition.");
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4Formula.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4Formula.java
new file mode 100644
index 0000000000..67ac62cbca
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4Formula.java
@@ -0,0 +1,66 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import org.sosy_lab.java_smt.api.BooleanFormula;
+import org.sosy_lab.java_smt.api.Formula;
+import org.sosy_lab.java_smt.api.NumeralFormula.IntegerFormula;
+import org.sosy_lab.java_smt.api.NumeralFormula.RationalFormula;
+
+abstract class DReal4Formula implements Formula {
+ @SuppressWarnings("Immutable")
+ private final DRealTerm, ?> term;
+
+ DReal4Formula(DRealTerm, ?> pTerm) {
+ this.term = pTerm;
+ }
+
+ final DRealTerm, ?> getTerm() {
+ return term;
+ }
+
+ @Override
+ public final boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ } else if (o instanceof DReal4Formula) {
+ return term.equals(((DReal4Formula) o).getTerm());
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public final String toString() {
+ return term.toString();
+ }
+
+ @Override
+ public final int hashCode() {
+ return term.hashCode();
+ }
+
+ static final class DReal4BooleanFormula extends DReal4Formula implements BooleanFormula {
+ DReal4BooleanFormula(DRealTerm, ?> pTerm) {
+ super(pTerm);
+ }
+ }
+
+ static final class DReal4RationalFormula extends DReal4Formula implements RationalFormula {
+ DReal4RationalFormula(DRealTerm, ?> pTerm) {
+ super(pTerm);
+ }
+ }
+
+ static final class DReal4IntegerFormula extends DReal4Formula implements IntegerFormula {
+ DReal4IntegerFormula(DRealTerm, ?> pTerm) {
+ super(pTerm);
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4FormulaCreator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4FormulaCreator.java
new file mode 100644
index 0000000000..375378cadd
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4FormulaCreator.java
@@ -0,0 +1,744 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import static java.lang.Double.parseDouble;
+import static org.sosy_lab.java_smt.api.QuantifiedFormulaManager.Quantifier.FORALL;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import org.sosy_lab.common.rationals.Rational;
+import org.sosy_lab.java_smt.api.BooleanFormula;
+import org.sosy_lab.java_smt.api.Formula;
+import org.sosy_lab.java_smt.api.FormulaType;
+import org.sosy_lab.java_smt.api.FormulaType.FloatingPointType;
+import org.sosy_lab.java_smt.api.FunctionDeclarationKind;
+import org.sosy_lab.java_smt.api.visitors.FormulaVisitor;
+import org.sosy_lab.java_smt.basicimpl.FormulaCreator;
+import org.sosy_lab.java_smt.basicimpl.FunctionDeclarationImpl;
+import org.sosy_lab.java_smt.solvers.dreal4.DReal4Formula.DReal4BooleanFormula;
+import org.sosy_lab.java_smt.solvers.dreal4.DReal4Formula.DReal4IntegerFormula;
+import org.sosy_lab.java_smt.solvers.dreal4.DReal4Formula.DReal4RationalFormula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionDoubleMap;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionExpressionMap;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaSet;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.VariableSet;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variables;
+
+public class DReal4FormulaCreator
+ extends FormulaCreator, Variable.Type.Kind, Config, DRealTerm, ?>> {
+
+ private final Map> variablesCache =
+ new HashMap<>();
+
+ public DReal4FormulaCreator(Config config) {
+ super(
+ config, Variable.Type.BOOLEAN, Variable.Type.INTEGER, Variable.Type.CONTINUOUS, null, null);
+ }
+
+ @Override
+ public Variable.Type.Kind getBitvectorType(int bitwidth) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Variable.Type.Kind getFloatingPointType(FloatingPointType type) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Variable.Type.Kind getArrayType(
+ Variable.Type.Kind indexType, Variable.Type.Kind elementType) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public DRealTerm makeVariable(
+ Variable.Type.Kind pType, String varName) {
+ if (variablesCache.get(varName) == null) {
+ DRealTerm var =
+ new DRealTerm<>(new Variable(varName, pType), pType, pType);
+ variablesCache.put(varName, var);
+ return var;
+ } else {
+ DRealTerm var = variablesCache.get(varName);
+ if (var.getVariable().getType() == pType) {
+ return var;
+ } else {
+ throw new IllegalArgumentException(
+ "Symbol name already in use for different type " + var.getType());
+ }
+ }
+ }
+
+ @Override
+ public DRealTerm, ?> extractInfo(Formula pT) {
+ return DReal4FormulaManager.getDReal4Formula(pT);
+ }
+
+ @Override
+ public FormulaType> getFormulaType(DRealTerm, ?> formula) {
+ if (formula.getType() == Variable.Type.BOOLEAN) {
+ return FormulaType.BooleanType;
+ } else if (formula.getType() == Variable.Type.INTEGER) {
+ return FormulaType.IntegerType;
+ } else {
+ return FormulaType.RationalType;
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public T encapsulate(FormulaType pType, DRealTerm, ?> pTerm) {
+ assert FormulaType.IntegerType.equals(pType)
+ || (FormulaType.RationalType.equals(pType)
+ && FormulaType.IntegerType.equals(getFormulaType(pTerm)))
+ || pType.equals(getFormulaType(pTerm))
+ : String.format(
+ "Trying to encapsulate formula %s of type %s as %s",
+ pTerm, getFormulaType(pTerm), pType);
+ if (pType.isBooleanType()) {
+ return (T) new DReal4BooleanFormula(pTerm);
+ } else if (pType.isIntegerType()) {
+ return (T) new DReal4IntegerFormula(pTerm);
+ } else if (pType.isRationalType()) {
+ return (T) new DReal4RationalFormula(pTerm);
+ }
+ throw new IllegalArgumentException("Cannot create formulas of type " + pType + " in dReal.");
+ }
+
+ @Override
+ public BooleanFormula encapsulateBoolean(DRealTerm, ?> pTerm) {
+ assert getFormulaType(pTerm).isBooleanType()
+ : String.format(
+ "%s is not boolean, but %s (%s)", pTerm, pTerm.getType(), getFormulaType(pTerm));
+ return new DReal4BooleanFormula(pTerm);
+ }
+
+ @Override
+ public R visit(FormulaVisitor visitor, Formula formula, DRealTerm, ?> f) {
+
+ final FunctionDeclarationKind functionKind;
+ FormulaKind.FormulaType formulaKind = null;
+ ExpressionKind.ExpressionType expressionKind = null;
+ List> functionArgs = null;
+
+ if (f.isVar()) {
+ return visitor.visitFreeVariable(formula, f.getVariable().toString());
+ } else if (f.isExp()) {
+ ExpressionKind.ExpressionType kind = f.getExpressionKind();
+ if (kind == ExpressionKind.CONSTANT) {
+ String s = f.toString();
+ int idx = s.indexOf(".");
+ if (idx == -1) {
+ return visitor.visitConstant(formula, new BigInteger(s));
+ } else {
+ return visitor.visitConstant(
+ formula, Rational.ofBigDecimal(BigDecimal.valueOf(parseDouble(s))));
+ }
+ } else if (kind == ExpressionKind.VAR) {
+ return visitor.visitFreeVariable(formula, f.getExpression().toString());
+ } else if (kind == ExpressionKind.ITE) {
+ functionKind = FunctionDeclarationKind.ITE;
+ expressionKind = ExpressionKind.ITE;
+ functionArgs = getExpressionFromITE(f);
+ } else if (kind == ExpressionKind.POW) {
+ // the exponent should only be an int i >= 2, because the only way to get an
+ // expression with an exponent is to create an expression like (x*x*x), because pow is
+ // not supported in JavaSMT or if a variable gets negated, so pow(x,-1)
+ DRealTerm pow;
+ Expression lhs = Dreal.getFirstArgument(f.getExpression());
+ Expression rhs = Dreal.getSecondArgument(f.getExpression());
+ double exponent = parseDouble(rhs.toString());
+ if (exponent < 0) {
+ functionKind = FunctionDeclarationKind.DIV;
+ expressionKind = ExpressionKind.DIV;
+ pow =
+ new DRealTerm<>(
+ Dreal.divide(Expression.one(), lhs),
+ Dreal.getVariable(lhs).getType(),
+ ExpressionKind.DIV);
+ } else {
+ functionKind = FunctionDeclarationKind.MUL;
+ expressionKind = ExpressionKind.MUL;
+ Expression exp = Dreal.multiply(lhs, lhs);
+ for (int i = 2; i < exponent; i++) {
+ exp = Dreal.multiply(exp, lhs);
+ }
+ pow = new DRealTerm<>(exp, Dreal.getVariable(lhs).getType(), ExpressionKind.MUL);
+ }
+ functionArgs = getExpressionFromMul(pow);
+ } else if (kind == ExpressionKind.ADD) {
+ functionKind = FunctionDeclarationKind.ADD;
+ expressionKind = ExpressionKind.ADD;
+ functionArgs = getExpressionFromAdd(f);
+ } else if (kind == ExpressionKind.MUL) {
+ functionKind = FunctionDeclarationKind.MUL;
+ expressionKind = ExpressionKind.MUL;
+ functionArgs = getExpressionFromMul(f);
+ } else {
+ functionKind = FunctionDeclarationKind.DIV;
+ expressionKind = ExpressionKind.DIV;
+ functionArgs = getExpressionsFromDiv(f);
+ }
+ } else {
+ FormulaKind.FormulaType kind = f.getFormulaKind();
+ if (kind == FormulaKind.FORALL) {
+ VariableSet set = f.getFormula().getQuantifiedVariables();
+ List boundVariables = new ArrayList<>();
+ DRealTerm var;
+ Iterator iter = set.iterator();
+ Variable next;
+ for (int i = 0; i < set.size(); i++) {
+ next = iter.next();
+ var = new DRealTerm<>(next, next.getType(), next.getType());
+ boundVariables.add(encapsulate(getFormulaType(var), var));
+ }
+ DRealTerm
+ quantifiedFormula =
+ new DRealTerm<>(
+ Dreal.getQuantifiedFormula(f.getFormula()),
+ Variable.Type.BOOLEAN,
+ f.getFormula().getKind());
+ return visitor.visitQuantifier(
+ (BooleanFormula) formula,
+ FORALL,
+ boundVariables,
+ encapsulateBoolean(quantifiedFormula));
+ } else if (kind == FormulaKind.AND) {
+ functionKind = FunctionDeclarationKind.AND;
+ formulaKind = FormulaKind.AND;
+ functionArgs = getFormulaArgs(f);
+ } else if (kind == FormulaKind.OR) {
+ functionKind = FunctionDeclarationKind.OR;
+ formulaKind = FormulaKind.OR;
+ functionArgs = getFormulaArgs(f);
+ } else if (kind == FormulaKind.NOT) {
+ functionKind = FunctionDeclarationKind.NOT;
+ formulaKind = FormulaKind.NOT;
+ functionArgs = getFormulaFromNot(f);
+ } else if (kind == FormulaKind.EQ) {
+ functionKind = FunctionDeclarationKind.EQ;
+ formulaKind = FormulaKind.EQ;
+ } else if (kind == FormulaKind.GEQ) {
+ functionKind = FunctionDeclarationKind.GTE;
+ formulaKind = FormulaKind.GEQ;
+ } else if (kind == FormulaKind.GT) {
+ functionKind = FunctionDeclarationKind.GT;
+ formulaKind = FormulaKind.GT;
+ } else if (kind == FormulaKind.LEQ) {
+ functionKind = FunctionDeclarationKind.LT;
+ formulaKind = FormulaKind.LT;
+ } else if (kind == FormulaKind.LT) {
+ functionKind = FunctionDeclarationKind.LTE;
+ formulaKind = FormulaKind.LEQ;
+ } else if (kind == FormulaKind.NEQ) {
+ // lhs ≠rhs -> (lhs > rhs) ∨ (lhs < rhs)
+ Expression lhs = Dreal.getLhsExpression(f.getFormula());
+ Expression rhs = Dreal.getRhsExpression(f.getFormula());
+ DRealTerm
+ neqTerm =
+ new DRealTerm<>(
+ new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(
+ Dreal.or(Dreal.grater(lhs, rhs), Dreal.less(lhs, rhs))),
+ Variable.Type.BOOLEAN,
+ FormulaKind.OR);
+ functionKind = FunctionDeclarationKind.OR;
+ formulaKind = FormulaKind.OR;
+ functionArgs = getFormulaArgs(neqTerm);
+ } else if (kind == FormulaKind.VAR) {
+ return visitor.visitFreeVariable(formula, f.getFormula().toString());
+ } else if (kind == FormulaKind.TRUE) {
+ return visitor.visitConstant(formula, true);
+ } else if (kind == FormulaKind.FALSE) {
+ return visitor.visitConstant(formula, false);
+ } else {
+ return visitor.visitFreeVariable(formula, f.getFormula().toString());
+ }
+ }
+
+ String functionName = functionKind.toString();
+ if (functionArgs == null) {
+ functionArgs = getExpressionArgs(f);
+ }
+
+ DRealTerm, ?> pDeclaration;
+
+ // Variable should be handled above, just to be sure
+ Preconditions.checkState(f.isExp() || f.isFormula());
+ if (f.isExp()) {
+ pDeclaration = new DRealTerm<>(new Expression(), f.getType(), expressionKind);
+ } else {
+ pDeclaration =
+ new DRealTerm<>(
+ new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(),
+ f.getType(),
+ formulaKind);
+ }
+
+ final ImmutableList> argTypes = ImmutableList.copyOf(toType(functionArgs));
+
+ final ImmutableList.Builder argsBuilder = ImmutableList.builder();
+ for (int i = 0; i < functionArgs.size(); i++) {
+ argsBuilder.add(encapsulate(argTypes.get(i), functionArgs.get(i)));
+ }
+ final ImmutableList args = argsBuilder.build();
+
+ return visitor.visitFunction(
+ formula,
+ args,
+ FunctionDeclarationImpl.of(
+ functionName, functionKind, argTypes, getFormulaType(f), pDeclaration));
+ }
+
+ private List> toType(final List> args) {
+ return Lists.transform(args, this::getFormulaType);
+ }
+
+ private static List> getFormulaArgs(DRealTerm, ?> pTerm) {
+ List> formulas = new ArrayList<>();
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula formula;
+ // pTerm should be a Formula, not Expression or Variable
+ Preconditions.checkState(pTerm.isFormula());
+ FormulaSet set = Dreal.getOperands(pTerm.getFormula());
+ Iterator iter = set.iterator();
+ for (int i = 0; i < set.size(); i++) {
+ formula = iter.next();
+ formulas.add(new DRealTerm<>(formula, pTerm.getType(), formula.getKind()));
+ }
+ return formulas;
+ }
+
+ private List> getExpressionArgs(DRealTerm, ?> parent) {
+ List> children = new ArrayList<>();
+ // pTerm should be a Formula, so that the expressions or variable can be extracted
+ Preconditions.checkState(parent.isFormula());
+ Variable.Type.Kind type = getTypeForExpressions(Dreal.getLhsExpression(parent.getFormula()));
+ if (type == null) {
+ type = getTypeForExpressions(Dreal.getRhsExpression(parent.getFormula()));
+ }
+ Expression left = Dreal.getLhsExpression(parent.getFormula());
+ Expression right = Dreal.getRhsExpression(parent.getFormula());
+ children.add(new DRealTerm<>(left, type, left.getKind()));
+ children.add(new DRealTerm<>(right, type, right.getKind()));
+ return children;
+ }
+
+ private static List> getFormulaFromNot(DRealTerm, ?> pTerm) {
+ List> formula = new ArrayList<>();
+ // pTerm should be Formula, because we try to get the formula inside the Not-Formula
+ Preconditions.checkState(pTerm.isFormula());
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula term =
+ Dreal.getOperand(pTerm.getFormula());
+ formula.add(new DRealTerm<>(term, Variable.Type.BOOLEAN, term.getKind()));
+ return formula;
+ }
+
+ private static List> getExpressionsFromDiv(DRealTerm, ?> pTerm) {
+ List> children = new ArrayList<>();
+ // pTerm is Division-Expression
+ Preconditions.checkState(pTerm.isExp());
+ Expression first = Dreal.getFirstArgument(pTerm.getExpression());
+ Expression second = Dreal.getSecondArgument(pTerm.getExpression());
+ children.add(new DRealTerm<>(first, pTerm.getType(), first.getKind()));
+ children.add(new DRealTerm<>(second, pTerm.getType(), second.getKind()));
+ return children;
+ }
+
+ private static List> getExpressionFromITE(DRealTerm, ?> pTerm) {
+ List> children = new ArrayList<>();
+ // pTerm ist if_then_else Expression
+ Preconditions.checkState(pTerm.isExp());
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula cond =
+ Dreal.getConditionalFormula(pTerm.getExpression());
+ Expression expThen = Dreal.getThenExpression(pTerm.getExpression());
+ Expression expElse = Dreal.getElseExpression(pTerm.getExpression());
+ children.add(new DRealTerm<>(cond, pTerm.getType(), cond.getKind()));
+ children.add(new DRealTerm<>(expThen, pTerm.getType(), expThen.getKind()));
+ children.add(new DRealTerm<>(expElse, pTerm.getType(), expElse.getKind()));
+ return children;
+ }
+
+ private static List> getExpressionFromAdd(DRealTerm, ?> pTerm) {
+ List> terms = new ArrayList<>();
+ // pTerm is addition expression
+ Preconditions.checkState(pTerm.isExp());
+ terms.add(
+ new DRealTerm<>(
+ new Expression(Dreal.getConstantInAddition(pTerm.getExpression())),
+ pTerm.getType(),
+ ExpressionKind.CONSTANT));
+ ExpressionDoubleMap map = Dreal.getExprToCoeffMapInAddition(pTerm.getExpression());
+ for (Map.Entry entry : map.entrySet()) {
+ terms.add(
+ new DRealTerm<>(
+ new Expression(Dreal.multiply(entry.getKey(), new Expression(entry.getValue()))),
+ pTerm.getType(),
+ ExpressionKind.MUL));
+ }
+ return terms;
+ }
+
+ private static List> getExpressionFromMul(DRealTerm, ?> pTerm) {
+ List> terms = new ArrayList<>();
+ // pTerm is multiplication expression
+ Preconditions.checkState(pTerm.isExp());
+ terms.add(
+ new DRealTerm<>(
+ new Expression(Dreal.getConstantInMultiplication(pTerm.getExpression())),
+ pTerm.getType(),
+ ExpressionKind.CONSTANT));
+ ExpressionExpressionMap map = Dreal.getBaseToExponentMapInMultiplication(pTerm.getExpression());
+ // Map of Variable and exponent, exponent can be -1 or grater than 0, we will return pow
+ // (var, exp), visit will handle pow
+ for (Map.Entry entry : map.entrySet()) {
+ terms.add(
+ new DRealTerm<>(
+ Dreal.pow(entry.getKey(), entry.getValue()), pTerm.getType(), ExpressionKind.POW));
+ }
+ return terms;
+ }
+
+ /*
+ Needed if we split a formula. For example, we have x + 2 < 10. In visit we will
+ extract the first and second expression and need the type for the Expression. Because we
+ have only the parent to get the type from, it will always return Boolean Type, but the
+ expression should be some kind of NumeralFormula Type
+ */
+ protected Variable.Type.Kind getTypeForExpressions(Expression pExpression) {
+ // If the Expression is Constant we return null, because from constant we cannot get the
+ // type, but this function is always called from a formula, so this is called two times, and
+ // one of them has a Variable, else this Formula would have been a True or False formula
+ if (pExpression.getKind() == ExpressionKind.CONSTANT) {
+ return null;
+ } else if (pExpression.getKind() == ExpressionKind.VAR) {
+ return Dreal.getVariable(pExpression).getType();
+ } else {
+ // There is at least one Variable in the Expression, else it would be a constant
+ Variables varSet = pExpression.expressionGetVariables();
+ Preconditions.checkState(!varSet.empty());
+
+ // FIXME: Remove this hack
+ // We just need any of the variables from the set, but can't use the iterator with the
+ // current JNI bindings.
+ Variable.Type.Kind varType = null;
+ for (Variable var : toSet(varSet)) {
+ if (varSet.include(var)) {
+ varType = var.getType();
+ }
+ }
+ if (varType == null) {
+ throw new IllegalArgumentException();
+ }
+ return varType;
+ }
+ }
+
+ // TODO: Patch JNI bindings and remove this hack
+ public ImmutableSet toSet(Variables vars) {
+ // FIXME: Assumes there are no 'unknown' variables that are not in the cache
+ ImmutableSet.Builder builder = ImmutableSet.builder();
+ for (DRealTerm, ?> v : variablesCache.values()) {
+ Variable var = v.getVariable();
+ if (vars.include(var)) {
+ builder.add(var);
+ }
+ }
+ return builder.build();
+ }
+
+ // Not possible to throw an unsupported exception, because in AbstractFormulaManager
+ // declareUFImpl is called.
+ @Override
+ public DRealTerm, ?> declareUFImpl(
+ String pName, Variable.Type.Kind pReturnType, List pArgTypes) {
+ return null;
+ }
+
+ // TODO: Funtkion schreiben, um nicht immer wieder die Fälle durchzugehen sondern das auslagern
+ // wenn möglich
+ @Override
+ public DRealTerm, ?> callFunctionImpl(DRealTerm, ?> declaration, List> args) {
+ Preconditions.checkArgument(
+ !args.isEmpty(), "dReal does not support callFunctionImpl without arguments.");
+ if (declaration.isExp()) {
+ ExpressionKind.ExpressionType expressionKind =
+ (ExpressionKind.ExpressionType) declaration.getDeclaration();
+ if (expressionKind.equals(ExpressionKind.ITE)) {
+ // ITE cond has to be a formula
+ Preconditions.checkState(args.get(0).isFormula());
+ DRealTerm, ?> args1 = args.get(1);
+ DRealTerm, ?> args2 = args.get(2);
+ // Expression ite;
+ // ITE else and then must be expression or variable
+ Preconditions.checkState(
+ (args1.isExp() || args1.isVar()) && (args2.isExp() || args2.isVar()));
+ Expression[] expArgs = getExpressionArgs(args1, args2);
+ return new DRealTerm<>(
+ Dreal.ifThenElse(args.get(0).getFormula(), expArgs[0], expArgs[1]),
+ args2.getType(),
+ ExpressionKind.ITE);
+ }
+ DRealTerm, ?> args1 = args.get(0);
+ DRealTerm, ?> args2 = args.get(1);
+ // declaration is an Expression, it is only possible to create an expression from variables
+ // or expressions
+ Preconditions.checkState(
+ (args1.isExp() || args1.isVar()) && (args2.isExp() || args2.isVar()));
+ Expression[] expArgs = getExpressionArgs(args1, args2);
+ if (expressionKind.equals(ExpressionKind.DIV)) {
+ return new DRealTerm<>(
+ Dreal.divide(expArgs[0], expArgs[1]), args1.getType(), ExpressionKind.DIV);
+ } else if (expressionKind.equals(ExpressionKind.MUL)) {
+ Expression mult = Dreal.multiply(expArgs[0], expArgs[1]);
+ if (args.size() > 2) {
+ for (int i = 2; i < args.size(); i++) {
+ if (args.get(i).isExp()) {
+ mult = Dreal.multiply(mult, args.get(i).getExpression());
+ } else {
+ mult = Dreal.multiply(mult, new Expression(args.get(i).getVariable()));
+ }
+ }
+ }
+ return new DRealTerm<>(mult, args.get(0).getType(), ExpressionKind.MUL);
+ } else if (expressionKind.equals(ExpressionKind.ADD)) {
+ Expression add = Dreal.add(expArgs[0], expArgs[1]);
+ if (args.size() > 2) {
+ for (int i = 2; i < args.size(); i++) {
+ if (args.get(i).isExp()) {
+ add = Dreal.add(add, args.get(i).getExpression());
+ } else {
+ add = Dreal.add(add, new Expression(args.get(i).getVariable()));
+ }
+ }
+ }
+ return new DRealTerm<>(add, args.get(0).getType(), ExpressionKind.ADD);
+ } else {
+ throw new UnsupportedOperationException(
+ "No known declarationkind and UF's are not supported.");
+ }
+ } else if (declaration.isFormula()) {
+ FormulaKind.FormulaType formulaKind = (FormulaKind.FormulaType) declaration.getDeclaration();
+ if (formulaKind == FormulaKind.GT
+ || formulaKind == FormulaKind.GEQ
+ || formulaKind == FormulaKind.LEQ
+ || formulaKind == FormulaKind.LT) {
+ // declaration is Formula and will be created to be Gt, Geq, Leq or Lt. This can only be
+ // created with Expression
+ Preconditions.checkState(
+ (args.get(0).isExp() || args.get(0).isVar())
+ && (args.get(1).isExp() || args.get(1).isVar()));
+ Expression[] expArgs = getExpressionArgs(args.get(0), args.get(1));
+ if (formulaKind == FormulaKind.GT) {
+ return new DRealTerm<>(
+ Dreal.grater(expArgs[0], expArgs[1]), args.get(0).getType(), FormulaKind.GT);
+ } else if (formulaKind == FormulaKind.GEQ) {
+ return new DRealTerm<>(
+ Dreal.graterEqual(expArgs[0], expArgs[1]), args.get(0).getType(), FormulaKind.GEQ);
+ } else if (formulaKind == FormulaKind.LEQ) {
+ return new DRealTerm<>(
+ Dreal.lessEqual(expArgs[0], expArgs[1]), args.get(0).getType(), FormulaKind.LEQ);
+ } else {
+ return new DRealTerm<>(
+ Dreal.less(expArgs[0], expArgs[1]), args.get(0).getType(), FormulaKind.LT);
+ }
+ }
+ if (formulaKind == FormulaKind.AND || formulaKind == FormulaKind.OR) {
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula[] formulaArgs =
+ getFormulaArgs(args.get(0), args.get(1));
+ if (formulaKind == FormulaKind.AND) {
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula and =
+ Dreal.and(formulaArgs[0], formulaArgs[1]);
+ if (args.size() > 2) {
+ for (int i = 2; i < args.size(); i++) {
+ if (args.get(i).isVar() && args.get(i).getType() == Variable.Type.BOOLEAN) {
+ and =
+ Dreal.and(
+ and,
+ new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(
+ args.get(i).getVariable()));
+ } else if (args.get(i).isFormula()) {
+ and = Dreal.and(and, args.get(i).getFormula());
+ } else {
+ throw new UnsupportedOperationException(
+ "And-Formula from Expression or Variable "
+ + "of not boolean type is not supported.");
+ }
+ }
+ }
+ return new DRealTerm<>(and, Variable.Type.BOOLEAN, FormulaKind.AND);
+ } else {
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula or =
+ Dreal.or(formulaArgs[0], formulaArgs[1]);
+ if (args.size() > 2) {
+ for (int i = 2; i < args.size(); i++) {
+ if (args.get(i).isVar() && args.get(i).getType() == Variable.Type.BOOLEAN) {
+ or =
+ Dreal.or(
+ or,
+ new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(
+ args.get(i).getVariable()));
+ } else if (args.get(i).isFormula()) {
+ or = Dreal.or(or, args.get(i).getFormula());
+ } else {
+ throw new UnsupportedOperationException(
+ "or-Formula from Expression or Variable "
+ + "of not boolean type is not supported.");
+ }
+ }
+ }
+ return new DRealTerm<>(or, Variable.Type.BOOLEAN, FormulaKind.OR);
+ }
+ }
+ if (formulaKind.equals(FormulaKind.NOT)) {
+ DRealTerm, ?> args1 = args.get(0);
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula not;
+ // Argument must be formula or variable
+ Preconditions.checkState(args1.isFormula() || args1.isVar());
+ if (args1.isVar() && args1.getType() == Variable.Type.BOOLEAN) {
+ not = Dreal.not(new Variable(args1.getVariable()));
+ } else if (args1.isFormula()) {
+ not = Dreal.not(args1.getFormula());
+ } else {
+ throw new IllegalArgumentException(
+ "Variable is not of boolean type and therefore a formula can not be created.");
+ }
+ return new DRealTerm<>(not, Variable.Type.BOOLEAN, FormulaKind.NOT);
+ } else if (formulaKind.equals(FormulaKind.EQ)) {
+ DRealTerm, ?> args1 = args.get(0);
+ DRealTerm, ?> args2 = args.get(1);
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula eq;
+ if (args1.isVar() && args2.isVar()) {
+ eq = Dreal.equal(args1.getVariable(), args2.getVariable());
+ } else if (args1.isVar() && args2.isExp()) {
+ eq = Dreal.equal(new Expression(args1.getVariable()), args2.getExpression());
+ } else if (args1.isVar() && args2.isFormula()) {
+ eq = Dreal.equal(args1.getVariable(), args2.getFormula());
+ } else if (args1.isExp() && args2.isVar()) {
+ eq = Dreal.equal(args1.getExpression(), new Expression(args2.getVariable()));
+ } else if (args1.isExp() && args2.isExp()) {
+ eq = Dreal.equal(args1.getExpression(), args2.getExpression());
+ } else if (args1.isFormula() && args2.isVar()) {
+ eq = Dreal.equal(args1.getFormula(), args2.getVariable());
+ } else if (args1.isFormula() && args2.isFormula()) {
+ eq = Dreal.equal(args1.getFormula(), args2.getFormula());
+ } else {
+ throw new UnsupportedOperationException(
+ "Can not create an equal formula from Expression and Formula.");
+ }
+ return new DRealTerm<>(eq, Variable.Type.BOOLEAN, FormulaKind.EQ);
+ } else {
+ throw new UnsupportedOperationException(
+ "No known declarationkind and UF's are not " + "supported.");
+ }
+ }
+ throw new IllegalArgumentException("Unknown function declaration.");
+ }
+
+ private Expression[] getExpressionArgs(DRealTerm, ?> args1, DRealTerm, ?> args2) {
+ Expression[] args = new Expression[2];
+ if (args1.isVar() && args2.isVar()) {
+ args[0] = new Expression(args1.getVariable());
+ args[1] = new Expression(args2.getVariable());
+ } else if (args1.isVar() && args2.isExp()) {
+ args[0] = new Expression(args1.getExpression());
+ args[1] = args2.getExpression();
+ } else if (args1.isExp() && args2.isVar()) {
+ args[0] = args1.getExpression();
+ args[1] = new Expression(args2.getVariable());
+ } else {
+ args[0] = args1.getExpression();
+ args[1] = args2.getExpression();
+ }
+ return args;
+ }
+
+ private org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula[] getFormulaArgs(
+ DRealTerm, ?> args1, DRealTerm, ?> args2) {
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula[] args =
+ new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula[2];
+ if (args1.isVar()
+ && args1.getType() == Variable.Type.BOOLEAN
+ && args2.isVar()
+ && args2.getType() == Variable.Type.BOOLEAN) {
+ args[0] = new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(args1.getVariable());
+ args[1] = new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(args2.getVariable());
+ } else if (args1.isVar() && args1.getType() == Variable.Type.BOOLEAN && args2.isFormula()) {
+ args[0] = new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(args1.getVariable());
+ args[1] = args2.getFormula();
+ } else if (args1.isFormula() && args2.isVar() && args2.getType() == Variable.Type.BOOLEAN) {
+ args[0] = args1.getFormula();
+ args[1] = new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(args2.getVariable());
+ } else {
+ args[0] = args1.getFormula();
+ args[1] = args2.getFormula();
+ }
+ return args;
+ }
+
+ @Override
+ protected DRealTerm, ?> getBooleanVarDeclarationImpl(DRealTerm, ?> pDRealTerm) {
+ if (pDRealTerm.isVar()) {
+ return new DRealTerm<>(new Variable(), pDRealTerm.getType(), pDRealTerm.getType());
+ } else if (pDRealTerm.isExp()) {
+ return new DRealTerm<>(
+ new Expression(),
+ pDRealTerm.getType(),
+ (ExpressionKind.ExpressionType) pDRealTerm.getDeclaration());
+ } else {
+ return new DRealTerm<>(
+ new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(),
+ pDRealTerm.getType(),
+ (FormulaKind.FormulaType) pDRealTerm.getDeclaration());
+ }
+ }
+
+ @Override
+ public Object convertValue(DRealTerm, ?> pTerm) {
+ Preconditions.checkState(pTerm.isExp() || pTerm.isFormula());
+ if (pTerm.isExp()) {
+ // This should be a constant
+ Preconditions.checkState(pTerm.getExpression().getKind() == ExpressionKind.CONSTANT);
+ String s = pTerm.toString();
+ if (pTerm.getType() == Variable.Type.CONTINUOUS) {
+ double res = Double.parseDouble(s);
+ // check if double is int
+ if ((res == Math.floor(res)) && !Double.isInfinite(res)) {
+ BigDecimal b = BigDecimal.valueOf(parseDouble(s));
+ return b.toBigInteger();
+ }
+ return Rational.ofBigDecimal(BigDecimal.valueOf(parseDouble(s)));
+ } else {
+ return new BigInteger(s);
+ }
+ } else {
+ if (pTerm.getFormulaKind() == FormulaKind.TRUE
+ || pTerm.getFormulaKind() == FormulaKind.FALSE) {
+ return Dreal.isTrue(pTerm.getFormula());
+ } else {
+ throw new UnsupportedOperationException("Can not convert Formula to a value.");
+ }
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4FormulaManager.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4FormulaManager.java
new file mode 100644
index 0000000000..ed4d1194ac
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4FormulaManager.java
@@ -0,0 +1,121 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import java.util.Map;
+import org.sosy_lab.common.Appender;
+import org.sosy_lab.java_smt.api.BooleanFormula;
+import org.sosy_lab.java_smt.api.Formula;
+import org.sosy_lab.java_smt.api.FormulaType;
+import org.sosy_lab.java_smt.basicimpl.AbstractFormulaManager;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+public class DReal4FormulaManager
+ extends AbstractFormulaManager, Variable.Type.Kind, Config, DRealTerm, ?>> {
+
+ DReal4FormulaManager(
+ DReal4FormulaCreator pFormulaCreator,
+ DReal4UFManager pFunctionManager,
+ DReal4BooleanFormulaManager pBooleanManager,
+ DReal4IntegerFormulaManager pIntegerManager,
+ DReal4RationalFormulaManager pRationalManager,
+ DReal4QuantifiedFormulaManager pQuantifierManager) {
+ super(
+ pFormulaCreator,
+ pFunctionManager,
+ pBooleanManager,
+ pIntegerManager,
+ pRationalManager,
+ null,
+ null,
+ pQuantifierManager,
+ null,
+ null,
+ null,
+ null);
+ }
+
+ static DRealTerm, ?> getDReal4Formula(org.sosy_lab.java_smt.api.Formula pT) {
+ if (pT instanceof DReal4Formula) {
+ return ((DReal4Formula) pT).getTerm();
+ }
+ throw new IllegalArgumentException(
+ "Cannot get the formula info of type " + pT.getClass().getSimpleName() + " in the Solver!");
+ }
+
+ @Override
+ public BooleanFormula parse(String s) throws IllegalArgumentException {
+ throw new UnsupportedOperationException("dReal does not support parsing.");
+ }
+
+ @Override
+ public Appender dumpFormula(DRealTerm, ?> t) {
+ throw new UnsupportedOperationException("dReal does not support dumping.");
+ }
+
+ // In dReal only Variables and Expressions of Variable Type can be substituted. Formulas and
+ // other Expression can not be substituted.
+ @Override
+ public T substitute(
+ final T pF, final Map extends Formula, ? extends Formula> pFromToMapping) {
+ DRealTerm, ?>[] changeFrom = new DRealTerm, ?>[pFromToMapping.size()];
+ DRealTerm, ?>[] changeTo = new DRealTerm, ?>[pFromToMapping.size()];
+ int idx = 0;
+ for (Map.Entry extends Formula, ? extends Formula> e : pFromToMapping.entrySet()) {
+ changeFrom[idx] = extractInfo(e.getKey());
+ changeTo[idx] = extractInfo(e.getValue());
+ idx++;
+ }
+ DRealTerm, ?> f = extractInfo(pF);
+ // Expected is a formula
+ Preconditions.checkState(f.isFormula());
+ org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula formula = f.getFormula();
+ for (int i = 0; i < changeFrom.length; i++) {
+ DRealTerm, ?> changeFromTerm = changeFrom[i];
+ DRealTerm, ?> changeToTerm = changeTo[i];
+ Variable var;
+ if (changeFromTerm.isExp()) {
+ if (changeFromTerm.getExpressionKind() == ExpressionKind.VAR) {
+ var = Dreal.getVariable(changeFromTerm.getExpression());
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support substitution on expressions.");
+ }
+ } else if (changeFromTerm.isVar()) {
+ var = changeFromTerm.getVariable();
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support substitutions on Formulas.");
+ }
+ if (changeToTerm.isVar()) {
+ if (changeToTerm.getType() == Variable.Type.BOOLEAN) {
+ formula =
+ formula.substitute(
+ var,
+ new org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula(
+ changeToTerm.getVariable()));
+ } else {
+ formula = formula.substitute(var, new Expression(changeToTerm.getVariable()));
+ }
+ } else if (changeToTerm.isExp()) {
+ formula = formula.substitute(var, changeToTerm.getExpression());
+ } else {
+ formula = formula.substitute(var, changeToTerm.getFormula());
+ }
+ }
+ FormulaType type = getFormulaType(pF);
+ return getFormulaCreator()
+ .encapsulate(type, new DRealTerm<>(formula, f.getType(), formula.getKind()));
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4IntegerFormulaManager.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4IntegerFormulaManager.java
new file mode 100644
index 0000000000..3202dc6f1a
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4IntegerFormulaManager.java
@@ -0,0 +1,106 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import java.math.BigInteger;
+import org.sosy_lab.java_smt.api.IntegerFormulaManager;
+import org.sosy_lab.java_smt.api.NumeralFormula.IntegerFormula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+public class DReal4IntegerFormulaManager
+ extends DReal4NumeralFormulaManager
+ implements IntegerFormulaManager {
+
+ DReal4IntegerFormulaManager(
+ DReal4FormulaCreator pCreator, NonLinearArithmetic pNonLinearArithmetic) {
+ super(pCreator, pNonLinearArithmetic);
+ }
+
+ @Override
+ protected Variable.Type.Kind getNumeralType() {
+ return getFormulaCreator().getIntegerType();
+ }
+
+ // Division with Integer can be a problem. See Issue 304
+ // (https://github.com/dreal/dreal4/issues/304).
+ // With two Constant being divided it is manually rounded off, but if we have a division with a
+ // variable,
+ // it is not real integer division. Therefore it could result in wrong results. Use with caution.
+ @Override
+ public DRealTerm divide(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isExp() && pParam2.isExp()) {
+ if (pParam1.getExpressionKind() == ExpressionKind.CONSTANT
+ && pParam2.getExpressionKind() == ExpressionKind.CONSTANT) {
+ Preconditions.checkArgument(
+ Double.parseDouble(pParam2.toString()) != 0.0,
+ "dReal does " + "not support " + "division by zero.");
+ double dParam1 = Double.parseDouble(pParam1.getExpression().toString());
+ double dParam2 = Double.parseDouble(pParam2.getExpression().toString());
+ int res = (int) (dParam1 / dParam2);
+ return new DRealTerm<>(new Expression(res), Variable.Type.INTEGER, ExpressionKind.CONSTANT);
+ }
+ return new DRealTerm<>(
+ Dreal.divide(pParam1.getExpression(), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ if (pParam2.getExpressionKind() == ExpressionKind.CONSTANT) {
+ Preconditions.checkArgument(
+ Double.parseDouble(pParam2.toString()) != 0.0,
+ "dReal does " + "not support " + "division by zero.");
+ }
+ return new DRealTerm<>(
+ Dreal.divide(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.divide(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.divide(
+ new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else {
+ throw new UnsupportedOperationException("dReal does not support divide with Formulas.");
+ }
+ }
+
+ // Use with caution, because of integer division. Integer division is not real integer division,
+ // therefore the results could be incorrect
+ @Override
+ protected DRealTerm, ?> modularCongruence(
+ DRealTerm, ?> pNumber1, DRealTerm, ?> pNumber2, BigInteger pModulo) {
+ return modularCongruence0(pNumber1, pNumber2, pModulo.toString());
+ }
+
+ @Override
+ protected DRealTerm, ?> modularCongruence(
+ DRealTerm, ?> pNumber1, DRealTerm, ?> pNumber2, long pModulo) {
+ return modularCongruence0(pNumber1, pNumber2, Long.toString(pModulo));
+ }
+
+ protected DRealTerm, ?> modularCongruence0(
+ DRealTerm, ?> pNumber1, DRealTerm, ?> pNumber2, String pModulo) {
+ // ((_ divisible n) x) <==> (= x (* n (div x n)))
+ DRealTerm mod = makeNumberImpl(pModulo);
+ DRealTerm sub = subtract(pNumber1, pNumber2);
+ DRealTerm div = divide(sub, mod);
+ DRealTerm mul = multiply(mod, div);
+ return equal(sub, mul);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4Model.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4Model.java
new file mode 100644
index 0000000000..23d529cf01
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4Model.java
@@ -0,0 +1,348 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import java.util.Collection;
+import org.checkerframework.checker.nullness.qual.Nullable;
+import org.sosy_lab.java_smt.api.BooleanFormula;
+import org.sosy_lab.java_smt.basicimpl.AbstractModel;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Box;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionDoubleMap;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionExpressionMap;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaSet;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.VariableSet;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variables;
+
+public class DReal4Model extends AbstractModel, Variable.Type.Kind, Config> {
+
+ private final Box model;
+ private final DReal4FormulaCreator formulaCreator;
+
+ @SuppressWarnings("unused")
+ private final DReal4TheoremProver prover;
+
+ private final ImmutableList> assertedFormulas;
+
+ DReal4Model(
+ DReal4TheoremProver prover,
+ DReal4FormulaCreator pCreator,
+ Box model,
+ Collection> pAssertedFormulas) {
+ super(prover, pCreator);
+ // create a copy of the model, because the model changes, if the context is used somewhere
+ // else, the values we get out of it might change
+ this.model = new Box(model);
+ this.prover = prover;
+ this.formulaCreator = pCreator;
+ this.assertedFormulas = ImmutableList.copyOf(pAssertedFormulas);
+ }
+
+ @Override
+ protected @Nullable DRealTerm, ?> evalImpl(DRealTerm, ?> formula) {
+ // this will return a constant for the result of the variable
+ if (formula.isVar()) {
+ Variable variable = formula.getVariable();
+ // if we find a variable that is not in the model, abort
+ if (!model.hasVariable(variable)) {
+ return null;
+ }
+ Double res = extractResultsVariable(variable);
+ if (res.isNaN()) {
+ // Result was "EMPTY"
+ return null;
+ } else {
+ if (variable.getType() == Variable.Type.BOOLEAN) {
+ if (res > 0) {
+ return new DRealTerm<>(Formula.formulaTrue(), formula.getType(), FormulaKind.TRUE);
+ } else {
+ return new DRealTerm<>(Formula.formulaFalse(), formula.getType(), FormulaKind.TRUE);
+ }
+ } else {
+ return new DRealTerm<>(new Expression(res), formula.getType(), ExpressionKind.CONSTANT);
+ }
+ }
+ } else if (formula.isExp()) {
+ // this will return the constant of the Expression -> if expression is (x + 1) and x
+ // evaluates to 5, it will return 6 and not (5+1), because of rewrites in dReal
+ Expression exp = formula.getExpression();
+ // if expression is already a constant, just return it
+ if (exp.getKind() == ExpressionKind.CONSTANT) {
+ return new DRealTerm<>(exp, formula.getType(), ExpressionKind.CONSTANT);
+ } else if (exp.getKind() == ExpressionKind.VAR) {
+ // we only get one variable back
+ Variable var = Dreal.getVariable(exp);
+ return evalImpl(new DRealTerm<>(var, var.getType(), var.getType()));
+ } else {
+ Variables variables = exp.expressionGetVariables();
+ DReal4FormulaCreator myCreator = (DReal4FormulaCreator) creator;
+ for (Variable var : myCreator.toSet(variables)) {
+ // if we find a variable that is not in the model, abort
+ if (!model.hasVariable(var)) {
+ return null;
+ }
+ Double res = extractResultsVariable(var);
+ // expression can not have variable of boolean type
+ Preconditions.checkState(formula.getType() != Variable.Type.BOOLEAN);
+ exp = substituteExpWithResult(exp, var, res);
+ if (exp == null) {
+ return null;
+ }
+ }
+ return new DRealTerm<>(exp, formula.getType(), exp.getKind());
+ }
+ } else {
+ // this will always return a True formula, because of rewrites in dReal
+ Formula f = formula.getFormula();
+ if (f.getKind() == FormulaKind.TRUE || f.getKind() == FormulaKind.FALSE) {
+ return new DRealTerm<>(f, formula.getType(), f.getKind());
+ } else if (f.getKind() == FormulaKind.VAR) {
+ // we only get one Variable back
+ Variable var = Dreal.getVariable(f);
+ return evalImpl(new DRealTerm<>(var, var.getType(), var.getType()));
+ // we can only get quantified Variables if the Formula is a forall formula. So if we have
+ // a Formula like (x == 10 and forall{y}.y == y } evalImpl does not work
+ } else if (f.getKind() == FormulaKind.FORALL) {
+ VariableSet quantifiedVars = f.getQuantifiedVariables();
+ for (Variable var : quantifiedVars) {
+ // if we find a variable that is not in the model, abort
+ if (!model.hasVariable(var)) {
+ return null;
+ }
+ Double res = extractResultsVariable(var);
+ f = substituteFormulaWithResult(f, var, res);
+ if (f == null) {
+ return null;
+ }
+ }
+ return new DRealTerm<>(f, formula.getType(), f.getKind());
+ } else {
+ VariableSet freeVars = f.getFreeVariables();
+ for (Variable var : freeVars) {
+ // if we find a variable that is not in the model, abort
+ if (!model.hasVariable(var)) {
+ return null;
+ }
+ Double res = extractResultsVariable(var);
+ f = substituteFormulaWithResult(f, var, res);
+ if (f == null) {
+ return null;
+ }
+ }
+ return new DRealTerm<>(f, formula.getType(), f.getKind());
+ }
+ }
+ }
+
+ private Expression substituteExpWithResult(Expression exp, Variable var, Double res) {
+ if (res.isNaN()) {
+ // result was "EMPTY"
+ return null;
+ } else {
+ exp = exp.substitute(var, new Expression(res));
+ return exp;
+ }
+ }
+
+ private Formula substituteFormulaWithResult(Formula f, Variable var, Double res) {
+ if (res.isNaN()) {
+ // result was "EMTPY"
+ return null;
+ } else {
+ if (var.getType() == Variable.Type.BOOLEAN) {
+ if (res > 0) {
+ f = f.substitute(var, Formula.formulaTrue());
+ } else {
+ f = f.substitute(var, Formula.formulaFalse());
+ }
+ } else {
+ f = f.substitute(var, new Expression(res));
+ }
+ return f;
+ }
+ }
+
+ /**
+ * This function extracts the results of a formula. The function takes the variable and calls
+ * getResult to get the value associated with the variable from the box.
+ *
+ * @param var Variable to get the result from
+ * @return Double as result
+ */
+ private Double extractResultsVariable(Variable var) {
+ return parseResult(Dreal.getResult(model, var));
+ }
+
+ private Double parseResult(String string) {
+ if (string.equals("EMPTY")) {
+ return Double.NaN;
+ } else if (string.equals("ENTIRE")) {
+ return Double.valueOf(1);
+ } else {
+ String[] numbers = string.split(",", -1);
+ return Double.valueOf(numbers[0] + "." + numbers[1]);
+ }
+ }
+
+ @Override
+ public ImmutableList asList() {
+ ImmutableSet.Builder builder = ImmutableSet.builder();
+ for (DRealTerm, ?> term : assertedFormulas) {
+ recursiveAssignmentFinder(builder, term);
+ }
+ return builder.build().asList();
+ }
+
+ private void recursiveAssignmentFinder(
+ ImmutableSet.Builder builder, DRealTerm, ?> term) {
+ if (term.isVar()) {
+ builder.add(getAssignment(term));
+ } else if (term.isExp()) {
+ ExpressionKind.ExpressionType expKind = term.getExpressionKind();
+ if (expKind == ExpressionKind.CONSTANT) {
+ return;
+ } else if (expKind == ExpressionKind.VAR) {
+ Variable var = Dreal.getVariable(term.getExpression());
+ builder.add(getAssignment(new DRealTerm<>(var, var.getType(), var.getType())));
+ } else if (expKind == ExpressionKind.POW) {
+ Expression lhs = Dreal.getFirstArgument(term.getExpression());
+ recursiveAssignmentFinder(builder, new DRealTerm<>(lhs, term.getType(), lhs.getKind()));
+ } else if (expKind == ExpressionKind.DIV) {
+ Expression firstArg = Dreal.getFirstArgument(term.getExpression());
+ Expression secondArg = Dreal.getSecondArgument(term.getExpression());
+ recursiveAssignmentFinder(
+ builder, new DRealTerm<>(firstArg, term.getType(), firstArg.getKind()));
+ recursiveAssignmentFinder(
+ builder, new DRealTerm<>(secondArg, term.getType(), secondArg.getKind()));
+ } else if (expKind == ExpressionKind.ITE) {
+ Formula cond = Dreal.getConditionalFormula(term.getExpression());
+ Expression expThen = Dreal.getThenExpression(term.getExpression());
+ Expression expElse = Dreal.getElseExpression(term.getExpression());
+ recursiveAssignmentFinder(builder, new DRealTerm<>(cond, term.getType(), cond.getKind()));
+ recursiveAssignmentFinder(
+ builder, new DRealTerm<>(expThen, term.getType(), expThen.getKind()));
+ recursiveAssignmentFinder(
+ builder, new DRealTerm<>(expElse, term.getType(), expElse.getKind()));
+ } else if (expKind == ExpressionKind.ADD) {
+ // We have map of Expression and Double. Expression is the variable and Double the
+ // constant of the addition. (2*x + 3*y) We can ignore the double value and only
+ // recursively call the assignment finder. If we have constant in addition, we ignore the
+ // constant as well (not a call to get the constant, get_constant_in_addition(Expression
+ // exp))
+ ExpressionDoubleMap map = Dreal.getExprToCoeffMapInAddition(term.getExpression());
+ for (Expression key : map.keySet()) {
+ recursiveAssignmentFinder(builder, new DRealTerm<>(key, term.getType(), key.getKind()));
+ }
+ } else if (expKind == ExpressionKind.MUL) {
+ // We get a map of Expression and Expression with the second Expression being the
+ // exponent of the Variable. The exponent is ignored. The constant is ignored, no call
+ // get_constant_in_multiplication
+ ExpressionExpressionMap map =
+ Dreal.getBaseToExponentMapInMultiplication(term.getExpression());
+ for (Expression key : map.keySet()) {
+ recursiveAssignmentFinder(builder, new DRealTerm<>(key, term.getType(), key.getKind()));
+ }
+ } else {
+ throw new IllegalArgumentException("Failure visiting the Term " + term + ".");
+ }
+ } else {
+ FormulaKind.FormulaType fKind = term.getFormulaKind();
+ if (fKind == FormulaKind.VAR) {
+ Variable var = Dreal.getVariable(term.getFormula());
+ builder.add(getAssignment(new DRealTerm<>(var, var.getType(), var.getType())));
+ } else if (fKind == FormulaKind.TRUE || fKind == FormulaKind.FALSE) {
+ return;
+ } else if (fKind == FormulaKind.NOT) {
+ Formula fNot = Dreal.getOperand(term.getFormula());
+ recursiveAssignmentFinder(builder, new DRealTerm<>(fNot, term.getType(), fNot.getKind()));
+ } else if (fKind == FormulaKind.EQ
+ || fKind == FormulaKind.GT
+ || fKind == FormulaKind.GEQ
+ || fKind == FormulaKind.LT
+ || fKind == FormulaKind.LEQ
+ || fKind == FormulaKind.NEQ) {
+ Expression leftChild = Dreal.getLhsExpression(term.getFormula());
+ Expression rightChild = Dreal.getRhsExpression(term.getFormula());
+ Variable.Type.Kind type;
+ DReal4FormulaCreator myCreator = (DReal4FormulaCreator) creator;
+ type = myCreator.getTypeForExpressions(leftChild);
+ // if type is null, we did not find a variable in left child, we can ignore the formula,
+ // else both child could have variable
+ if (type == null) {
+ type = myCreator.getTypeForExpressions(rightChild);
+ recursiveAssignmentFinder(
+ builder, new DRealTerm<>(rightChild, type, rightChild.getKind()));
+ } else {
+ recursiveAssignmentFinder(builder, new DRealTerm<>(leftChild, type, leftChild.getKind()));
+ recursiveAssignmentFinder(
+ builder, new DRealTerm<>(rightChild, type, rightChild.getKind()));
+ }
+ } else if (fKind == FormulaKind.AND || fKind == FormulaKind.OR) {
+ FormulaSet fSet = Dreal.getOperands(term.getFormula());
+ for (Formula f : fSet) {
+ recursiveAssignmentFinder(builder, new DRealTerm<>(f, term.getType(), f.getKind()));
+ }
+ } else {
+ // We only go through the bound variables, because we have a quantified formula
+ VariableSet varSet = term.getFormula().getQuantifiedVariables();
+ for (Variable var : varSet) {
+ builder.add(getAssignment(new DRealTerm<>(var, var.getType(), var.getType())));
+ }
+ }
+ }
+ }
+
+ private ValueAssignment getAssignment(DRealTerm, ?> term) {
+ // term should be a variable
+ Preconditions.checkState(term.isVar());
+ ImmutableList.Builder argumentInterpretationBuilder = ImmutableList.builder();
+ // valueTerm can be Formula or Expression
+ DRealTerm, ?> valueTerm = evalImpl(term);
+ org.sosy_lab.java_smt.api.Formula keyFormula = formulaCreator.encapsulateWithTypeOf(term);
+ org.sosy_lab.java_smt.api.Formula valueFormula =
+ formulaCreator.encapsulateWithTypeOf(valueTerm);
+ BooleanFormula equation;
+ if (valueTerm.isExp()) {
+ equation =
+ creator.encapsulateBoolean(
+ new DRealTerm<>(
+ new Formula(
+ Dreal.equal(new Expression(term.getVariable()), valueTerm.getExpression())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ));
+ } else if (valueTerm.isFormula()) {
+ equation =
+ creator.encapsulateBoolean(
+ new DRealTerm<>(
+ new Formula(Dreal.equal(term.getVariable(), valueTerm.getFormula())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ));
+ } else {
+ throw new UnsupportedOperationException(
+ "Trying to get an Assignment from an Expression " + term + ".");
+ }
+ Object value = formulaCreator.convertValue(valueTerm);
+ return new ValueAssignment(
+ keyFormula,
+ valueFormula,
+ equation,
+ term.getVariable().getName(),
+ value,
+ argumentInterpretationBuilder.build());
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4NativeAPITest.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4NativeAPITest.java
new file mode 100644
index 0000000000..4148238edb
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4NativeAPITest.java
@@ -0,0 +1,305 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.common.collect.ImmutableList;
+import java.util.Arrays;
+import java.util.List;
+import org.junit.After;
+import org.junit.AssumptionViolatedException;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.sosy_lab.common.NativeLibraries;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Box;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Context;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variables;
+
+public class DReal4NativeAPITest {
+
+ private Context context;
+ private Box model;
+
+ @BeforeClass
+ public static void loadDReal() {
+ try {
+ NativeLibraries.loadLibrary("drealjava");
+ } catch (UnsatisfiedLinkError e) {
+ throw new AssumptionViolatedException("dReal is not available", e);
+ }
+ }
+
+ @Before
+ public void createEnvironment() {
+ Config config = new Config();
+ model = new Box();
+ config.mutablePrecision(0.001);
+ config.mutableUsePolytopeInForall(true);
+ config.mutableUseLocalOptimization(true);
+
+ context = new Context(config);
+ }
+
+ @After
+ public void exitEnvironment() {
+ Context.exit();
+ }
+
+ @Test
+ public void simpleUNSAT() {
+ Formula fTrue = Formula.formulaTrue();
+ Formula fFalse = Formula.formulaFalse();
+ Formula formula = Dreal.and(fTrue, fFalse);
+ context.declareVariables(formula);
+ context.assertion(formula);
+ assertThat(context.checkSat(model)).isFalse();
+ }
+
+ @Test
+ public void simpleSAT() {
+ Formula fTrue = Formula.formulaTrue();
+ Formula formula = Dreal.and(fTrue, fTrue);
+ context.declareVariables(formula);
+ context.assertion(formula);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void simlpeequalUNSAT() {
+ Expression zero = Expression.zero();
+ Expression one = Expression.one();
+ Formula f = new Formula(Dreal.equal(zero, one));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isFalse();
+ }
+
+ @Test
+ public void simpleEqualSAT() {
+ Expression zero = Expression.zero();
+ Formula f = new Formula(Dreal.equal(zero, zero));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void simpleUnEqualUNSAT() {
+ Expression zero = Expression.zero();
+ Formula f = new Formula(Dreal.notEqual(zero, zero));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isFalse();
+ }
+
+ @Test
+ public void simlpeUnEqualSAT() {
+ Expression zero = Expression.zero();
+ Expression one = Expression.one();
+ Formula f = new Formula(Dreal.notEqual(zero, one));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void simpleAddUNSAT() {
+ Expression one = Expression.one();
+ Formula f = new Formula(Dreal.equal(Dreal.add(one, one), one));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isFalse();
+ }
+
+ @Test
+ public void simpleAddSAT() {
+ Expression zero = Expression.zero();
+ Expression one = Expression.one();
+ Formula f = new Formula(Dreal.equal(Dreal.add(zero, one), one));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void simpleMulAddSAT() {
+ Expression x = new Expression(new Variable("x"));
+ Expression y = new Expression(new Variable("y"));
+ Formula assertion1 = new Formula(Dreal.equal(Dreal.add(x, y), new Expression(4)));
+ Formula assertion2 = new Formula(Dreal.equal(Dreal.multiply(x, y), new Expression(4)));
+ context.declareVariables(assertion1);
+ context.assertion(assertion1);
+ context.declareVariables(assertion2);
+ context.assertion(assertion2);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void simpleMulAddUNSAT() {
+ Expression x = new Expression(new Variable("x"));
+ Expression y = new Expression(new Variable("y"));
+ Formula assertion1 = new Formula(Dreal.equal(Dreal.add(x, y), new Expression(1)));
+ Formula assertion2 = new Formula(Dreal.equal(Dreal.multiply(x, y), new Expression(1)));
+ context.declareVariables(assertion1);
+ context.assertion(assertion1);
+ context.declareVariables(assertion2);
+ context.assertion(assertion2);
+ assertThat(context.checkSat(model)).isFalse();
+ }
+
+ @Test
+ public void simpleRationalSAT() {
+ Expression zero = Expression.zero();
+ Expression eightFith = new Expression(Dreal.divide(new Expression(8), new Expression(5)));
+ Expression x = new Expression(new Variable("x"));
+ Expression y = new Expression(new Variable("y"));
+ Formula f = new Formula(Dreal.and(Dreal.grater(y, zero), Dreal.grater(x, zero)));
+ Formula g = new Formula(Dreal.and(Dreal.less(x, eightFith), Dreal.less(y, eightFith)));
+ Formula k = new Formula(Dreal.and(f, g));
+ Formula assertion = new Formula(Dreal.and(k, Dreal.equal(Dreal.add(x, y), eightFith)));
+ context.declareVariables(assertion);
+ context.assertion(assertion);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void simpleOrSAT() {
+ Expression zero = Expression.zero();
+ Expression one = Expression.one();
+ Formula f = new Formula(Dreal.or(Dreal.grater(zero, zero), Dreal.grater(one, zero)));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void simpleOrUNSAT() {
+ Expression zero = Expression.zero();
+ Formula f = new Formula(Dreal.or(Dreal.grater(zero, zero), Dreal.grater(zero, zero)));
+ context.declareVariables(f);
+ context.assertion(f);
+ assertThat(context.checkSat(model)).isFalse();
+ }
+
+ @Test
+ public void simpleIncrementalSolving() {
+ Expression zero = Expression.zero();
+ Expression x = new Expression(new Variable("x"));
+ Expression y = new Expression(new Variable("y"));
+ Formula assertion1 = new Formula(Dreal.equal(Dreal.multiply(x, y), Dreal.add(x, y)));
+ Formula assertion2 = new Formula(Dreal.and(Dreal.notEqual(x, zero), Dreal.equal(y, zero)));
+ context.push(1);
+ context.declareVariables(assertion1);
+ context.assertion(assertion1);
+ assertThat(context.checkSat(model)).isTrue();
+ context.push(1);
+ context.declareVariables(assertion2);
+ context.assertion(assertion2);
+ assertThat(context.checkSat(model)).isFalse();
+ context.pop(1);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void programSynthesis() {
+ Variable varX = new Variable("x");
+ Variable varA = new Variable("a");
+ Variable varB = new Variable("b");
+ Variable varC = new Variable("c");
+
+ Expression x = new Expression(varX);
+ Expression a = new Expression(varA);
+ Expression b = new Expression(varB);
+ Expression c = new Expression(varC);
+ Expression nt = new Expression(-1000.0);
+ Expression t = new Expression(1000.0);
+ Expression nh = new Expression(-100.0);
+ Expression h = new Expression(100.0);
+
+ Formula sndimply =
+ new Formula(
+ Dreal.imply(Dreal.graterEqual(x, c), Dreal.equal(Dreal.abs(x), Dreal.multiply(a, x))));
+ Formula thrdimply =
+ new Formula(Dreal.imply(Dreal.less(x, c), Dreal.equal(Dreal.abs(x), Dreal.multiply(b, x))));
+
+ Formula nested =
+ new Formula(
+ Dreal.imply(
+ Dreal.and(Dreal.lessEqual(nt, x), Dreal.lessEqual(x, t)),
+ Dreal.and(sndimply, thrdimply)));
+
+ Formula quantified = new Formula(Dreal.forall(new Variables(new Variable[] {varX}), nested));
+
+ Formula f1 = new Formula(Dreal.and(Dreal.lessEqual(nh, a), Dreal.lessEqual(a, h)));
+ Formula f2 = new Formula(Dreal.and(Dreal.lessEqual(nh, b), Dreal.lessEqual(b, h)));
+ Formula f3 = new Formula(Dreal.and(Dreal.lessEqual(nh, c), Dreal.lessEqual(c, h)));
+
+ Formula f1f2 = new Formula(Dreal.and(f1, f2));
+ Formula f3quantified = new Formula(Dreal.and(f3, quantified));
+
+ Formula check = new Formula(Dreal.and(f1f2, f3quantified));
+
+ context.declareVariables(check);
+ context.assertion(check);
+ assertThat(context.checkSat(model)).isTrue();
+ }
+
+ @Test
+ public void getQuantifiedVariablesTest() {
+ Variable x = new Variable("x");
+ Variable y = new Variable("y");
+ Variables vars = new Variables(new Variable[] {x, y});
+ Formula f = Dreal.forall(vars, Dreal.equal(new Expression(x), new Expression(y)));
+ List expected = ImmutableList.of(x.getHash(), y.getHash());
+ for (Variable var : f.getQuantifiedVariables()) {
+ assertThat(expected).contains(var.getHash());
+ }
+ }
+
+ @Test
+ public void getFreeVariablesTest() {
+ Variable x = new Variable("x");
+ Variable y = new Variable("y");
+ Formula f = new Formula(Dreal.equal(new Expression(x), new Expression(y)));
+ List expected = Arrays.asList(x.getHash(), y.getHash());
+ for (Variable var : f.getFreeVariables()) {
+ assertThat(expected).contains(var.getHash());
+ }
+ }
+
+ @Test
+ public void getVariablesTest() {
+ Variable x = new Variable("x");
+ Variable y = new Variable("y");
+ Expression exp = new Expression(Dreal.add(new Expression(x), new Expression(y)));
+ Variables variables = exp.expressionGetVariables();
+ for (Variable var : ImmutableList.of(x, y)) {
+ assertThat(variables.include(var)).isTrue();
+ }
+ }
+
+ @Test
+ public void getType() {
+ Variable x = new Variable("x", Variable.Type.BOOLEAN);
+ Variable y = new Variable("y", Variable.Type.INTEGER);
+ Variable z = new Variable("z", Variable.Type.CONTINUOUS);
+ Variable a = new Variable("a");
+ assertThat(x.getType()).isEqualTo(Variable.Type.BOOLEAN);
+ assertThat(y.getType()).isEqualTo(Variable.Type.INTEGER);
+ assertThat(z.getType()).isEqualTo(Variable.Type.CONTINUOUS);
+ assertThat(a.getType()).isEqualTo(Variable.Type.CONTINUOUS);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4NumeralFormulaManager.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4NumeralFormulaManager.java
new file mode 100644
index 0000000000..74080a95db
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4NumeralFormulaManager.java
@@ -0,0 +1,375 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.List;
+import org.sosy_lab.java_smt.api.NumeralFormula;
+import org.sosy_lab.java_smt.basicimpl.AbstractNumeralFormulaManager;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+@SuppressWarnings("ClassTypeParameterName")
+public abstract class DReal4NumeralFormulaManager<
+ ParamFormulaType extends NumeralFormula, ResultFormulaType extends NumeralFormula>
+ extends AbstractNumeralFormulaManager<
+ DRealTerm, ?>,
+ Variable.Type.Kind,
+ Config,
+ ParamFormulaType,
+ ResultFormulaType,
+ DRealTerm, ?>> {
+
+ DReal4NumeralFormulaManager(
+ DReal4FormulaCreator pCreator, NonLinearArithmetic pNonLinearArithmetic) {
+ super(pCreator, pNonLinearArithmetic);
+ }
+
+ @Override
+ protected boolean isNumeral(DRealTerm, ?> val) {
+ if (val.isExp()) {
+ return val.getExpression().getKind() == ExpressionKind.CONSTANT;
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ protected DRealTerm makeNumberImpl(long i) {
+ return new DRealTerm<>(new Expression(i), getNumeralType(), ExpressionKind.CONSTANT);
+ }
+
+ // makeNumberImpl with BigInteger to create a constant in an integerFormula can cause a
+ // problem, because dReal can not handle BigInteger in integer formulas, only in real formulas.
+ @Override
+ protected DRealTerm makeNumberImpl(BigInteger i) {
+ return makeNumberImpl(i.toString());
+ }
+
+ @Override
+ protected DRealTerm makeNumberImpl(String i) {
+ double d;
+ if (i.contains("/")) {
+ String[] rat = i.split("/", -1);
+ d = Double.parseDouble(rat[0]) / Double.parseDouble(rat[1]);
+
+ } else {
+ d = Double.parseDouble(i);
+ }
+ return new DRealTerm<>(new Expression(d), getNumeralType(), ExpressionKind.CONSTANT);
+ }
+
+ protected abstract Variable.Type.Kind getNumeralType();
+
+ @Override
+ protected DRealTerm makeNumberImpl(double pNumber) {
+ return new DRealTerm<>(new Expression(pNumber), getNumeralType(), ExpressionKind.CONSTANT);
+ }
+
+ @Override
+ protected DRealTerm makeNumberImpl(
+ BigDecimal pNumber) {
+ return makeNumberImpl(pNumber.toString());
+ }
+
+ @Override
+ protected DRealTerm, ?> makeVariableImpl(String i) {
+ return getFormulaCreator().makeVariable(getNumeralType(), i);
+ }
+
+ @Override
+ protected DRealTerm negate(DRealTerm, ?> pParam1) {
+ // Only Expression or Variables are expected
+ Preconditions.checkState(pParam1.isVar() || pParam1.isExp());
+ if (pParam1.isVar()) {
+ return new DRealTerm<>(
+ Dreal.pow(new Expression(pParam1.getVariable()), new Expression(-1)),
+ pParam1.getType(),
+ ExpressionKind.POW);
+ } else {
+ return new DRealTerm<>(
+ Dreal.pow(pParam1.getExpression(), new Expression(-1)),
+ pParam1.getType(),
+ ExpressionKind.POW);
+ }
+ }
+
+ @Override
+ protected DRealTerm add(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.add(pParam1.getExpression(), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.add(new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.add(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.add(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create an Add-Formula " + "from Formulas.");
+ }
+ }
+
+ @Override
+ protected DRealTerm subtract(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.substract(pParam1.getExpression(), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.substract(
+ new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.substract(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.substract(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.ADD);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create a subtract-Formula from Formulas.");
+ }
+ }
+
+ @Override
+ public DRealTerm multiply(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.multiply(pParam1.getExpression(), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.MUL);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.multiply(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.MUL);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.multiply(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.MUL);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.multiply(
+ new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.MUL);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create multiply-Formulas " + "with Formulas.");
+ }
+ }
+
+ // only use Equal(Expression exp1, Expression exp2), Equal with Formulas is same as iff
+ @Override
+ protected DRealTerm equal(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.equal(pParam1.getExpression(), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.equal(new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.equal(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.equal(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.EQ);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create an equal-Formula " + "from Formulas.");
+ }
+ }
+
+ @Override
+ protected DRealTerm distinctImpl(
+ List> pNumbers) {
+ // dReal does not directly support this method, so we need to build the whole term
+ Formula andFormula = helperFunction(pNumbers.get(1), pNumbers.get(0));
+ for (int i = 2; i < pNumbers.size(); i++) {
+ for (int j = 0; j < i; j++) {
+ andFormula = Dreal.and(andFormula, helperFunction(pNumbers.get(i), pNumbers.get(j)));
+ }
+ }
+ return new DRealTerm<>(andFormula, Variable.Type.BOOLEAN, FormulaKind.AND);
+ }
+
+ // Takes two DRealTerms and creates a NotEqual Formula to use in distinctImpl
+ private Formula helperFunction(DRealTerm, ?> pTerm1, DRealTerm, ?> pTerm2) {
+ if (pTerm1.isVar() && pTerm2.isVar()) {
+ return Dreal.notEqual(pTerm1.getVariable(), pTerm2.getVariable());
+ } else if (pTerm1.isExp() && pTerm2.isVar()) {
+ return Dreal.notEqual(pTerm1.getExpression(), new Expression(pTerm2.getVariable()));
+ } else if (pTerm1.isVar() && pTerm2.isExp()) {
+ return Dreal.notEqual(new Expression(pTerm1.getVariable()), pTerm2.getExpression());
+ } else if (pTerm1.isExp() && pTerm2.isExp()) {
+ return Dreal.notEqual(pTerm1.getExpression(), pTerm2.getExpression());
+ } else {
+ throw new UnsupportedOperationException("dReal does not support distinctImpl on Formulas.");
+ }
+ }
+
+ @Override
+ protected DRealTerm greaterThan(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.grater(
+ new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GT);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.grater(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GT);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.grater(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GT);
+ } else if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.grater(pParam1.getExpression(), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GT);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create a " + "greaterThan-Formula form formulas.");
+ }
+ }
+
+ @Override
+ protected DRealTerm greaterOrEquals(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.graterEqual(
+ new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GEQ);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.graterEqual(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GEQ);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.graterEqual(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GEQ);
+ } else if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.graterEqual(pParam1.getExpression(), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.GEQ);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create a greaterOrEquals-Formula from formulas.");
+ }
+ }
+
+ @Override
+ protected DRealTerm lessThan(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.less(new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LT);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.less(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LT);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.less(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LT);
+ } else if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.less(pParam1.getExpression(), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LT);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create a " + "lessThan-Formula from Formulas.");
+ }
+ }
+
+ @Override
+ protected DRealTerm lessOrEquals(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.lessEqual(
+ new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LEQ);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.lessEqual(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LEQ);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.lessEqual(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LEQ);
+ } else if (pParam1.isExp() && pParam2.isExp()) {
+ return new DRealTerm<>(
+ Dreal.lessEqual(pParam1.getExpression(), pParam2.getExpression()),
+ Variable.Type.BOOLEAN,
+ FormulaKind.LEQ);
+ } else {
+ throw new UnsupportedOperationException(
+ "dReal does not support to create a " + "lessOrEquals-Formula from Formulas.");
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4QuantifiedFormulaManager.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4QuantifiedFormulaManager.java
new file mode 100644
index 0000000000..163cb230d1
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4QuantifiedFormulaManager.java
@@ -0,0 +1,83 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import java.util.List;
+import org.sosy_lab.java_smt.api.SolverException;
+import org.sosy_lab.java_smt.basicimpl.AbstractQuantifiedFormulaManager;
+import org.sosy_lab.java_smt.basicimpl.FormulaCreator;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variables;
+
+public class DReal4QuantifiedFormulaManager
+ extends AbstractQuantifiedFormulaManager<
+ DRealTerm, ?>, Variable.Type.Kind, Config, DRealTerm, ?>> {
+
+ protected DReal4QuantifiedFormulaManager(
+ FormulaCreator, Variable.Type.Kind, Config, DRealTerm, ?>>
+ pFormulaCreator) {
+ super(pFormulaCreator);
+ }
+
+ @Override
+ protected DRealTerm, ?> eliminateQuantifiers(DRealTerm, ?> pExtractInfo)
+ throws SolverException, InterruptedException {
+ throw new UnsupportedOperationException("dReal does not support to eliminate quantifiers.");
+ }
+
+ // It is allowed to create a quantified Formula with boolean Variables, but as soon as CheckSat
+ // is called on a formula with a quantified boolean Variable, dReal returns an error. Therefore,
+ // it is not allowed to create a quantifier with a boolean Variable, because if Unsat would be
+ // called, an error would be created
+ @Override
+ public DRealTerm mkQuantifier(
+ Quantifier pQ, List> pVars, DRealTerm, ?> pBody) {
+ Preconditions.checkArgument(!pVars.isEmpty(), "Empty variable list for quantifier.");
+ // create Variables from pVars to create forall formula
+ Variables vars = new Variables();
+ for (DRealTerm, ?> term : pVars) {
+ if (term.isVar()) {
+ if (term.getType() == Variable.Type.BOOLEAN) {
+ throw new UnsupportedOperationException(
+ "dReal does not allow to check for Unsat with "
+ + "boolean variable in quantified formula, therefore it is not allowed to create "
+ + "such a formula.");
+ }
+ vars.insert(term.getVariable());
+ } else {
+ throw new IllegalArgumentException("It is only possible to bound variables.");
+ }
+ }
+ if (pQ == Quantifier.EXISTS) {
+ throw new UnsupportedOperationException("dReal does not support existential quantifiers.");
+ } else {
+ if (pBody.isFormula()) {
+ return new DRealTerm<>(
+ Dreal.forall(vars, pBody.getFormula()), pBody.getType(), FormulaKind.FORALL);
+ } else if (pBody.isVar()) {
+ Variable var = pBody.getVariable();
+ if (var.getType() == Variable.Type.BOOLEAN) {
+ Formula f = new Formula(var);
+ Formula quantified = Dreal.forall(vars, f);
+ return new DRealTerm<>(quantified, var.getType(), FormulaKind.FORALL);
+ } else {
+ throw new IllegalArgumentException(
+ "The given Formula is a Variable and the variable is not of type Boolean.");
+ }
+ } else {
+ throw new IllegalArgumentException("The given Formula is not a Formula.");
+ }
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4RationalFormulaManager.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4RationalFormulaManager.java
new file mode 100644
index 0000000000..da6e9e134d
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4RationalFormulaManager.java
@@ -0,0 +1,85 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import org.sosy_lab.java_smt.api.NumeralFormula;
+import org.sosy_lab.java_smt.api.NumeralFormula.RationalFormula;
+import org.sosy_lab.java_smt.api.RationalFormulaManager;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+public class DReal4RationalFormulaManager
+ extends DReal4NumeralFormulaManager
+ implements RationalFormulaManager {
+
+ DReal4RationalFormulaManager(
+ DReal4FormulaCreator pCreator, NonLinearArithmetic pNonLinearArithmetic) {
+ super(pCreator, pNonLinearArithmetic);
+ }
+
+ @Override
+ protected Variable.Type.Kind getNumeralType() {
+ return getFormulaCreator().getRationalType();
+ }
+
+ @Override
+ public DRealTerm divide(
+ DRealTerm, ?> pParam1, DRealTerm, ?> pParam2) {
+ if (pParam1.isExp() && pParam2.isExp()) {
+ if (pParam1.getExpressionKind() == ExpressionKind.CONSTANT
+ && pParam2.getExpressionKind() == ExpressionKind.CONSTANT) {
+ Preconditions.checkArgument(
+ Double.parseDouble(pParam2.toString()) != 0.0,
+ "dReal does " + "not support " + "division by zero.");
+ return new DRealTerm<>(
+ Dreal.divide(pParam1.getExpression(), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ }
+ return new DRealTerm<>(
+ Dreal.divide(pParam1.getExpression(), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else if (pParam1.isVar() && pParam2.isExp()) {
+ if (pParam2.getExpressionKind() == ExpressionKind.CONSTANT) {
+ Preconditions.checkArgument(
+ Double.parseDouble(pParam2.toString()) != 0.0,
+ "dReal does " + "not support " + "division by zero.");
+ }
+ return new DRealTerm<>(
+ Dreal.divide(new Expression(pParam1.getVariable()), pParam2.getExpression()),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else if (pParam1.isExp() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.divide(pParam1.getExpression(), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else if (pParam1.isVar() && pParam2.isVar()) {
+ return new DRealTerm<>(
+ Dreal.divide(
+ new Expression(pParam1.getVariable()), new Expression(pParam2.getVariable())),
+ pParam1.getType(),
+ ExpressionKind.DIV);
+ } else {
+ throw new UnsupportedOperationException("dReal does not support to divide with Formulas.");
+ }
+ }
+
+ // Also not possible to change the type of a variable, therefore not possible to hard code
+ // (forall{x}. floor(x) <= x) would not be a tautology, because floor(x) would create a new
+ // variable with integer type, but would not have a reference to x.
+ @Override
+ protected DRealTerm, ?> floor(DRealTerm, ?> number) {
+ throw new UnsupportedOperationException("dReal does not support floor.");
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4SolverContext.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4SolverContext.java
new file mode 100644
index 0000000000..c670dd28b6
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4SolverContext.java
@@ -0,0 +1,106 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import java.util.Set;
+import java.util.function.Consumer;
+import org.sosy_lab.common.ShutdownNotifier;
+import org.sosy_lab.java_smt.SolverContextFactory.Solvers;
+import org.sosy_lab.java_smt.api.InterpolatingProverEnvironment;
+import org.sosy_lab.java_smt.api.OptimizationProverEnvironment;
+import org.sosy_lab.java_smt.api.ProverEnvironment;
+import org.sosy_lab.java_smt.basicimpl.AbstractNumeralFormulaManager.NonLinearArithmetic;
+import org.sosy_lab.java_smt.basicimpl.AbstractSolverContext;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.DrealJNI;
+
+public class DReal4SolverContext extends AbstractSolverContext {
+
+ private final DReal4FormulaManager manager;
+ private final DReal4FormulaCreator creator;
+ private final ShutdownNotifier shutdownNotifier;
+
+ public DReal4SolverContext(
+ DReal4FormulaManager pManager,
+ DReal4FormulaCreator pCreator,
+ ShutdownNotifier pShutdownNotifier) {
+ super(pManager);
+ manager = pManager;
+ creator = pCreator;
+ shutdownNotifier = pShutdownNotifier;
+ }
+
+ public static DReal4SolverContext create(
+ ShutdownNotifier pShutdownNotifier,
+ int randomSeed,
+ NonLinearArithmetic pNonLinearArithmetic,
+ Consumer pLoader) {
+
+ pLoader.accept("drealjava");
+
+ // Create config
+ Config config = new Config();
+ config.mutableRandomSeed(randomSeed);
+
+ DReal4FormulaCreator creator = new DReal4FormulaCreator(config);
+
+ // Create manager
+ DReal4UFManager functionTheory = new DReal4UFManager(creator);
+ DReal4BooleanFormulaManager booleanTheory = new DReal4BooleanFormulaManager(creator);
+ DReal4IntegerFormulaManager integerTheory =
+ new DReal4IntegerFormulaManager(creator, pNonLinearArithmetic);
+ DReal4RationalFormulaManager rationalTheory =
+ new DReal4RationalFormulaManager(creator, pNonLinearArithmetic);
+ DReal4QuantifiedFormulaManager quantifierTheory = new DReal4QuantifiedFormulaManager(creator);
+ DReal4FormulaManager manager =
+ new DReal4FormulaManager(
+ creator,
+ functionTheory,
+ booleanTheory,
+ integerTheory,
+ rationalTheory,
+ quantifierTheory);
+ return new DReal4SolverContext(manager, creator, pShutdownNotifier);
+ }
+
+ @Override
+ public String getVersion() {
+ return "dReal " + DrealJNI.contextVersion();
+ }
+
+ @Override
+ public Solvers getSolverName() {
+ return Solvers.DREAL4;
+ }
+
+ @Override
+ public void close() {}
+
+ @Override
+ protected ProverEnvironment newProverEnvironment0(Set pOptions) {
+ return new DReal4TheoremProver(creator, pOptions, manager, shutdownNotifier);
+ }
+
+ @Override
+ protected InterpolatingProverEnvironment> newProverEnvironmentWithInterpolation0(
+ Set pSet) {
+ throw new UnsupportedOperationException("dReal does not support interpolation.");
+ }
+
+ @Override
+ protected OptimizationProverEnvironment newOptimizationProverEnvironment0(
+ Set pSet) {
+ throw new UnsupportedOperationException("dReal does not support optimization.");
+ }
+
+ @Override
+ protected boolean supportsAssumptionSolving() {
+ return false;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4TheoremProver.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4TheoremProver.java
new file mode 100644
index 0000000000..72427df288
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4TheoremProver.java
@@ -0,0 +1,128 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import org.checkerframework.checker.nullness.qual.Nullable;
+import org.sosy_lab.common.ShutdownNotifier;
+import org.sosy_lab.java_smt.api.BooleanFormula;
+import org.sosy_lab.java_smt.api.Model;
+import org.sosy_lab.java_smt.api.ProverEnvironment;
+import org.sosy_lab.java_smt.api.SolverContext.ProverOptions;
+import org.sosy_lab.java_smt.api.SolverException;
+import org.sosy_lab.java_smt.basicimpl.AbstractProverWithAllSat;
+import org.sosy_lab.java_smt.basicimpl.CachingModel;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Box;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Context;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+class DReal4TheoremProver extends AbstractProverWithAllSat implements ProverEnvironment {
+
+ private final DReal4FormulaCreator creator;
+ private final Config config;
+ private final Context curCnt;
+
+ private Box model;
+
+ protected DReal4TheoremProver(
+ DReal4FormulaCreator creator,
+ Set pOptions,
+ DReal4FormulaManager pFmgr,
+ ShutdownNotifier pShutdownNotifier) {
+ super(pOptions, pFmgr.getBooleanFormulaManager(), pShutdownNotifier);
+ this.creator = creator;
+ config = creator.getEnv();
+ model = new Box();
+ curCnt = new Context(config);
+ }
+
+ @Override
+ protected void popImpl() {
+ curCnt.pop(1);
+ }
+
+ @Override
+ protected @Nullable Void addConstraintImpl(BooleanFormula constraint)
+ throws InterruptedException {
+ DRealTerm, ?> formula = creator.extractInfo(constraint);
+ // It is not possible to assert an Expression, only Variable of type boolean or a formula
+ Preconditions.checkState(!formula.isExp());
+ if (formula.isVar()) {
+ Preconditions.checkState(formula.getType() == Variable.Type.BOOLEAN);
+ Formula f = new Formula(formula.getVariable());
+ curCnt.declareVariables(f);
+ curCnt.assertion(f);
+ } else {
+ curCnt.declareVariables(formula.getFormula());
+ curCnt.assertion(formula.getFormula());
+ }
+ return null;
+ }
+
+ @Override
+ protected void pushImpl() throws InterruptedException {
+ curCnt.push(1);
+ }
+
+ @Override
+ public boolean isUnsat() throws SolverException, InterruptedException {
+ Preconditions.checkState(!closed);
+ boolean unsat = curCnt.checkSat(model);
+ return !unsat;
+ }
+
+ @Override
+ public boolean isUnsatWithAssumptions(Collection assumptions)
+ throws SolverException, InterruptedException {
+ throw new UnsupportedOperationException("dReal does not support isUnsatWSithAssumptions");
+ }
+
+ @SuppressWarnings("resource")
+ @Override
+ public Model getModel() throws SolverException {
+ Preconditions.checkState(!closed);
+ checkGenerateModels();
+ return new CachingModel(getEvaluatorWithoutChecks());
+ }
+
+ @Override
+ public List getUnsatCore() {
+ throw new UnsupportedOperationException("dReal does not support getUnsatCore.");
+ }
+
+ @Override
+ public Optional> unsatCoreOverAssumptions(
+ Collection assumptions) throws SolverException, InterruptedException {
+ throw new UnsupportedOperationException("dReal does not support unsatCoreOverAssumptions.");
+ }
+
+ @Override
+ protected DReal4Model getEvaluatorWithoutChecks() {
+ ImmutableList.Builder> constraints = ImmutableList.builder();
+ for (BooleanFormula f : getAssertedFormulas()) {
+ constraints.add(creator.extractInfo(f));
+ }
+ return new DReal4Model(this, creator, model, constraints.build());
+ }
+
+ @Override
+ public void close() {
+ if (!closed) {
+ Context.exit();
+ closed = true;
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4UFManager.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4UFManager.java
new file mode 100644
index 0000000000..ac6ab46194
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DReal4UFManager.java
@@ -0,0 +1,21 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import org.sosy_lab.java_smt.basicimpl.AbstractUFManager;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Config;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+public class DReal4UFManager
+ extends AbstractUFManager, DRealTerm, ?>, Variable.Type.Kind, Config> {
+
+ DReal4UFManager(DReal4FormulaCreator pCreator) {
+ super(pCreator);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/DRealTerm.java b/src/org/sosy_lab/java_smt/solvers/dreal4/DRealTerm.java
new file mode 100644
index 0000000000..6fedc108b7
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/DRealTerm.java
@@ -0,0 +1,188 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4;
+
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Dreal;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Expression;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.ExpressionKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Formula;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.FormulaKind;
+import org.sosy_lab.java_smt.solvers.dreal4.drealjni.Variable;
+
+/*
+This is a wrapper class to use the different classes of dReal to create Formulas. In dReal we
+have Variables, Expression and Formulas. To create a Formula, Variables and Expressions are
+needed. Because in FormulaCreator there is only one excepted type, this wrapper class is needed,
+so that all three types are available.
+ */
+public class DRealTerm {
+
+ // This is the term, so a Variable, an Expression or a Formula.
+ private final T term;
+ // Type of the Variable, Expression or Formula
+ private final Variable.Type.Kind type;
+ // Here the declarationKind is stored, (3 * x) the kind is multiplication. Is only needed for
+ // visitor
+ private final D declaration;
+
+ public DRealTerm(T pTerm, Variable.Type.Kind pType, D pDeclaration) {
+ this.term = pTerm;
+ this.type = pType;
+ this.declaration = pDeclaration;
+ }
+
+ public boolean isVar() {
+ return term instanceof Variable;
+ }
+
+ public boolean isExp() {
+ return term instanceof Expression;
+ }
+
+ public boolean isFormula() {
+ return term instanceof Formula;
+ }
+
+ public Variable getVariable() {
+ if (isVar()) {
+ return (Variable) term;
+ } else {
+ throw new IllegalArgumentException("Not a Variable.");
+ }
+ }
+
+ public Expression getExpression() {
+ if (isExp()) {
+ return (Expression) term;
+ } else {
+ throw new IllegalArgumentException("Not an Expression.");
+ }
+ }
+
+ public Formula getFormula() {
+ if (isFormula()) {
+ return (Formula) term;
+ } else {
+ throw new IllegalArgumentException("Not a Formula.");
+ }
+ }
+
+ public Variable.Type.Kind getType() {
+ return type;
+ }
+
+ public D getDeclaration() {
+ return declaration;
+ }
+
+ public ExpressionKind.ExpressionType getExpressionKind() {
+ if (isExp()) {
+ Expression exp = (Expression) term;
+ return exp.getKind();
+ } else {
+ throw new IllegalArgumentException("Not an Expression.");
+ }
+ }
+
+ public FormulaKind.FormulaType getFormulaKind() {
+ if (isFormula()) {
+ Formula formula = (Formula) term;
+ return formula.getKind();
+ } else {
+ throw new IllegalArgumentException("Not a Formula.");
+ }
+ }
+
+ @Override
+ public String toString() {
+ if (isVar()) {
+ Variable var = (Variable) term;
+ return var.toString();
+ } else if (isExp()) {
+ Expression exp = (Expression) term;
+ return exp.toString();
+ } else {
+ Formula formula = (Formula) term;
+ return formula.toString();
+ }
+ }
+
+ @Override
+ public final int hashCode() {
+ if (isExp()) {
+ return (int) getExpression().getHash();
+ } else if (isFormula()) {
+ return (int) getFormula().getHash();
+ } else {
+ return (int) getVariable().getHash();
+ }
+ }
+
+ @Override
+ public final boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ } else if (o instanceof DRealTerm) {
+ // equal_to only checks for the same structure
+ DRealTerm, ?> oTerm = ((DRealTerm, ?>) o);
+ if (isVar()) {
+ if (oTerm.isVar()) {
+ return getVariable().equalTo(oTerm.getVariable());
+ } else if (oTerm.isExp()) {
+ if (oTerm.getExpressionKind() == ExpressionKind.VAR) {
+ return getVariable().equalTo(Dreal.getVariable(oTerm.getExpression()));
+ }
+ } else {
+ if (oTerm.getFormulaKind() == FormulaKind.VAR) {
+ return getVariable().equalTo(Dreal.getVariable(oTerm.getFormula()));
+ }
+ }
+ } else if (isExp()) {
+ if (getExpressionKind() == ExpressionKind.VAR) {
+ if (oTerm.isVar()) {
+ return oTerm.getVariable().equalTo(Dreal.getVariable(getExpression()));
+ } else if (oTerm.isExp()) {
+ return getExpression().equalTo(oTerm.getExpression());
+ } else {
+ if (oTerm.getFormulaKind() == FormulaKind.VAR) {
+ return Dreal.getVariable(getExpression())
+ .equalTo(Dreal.getVariable(oTerm.getFormula()));
+ }
+ }
+ } else {
+ if (oTerm.isExp()) {
+ return getExpression().equalTo(oTerm.getExpression());
+ }
+ }
+ } else {
+ if (getFormulaKind() == FormulaKind.VAR) {
+ if (oTerm.isVar()) {
+ return oTerm.getVariable().equalTo(Dreal.getVariable(getFormula()));
+ } else if (oTerm.isExp()) {
+ if (oTerm.getExpressionKind() == ExpressionKind.VAR) {
+ return Dreal.getVariable(getFormula())
+ .equalTo(Dreal.getVariable(oTerm.getExpression()));
+ }
+ } else {
+ if (oTerm.getFormulaKind() == FormulaKind.VAR) {
+ return Dreal.getVariable(getFormula()).equalTo(Dreal.getVariable(oTerm.getFormula()));
+ }
+ }
+ } else {
+ if (oTerm.isFormula()) {
+ return getFormula().equalTo(oTerm.getFormula());
+ }
+ }
+ }
+ } else {
+ return false;
+ }
+ return false;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Box.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Box.java
new file mode 100644
index 0000000000..2d36171ff0
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Box.java
@@ -0,0 +1,148 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class Box {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Box(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Box obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Box obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteBox(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public Box() {
+ this(DrealJNI.newBoxSWIG0(), true);
+ }
+
+ public Box(VariableVector variables) {
+ this(DrealJNI.newBoxSWIG1(VariableVector.getCPtr(variables), variables), true);
+ }
+
+ public Box(Box arg0) {
+ this(DrealJNI.newBoxSWIG2(Box.getCPtr(arg0), arg0), true);
+ }
+
+ public Box assignOperator(Box arg0) {
+ return new Box(DrealJNI.boxAssignOperatorSWIG0(swigCPtr, this, Box.getCPtr(arg0), arg0), false);
+ }
+
+ public void add(Variable v) {
+ DrealJNI.boxAddSWIG0(swigCPtr, this, Variable.getCPtr(v), v);
+ }
+
+ public void add(Variable v, double lb, double ub) {
+ DrealJNI.boxAddSWIG1(swigCPtr, this, Variable.getCPtr(v), v, lb, ub);
+ }
+
+ public boolean empty() {
+ return DrealJNI.boxEmpty(swigCPtr, this);
+ }
+
+ public void setEmpty() {
+ DrealJNI.boxSetEmpty(swigCPtr, this);
+ }
+
+ public int size() {
+ return DrealJNI.boxSize(swigCPtr, this);
+ }
+
+ public SwigTypePIbexInterval indexing(int i) {
+ return new SwigTypePIbexInterval(DrealJNI.boxIndexingSWIG0(swigCPtr, this, i), false);
+ }
+
+ public SwigTypePIbexInterval indexing(Variable var) {
+ return new SwigTypePIbexInterval(
+ DrealJNI.boxIndexingSWIG1(swigCPtr, this, Variable.getCPtr(var), var), false);
+ }
+
+ public VariableVector variables() {
+ return new VariableVector(DrealJNI.boxVariables(swigCPtr, this), false);
+ }
+
+ public Variable variable(int i) {
+ return new Variable(DrealJNI.boxVariable(swigCPtr, this, i), false);
+ }
+
+ public boolean hasVariable(Variable var) {
+ return DrealJNI.boxHasVariable(swigCPtr, this, Variable.getCPtr(var), var);
+ }
+
+ public SwigTypePIbexIntervalVector intervalVector() {
+ return new SwigTypePIbexIntervalVector(DrealJNI.boxIntervalVector(swigCPtr, this), false);
+ }
+
+ public SwigTypePIbexIntervalVector mutableIntervalVector() {
+ return new SwigTypePIbexIntervalVector(
+ DrealJNI.boxMutableIntervalVector(swigCPtr, this), false);
+ }
+
+ public int index(Variable var) {
+ return DrealJNI.boxIndex(swigCPtr, this, Variable.getCPtr(var), var);
+ }
+
+ public DoubleIntPair maxDiam() {
+ return new DoubleIntPair(DrealJNI.boxMaxDiam(swigCPtr, this), true);
+ }
+
+ public BoxBoxPair bisect(int i) {
+ return new BoxBoxPair(DrealJNI.boxBisectSWIG0(swigCPtr, this, i), true);
+ }
+
+ public BoxBoxPair bisect(Variable var) {
+ return new BoxBoxPair(
+ DrealJNI.boxBisectSWIG1(swigCPtr, this, Variable.getCPtr(var), var), true);
+ }
+
+ public Box inplaceUnion(Box b) {
+ return new Box(DrealJNI.boxInplaceUnion(swigCPtr, this, Box.getCPtr(b), b), false);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/BoxBoxPair.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/BoxBoxPair.java
new file mode 100644
index 0000000000..f4dce21940
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/BoxBoxPair.java
@@ -0,0 +1,91 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class BoxBoxPair {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected BoxBoxPair(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(BoxBoxPair obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(BoxBoxPair obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteBoxBoxPair(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public BoxBoxPair() {
+ this(DrealJNI.newBoxBoxPairSWIG0(), true);
+ }
+
+ public BoxBoxPair(Box first, Box second) {
+ this(DrealJNI.newBoxBoxPairSWIG1(Box.getCPtr(first), first, Box.getCPtr(second), second), true);
+ }
+
+ public BoxBoxPair(BoxBoxPair other) {
+ this(DrealJNI.newBoxBoxPairSWIG2(BoxBoxPair.getCPtr(other), other), true);
+ }
+
+ public void setFirst(Box value) {
+ DrealJNI.boxBoxPairFirstSet(swigCPtr, this, Box.getCPtr(value), value);
+ }
+
+ public Box getFirst() {
+ long cPtr = DrealJNI.boxBoxPairFirstGet(swigCPtr, this);
+ return (cPtr == 0) ? null : new Box(cPtr, false);
+ }
+
+ public void setSecond(Box value) {
+ DrealJNI.boxBoxPairSecondSet(swigCPtr, this, Box.getCPtr(value), value);
+ }
+
+ public Box getSecond() {
+ long cPtr = DrealJNI.boxBoxPairSecondGet(swigCPtr, this);
+ return (cPtr == 0) ? null : new Box(cPtr, false);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Config.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Config.java
new file mode 100644
index 0000000000..b075fcc5db
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Config.java
@@ -0,0 +1,361 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import com.google.common.base.Preconditions;
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class Config {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Config(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Config obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Config obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteConfig(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public Config() {
+ this(DrealJNI.newConfigSWIG0(), true);
+ }
+
+ public Config(Config arg0) {
+ this(DrealJNI.newConfigSWIG1(Config.getCPtr(arg0), arg0), true);
+ }
+
+ public Config assignOperator(Config arg0) {
+ return new Config(
+ DrealJNI.configAssignOperatorSWIG0(swigCPtr, this, Config.getCPtr(arg0), arg0), false);
+ }
+
+ public double precision() {
+ return DrealJNI.configPrecision(swigCPtr, this);
+ }
+
+ public OptionValueDouble mutablePrecision() {
+ return new OptionValueDouble(DrealJNI.configMutablePrecision(swigCPtr, this), false);
+ }
+
+ public void mutablePrecision(double value) {
+ DrealJNI.configMutablePrecision0(value, Config.getCPtr(this));
+ }
+
+ public boolean produceModels() {
+ return DrealJNI.configProduceModels(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableProduceModels() {
+ return new OptionValueBool(DrealJNI.configMutableProduceModels(swigCPtr, this), false);
+ }
+
+ public void mutableProduceModels(boolean bool) {
+ DrealJNI.configMutableProduceModels0(bool, Config.getCPtr(this));
+ }
+
+ public boolean usePolytope() {
+ return DrealJNI.configUsePolytope(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableUsePolytope() {
+ return new OptionValueBool(DrealJNI.configMutableUsePolytope(swigCPtr, this), false);
+ }
+
+ public void mutableUsePolytope(boolean bool) {
+ DrealJNI.configMutableUsePolytope0(bool, Config.getCPtr(this));
+ }
+
+ public boolean usePpolytopeInForall() {
+ return DrealJNI.configUsePolytopeInForall(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableUsePolytopeInForall() {
+ return new OptionValueBool(DrealJNI.configMutableUsePolytopeInForall(swigCPtr, this), false);
+ }
+
+ public void mutableUsePolytopeInForall(boolean bool) {
+ DrealJNI.configMutableUsePolytopeInForall0(bool, Config.getCPtr(this));
+ }
+
+ public boolean useWorklistFixpoint() {
+ return DrealJNI.configUseWorklistFixpoint(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableUseWorklistFixpoint() {
+ return new OptionValueBool(DrealJNI.configMutableUseWorklistFixpoint(swigCPtr, this), false);
+ }
+
+ public void mutableUseWorklistFixpoint(boolean bool) {
+ DrealJNI.configMutableUseWorklistFixpoint0(bool, Config.getCPtr(this));
+ }
+
+ public boolean useLocalOtimization() {
+ return DrealJNI.configUseLocalOptimization(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableUseLocalOptimization() {
+ return new OptionValueBool(DrealJNI.configMutableUseLocalOptimization(swigCPtr, this), false);
+ }
+
+ public void mutableUseLocalOptimization(boolean bool) {
+ DrealJNI.configMutableUseLocalOptimization0(bool, Config.getCPtr(this));
+ }
+
+ public boolean dumpTheoryLiterals() {
+ return DrealJNI.configDumpTheoryLiterals(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableDumpTheoryLiterals() {
+ return new OptionValueBool(DrealJNI.configMutableDumpTheoryLiterals(swigCPtr, this), false);
+ }
+
+ public void mutableDumpTheoryLiterals(boolean bool) {
+ DrealJNI.configMutableDumpTheoryLiterals0(bool, Config.getCPtr(this));
+ }
+
+ public int numberOfJobs() {
+ return DrealJNI.configNumberOfJobs(swigCPtr, this);
+ }
+
+ public OptionValueInt mutableNumberOfJobs() {
+ return new OptionValueInt(DrealJNI.configMutableNumberOfJobs(swigCPtr, this), false);
+ }
+
+ public void mutableNumberOfJobs(int i) {
+ DrealJNI.configMutableNumberOfJobs0(i, Config.getCPtr(this));
+ }
+
+ public boolean stackLeftBoxFirst() {
+ return DrealJNI.configStackLeftBoxFirst(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableStackLeftBoxFirst() {
+ return new OptionValueBool(DrealJNI.configMutableStackLeftBoxFirst(swigCPtr, this), false);
+ }
+
+ public void mutableStackLeftBoxFirst(boolean bool) {
+ DrealJNI.configMutableStackLeftBoxFirst0(bool, Config.getCPtr(this));
+ }
+
+ public SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox brancher() {
+ return new SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox(
+ DrealJNI.configBrancher(swigCPtr, this), false);
+ }
+
+ public SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox mutableBrancher() {
+ return new SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox(
+ DrealJNI.configMutableBrancher(swigCPtr, this), false);
+ }
+
+ public double nloptFtolRel() {
+ return DrealJNI.configNloptFtolRel(swigCPtr, this);
+ }
+
+ public OptionValueDouble mutableNloptFtolRel() {
+ return new OptionValueDouble(DrealJNI.configMutableNloptFtolRel(swigCPtr, this), false);
+ }
+
+ public void mutableNloptFtolRel(double value) {
+ DrealJNI.configMutableNloptFtolRel0(value, Config.getCPtr(this));
+ }
+
+ public double nloptFtolAbs() {
+ return DrealJNI.configNloptFtolAbs(swigCPtr, this);
+ }
+
+ public OptionValueDouble mutableNloptFtolAbs() {
+ return new OptionValueDouble(DrealJNI.configMutableNloptFtolAbs(swigCPtr, this), false);
+ }
+
+ public void mutableNloptFtolAbs(double value) {
+ DrealJNI.configMutableNloptFtolAbs0(value, Config.getCPtr(this));
+ }
+
+ public int nloptMaxeval() {
+ return DrealJNI.configNloptMaxeval(swigCPtr, this);
+ }
+
+ public OptionValueInt mutableNloptMaxeval() {
+ return new OptionValueInt(DrealJNI.configMutableNloptMaxeval(swigCPtr, this), false);
+ }
+
+ public void mutableNloptMaxeval(int i) {
+ DrealJNI.configMutableNloptMaxeval0(i, Config.getCPtr(this));
+ }
+
+ public double nloptMaxtime() {
+ return DrealJNI.configNloptMaxtime(swigCPtr, this);
+ }
+
+ public OptionValueDouble mutableNloptMaxtime() {
+ return new OptionValueDouble(DrealJNI.configMutableNloptMaxtime(swigCPtr, this), false);
+ }
+
+ public void mutableNloptMaxtime(double value) {
+ DrealJNI.configMutableNloptMaxtime0(value, Config.getCPtr(this));
+ }
+
+ public Config.SatDefaultPhase satDefaultPhase() {
+ return Config.SatDefaultPhase.swigToEnum(DrealJNI.configSatDefaultPhase(swigCPtr, this));
+ }
+
+ public SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT mutableSatDefaultPhase() {
+ return new SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT(
+ DrealJNI.configMutableSatDefaultPhase(swigCPtr, this), false);
+ }
+
+ public long randomSeed() {
+ return DrealJNI.configRandomSeed(swigCPtr, this);
+ }
+
+ public OptionValueUnsignedInt mutableRandomSeed() {
+ return new OptionValueUnsignedInt(DrealJNI.configMutableRandomSeed(swigCPtr, this), false);
+ }
+
+ public void mutableRandomSeed(long seed) {
+ Preconditions.checkArgument(seed >= 0, "Seed must be greater than zero");
+ DrealJNI.configMutableRandomSeed0(seed, Config.getCPtr(this));
+ }
+
+ public boolean smtlib2Compliant() {
+ return DrealJNI.configSmtlib2Compliant(swigCPtr, this);
+ }
+
+ public OptionValueBool mutableSmtlib2Compliant() {
+ return new OptionValueBool(DrealJNI.configMutableSmtlib2Compliant(swigCPtr, this), false);
+ }
+
+ public void mutableSmtlib2Compliant(boolean bool) {
+ DrealJNI.configMutableSmtlib2Compliant0(bool, Config.getCPtr(this));
+ }
+
+ public static double getKDefaultPrecision() {
+ return DrealJNI.configKDefaultPrecisionGet();
+ }
+
+ public static double getKDefaultNloptFtolRel() {
+ return DrealJNI.configKDefaultNloptFtolRelGet();
+ }
+
+ public static double getKDefaultNloptFtolAbs() {
+ return DrealJNI.configKDefaultNloptFtolAbsGet();
+ }
+
+ public static int getKDefaultNloptMaxEval() {
+ return DrealJNI.configKDefaultNloptMaxEvalGet();
+ }
+
+ public static double getKDefaultNloptMaxTime() {
+ return DrealJNI.configKDefaultNloptMaxTimeGet();
+ }
+
+ public static final class SatDefaultPhase {
+ public static final Config.SatDefaultPhase FALSE =
+ new Config.SatDefaultPhase("False", DrealJNI.configSatDefaultPhaseFalseGet());
+ public static final Config.SatDefaultPhase TRUE =
+ new Config.SatDefaultPhase("True", DrealJNI.configSatDefaultPhaseTrueGet());
+ public static final Config.SatDefaultPhase JEROSLOW_WANG =
+ new Config.SatDefaultPhase("JeroslowWang", DrealJNI.configSatDefaultPhaseJeroslowWangGet());
+ public static final Config.SatDefaultPhase RANDOM_INITIAL_PHASE =
+ new Config.SatDefaultPhase(
+ "RandomInitialPhase", DrealJNI.configSatDefaultPhaseRandomInitialPhaseGet());
+
+ public int swigValue() {
+ return swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return swigName;
+ }
+
+ public static SatDefaultPhase swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException(
+ "No enum " + SatDefaultPhase.class + " with value " + swigValue);
+ }
+
+ @SuppressWarnings("unused")
+ private SatDefaultPhase(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext++;
+ }
+
+ @SuppressWarnings("StaticAssignmentInConstructor")
+ private SatDefaultPhase(String swigName, int swigValue) {
+ this.swigName = swigName;
+ this.swigValue = swigValue;
+ swigNext = swigValue + 1;
+ }
+
+ @SuppressWarnings({"unused", "StaticAssignmentInConstructor"})
+ private SatDefaultPhase(String swigName, SatDefaultPhase swigEnum) {
+ this.swigName = swigName;
+ this.swigValue = swigEnum.swigValue;
+ swigNext = this.swigValue + 1;
+ }
+
+ private static SatDefaultPhase[] swigValues = {
+ FALSE, TRUE, JEROSLOW_WANG, RANDOM_INITIAL_PHASE,
+ };
+
+ @SuppressWarnings("unused")
+ private static int swigNext = 0;
+
+ private final int swigValue;
+ private final String swigName;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Context.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Context.java
new file mode 100644
index 0000000000..540f934bf1
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Context.java
@@ -0,0 +1,202 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+@NotThreadSafe
+public class Context {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Context(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Context obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Context obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteContext(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public Context() {
+ this(DrealJNI.newContextSWIG0(), true);
+ }
+
+ public Context(Context context) {
+ this(DrealJNI.newContextSWIG1(Context.swigRelease(context), context), true);
+ }
+
+ public Context(Config config) {
+ this(DrealJNI.newContextSWIG2(Config.getCPtr(config), config), true);
+ }
+
+ public void assertion(Formula f) {
+ DrealJNI.contextAssert(swigCPtr, this, Formula.getCPtr(f), f);
+ }
+
+ public SwigTypePOptionalTDrealBoxT checkSat() {
+ return new SwigTypePOptionalTDrealBoxT(DrealJNI.contextCheckSat(swigCPtr, this), true);
+ }
+
+ public void declareVariable(Variable v, boolean isModelVariable) {
+ DrealJNI.contextDeclareVariableSWIG0(swigCPtr, this, Variable.getCPtr(v), v, isModelVariable);
+ }
+
+ public void declareVariable(Variable v) {
+ DrealJNI.contextDeclareVariableSWIG1(swigCPtr, this, Variable.getCPtr(v), v);
+ }
+
+ public void declareVariable(Variable v, Expression lb, Expression ub, boolean isModelVariable) {
+ DrealJNI.contextDeclareVariableSWIG2(
+ swigCPtr,
+ Variable.getCPtr(v),
+ Expression.getCPtr(lb),
+ Expression.getCPtr(ub),
+ isModelVariable);
+ }
+
+ public void declareVariable(Variable v, Expression lb, Expression ub) {
+ DrealJNI.contextDeclareVariableSWIG3(
+ swigCPtr, Variable.getCPtr(v), Expression.getCPtr(lb), Expression.getCPtr(ub));
+ }
+
+ public static void exit() {
+ DrealJNI.contextExit();
+ }
+
+ public void minimize(Expression f) {
+ DrealJNI.contextMinimizeSWIG0(swigCPtr, this, Expression.getCPtr(f), f);
+ }
+
+ public void minimize(ExpressionVector functions) {
+ DrealJNI.contextMinimizeSWIG1(swigCPtr, this, ExpressionVector.getCPtr(functions), functions);
+ }
+
+ public void maximize(Expression f) {
+ DrealJNI.contextMaximize(swigCPtr, this, Expression.getCPtr(f), f);
+ }
+
+ public void pop(int n) {
+ DrealJNI.contextPop(swigCPtr, this, n);
+ }
+
+ public void push(int n) {
+ DrealJNI.contextPush(swigCPtr, this, n);
+ }
+
+ public void setInfo(String key, double val) {
+ DrealJNI.contextSetInfoSWIG0(swigCPtr, this, key, val);
+ }
+
+ public void setInfo(String key, String val) {
+ DrealJNI.contextSetInfoSWIG1(swigCPtr, this, key, val);
+ }
+
+ public void setInterval(Variable v, double lb, double ub) {
+ DrealJNI.contextSetInterval(swigCPtr, this, Variable.getCPtr(v), v, lb, ub);
+ }
+
+ public void setLogic(Logic.LogicType logic) {
+ DrealJNI.contextSetLogic(swigCPtr, this, logic.swigValue());
+ }
+
+ public void setOption(String key, double val) {
+ DrealJNI.contextSetOptionSWIG0(swigCPtr, this, key, val);
+ }
+
+ public void setOption(String key, String val) {
+ DrealJNI.contextSetOptionSWIG1(swigCPtr, this, key, val);
+ }
+
+ public SwigTypePOptionalTStdStringT getOption(String key) {
+ return new SwigTypePOptionalTStdStringT(DrealJNI.contextGetOption(swigCPtr, this, key), true);
+ }
+
+ public Config config() {
+ return new Config(DrealJNI.contextConfig(swigCPtr, this), false);
+ }
+
+ public Config mutableConfig() {
+ return new Config(DrealJNI.contextMutableConfig(swigCPtr, this), false);
+ }
+
+ public static String version() {
+ return DrealJNI.contextVersion();
+ }
+
+ public SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT assertions() {
+ return new SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT(
+ DrealJNI.contextAssertions(swigCPtr, this), false);
+ }
+
+ public Box box() {
+ return new Box(DrealJNI.contextBox(swigCPtr, this), false);
+ }
+
+ public Box getModel() {
+ return new Box(DrealJNI.contextGetModel(swigCPtr, this), false);
+ }
+
+ // self written
+ /**
+ * checkSat is called from a context, to chek if the asserted formulas in the context are
+ * satisfiable. It does the same as checkSat(), just that it directly saves the result in the
+ * given Box.
+ *
+ * @param box Model where the result is safed
+ * @return True if the asserted formulas are satisfiable
+ */
+ public boolean checkSat(Box box) {
+ return DrealJNI.contextCheckSat0(Context.getCPtr(this), Box.getCPtr(box));
+ }
+
+ /**
+ * This function is used to declare the variables of the formula.
+ *
+ * @param f Formula to declare the variables from
+ */
+ public void declareVariables(Formula f) {
+ DrealJNI.contextDeclareVariables(Context.getCPtr(this), Formula.getCPtr(f));
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/DoubleIntPair.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/DoubleIntPair.java
new file mode 100644
index 0000000000..1aba43bda2
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/DoubleIntPair.java
@@ -0,0 +1,88 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class DoubleIntPair {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected DoubleIntPair(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(DoubleIntPair obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(DoubleIntPair obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteDoubleIntPair(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public DoubleIntPair() {
+ this(DrealJNI.newDoubleIntPairSWIG0(), true);
+ }
+
+ public DoubleIntPair(double first, int second) {
+ this(DrealJNI.newDoubleIntPairSWIG1(first, second), true);
+ }
+
+ public DoubleIntPair(DoubleIntPair other) {
+ this(DrealJNI.newDoubleIntPairSWIG2(DoubleIntPair.getCPtr(other), other), true);
+ }
+
+ public void setFirst(double value) {
+ DrealJNI.doubleIntPairFirstSet(swigCPtr, this, value);
+ }
+
+ public double getFirst() {
+ return DrealJNI.doubleIntPairFirstGet(swigCPtr, this);
+ }
+
+ public void setSecond(int value) {
+ DrealJNI.doubleIntPairSecondSet(swigCPtr, this, value);
+ }
+
+ public int getSecond() {
+ return DrealJNI.doubleIntPairSecondGet(swigCPtr, this);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Dreal.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Dreal.java
new file mode 100644
index 0000000000..f5724264c3
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Dreal.java
@@ -0,0 +1,901 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public final class Dreal {
+
+ private Dreal() {
+ throw new UnsupportedOperationException("This is a utility class and cannot be instantiated.");
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream os, Variable var) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG0(SwigTypePStdOstream.getCPtr(os), Variable.getCPtr(var), var),
+ false);
+ }
+
+ public static SwigTypePStdOstream insertOperator(
+ SwigTypePStdOstream os, Variable.Type.Kind type) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG1(SwigTypePStdOstream.getCPtr(os), type.swigValue()), false);
+ }
+
+ public static boolean equal(Variables vars1, Variables vars2) {
+ return DrealJNI.equalSWIG0(Variables.getCPtr(vars1), vars1, Variables.getCPtr(vars2), vars2);
+ }
+
+ public static boolean less(Variables vars1, Variables vars2) {
+ return DrealJNI.lessSWIG0(Variables.getCPtr(vars1), vars1, Variables.getCPtr(vars2), vars2);
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream arg0, Variables vars) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG2(
+ SwigTypePStdOstream.getCPtr(arg0), Variables.getCPtr(vars), vars),
+ false);
+ }
+
+ public static Variables intersect(Variables vars1, Variables vars2) {
+ return new Variables(
+ DrealJNI.intersect(Variables.getCPtr(vars1), vars1, Variables.getCPtr(vars2), vars2), true);
+ }
+
+ public static Variables addEqual(Variables vars1, Variables vars2) {
+ return new Variables(
+ DrealJNI.addEqualSWIG0(Variables.getCPtr(vars1), vars1, Variables.getCPtr(vars2), vars2),
+ true);
+ }
+
+ public static Variables addEqual(Variables vars, Variable var) {
+ return new Variables(
+ DrealJNI.addEqualSWIG1(Variables.getCPtr(vars), vars, Variable.getCPtr(var), var), true);
+ }
+
+ public static Variables add(Variables vars1, Variables vars2) {
+ return new Variables(
+ DrealJNI.addSWIG0(Variables.getCPtr(vars1), vars1, Variables.getCPtr(vars2), vars2), true);
+ }
+
+ public static Variables add(Variables vars, Variable var) {
+ return new Variables(
+ DrealJNI.addSWIG1(Variables.getCPtr(vars), vars, Variable.getCPtr(var), var), true);
+ }
+
+ public static Variables add(Variable var, Variables vars) {
+ return new Variables(
+ DrealJNI.addSWIG2(Variable.getCPtr(var), var, Variables.getCPtr(vars), vars), true);
+ }
+
+ public static Variables substractEqual(Variables vars1, Variables vars2) {
+ return new Variables(
+ DrealJNI.substractEqualSWIG0(
+ Variables.getCPtr(vars1), vars1, Variables.getCPtr(vars2), vars2),
+ true);
+ }
+
+ public static Variables substractEqual(Variables vars, Variable var) {
+ return new Variables(
+ DrealJNI.substractEqualSWIG1(Variables.getCPtr(vars), vars, Variable.getCPtr(var), var),
+ true);
+ }
+
+ public static Variables substract(Variables vars1, Variables vars2) {
+ return new Variables(
+ DrealJNI.substractSWIG0(Variables.getCPtr(vars1), vars1, Variables.getCPtr(vars2), vars2),
+ true);
+ }
+
+ public static Variables substract(Variables vars, Variable var) {
+ return new Variables(
+ DrealJNI.substractSWIG1(Variables.getCPtr(vars), vars, Variable.getCPtr(var), var), true);
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream os, Environment env) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG3(
+ SwigTypePStdOstream.getCPtr(os), Environment.getCPtr(env), env),
+ false);
+ }
+
+ public static boolean less(ExpressionKind.ExpressionType k1, ExpressionKind.ExpressionType k2) {
+ return DrealJNI.lessSWIG1(k1.swigValue(), k2.swigValue());
+ }
+
+ public static Expression add(Expression lhs, Expression rhs) {
+ return new Expression(
+ DrealJNI.addSWIG3(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs), true);
+ }
+
+ public static Expression addEqual(Expression lhs, Expression rhs) {
+ return new Expression(
+ DrealJNI.addEqualSWIG2(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs), false);
+ }
+
+ public static Expression substract(Expression lhs, Expression rhs) {
+ return new Expression(
+ DrealJNI.substractSWIG2(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs), true);
+ }
+
+ public static Expression substractEqual(Expression lhs, Expression rhs) {
+ return new Expression(
+ DrealJNI.substractEqualSWIG2(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs),
+ false);
+ }
+
+ public static Expression add(Expression e) {
+ return new Expression(DrealJNI.addSWIG7(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression substract(Expression e) {
+ return new Expression(DrealJNI.substractSWIG6(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression multiply(Expression lhs, Expression rhs) {
+ return new Expression(
+ DrealJNI.multiplySWIG0(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs), true);
+ }
+
+ public static Expression multiplyEqual(Expression lhs, Expression rhs) {
+ return new Expression(
+ DrealJNI.multiplyEqual(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs), false);
+ }
+
+ public static Expression divide(Expression lhs, Expression rhs) {
+
+ return new Expression(
+ DrealJNI.divide(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs), true);
+ }
+
+ public static Expression divideEqual(Expression lhs, Expression rhs) {
+ return new Expression(
+ DrealJNI.divideEqual(Expression.getCPtr(lhs), lhs, Expression.getCPtr(rhs), rhs), false);
+ }
+
+ public static Expression realConstant(double lb, double ub, boolean useLbAsRepresentative) {
+ return new Expression(DrealJNI.realConstant(lb, ub, useLbAsRepresentative), true);
+ }
+
+ public static Expression log(Expression e) {
+ return new Expression(DrealJNI.log(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression abs(Expression e) {
+ return new Expression(DrealJNI.abs(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression exp(Expression e) {
+ return new Expression(DrealJNI.exp(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression sqrt(Expression e) {
+ return new Expression(DrealJNI.sqrt(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression pow(Expression e1, Expression e2) {
+ return new Expression(
+ DrealJNI.pow(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Expression sin(Expression e) {
+ return new Expression(DrealJNI.sin(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression cos(Expression e) {
+ return new Expression(DrealJNI.cos(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression tan(Expression e) {
+ return new Expression(DrealJNI.tan(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression asin(Expression e) {
+ return new Expression(DrealJNI.asin(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression acos(Expression e) {
+ return new Expression(DrealJNI.acos(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression atan(Expression e) {
+ return new Expression(DrealJNI.atan(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression atan2(Expression e1, Expression e2) {
+ return new Expression(
+ DrealJNI.atan2(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Expression sinh(Expression e) {
+ return new Expression(DrealJNI.sinh(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression cosh(Expression e) {
+ return new Expression(DrealJNI.cosh(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression tanh(Expression e) {
+ return new Expression(DrealJNI.tanh(Expression.getCPtr(e), e), true);
+ }
+
+ public static Expression min(Expression e1, Expression e2) {
+ return new Expression(
+ DrealJNI.min(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Expression max(Expression e1, Expression e2) {
+ return new Expression(
+ DrealJNI.max(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Expression ifThenElse(Formula fCOnd, Expression eThen, Expression eElse) {
+ return new Expression(
+ DrealJNI.ifThenElse(
+ Formula.getCPtr(fCOnd),
+ fCOnd,
+ Expression.getCPtr(eThen),
+ eThen,
+ Expression.getCPtr(eElse),
+ eElse),
+ true);
+ }
+
+ public static Expression uninterpretedFunction(String name, Variables vars) {
+ return new Expression(
+ DrealJNI.uninterpretedFunction(name, Variables.getCPtr(vars), vars), true);
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream os, Expression e) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG4(SwigTypePStdOstream.getCPtr(os), Expression.getCPtr(e), e),
+ false);
+ }
+
+ public static boolean isConstant(Expression e) {
+ return DrealJNI.isConstantSWIG0(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isRealConstant(Expression e) {
+ return DrealJNI.isRealConstant(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isVariable(Expression e) {
+ return DrealJNI.isVariableSWIG0(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isAddition(Expression e) {
+ return DrealJNI.isAddition(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isMultiplication(Expression e) {
+ return DrealJNI.isMultiplication(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isDivision(Expression e) {
+ return DrealJNI.isDivision(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isLog(Expression e) {
+ return DrealJNI.isLog(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isAbs(Expression e) {
+ return DrealJNI.isAbs(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isExp(Expression e) {
+ return DrealJNI.isExp(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isSqrt(Expression e) {
+ return DrealJNI.isSqrt(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isPow(Expression e) {
+ return DrealJNI.isPow(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isSin(Expression e) {
+ return DrealJNI.isSin(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isCos(Expression e) {
+ return DrealJNI.isCos(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isTan(Expression e) {
+ return DrealJNI.isTan(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isAsin(Expression e) {
+ return DrealJNI.isAsin(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isAcos(Expression e) {
+ return DrealJNI.isAcos(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isAtan(Expression e) {
+ return DrealJNI.isAtan(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isAtan2(Expression e) {
+ return DrealJNI.isAtan2(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isSinh(Expression e) {
+ return DrealJNI.isSinh(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isCosh(Expression e) {
+ return DrealJNI.isCosh(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isTanh(Expression e) {
+ return DrealJNI.isTanh(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isMin(Expression e) {
+ return DrealJNI.isMin(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isMax(Expression e) {
+ return DrealJNI.isMax(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isIfThenElse(Expression e) {
+ return DrealJNI.isIfThenElse(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isUninterpretedFunction(Expression e) {
+ return DrealJNI.isUninterpretedFunction(Expression.getCPtr(e), e);
+ }
+
+ public static Expression sum(ExpressionVector expressions) {
+ return new Expression(DrealJNI.sum(ExpressionVector.getCPtr(expressions), expressions), true);
+ }
+
+ public static Expression prod(ExpressionVector expressions) {
+ return new Expression(DrealJNI.prod(ExpressionVector.getCPtr(expressions), expressions), true);
+ }
+
+ public static void swap(Expression a, Expression b) {
+ DrealJNI.swap(Expression.getCPtr(a), a, Expression.getCPtr(b), b);
+ }
+
+ public static boolean isConstant(Expression e, double v) {
+ return DrealJNI.isConstantSWIG1(Expression.getCPtr(e), e, v);
+ }
+
+ public static boolean isZero(Expression e) {
+ return DrealJNI.isZero(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isOne(Expression e) {
+ return DrealJNI.isOne(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isNegOne(Expression e) {
+ return DrealJNI.isNegOne(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isTwo(Expression e) {
+ return DrealJNI.isTwo(Expression.getCPtr(e), e);
+ }
+
+ public static boolean isNan(Expression e) {
+ return DrealJNI.isNan(Expression.getCPtr(e), e);
+ }
+
+ public static double getConstantValue(Expression e) {
+ return DrealJNI.getConstantValue(Expression.getCPtr(e), e);
+ }
+
+ public static double getLbOfRealConstant(Expression e) {
+ return DrealJNI.getLbOfRealConstant(Expression.getCPtr(e), e);
+ }
+
+ public static double getUbOfRealConstant(Expression e) {
+ return DrealJNI.getUbOfRealConstant(Expression.getCPtr(e), e);
+ }
+
+ public static Variable getVariable(Expression e) {
+ return new Variable(DrealJNI.getVariableSWIG0(Expression.getCPtr(e), e), false);
+ }
+
+ public static Expression getArgument(Expression e) {
+ return new Expression(DrealJNI.getArgument(Expression.getCPtr(e), e), false);
+ }
+
+ public static Expression getFirstArgument(Expression e) {
+ return new Expression(DrealJNI.getFirstArgument(Expression.getCPtr(e), e), false);
+ }
+
+ public static Expression getSecondArgument(Expression e) {
+ return new Expression(DrealJNI.getSecondArgument(Expression.getCPtr(e), e), false);
+ }
+
+ public static double getConstantInAddition(Expression e) {
+ return DrealJNI.getConstantInAddition(Expression.getCPtr(e), e);
+ }
+
+ public static ExpressionDoubleMap getExprToCoeffMapInAddition(Expression e) {
+ return new ExpressionDoubleMap(
+ DrealJNI.getExprToCoeffMapInAddition(Expression.getCPtr(e), e), false);
+ }
+
+ public static double getConstantInMultiplication(Expression e) {
+ return DrealJNI.getConstantInMultiplication(Expression.getCPtr(e), e);
+ }
+
+ public static ExpressionExpressionMap getBaseToExponentMapInMultiplication(Expression e) {
+ return new ExpressionExpressionMap(
+ DrealJNI.getBaseToExponentMapInMultiplication(Expression.getCPtr(e), e), false);
+ }
+
+ public static Formula getConditionalFormula(Expression e) {
+ return new Formula(DrealJNI.getConditionalFormula(Expression.getCPtr(e), e), false);
+ }
+
+ public static Expression getThenExpression(Expression e) {
+ return new Expression(DrealJNI.getThenExpression(Expression.getCPtr(e), e), false);
+ }
+
+ public static Expression getElseExpression(Expression e) {
+ return new Expression(DrealJNI.getElseExpression(Expression.getCPtr(e), e), false);
+ }
+
+ public static String getUninterpretedFunctionName(Expression e) {
+ return DrealJNI.getUninterpretedFunctionName(Expression.getCPtr(e), e);
+ }
+
+ public static Expression add(Variable var) {
+ return new Expression(DrealJNI.addSWIG8(Variable.getCPtr(var), var), true);
+ }
+
+ public static Expression substract(Variable var) {
+ return new Expression(DrealJNI.substractSWIG8(Variable.getCPtr(var), var), true);
+ }
+
+ public static boolean less(FormulaKind.FormulaType k1, FormulaKind.FormulaType k2) {
+ return DrealJNI.lessSWIG2(k1.swigValue(), k2.swigValue());
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream os, Formula f) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG5(SwigTypePStdOstream.getCPtr(os), Formula.getCPtr(f), f),
+ false);
+ }
+
+ public static boolean isFalse(Formula f) {
+ return DrealJNI.isFalse(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isTrue(Formula f) {
+ return DrealJNI.isTrue(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isVariable(Formula f) {
+ return DrealJNI.isVariableSWIG1(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isEqualTo(Formula f) {
+ return DrealJNI.isEqualTo(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isNotEqualTo(Formula f) {
+ return DrealJNI.isNotEqualTo(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isGreaterThan(Formula f) {
+ return DrealJNI.isGreaterThan(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isGreaterThanOrEqualTo(Formula f) {
+ return DrealJNI.isGreaterThanOrEqualTo(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isLessThan(Formula f) {
+ return DrealJNI.isLessThan(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isLessThanOrEqualTo(Formula f) {
+ return DrealJNI.isLessThanOrEqualTo(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isRelational(Formula f) {
+ return DrealJNI.isRelational(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isConjunction(Formula f) {
+ return DrealJNI.isConjunction(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isDisjunction(Formula f) {
+ return DrealJNI.isDisjunction(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isNegation(Formula f) {
+ return DrealJNI.isNegation(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isForall(Formula f) {
+ return DrealJNI.isForall(Formula.getCPtr(f), f);
+ }
+
+ public static Formula not(Formula f) {
+ return new Formula(DrealJNI.notSWIG0(Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula equal(Expression e1, Expression e2) {
+ return new Formula(
+ DrealJNI.equalSWIG1(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Formula notEqual(Expression e1, Expression e2) {
+ return new Formula(
+ DrealJNI.notEqualSWIG0(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Formula less(Expression e1, Expression e2) {
+ return new Formula(
+ DrealJNI.lessSWIG3(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Formula lessEqual(Expression e1, Expression e2) {
+ return new Formula(
+ DrealJNI.lessEqual(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Formula grater(Expression e1, Expression e2) {
+ return new Formula(
+ DrealJNI.grater(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Formula graterEqual(Expression e1, Expression e2) {
+ return new Formula(
+ DrealJNI.graterEqual(Expression.getCPtr(e1), e1, Expression.getCPtr(e2), e2), true);
+ }
+
+ public static Formula forall(Variables vars, Formula f) {
+ return new Formula(DrealJNI.forall(Variables.getCPtr(vars), vars, Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula and(Formula f1, Formula f2) {
+ return new Formula(DrealJNI.andSWIG0(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula and(Variable v, Formula f) {
+ return new Formula(DrealJNI.andSWIG4(Variable.getCPtr(v), v, Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula and(Formula f, Variable v) {
+ return new Formula(DrealJNI.andSWIG6(Formula.getCPtr(f), f, Variable.getCPtr(v), v), true);
+ }
+
+ public static Formula and(Variable v1, Variable v2) {
+ return new Formula(DrealJNI.andSWIG8(Variable.getCPtr(v1), v1, Variable.getCPtr(v2), v2), true);
+ }
+
+ public static Formula or(Formula f1, Formula f2) {
+ return new Formula(DrealJNI.orSWIG0(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula or(Variable v, Formula f) {
+ return new Formula(DrealJNI.orSWIG4(Variable.getCPtr(v), v, Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula or(Formula f, Variable v) {
+ return new Formula(DrealJNI.orSWIG6(Formula.getCPtr(f), f, Variable.getCPtr(v), v), true);
+ }
+
+ public static Formula or(Variable v1, Variable v2) {
+ return new Formula(DrealJNI.orSWIG8(Variable.getCPtr(v1), v1, Variable.getCPtr(v2), v2), true);
+ }
+
+ public static Formula not(Variable v) {
+ return new Formula(DrealJNI.notSWIG1(Variable.getCPtr(v), v), true);
+ }
+
+ public static Formula equal(Variable v1, Variable v2) {
+ return new Formula(
+ DrealJNI.equalSWIG2(Variable.getCPtr(v1), v1, Variable.getCPtr(v2), v2), true);
+ }
+
+ public static Formula equal(Formula f1, Formula f2) {
+ return new Formula(DrealJNI.equalSWIG3(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula equal(Variable v, Formula f) {
+ return new Formula(DrealJNI.equalSWIG4(Variable.getCPtr(v), v, Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula equal(Formula f, Variable v) {
+ return new Formula(DrealJNI.equalSWIG5(Formula.getCPtr(f), f, Variable.getCPtr(v), v), true);
+ }
+
+ public static Formula notEqual(Variable v1, Variable v2) {
+ return new Formula(
+ DrealJNI.notEqualSWIG1(Variable.getCPtr(v1), v1, Variable.getCPtr(v2), v2), true);
+ }
+
+ public static Formula notEqual(Formula f1, Formula f2) {
+ return new Formula(
+ DrealJNI.notEqualSWIG2(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula notEqual(Variable v, Formula f) {
+ return new Formula(DrealJNI.notEqualSWIG3(Variable.getCPtr(v), v, Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula notEqual(Formula f, Variable v) {
+ return new Formula(DrealJNI.notEqualSWIG4(Formula.getCPtr(f), f, Variable.getCPtr(v), v), true);
+ }
+
+ public static boolean isNary(Formula f) {
+ return DrealJNI.isNary(Formula.getCPtr(f), f);
+ }
+
+ public static Variable getVariable(Formula f) {
+ return new Variable(DrealJNI.getVariableSWIG1(Formula.getCPtr(f), f), false);
+ }
+
+ public static Expression getLhsExpression(Formula f) {
+ return new Expression(DrealJNI.getLhsExpression(Formula.getCPtr(f), f), false);
+ }
+
+ public static Expression getRhsExpression(Formula f) {
+ return new Expression(DrealJNI.getRhsExpression(Formula.getCPtr(f), f), false);
+ }
+
+ public static FormulaSet getOperands(Formula f) {
+ return new FormulaSet(DrealJNI.getOperands(Formula.getCPtr(f), f), false);
+ }
+
+ public static Formula getOperand(Formula f) {
+ return new Formula(DrealJNI.getOperand(Formula.getCPtr(f), f), false);
+ }
+
+ public static Variables getQuantifiedVariables(Formula f) {
+ return new Variables(DrealJNI.getQuantifiedVariables(Formula.getCPtr(f), f), false);
+ }
+
+ public static Formula getQuantifiedFormula(Formula f) {
+ return new Formula(DrealJNI.getQuantifiedFormula(Formula.getCPtr(f), f), false);
+ }
+
+ public static Formula logicAnd(Formula f1, Formula f2) {
+ return new Formula(DrealJNI.logicAnd(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula imply(Formula f1, Formula f2) {
+ return new Formula(DrealJNI.implySWIG0(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula imply(Variable v, Formula f) {
+ return new Formula(DrealJNI.implySWIG1(Variable.getCPtr(v), v, Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula imply(Formula f, Variable v) {
+ return new Formula(DrealJNI.implySWIG2(Formula.getCPtr(f), f, Variable.getCPtr(v), v), true);
+ }
+
+ public static Formula imply(Variable v1, Variable v2) {
+ return new Formula(
+ DrealJNI.implySWIG3(Variable.getCPtr(v1), v1, Variable.getCPtr(v2), v2), true);
+ }
+
+ public static Formula iff(Formula f1, Formula f2) {
+ return new Formula(DrealJNI.iffSWIG0(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula iff(Variable v, Formula f) {
+ return new Formula(DrealJNI.iffSWIG1(Variable.getCPtr(v), v, Formula.getCPtr(f), f), true);
+ }
+
+ public static Formula iff(Formula f, Variable v) {
+ return new Formula(DrealJNI.iffSWIG2(Formula.getCPtr(f), f, Variable.getCPtr(v), v), true);
+ }
+
+ public static Formula iff(Variable v1, Variable v2) {
+ return new Formula(DrealJNI.iffSWIG3(Variable.getCPtr(v1), v1, Variable.getCPtr(v2), v2), true);
+ }
+
+ public static FormulaSet map(
+ FormulaSet formulas, SwigTypePStdFunctionTFormulaFFormulaConstRFT func) {
+ return new FormulaSet(
+ DrealJNI.map(
+ FormulaSet.getCPtr(formulas),
+ formulas,
+ SwigTypePStdFunctionTFormulaFFormulaConstRFT.getCPtr(func)),
+ true);
+ }
+
+ public static boolean isAtomic(Formula f) {
+ return DrealJNI.isAtomic(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isClause(Formula f) {
+ return DrealJNI.isClause(Formula.getCPtr(f), f);
+ }
+
+ public static FormulaSet getClauses(Formula f) {
+ return new FormulaSet(DrealJNI.getClauses(Formula.getCPtr(f), f), true);
+ }
+
+ public static boolean isCnf(Formula f) {
+ return DrealJNI.isCnf(Formula.getCPtr(f), f);
+ }
+
+ public static boolean haveIntersection(Variables variables1, Variables variables2) {
+ return DrealJNI.haveIntersection(
+ Variables.getCPtr(variables1), variables1, Variables.getCPtr(variables2), variables2);
+ }
+
+ public static Formula deltaStrengthen(Formula f, double delta) {
+ return new Formula(DrealJNI.deltaStrengthen(Formula.getCPtr(f), f, delta), true);
+ }
+
+ public static Formula deltaWeaken(Formula f, double delta) {
+ return new Formula(DrealJNI.deltaWeaken(Formula.getCPtr(f), f, delta), true);
+ }
+
+ public static boolean isDifferentiable(Formula f) {
+ return DrealJNI.isDifferentiableSWIG0(Formula.getCPtr(f), f);
+ }
+
+ public static boolean isDifferentiable(Expression e) {
+ return DrealJNI.isDifferentiableSWIG1(Expression.getCPtr(e), e);
+ }
+
+ public static Formula makeConjunction(FormulaVector formulas) {
+ return new Formula(DrealJNI.makeConjunction(FormulaVector.getCPtr(formulas), formulas), true);
+ }
+
+ public static Formula makeDisjunction(FormulaVector formulas) {
+ return new Formula(DrealJNI.makeDisjunction(FormulaVector.getCPtr(formulas), formulas), true);
+ }
+
+ public static VariableVector createVector(String prefix, int size, Variable.Type.Kind type) {
+ return new VariableVector(DrealJNI.createVectorSWIG0(prefix, size, type.swigValue()), true);
+ }
+
+ public static VariableVector createVector(String prefix, int size) {
+ return new VariableVector(DrealJNI.createVectorSWIG1(prefix, size), true);
+ }
+
+ public static RelationalOperator.Type not(RelationalOperator.Type op) {
+ return RelationalOperator.swigToEnum(DrealJNI.not(op.swigValue()));
+ }
+
+ public static SwigTypePStdOstream insertOperator(
+ SwigTypePStdOstream os, RelationalOperator.Type op) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG6(SwigTypePStdOstream.getCPtr(os), op.swigValue()), false);
+ }
+
+ public static Logic.LogicType parseLogic(String s) {
+ return Logic.swigToEnum(DrealJNI.parseLogic(s));
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream os, Logic.LogicType logic) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG7(SwigTypePStdOstream.getCPtr(os), logic.swigValue()), false);
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream os, Box box) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG8(SwigTypePStdOstream.getCPtr(os), Box.getCPtr(box), box),
+ false);
+ }
+
+ public static boolean equal(Box b1, Box b2) {
+ return DrealJNI.equal(Box.getCPtr(b1), b1, Box.getCPtr(b2), b2);
+ }
+
+ public static boolean notEqual(Box b1, Box b2) {
+ return DrealJNI.notEqual(Box.getCPtr(b1), b1, Box.getCPtr(b2), b2);
+ }
+
+ public static SwigTypePStdOstream displayDiff(
+ SwigTypePStdOstream os,
+ VariableVector variables,
+ SwigTypePIbexIntervalVector oldIv,
+ SwigTypePIbexIntervalVector newIv) {
+ return new SwigTypePStdOstream(
+ DrealJNI.displayDiff(
+ SwigTypePStdOstream.getCPtr(os),
+ VariableVector.getCPtr(variables),
+ variables,
+ SwigTypePIbexIntervalVector.getCPtr(oldIv),
+ SwigTypePIbexIntervalVector.getCPtr(newIv)),
+ false);
+ }
+
+ public static SwigTypePStdOstream insertOperator(
+ SwigTypePStdOstream os, Config.SatDefaultPhase satDefaultPhase) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG9(SwigTypePStdOstream.getCPtr(os), satDefaultPhase.swigValue()),
+ false);
+ }
+
+ public static SwigTypePStdOstream insertOperator(SwigTypePStdOstream os, Config config) {
+ return new SwigTypePStdOstream(
+ DrealJNI.insertOperatorSWIG22(
+ SwigTypePStdOstream.getCPtr(os), Config.getCPtr(config), config),
+ false);
+ }
+
+ public static boolean checkSatisfiability(Formula f, double delta, Box box) {
+ return DrealJNI.checkSatisfiabilitySWIG0(Formula.getCPtr(f), f, delta, Box.getCPtr(box), box);
+ }
+
+ public static boolean checkSatisfiability(Formula f, Config config, Box box) {
+ return DrealJNI.checkSatisfiabilitySWIG1(
+ Formula.getCPtr(f), f, Config.getCPtr(config), config, Box.getCPtr(box), box);
+ }
+
+ public static boolean minimize(Expression objective, Formula constraint, double delta, Box box) {
+ return DrealJNI.minimizeSWIG0(
+ Expression.getCPtr(objective),
+ objective,
+ Formula.getCPtr(constraint),
+ constraint,
+ delta,
+ Box.getCPtr(box),
+ box);
+ }
+
+ public static boolean minimize(Expression objective, Formula constraint, Config config, Box box) {
+ return DrealJNI.minimizeSWIG1(
+ Expression.getCPtr(objective),
+ Formula.getCPtr(constraint),
+ Config.getCPtr(config),
+ Box.getCPtr(box));
+ }
+
+ // self written
+ /**
+ * This function reads the result of one variable from the model(Box). It should be known what
+ * variable is called, to save the String with the associated variable.
+ *
+ * @param box to read the values of the variables
+ * @param var to get the value associated with the variable of the box
+ * @return String with the value, value is the lower-bound or ENTIRE or EMPTY
+ */
+ public static String getResult(Box box, Variable var) {
+ // returns EMPTY or lower-bound; upperbound as String
+ String result = DrealJNI.getResult(Box.getCPtr(box), Variable.getCPtr(var));
+ if (result.equals("EMPTY")) {
+ return "EMPTY";
+ }
+ String[] bounds = result.split("; ", -1);
+ if (bounds[0].equals(bounds[1])) {
+ return bounds[0];
+ // Probably not needed, because it is already evaluated to True e.g. x * 1 == x is
+ // evaluated to True and variable x does not exist in result anymore
+ } else if (bounds[0].equals("-inf") && bounds[1].equals("inf")) {
+ return "ENTIRE";
+ } else if (bounds[0].equals("-inf") || bounds[1].equals("inf")) {
+ if (bounds[0].equals("-inf")) {
+ return bounds[1];
+ } else {
+ return bounds[0];
+ }
+ } else {
+ return bounds[0];
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/DrealJNI.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/DrealJNI.java
new file mode 100644
index 0000000000..be81f441da
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/DrealJNI.java
@@ -0,0 +1,1426 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public final class DrealJNI {
+
+ private DrealJNI() {
+ throw new UnsupportedOperationException("This is a utility class and cannot be instantiated.");
+ }
+
+ public static native void formulaSetIteratorIncrementUnchecked(
+ long jarg1, FormulaSet.Iterator jarg11);
+
+ public static native long formulaSetIteratorDerefUnchecked(
+ long jarg1, FormulaSet.Iterator jarg11);
+
+ public static native boolean formulaSetIteratorIsNot(
+ long jarg1, FormulaSet.Iterator jarg11, long jarg2, FormulaSet.Iterator jarg22);
+
+ public static native void deleteFormulaSetIterator(long jarg1);
+
+ public static native long newFormulaSetSWIG0();
+
+ public static native long newFormulaSetSWIG1(long jarg1, FormulaSet jarg11);
+
+ public static native boolean formulaSetIsEmpty(long jarg1, FormulaSet jarg11);
+
+ public static native void formulaSetClear(long jarg1, FormulaSet jarg11);
+
+ public static native long formulaSetBegin(long jarg1, FormulaSet jarg11);
+
+ public static native long formulaSetEnd(long jarg1, FormulaSet jarg11);
+
+ public static native boolean formulaSetAddImpl(
+ long jarg1, FormulaSet jarg11, long jarg2, Formula jarg22);
+
+ public static native boolean formulaSetContainsImpl(
+ long jarg1, FormulaSet jarg11, long jarg2, Formula jarg22);
+
+ public static native boolean formulaSetRemoveImpl(
+ long jarg1, FormulaSet jarg11, long jarg2, Formula jarg22);
+
+ public static native int formulaSetSizeImpl(long jarg1, FormulaSet jarg11);
+
+ public static native boolean formulaSetHasNextImpl(
+ long jarg1, FormulaSet jarg11, long jarg2, FormulaSet.Iterator jarg22);
+
+ public static native void deleteFormulaSet(long jarg1);
+
+ public static native long newFormulaVectorSWIG0();
+
+ public static native long newFormulaVectorSWIG1(long jarg1, FormulaVector jarg11);
+
+ public static native long formulaVectorCapacity(long jarg1, FormulaVector jarg11);
+
+ public static native void formulaVectorReserve(long jarg1, FormulaVector jarg11, long jarg2);
+
+ public static native boolean formulaVectorIsEmpty(long jarg1, FormulaVector jarg11);
+
+ public static native void formulaVectorClear(long jarg1, FormulaVector jarg11);
+
+ public static native long newFormulaVectorSWIG2(int jarg1, long jarg2, Formula jarg22);
+
+ public static native int formulaVectorDoSize(long jarg1, FormulaVector jarg11);
+
+ public static native void formulaVectorDoAddSWIG0(
+ long jarg1, FormulaVector jarg11, long jarg2, Formula jarg22);
+
+ public static native void formulaVectorDoAddSWIG1(
+ long jarg1, FormulaVector jarg11, int jarg2, long jarg3, Formula jarg33);
+
+ public static native long formulaVectorDoRemove(long jarg1, FormulaVector jarg11, int jarg2);
+
+ public static native long formulaVectorDoGet(long jarg1, FormulaVector jarg11, int jarg2);
+
+ public static native long formulaVectorDoSet(
+ long jarg1, FormulaVector jarg11, int jarg2, long jarg3, Formula jarg33);
+
+ public static native void formulaVectorDoRemoveRange(
+ long jarg1, FormulaVector jarg11, int jarg2, int jarg3);
+
+ public static native void deleteFormulaVector(long jarg1);
+
+ public static native long newVariableVectorSWIG0();
+
+ public static native long newVariableVectorSWIG1(long jarg1, VariableVector jarg11);
+
+ public static native long variableVectorCapacity(long jarg1, VariableVector jarg11);
+
+ public static native void variableVectorReserve(long jarg1, VariableVector jarg11, long jarg2);
+
+ public static native boolean variableVectorIsEmpty(long jarg1, VariableVector jarg11);
+
+ public static native void variableVectorClear(long jarg1, VariableVector jarg11);
+
+ public static native long newVariableVectorSWIG2(int jarg1, long jarg2, Variable jarg22);
+
+ public static native int variableVectorDoSize(long jarg1, VariableVector jarg11);
+
+ public static native void variableVectorDoAddSWIG0(
+ long jarg1, VariableVector jarg11, long jarg2, Variable jarg22);
+
+ public static native void variableVectorDoAddSWIG1(
+ long jarg1, VariableVector jarg11, int jarg2, long jarg3, Variable jarg33);
+
+ public static native long variableVectorDoRemove(long jarg1, VariableVector jarg11, int jarg2);
+
+ public static native long variableVectorDoGet(long jarg1, VariableVector jarg11, int jarg2);
+
+ public static native long variableVectorDoSet(
+ long jarg1, VariableVector jarg11, int jarg2, long jarg3, Variable jarg33);
+
+ public static native void variableVectorDoRemoveRange(
+ long jarg1, VariableVector jarg11, int jarg2, int jarg3);
+
+ public static native void deleteVariableVector(long jarg1);
+
+ public static native long newExpressionVectorSWIG0();
+
+ public static native long newExpressionVectorSWIG1(long jarg1, ExpressionVector jarg11);
+
+ public static native long expressionVectorCapacity(long jarg1, ExpressionVector jarg11);
+
+ public static native void expressionVectorReserve(
+ long jarg1, ExpressionVector jarg11, long jarg2);
+
+ public static native boolean expressionVectorIsEmpty(long jarg1, ExpressionVector jarg11);
+
+ public static native void expressionVectorClear(long jarg1, ExpressionVector jarg11);
+
+ public static native long newExpressionVectorSWIG2(int jarg1, long jarg2, Expression jarg22);
+
+ public static native int expressionVectorDoSize(long jarg1, ExpressionVector jarg11);
+
+ public static native void expressionVectorDoAddSWIG0(
+ long jarg1, ExpressionVector jarg11, long jarg2, Expression jarg22);
+
+ public static native void expressionVectorDoAddSWIG1(
+ long jarg1, ExpressionVector jarg11, int jarg2, long jarg3, Expression jarg33);
+
+ public static native long expressionVectorDoRemove(
+ long jarg1, ExpressionVector jarg11, int jarg2);
+
+ public static native long expressionVectorDoGet(long jarg1, ExpressionVector jarg11, int jarg2);
+
+ public static native long expressionVectorDoSet(
+ long jarg1, ExpressionVector jarg11, int jarg2, long jarg3, Expression jarg33);
+
+ public static native void expressionVectorDoRemoveRange(
+ long jarg1, ExpressionVector jarg11, int jarg2, int jarg3);
+
+ public static native void deleteExpressionVector(long jarg1);
+
+ public static native long newExpressionDoubleMapSWIG0();
+
+ public static native long newExpressionDoubleMapSWIG1(long jarg1, ExpressionDoubleMap jarg11);
+
+ public static native long expressionDoubleMapIteratorGetNextUnchecked(
+ long jarg1, ExpressionDoubleMap.Iterator jarg11);
+
+ public static native boolean expressionDoubleMapIteratorIsNot(
+ long jarg1,
+ ExpressionDoubleMap.Iterator jarg11,
+ long jarg2,
+ ExpressionDoubleMap.Iterator jarg22);
+
+ public static native long expressionDoubleMapIteratorGetKey(
+ long jarg1, ExpressionDoubleMap.Iterator jarg11);
+
+ public static native double expressionDoubleMapIteratorGetValue(
+ long jarg1, ExpressionDoubleMap.Iterator jarg11);
+
+ public static native void expressionDoubleMapIteratorSetValue(
+ long jarg1, ExpressionDoubleMap.Iterator jarg11, double jarg2);
+
+ public static native void deleteExpressionDoubleMapIterator(long jarg1);
+
+ public static native boolean expressionDoubleMapIsEmpty(long jarg1, ExpressionDoubleMap jarg11);
+
+ public static native void expressionDoubleMapClear(long jarg1, ExpressionDoubleMap jarg11);
+
+ public static native long expressionDoubleMapFind(
+ long jarg1, ExpressionDoubleMap jarg11, long jarg2, Expression jarg22);
+
+ public static native long expressionDoubleMapBegin(long jarg1, ExpressionDoubleMap jarg11);
+
+ public static native long expressionDoubleMapEnd(long jarg1, ExpressionDoubleMap jarg11);
+
+ public static native int expressionDoubleMapSizeImpl(long jarg1, ExpressionDoubleMap jarg11);
+
+ public static native boolean expressionDoubleMapContainsImpl(
+ long jarg1, ExpressionDoubleMap jarg11, long jarg2, Expression jarg22);
+
+ public static native void expressionDoubleMapPutUnchecked(
+ long jarg1, ExpressionDoubleMap jarg11, long jarg2, Expression jarg22, double jarg3);
+
+ public static native void expressionDoubleMapRemoveUnchecked(
+ long jarg1, ExpressionDoubleMap jarg11, long jarg2, ExpressionDoubleMap.Iterator jarg22);
+
+ public static native void deleteExpressionDoubleMap(long jarg1);
+
+ public static native long newExpressionExpressionMapSWIG0();
+
+ public static native long newExpressionExpressionMapSWIG1(
+ long jarg1, ExpressionExpressionMap jarg11);
+
+ public static native long expressionExpressionMapIteratorGetNextUnchecked(
+ long jarg1, ExpressionExpressionMap.Iterator jarg11);
+
+ public static native boolean expressionExpressionMapIteratorIsNot(
+ long jarg1,
+ ExpressionExpressionMap.Iterator jarg11,
+ long jarg2,
+ ExpressionExpressionMap.Iterator jarg22);
+
+ public static native long expressionExpressionMapIteratorGetKey(
+ long jarg1, ExpressionExpressionMap.Iterator jarg11);
+
+ public static native long expressionExpressionMapIteratorGetValue(
+ long jarg1, ExpressionExpressionMap.Iterator jarg11);
+
+ public static native void expressionExpressionMapIteratorSetValue(
+ long jarg1, ExpressionExpressionMap.Iterator jarg11, long jarg2, Expression jarg22);
+
+ public static native void deleteExpressionExpressionMapIterator(long jarg1);
+
+ public static native boolean expressionExpressionMapIsEmpty(
+ long jarg1, ExpressionExpressionMap jarg11);
+
+ public static native void expressionExpressionMapClear(
+ long jarg1, ExpressionExpressionMap jarg11);
+
+ public static native long expressionExpressionMapFind(
+ long jarg1, ExpressionExpressionMap jarg11, long jarg2, Expression jarg22);
+
+ public static native long expressionExpressionMapBegin(
+ long jarg1, ExpressionExpressionMap jarg11);
+
+ public static native long expressionExpressionMapEnd(long jarg1, ExpressionExpressionMap jarg11);
+
+ public static native int expressionExpressionMapSizeImpl(
+ long jarg1, ExpressionExpressionMap jarg11);
+
+ public static native boolean expressionExpressionMapContainsImpl(
+ long jarg1, ExpressionExpressionMap jarg11, long jarg2, Expression jarg22);
+
+ public static native void expressionExpressionMapPutUnchecked(
+ long jarg1,
+ ExpressionExpressionMap jarg11,
+ long jarg2,
+ Expression jarg22,
+ long jarg3,
+ Expression jarg33);
+
+ public static native void expressionExpressionMapRemoveUnchecked(
+ long jarg1,
+ ExpressionExpressionMap jarg11,
+ long jarg2,
+ ExpressionExpressionMap.Iterator jarg22);
+
+ public static native void deleteExpressionExpressionMap(long jarg1);
+
+ public static native long newDoubleIntPairSWIG0();
+
+ public static native long newDoubleIntPairSWIG1(double jarg1, int jarg2);
+
+ public static native long newDoubleIntPairSWIG2(long jarg1, DoubleIntPair jarg11);
+
+ public static native void doubleIntPairFirstSet(long jarg1, DoubleIntPair jarg11, double jarg2);
+
+ public static native double doubleIntPairFirstGet(long jarg1, DoubleIntPair jarg11);
+
+ public static native void doubleIntPairSecondSet(long jarg1, DoubleIntPair jarg11, int jarg2);
+
+ public static native int doubleIntPairSecondGet(long jarg1, DoubleIntPair jarg11);
+
+ public static native void deleteDoubleIntPair(long jarg1);
+
+ public static native long newBoxBoxPairSWIG0();
+
+ public static native long newBoxBoxPairSWIG1(long jarg1, Box jarg11, long jarg2, Box jarg22);
+
+ public static native long newBoxBoxPairSWIG2(long jarg1, BoxBoxPair jarg11);
+
+ public static native void boxBoxPairFirstSet(
+ long jarg1, BoxBoxPair jarg11, long jarg2, Box jarg22);
+
+ public static native long boxBoxPairFirstGet(long jarg1, BoxBoxPair jarg11);
+
+ public static native void boxBoxPairSecondSet(
+ long jarg1, BoxBoxPair jarg11, long jarg2, Box jarg22);
+
+ public static native long boxBoxPairSecondGet(long jarg1, BoxBoxPair jarg11);
+
+ public static native void deleteBoxBoxPair(long jarg1);
+
+ public static native long newVaribaleIntUnorderedMapSWIG0();
+
+ public static native long newVaribaleIntUnorderedMapSWIG1(
+ long jarg1, VariableIntUnorderedMap jarg11);
+
+ public static native long varibaleIntUnorderedMapIteratorGetNextUnchecked(
+ long jarg1, VariableIntUnorderedMap.Iterator jarg11);
+
+ public static native boolean varibaleIntUnorderedMapIteratorIsNot(
+ long jarg1,
+ VariableIntUnorderedMap.Iterator jarg11,
+ long jarg2,
+ VariableIntUnorderedMap.Iterator jarg22);
+
+ public static native long varibaleIntUnorderedMapIteratorGetKey(
+ long jarg1, VariableIntUnorderedMap.Iterator jarg11);
+
+ public static native int varibaleIntUnorderedMapIteratorGetValue(
+ long jarg1, VariableIntUnorderedMap.Iterator jarg11);
+
+ public static native void varibaleIntUnorderedMapIteratorSetValue(
+ long jarg1, VariableIntUnorderedMap.Iterator jarg11, int jarg2);
+
+ public static native void deleteVaribaleIntUnorderedMapIterator(long jarg1);
+
+ public static native boolean varibaleIntUnorderedMapIsEmpty(
+ long jarg1, VariableIntUnorderedMap jarg11);
+
+ public static native void varibaleIntUnorderedMapClear(
+ long jarg1, VariableIntUnorderedMap jarg11);
+
+ public static native long varibaleIntUnorderedMapFind(
+ long jarg1, VariableIntUnorderedMap jarg11, long jarg2, Variable jarg22);
+
+ public static native long varibaleIntUnorderedMapBegin(
+ long jarg1, VariableIntUnorderedMap jarg11);
+
+ public static native long varibaleIntUnorderedMapEnd(long jarg1, VariableIntUnorderedMap jarg11);
+
+ public static native int varibaleIntUnorderedMapSizeImpl(
+ long jarg1, VariableIntUnorderedMap jarg11);
+
+ public static native boolean varibaleIntUnorderedMapContainsImpl(
+ long jarg1, VariableIntUnorderedMap jarg11, long jarg2, Variable jarg22);
+
+ public static native void varibaleIntUnorderedMapPutUnchecked(
+ long jarg1, VariableIntUnorderedMap jarg11, long jarg2, Variable jarg22, int jarg3);
+
+ public static native void varibaleIntUnorderedMapRemoveUnchecked(
+ long jarg1,
+ VariableIntUnorderedMap jarg11,
+ long jarg2,
+ VariableIntUnorderedMap.Iterator jarg22);
+
+ public static native void deleteVaribaleIntUnorderedMap(long jarg1);
+
+ public static native long newSharedPointerToVector();
+
+ public static native void deleteSharedPointerToVector(long jarg1);
+
+ public static native long newSharedPointerToUnorderedMapWithHashValue();
+
+ public static native void deleteSharedPointerToUnorderedMapWithHashValue(long jarg1);
+
+ public static native long newSharedPointerToUnorderedMap();
+
+ public static native void deleteSharedPointerToUnorderedMap(long jarg1);
+
+ public static native long newVariableSWIG0(long jarg1, Variable jarg11);
+
+ public static native long variableAssignOperatorSWIG0(
+ long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long newVariableSWIG1();
+
+ public static native void deleteVariable(long jarg1);
+
+ public static native long newVariableSWIG2(String jarg1, int jarg2);
+
+ public static native long newVariableSWIG3(String jarg1);
+
+ public static native long newVariableSWIG4(String jarg1, int jarg2, boolean jarg3);
+
+ public static native boolean variableIsDummy(long jarg1, Variable jarg11);
+
+ public static native long variableGetId(long jarg1, Variable jarg11);
+
+ public static native int variableGetType(long jarg1, Variable jarg11);
+
+ public static native long variableGetHash(long jarg1, Variable jarg11);
+
+ public static native String variableGetName(long jarg1, Variable jarg11);
+
+ public static native String variableToString(long jarg1, Variable jarg11);
+
+ public static native boolean variableEqualTo(
+ long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native boolean variableLess(
+ long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long insertOperatorSWIG0(long jarg1, long jarg2, Variable jarg22);
+
+ public static native long insertOperatorSWIG1(long jarg1, int jarg2);
+
+ public static native long newVariablesSWIG0(long jarg1, Variables jarg11);
+
+ public static native long variablesAssignOperatorSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long newVariablesSWIG1();
+
+ public static native void deleteVariables(long jarg1);
+
+ public static native long newVariablesSWIG2(long jarg1);
+
+ public static native long variablesGetHash(long jarg1, Variables jarg11);
+
+ public static native long variablesSize(long jarg1, Variables jarg11);
+
+ public static native boolean variablesEmpty(long jarg1, Variables jarg11);
+
+ public static native String variablesToString(long jarg1, Variables jarg11);
+
+ public static native long variablesBeginSWIG0(long jarg1, Variables jarg11);
+
+ public static native long variablesEndSWIG0(long jarg1, Variables jarg11);
+
+ public static native long variablesCbegin(long jarg1, Variables jarg11);
+
+ public static native long variablesCend(long jarg1, Variables jarg11);
+
+ public static native long variablesRbeginSWIG0(long jarg1, Variables jarg11);
+
+ public static native long variablesRendSWIG0(long jarg1, Variables jarg11);
+
+ public static native long variablesCrbegin(long jarg1, Variables jarg11);
+
+ public static native long variablesCrend(long jarg1, Variables jarg11);
+
+ public static native void variablesInsertSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native void variablesInsertSWIG2(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long variablesEraseSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native long variablesEraseSWIG1(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long variablesFindSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native boolean variablesInclude(
+ long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native boolean variablesIsSubsetOf(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native boolean variablesIsSupersetOf(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native boolean variablesIsStrictSubsetOf(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native boolean variablesIsStrictSupersetOf(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native boolean equalSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native boolean lessSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long insertOperatorSWIG2(long jarg1, long jarg2, Variables jarg22);
+
+ public static native long intersect(long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long addEqualSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long addEqualSWIG1(
+ long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native long addSWIG0(long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long addSWIG1(long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native long addSWIG2(long jarg1, Variable jarg11, long jarg2, Variables jarg22);
+
+ public static native long substractEqualSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long substractEqualSWIG1(
+ long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native long substractSWIG0(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long substractSWIG1(
+ long jarg1, Variables jarg11, long jarg2, Variable jarg22);
+
+ public static native long newEnvironmentSWIG0(long jarg1, Environment jarg11);
+
+ public static native long environmentAssignOperatorSWIG0(
+ long jarg1, Environment jarg11, long jarg2, Environment jarg22);
+
+ public static native long newEnvironmentSWIG1();
+
+ public static native void deleteEnvironment(long jarg1);
+
+ public static native long newEnvironmentSWIG2(long jarg1);
+
+ public static native long newEnvironmentSWIG3(long jarg1);
+
+ public static native long newEnvironmentSWIG4(long jarg1);
+
+ public static native long environmentBeginSWIG0(long jarg1, Environment jarg11);
+
+ public static native long environmentEndSWIG0(long jarg1, Environment jarg11);
+
+ public static native long environmentCbegin(long jarg1, Environment jarg11);
+
+ public static native long environmentCend(long jarg1, Environment jarg11);
+
+ public static native void environmentInsert(
+ long jarg1, Environment jarg11, long jarg2, Variable jarg22, double jarg3);
+
+ public static native boolean environmentEmpty(long jarg1, Environment jarg11);
+
+ public static native long environmentSize(long jarg1, Environment jarg11);
+
+ public static native long environmentFindSWIG0(
+ long jarg1, Environment jarg11, long jarg2, Variable jarg22);
+
+ public static native long environmentDomain(long jarg1, Environment jarg11);
+
+ public static native String environmentToString(long jarg1, Environment jarg11);
+
+ public static native long environmentIndexingSWIG0(
+ long jarg1, Environment jarg11, long jarg2, Variable jarg22);
+
+ public static native long insertOperatorSWIG3(long jarg1, long jarg2, Environment jarg22);
+
+ public static native boolean lessSWIG1(int jarg1, int jarg2);
+
+ public static native long newExpressionSWIG0(long jarg1, Expression jarg11);
+
+ public static native long expressionAssignOperatorSWIG0(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native void deleteExpression(long jarg1);
+
+ public static native long newExpressionSWIG1();
+
+ public static native long newExpressionSWIG2(double jarg1);
+
+ public static native long newExpressionSWIG3(long jarg1, Variable jarg11);
+
+ public static native int expressionGetKind(long jarg1, Expression jarg11);
+
+ public static native long expressionGetHash(long jarg1, Expression jarg11);
+
+ public static native long expressionGetVariables(long jarg1, Expression jarg11);
+
+ public static native boolean expressionEqualTo(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native boolean expressionLess(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native boolean expressionIsPolynomial(long jarg1, Expression jarg11);
+
+ public static native boolean expressionIncludeIte(long jarg1, Expression jarg11);
+
+ public static native double expressionEvaluateSWIG0(
+ long jarg1, Expression jarg11, long jarg2, Environment jarg22);
+
+ public static native double expressionEvaluateSWIG1(long jarg1, Expression jarg11);
+
+ public static native long expressionEvaluatePartial(
+ long jarg1, Expression jarg11, long jarg2, Environment jarg22);
+
+ public static native long expressionExpand(long jarg1, Expression jarg11);
+
+ public static native long expressionSubstituteSWIG0(
+ long jarg1, Expression jarg11, long jarg2, Variable jarg22, long jarg3, Expression jarg33);
+
+ public static native long expressionSubstituteSWIG1(
+ long jarg1, Expression jarg11, long jarg2, long jarg3);
+
+ public static native long expressionSubstituteSWIG2(long jarg1, Expression jarg11, long jarg2);
+
+ public static native long expressionSubstituteSWIG3(long jarg1, Expression jarg11, long jarg2);
+
+ public static native long expressionDifferentiate(
+ long jarg1, Expression jarg11, long jarg2, Variable jarg22);
+
+ public static native String expressionToString(long jarg1, Expression jarg11);
+
+ public static native long expressionZero();
+
+ public static native long expressionOne();
+
+ public static native long expressionPi();
+
+ public static native long expressionE();
+
+ public static native long expressionNaN();
+
+ public static native long addSWIG3(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long addEqualSWIG2(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long expressionIncrementSWIG0(long jarg1, Expression jarg11);
+
+ public static native long expressionIncrementSWIG1(long jarg1, Expression jarg11, int jarg2);
+
+ public static native long substractSWIG2(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long substractEqualSWIG2(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long addSWIG7(long jarg1, Expression jarg11);
+
+ public static native long substractSWIG6(long jarg1, Expression jarg11);
+
+ public static native long expressionDecrementSWIG0(long jarg1, Expression jarg11);
+
+ public static native long expressionDecrementSWIG1(long jarg1, Expression jarg11, int jarg2);
+
+ public static native long multiplySWIG0(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long multiplyEqual(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long divide(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long divideEqual(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long realConstant(double jarg1, double jarg2, boolean jarg3);
+
+ public static native long log(long jarg1, Expression jarg11);
+
+ public static native long abs(long jarg1, Expression jarg11);
+
+ public static native long exp(long jarg1, Expression jarg11);
+
+ public static native long sqrt(long jarg1, Expression jarg11);
+
+ public static native long pow(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long sin(long jarg1, Expression jarg11);
+
+ public static native long cos(long jarg1, Expression jarg11);
+
+ public static native long tan(long jarg1, Expression jarg11);
+
+ public static native long asin(long jarg1, Expression jarg11);
+
+ public static native long acos(long jarg1, Expression jarg11);
+
+ public static native long atan(long jarg1, Expression jarg11);
+
+ public static native long atan2(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long sinh(long jarg1, Expression jarg11);
+
+ public static native long cosh(long jarg1, Expression jarg11);
+
+ public static native long tanh(long jarg1, Expression jarg11);
+
+ public static native long min(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long max(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long ifThenElse(
+ long jarg1, Formula jarg11, long jarg2, Expression jarg22, long jarg3, Expression jarg33);
+
+ public static native long uninterpretedFunction(String jarg1, long jarg2, Variables jarg22);
+
+ public static native long insertOperatorSWIG4(long jarg1, long jarg2, Expression jarg22);
+
+ public static native boolean isConstantSWIG0(long jarg1, Expression jarg11);
+
+ public static native boolean isRealConstant(long jarg1, Expression jarg11);
+
+ public static native boolean isVariableSWIG0(long jarg1, Expression jarg11);
+
+ public static native boolean isAddition(long jarg1, Expression jarg11);
+
+ public static native boolean isMultiplication(long jarg1, Expression jarg11);
+
+ public static native boolean isDivision(long jarg1, Expression jarg11);
+
+ public static native boolean isLog(long jarg1, Expression jarg11);
+
+ public static native boolean isAbs(long jarg1, Expression jarg11);
+
+ public static native boolean isExp(long jarg1, Expression jarg11);
+
+ public static native boolean isSqrt(long jarg1, Expression jarg11);
+
+ public static native boolean isPow(long jarg1, Expression jarg11);
+
+ public static native boolean isSin(long jarg1, Expression jarg11);
+
+ public static native boolean isCos(long jarg1, Expression jarg11);
+
+ public static native boolean isTan(long jarg1, Expression jarg11);
+
+ public static native boolean isAsin(long jarg1, Expression jarg11);
+
+ public static native boolean isAcos(long jarg1, Expression jarg11);
+
+ public static native boolean isAtan(long jarg1, Expression jarg11);
+
+ public static native boolean isAtan2(long jarg1, Expression jarg11);
+
+ public static native boolean isSinh(long jarg1, Expression jarg11);
+
+ public static native boolean isCosh(long jarg1, Expression jarg11);
+
+ public static native boolean isTanh(long jarg1, Expression jarg11);
+
+ public static native boolean isMin(long jarg1, Expression jarg11);
+
+ public static native boolean isMax(long jarg1, Expression jarg11);
+
+ public static native boolean isIfThenElse(long jarg1, Expression jarg11);
+
+ public static native boolean isUninterpretedFunction(long jarg1, Expression jarg11);
+
+ public static native long sum(long jarg1, ExpressionVector jarg11);
+
+ public static native long prod(long jarg1, ExpressionVector jarg11);
+
+ public static native void swap(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native boolean isConstantSWIG1(long jarg1, Expression jarg11, double jarg2);
+
+ public static native boolean isZero(long jarg1, Expression jarg11);
+
+ public static native boolean isOne(long jarg1, Expression jarg11);
+
+ public static native boolean isNegOne(long jarg1, Expression jarg11);
+
+ public static native boolean isTwo(long jarg1, Expression jarg11);
+
+ public static native boolean isNan(long jarg1, Expression jarg11);
+
+ public static native double getConstantValue(long jarg1, Expression jarg11);
+
+ public static native double getLbOfRealConstant(long jarg1, Expression jarg11);
+
+ public static native double getUbOfRealConstant(long jarg1, Expression jarg11);
+
+ public static native long getVariableSWIG0(long jarg1, Expression jarg11);
+
+ public static native long getArgument(long jarg1, Expression jarg11);
+
+ public static native long getFirstArgument(long jarg1, Expression jarg11);
+
+ public static native long getSecondArgument(long jarg1, Expression jarg11);
+
+ public static native double getConstantInAddition(long jarg1, Expression jarg11);
+
+ public static native long getExprToCoeffMapInAddition(long jarg1, Expression jarg11);
+
+ public static native double getConstantInMultiplication(long jarg1, Expression jarg11);
+
+ public static native long getBaseToExponentMapInMultiplication(long jarg1, Expression jarg11);
+
+ public static native long getConditionalFormula(long jarg1, Expression jarg11);
+
+ public static native long getThenExpression(long jarg1, Expression jarg11);
+
+ public static native long getElseExpression(long jarg1, Expression jarg11);
+
+ public static native String getUninterpretedFunctionName(long jarg1, Expression jarg11);
+
+ public static native long addSWIG8(long jarg1, Variable jarg11);
+
+ public static native long substractSWIG8(long jarg1, Variable jarg11);
+
+ public static native boolean lessSWIG2(int jarg1, int jarg2);
+
+ public static native long newFormulaSWIG0();
+
+ public static native long newFormulaSWIG1(long jarg1, Formula jarg11);
+
+ public static native long formulaAssignOperatorSWIG0(
+ long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native void deleteFormula(long jarg1);
+
+ public static native long newFormulaSWIG2(long jarg1, Variable jarg11);
+
+ public static native int formulaGetKind(long jarg1, Formula jarg11);
+
+ public static native long formulaGetHash(long jarg1, Formula jarg11);
+
+ public static native long formulaGetFreeVariables(long jarg1, Formula jarg11);
+
+ public static native boolean formulaEqualTo(
+ long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native boolean formulaLess(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native boolean formulaEvaluateSWIG0(
+ long jarg1, Formula jarg11, long jarg2, Environment jarg22);
+
+ public static native boolean formulaEvaluateSWIG1(long jarg1, Formula jarg11);
+
+ public static native long formulaSubstituteSWIG0(
+ long jarg1, Formula jarg11, long jarg2, Variable jarg22, long jarg3, Expression jarg33);
+
+ public static native long formulaSubstituteSWIG1(
+ long jarg1, Formula jarg11, long jarg2, Variable jarg22, long jarg3, Formula jarg33);
+
+ public static native long formulaSubstituteSWIG2(
+ long jarg1, Formula jarg11, long jarg2, long jarg3);
+
+ public static native long formulaSubstituteSWIG3(long jarg1, Formula jarg11, long jarg2);
+
+ public static native long formulaSubstituteSWIG4(long jarg1, Formula jarg11, long jarg2);
+
+ public static native String formulaToString(long jarg1, Formula jarg11);
+
+ public static native long formulaTrue();
+
+ public static native long formulaFalse();
+
+ public static native boolean formulaBoolOperator(long jarg1, Formula jarg11);
+
+ public static native long insertOperatorSWIG5(long jarg1, long jarg2, Formula jarg22);
+
+ public static native boolean isFalse(long jarg1, Formula jarg11);
+
+ public static native boolean isTrue(long jarg1, Formula jarg11);
+
+ public static native boolean isVariableSWIG1(long jarg1, Formula jarg11);
+
+ public static native boolean isEqualTo(long jarg1, Formula jarg11);
+
+ public static native boolean isNotEqualTo(long jarg1, Formula jarg11);
+
+ public static native boolean isGreaterThan(long jarg1, Formula jarg11);
+
+ public static native boolean isGreaterThanOrEqualTo(long jarg1, Formula jarg11);
+
+ public static native boolean isLessThan(long jarg1, Formula jarg11);
+
+ public static native boolean isLessThanOrEqualTo(long jarg1, Formula jarg11);
+
+ public static native boolean isRelational(long jarg1, Formula jarg11);
+
+ public static native boolean isConjunction(long jarg1, Formula jarg11);
+
+ public static native boolean isDisjunction(long jarg1, Formula jarg11);
+
+ public static native boolean isNegation(long jarg1, Formula jarg11);
+
+ public static native boolean isForall(long jarg1, Formula jarg11);
+
+ public static native long formulaMakeConjunction(
+ long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long formulaMakeDisjunction(
+ long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long notSWIG0(long jarg1, Formula jarg11);
+
+ public static native long equalSWIG1(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long notEqualSWIG0(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long lessSWIG3(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long lessEqual(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long grater(long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native long graterEqual(
+ long jarg1, Expression jarg11, long jarg2, Expression jarg22);
+
+ public static native boolean formulaIncludeIte(long jarg1, Formula jarg11);
+
+ public static native long forall(long jarg1, Variables jarg11, long jarg2, Formula jarg22);
+
+ public static native long andSWIG0(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long andSWIG4(long jarg1, Variable jarg11, long jarg2, Formula jarg22);
+
+ public static native long andSWIG6(long jarg1, Formula jarg11, long jarg2, Variable jarg22);
+
+ public static native long andSWIG8(long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long orSWIG0(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long orSWIG4(long jarg1, Variable jarg11, long jarg2, Formula jarg22);
+
+ public static native long orSWIG6(long jarg1, Formula jarg11, long jarg2, Variable jarg22);
+
+ public static native long orSWIG8(long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long notSWIG1(long jarg1, Variable jarg11);
+
+ public static native long equalSWIG2(long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long equalSWIG3(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long equalSWIG4(long jarg1, Variable jarg11, long jarg2, Formula jarg22);
+
+ public static native long equalSWIG5(long jarg1, Formula jarg11, long jarg2, Variable jarg22);
+
+ public static native long notEqualSWIG1(long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long notEqualSWIG2(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long notEqualSWIG3(long jarg1, Variable jarg11, long jarg2, Formula jarg22);
+
+ public static native long notEqualSWIG4(long jarg1, Formula jarg11, long jarg2, Variable jarg22);
+
+ public static native boolean isNary(long jarg1, Formula jarg11);
+
+ public static native long getVariableSWIG1(long jarg1, Formula jarg11);
+
+ public static native long getLhsExpression(long jarg1, Formula jarg11);
+
+ public static native long getRhsExpression(long jarg1, Formula jarg11);
+
+ public static native long getOperands(long jarg1, Formula jarg11);
+
+ public static native long getOperand(long jarg1, Formula jarg11);
+
+ public static native long getQuantifiedVariables(long jarg1, Formula jarg11);
+
+ public static native long getQuantifiedFormula(long jarg1, Formula jarg11);
+
+ public static native long logicAnd(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long implySWIG0(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long implySWIG1(long jarg1, Variable jarg11, long jarg2, Formula jarg22);
+
+ public static native long implySWIG2(long jarg1, Formula jarg11, long jarg2, Variable jarg22);
+
+ public static native long implySWIG3(long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long iffSWIG0(long jarg1, Formula jarg11, long jarg2, Formula jarg22);
+
+ public static native long iffSWIG1(long jarg1, Variable jarg11, long jarg2, Formula jarg22);
+
+ public static native long iffSWIG2(long jarg1, Formula jarg11, long jarg2, Variable jarg22);
+
+ public static native long iffSWIG3(long jarg1, Variable jarg11, long jarg2, Variable jarg22);
+
+ public static native long map(long jarg1, FormulaSet jarg11, long jarg2);
+
+ public static native boolean isAtomic(long jarg1, Formula jarg11);
+
+ public static native boolean isClause(long jarg1, Formula jarg11);
+
+ public static native long getClauses(long jarg1, Formula jarg11);
+
+ public static native boolean isCnf(long jarg1, Formula jarg11);
+
+ public static native boolean haveIntersection(
+ long jarg1, Variables jarg11, long jarg2, Variables jarg22);
+
+ public static native long deltaStrengthen(long jarg1, Formula jarg11, double jarg2);
+
+ public static native long deltaWeaken(long jarg1, Formula jarg11, double jarg2);
+
+ public static native boolean isDifferentiableSWIG0(long jarg1, Formula jarg11);
+
+ public static native boolean isDifferentiableSWIG1(long jarg1, Expression jarg11);
+
+ public static native long makeConjunction(long jarg1, FormulaVector jarg11);
+
+ public static native long makeDisjunction(long jarg1, FormulaVector jarg11);
+
+ public static native long createVectorSWIG0(String jarg1, int jarg2, int jarg3);
+
+ public static native long createVectorSWIG1(String jarg1, int jarg2);
+
+ public static native int not(int jarg1);
+
+ public static native long insertOperatorSWIG6(long jarg1, int jarg2);
+
+ public static native int parseLogic(String jarg1);
+
+ public static native long insertOperatorSWIG7(long jarg1, int jarg2);
+
+ public static native long newBoxSWIG0();
+
+ public static native long newBoxSWIG1(long jarg1, VariableVector jarg11);
+
+ public static native long newBoxSWIG2(long jarg1, Box jarg11);
+
+ public static native long boxAssignOperatorSWIG0(long jarg1, Box jarg11, long jarg2, Box jarg22);
+
+ public static native void deleteBox(long jarg1);
+
+ public static native void boxAddSWIG0(long jarg1, Box jarg11, long jarg2, Variable jarg22);
+
+ public static native void boxAddSWIG1(
+ long jarg1, Box jarg11, long jarg2, Variable jarg22, double jarg3, double jarg4);
+
+ public static native boolean boxEmpty(long jarg1, Box jarg11);
+
+ public static native void boxSetEmpty(long jarg1, Box jarg11);
+
+ public static native int boxSize(long jarg1, Box jarg11);
+
+ public static native long boxIndexingSWIG0(long jarg1, Box jarg11, int jarg2);
+
+ public static native long boxIndexingSWIG1(long jarg1, Box jarg11, long jarg2, Variable jarg22);
+
+ public static native long boxVariables(long jarg1, Box jarg11);
+
+ public static native long boxVariable(long jarg1, Box jarg11, int jarg2);
+
+ public static native boolean boxHasVariable(long jarg1, Box jarg11, long jarg2, Variable jarg22);
+
+ public static native long boxIntervalVector(long jarg1, Box jarg11);
+
+ public static native long boxMutableIntervalVector(long jarg1, Box jarg11);
+
+ public static native int boxIndex(long jarg1, Box jarg11, long jarg2, Variable jarg22);
+
+ public static native long boxMaxDiam(long jarg1, Box jarg11);
+
+ public static native long boxBisectSWIG0(long jarg1, Box jarg11, int jarg2);
+
+ public static native long boxBisectSWIG1(long jarg1, Box jarg11, long jarg2, Variable jarg22);
+
+ public static native long boxInplaceUnion(long jarg1, Box jarg11, long jarg2, Box jarg22);
+
+ public static native long insertOperatorSWIG8(long jarg1, long jarg2, Box jarg22);
+
+ public static native boolean equal(long jarg1, Box jarg11, long jarg2, Box jarg22);
+
+ public static native boolean notEqual(long jarg1, Box jarg11, long jarg2, Box jarg22);
+
+ public static native long displayDiff(
+ long jarg1, long jarg2, VariableVector jarg22, long jarg3, long jarg4);
+
+ public static native long newOptionValueBoolSWIG0(boolean jarg1);
+
+ public static native long newOptionValueBoolSWIG1(long jarg1, OptionValueBool jarg11);
+
+ public static native long optionValueBoolAssignOperatorSWIG0(
+ long jarg1, OptionValueBool jarg11, long jarg2, OptionValueBool jarg22);
+
+ public static native void deleteOptionValueBool(long jarg1);
+
+ public static native long optionValueBoolAssignOperatorSWIG2(
+ long jarg1, OptionValueBool jarg11, boolean jarg2);
+
+ public static native long optionValueBoolAssignOperatorSWIG3(
+ long jarg1, OptionValueBool jarg11, long jarg2);
+
+ public static native boolean optionValueBoolGet(long jarg1, OptionValueBool jarg11);
+
+ public static native void optionValueBoolSetFromCommandLine(
+ long jarg1, OptionValueBool jarg11, boolean jarg2);
+
+ public static native void optionValueBoolSetFromFile(
+ long jarg1, OptionValueBool jarg11, boolean jarg2);
+
+ public static native long newOptionValueIntSWIG0(int jarg1);
+
+ public static native long newOptionValueIntSWIG1(long jarg1, OptionValueInt jarg11);
+
+ public static native long optionValueIntAssignOperatorSWIG0(
+ long jarg1, OptionValueInt jarg11, long jarg2, OptionValueInt jarg22);
+
+ public static native void deleteOptionValueInt(long jarg1);
+
+ public static native long optionValueIntAssignOperatorSWIG2(
+ long jarg1, OptionValueInt jarg11, int jarg2);
+
+ public static native long optionValueIntAssignOperatorSWIG3(
+ long jarg1, OptionValueInt jarg11, long jarg2);
+
+ public static native int optionValueIntGet(long jarg1, OptionValueInt jarg11);
+
+ public static native void optionValueIntSetFromCommandLine(
+ long jarg1, OptionValueInt jarg11, int jarg2);
+
+ public static native void optionValueIntSetFromFile(long jarg1, OptionValueInt jarg11, int jarg2);
+
+ public static native long newOptionValueDoubleSWIG0(double jarg1);
+
+ public static native long newOptionValueDoubleSWIG1(long jarg1, OptionValueDouble jarg11);
+
+ public static native long optionValueDoubleAssignOperatorSWIG0(
+ long jarg1, OptionValueDouble jarg11, long jarg2, OptionValueDouble jarg22);
+
+ public static native void deleteOptionValueDouble(long jarg1);
+
+ public static native long optionValueDoubleAssignOperatorSWIG2(
+ long jarg1, OptionValueDouble jarg11, double jarg2);
+
+ public static native long optionValueDoubleAssignOperatorSWIG3(
+ long jarg1, OptionValueDouble jarg11, long jarg2);
+
+ public static native double optionValueDoubleGet(long jarg1, OptionValueDouble jarg11);
+
+ public static native void optionValueDoubleSetFromCommandLine(
+ long jarg1, OptionValueDouble jarg11, double jarg2);
+
+ public static native void optionValueDoubleSetFromFile(
+ long jarg1, OptionValueDouble jarg11, double jarg2);
+
+ public static native long newOptionValueUnsignedIntSWIG0(long jarg1);
+
+ public static native long newOptionValueUnsignedIntSWIG1(
+ long jarg1, OptionValueUnsignedInt jarg11);
+
+ public static native long optionValueUnsignedIntAssignOperatorSWIG0(
+ long jarg1, OptionValueUnsignedInt jarg11, long jarg2, OptionValueUnsignedInt jarg22);
+
+ public static native void deleteOptionValueUnsignedInt(long jarg1);
+
+ public static native long optionValueUnsignedIntAssignOperatorSWIG2(
+ long jarg1, OptionValueUnsignedInt jarg11, long jarg2);
+
+ public static native long optionValueUnsignedIntGet(long jarg1, OptionValueUnsignedInt jarg11);
+
+ public static native void optionValueUnsignedIntSetFromCommandLine(
+ long jarg1, OptionValueUnsignedInt jarg11, long jarg2);
+
+ public static native void optionValueUnsignedIntSetFromFile(
+ long jarg1, OptionValueUnsignedInt jarg11, long jarg2);
+
+ public static native long newConfigSWIG0();
+
+ public static native long newConfigSWIG1(long jarg1, Config jarg11);
+
+ public static native long configAssignOperatorSWIG0(
+ long jarg1, Config jarg11, long jarg2, Config jarg22);
+
+ public static native void deleteConfig(long jarg1);
+
+ public static native double configPrecision(long jarg1, Config jarg11);
+
+ public static native long configMutablePrecision(long jarg1, Config jarg11);
+
+ public static native boolean configProduceModels(long jarg1, Config jarg11);
+
+ public static native long configMutableProduceModels(long jarg1, Config jarg11);
+
+ public static native boolean configUsePolytope(long jarg1, Config jarg11);
+
+ public static native long configMutableUsePolytope(long jarg1, Config jarg11);
+
+ public static native boolean configUsePolytopeInForall(long jarg1, Config jarg11);
+
+ public static native long configMutableUsePolytopeInForall(long jarg1, Config jarg11);
+
+ public static native boolean configUseWorklistFixpoint(long jarg1, Config jarg11);
+
+ public static native long configMutableUseWorklistFixpoint(long jarg1, Config jarg11);
+
+ public static native boolean configUseLocalOptimization(long jarg1, Config jarg11);
+
+ public static native long configMutableUseLocalOptimization(long jarg1, Config jarg11);
+
+ public static native boolean configDumpTheoryLiterals(long jarg1, Config jarg11);
+
+ public static native long configMutableDumpTheoryLiterals(long jarg1, Config jarg11);
+
+ public static native int configNumberOfJobs(long jarg1, Config jarg11);
+
+ public static native long configMutableNumberOfJobs(long jarg1, Config jarg11);
+
+ public static native boolean configStackLeftBoxFirst(long jarg1, Config jarg11);
+
+ public static native long configMutableStackLeftBoxFirst(long jarg1, Config jarg11);
+
+ public static native long configBrancher(long jarg1, Config jarg11);
+
+ public static native long configMutableBrancher(long jarg1, Config jarg11);
+
+ public static native double configNloptFtolRel(long jarg1, Config jarg11);
+
+ public static native long configMutableNloptFtolRel(long jarg1, Config jarg11);
+
+ public static native double configNloptFtolAbs(long jarg1, Config jarg11);
+
+ public static native long configMutableNloptFtolAbs(long jarg1, Config jarg11);
+
+ public static native int configNloptMaxeval(long jarg1, Config jarg11);
+
+ public static native long configMutableNloptMaxeval(long jarg1, Config jarg11);
+
+ public static native double configNloptMaxtime(long jarg1, Config jarg11);
+
+ public static native long configMutableNloptMaxtime(long jarg1, Config jarg11);
+
+ public static native int configSatDefaultPhaseFalseGet();
+
+ public static native int configSatDefaultPhaseTrueGet();
+
+ public static native int configSatDefaultPhaseJeroslowWangGet();
+
+ public static native int configSatDefaultPhaseRandomInitialPhaseGet();
+
+ public static native int configSatDefaultPhase(long jarg1, Config jarg11);
+
+ public static native long configMutableSatDefaultPhase(long jarg1, Config jarg11);
+
+ public static native long configRandomSeed(long jarg1, Config jarg11);
+
+ public static native long configMutableRandomSeed(long jarg1, Config jarg11);
+
+ public static native boolean configSmtlib2Compliant(long jarg1, Config jarg11);
+
+ public static native long configMutableSmtlib2Compliant(long jarg1, Config jarg11);
+
+ public static native double configKDefaultPrecisionGet();
+
+ public static native double configKDefaultNloptFtolRelGet();
+
+ public static native double configKDefaultNloptFtolAbsGet();
+
+ public static native int configKDefaultNloptMaxEvalGet();
+
+ public static native double configKDefaultNloptMaxTimeGet();
+
+ public static native long insertOperatorSWIG9(long jarg1, int jarg2);
+
+ public static native long insertOperatorSWIG22(long jarg1, long jarg2, Config jarg22);
+
+ public static native boolean checkSatisfiabilitySWIG0(
+ long jarg1, Formula jarg11, double jarg2, long jarg3, Box jarg33);
+
+ public static native boolean checkSatisfiabilitySWIG1(
+ long jarg1, Formula jarg11, long jarg2, Config jarg22, long jarg3, Box jarg33);
+
+ public static native boolean minimizeSWIG0(
+ long jarg1,
+ Expression jarg11,
+ long jarg2,
+ Formula jarg22,
+ double jarg3,
+ long jarg4,
+ Box jarg44);
+
+ public static native boolean minimizeSWIG1(long jarg1, long jarg2, long jarg3, long jarg4);
+
+ public static native long newContextSWIG0();
+
+ public static native long newContextSWIG1(long jarg1, Context jarg11);
+
+ public static native void deleteContext(long jarg1);
+
+ public static native long newContextSWIG2(long jarg1, Config jarg11);
+
+ public static native void contextAssert(long jarg1, Context jarg11, long jarg2, Formula jarg22);
+
+ public static native long contextCheckSat(long jarg1, Context jarg11);
+
+ public static native void contextDeclareVariableSWIG0(
+ long jarg1, Context jarg11, long jarg2, Variable jarg22, boolean jarg3);
+
+ public static native void contextDeclareVariableSWIG1(
+ long jarg1, Context jarg11, long jarg2, Variable jarg22);
+
+ public static native void contextDeclareVariableSWIG2(
+ long jarg1, long jarg2, long jarg3, long jarg4, boolean jarg5);
+
+ public static native void contextDeclareVariableSWIG3(
+ long jarg1, long jarg2, long jarg3, long jarg4);
+
+ public static native void contextExit();
+
+ public static native void contextMinimizeSWIG0(
+ long jarg1, Context jarg11, long jarg2, Expression jarg22);
+
+ public static native void contextMinimizeSWIG1(
+ long jarg1, Context jarg11, long jarg2, ExpressionVector jarg22);
+
+ public static native void contextMaximize(
+ long jarg1, Context jarg11, long jarg2, Expression jarg22);
+
+ public static native void contextPop(long jarg1, Context jarg11, int jarg2);
+
+ public static native void contextPush(long jarg1, Context jarg11, int jarg2);
+
+ public static native void contextSetInfoSWIG0(
+ long jarg1, Context jarg11, String jarg2, double jarg3);
+
+ public static native void contextSetInfoSWIG1(
+ long jarg1, Context jarg11, String jarg2, String jarg3);
+
+ public static native void contextSetInterval(
+ long jarg1, Context jarg11, long jarg2, Variable jarg22, double jarg3, double jarg4);
+
+ public static native void contextSetLogic(long jarg1, Context jarg11, int jarg2);
+
+ public static native void contextSetOptionSWIG0(
+ long jarg1, Context jarg11, String jarg2, double jarg3);
+
+ public static native void contextSetOptionSWIG1(
+ long jarg1, Context jarg11, String jarg2, String jarg3);
+
+ public static native long contextGetOption(long jarg1, Context jarg11, String jarg2);
+
+ public static native long contextConfig(long jarg1, Context jarg11);
+
+ public static native long contextMutableConfig(long jarg1, Context jarg11);
+
+ public static native String contextVersion();
+
+ public static native long contextAssertions(long jarg1, Context jarg11);
+
+ public static native long contextBox(long jarg1, Context jarg11);
+
+ public static native long contextGetModel(long jarg1, Context jarg11);
+
+ // for VariableSet, added later
+ public static native void variableSetIteratorIncrementUnchecked(
+ long jarg1, VariableSet.Iterator jarg11);
+
+ public static native long variableSetIteratorDerefUnchecked(
+ long jarg1, VariableSet.Iterator jarg11);
+
+ public static native boolean variableSetIteratorIsNot(
+ long jarg1, VariableSet.Iterator jarg11, long jarg2, VariableSet.Iterator jarg22);
+
+ public static native void deleteVariableSetIterator(long jarg1);
+
+ public static native long newVariableSetSWIG0();
+
+ public static native long newVariableSetSWIG1(long jarg1, VariableSet jarg11);
+
+ public static native boolean variableSetIsEmpty(long jarg1, VariableSet jarg11);
+
+ public static native void variableSetClear(long jarg1, VariableSet jarg11);
+
+ public static native long variableSetBegin(long jarg1, VariableSet jarg11);
+
+ public static native long variableSetEnd(long jarg1, VariableSet jarg11);
+
+ public static native boolean variableSetAddImpl(
+ long jarg1, VariableSet jarg11, long jarg2, Variable jarg22);
+
+ public static native boolean variableSetContainsImpl(
+ long jarg1, VariableSet jarg11, long jarg2, Variable jarg22);
+
+ public static native boolean variableSetRemoveImpl(
+ long jarg1, VariableSet jarg11, long jarg2, Variable jarg22);
+
+ public static native int variableSetSizeImpl(long jarg1, VariableSet jarg11);
+
+ public static native boolean variableSetHasNextImpl(
+ long jarg1, VariableSet jarg11, long jarg2, VariableSet.Iterator jarg22);
+
+ public static native void deleteVariableSet(long jarg1);
+
+ // self written:
+ public static native void configMutablePrecision0(double value, long config);
+
+ public static native void configMutableProduceModels0(boolean bool, long config);
+
+ public static native void configMutableUsePolytope0(boolean bool, long config);
+
+ public static native void configMutableUsePolytopeInForall0(boolean bool, long config);
+
+ public static native void configMutableUseWorklistFixpoint0(boolean bool, long config);
+
+ public static native void configMutableUseLocalOptimization0(boolean bool, long config);
+
+ public static native void configMutableDumpTheoryLiterals0(boolean bool, long config);
+
+ public static native void configMutableNumberOfJobs0(int i, long config);
+
+ public static native void configMutableStackLeftBoxFirst0(boolean bool, long config);
+
+ public static native void configMutableNloptFtolRel0(double value, long config);
+
+ public static native void configMutableNloptFtolAbs0(double value, long config);
+
+ public static native void configMutableNloptMaxeval0(int i, long config);
+
+ public static native void configMutableNloptMaxtime0(double value, long config);
+
+ public static native void configMutableRandomSeed0(long seed, long config);
+
+ public static native void configMutableSmtlib2Compliant0(boolean bool, long config);
+
+ public static native void contextDeclareVariables(long context, long formula);
+
+ public static native boolean contextCheckSat0(long context, long box);
+
+ public static native void formulaGetQuantifiedVariables(long set, long formula);
+
+ public static native long newExpressionSWIG4(long jarg1);
+
+ public static native String getResult(long box, long var);
+
+ public static native void getVariables(long set, long exp);
+
+ public static native void formulaGetFreeVariables0(long set, long f);
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Environment.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Environment.java
new file mode 100644
index 0000000000..2a26e3ebea
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Environment.java
@@ -0,0 +1,161 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class Environment {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Environment(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Environment obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Environment obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteEnvironment(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public Environment(Environment arg0) {
+ this(DrealJNI.newEnvironmentSWIG0(Environment.getCPtr(arg0), arg0), true);
+ }
+
+ public Environment assignOperator(Environment arg0) {
+ return new Environment(
+ DrealJNI.environmentAssignOperatorSWIG0(swigCPtr, this, Environment.getCPtr(arg0), arg0),
+ false);
+ }
+
+ public Environment(Variable[] varArr) {
+ this(DrealJNI.newEnvironmentSWIG1(), true);
+ for (Variable var : varArr) {
+ if (var.isDummy()) {
+ throw new IllegalArgumentException(
+ "Dummy variable is detected in the initialization of an environment.");
+ } else {
+ this.insert(var, 0.0);
+ }
+ }
+ }
+
+ public Environment() {
+ this(DrealJNI.newEnvironmentSWIG1(), true);
+ }
+
+ public Environment(
+ SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType init) {
+ this(
+ DrealJNI.newEnvironmentSWIG2(
+ SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType
+ .getCPtr(init)),
+ true);
+ }
+
+ public Environment(SwigTypePStdInitializerListTDrealDrakeSymboliVariableT vars) {
+ this(
+ DrealJNI.newEnvironmentSWIG3(
+ SwigTypePStdInitializerListTDrealDrakeSymboliVariableT.getCPtr(vars)),
+ true);
+ }
+
+ public Environment(SwigTypePStdUnorderedMapVariableDoubleHashValueVariable m) {
+ this(
+ DrealJNI.newEnvironmentSWIG4(
+ SwigTypePStdUnorderedMapVariableDoubleHashValueVariable.getCPtr(m)),
+ true);
+ }
+
+ public SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator begin() {
+ return new SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator(
+ DrealJNI.environmentBeginSWIG0(swigCPtr, this), true);
+ }
+
+ public SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator end() {
+ return new SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator(
+ DrealJNI.environmentEndSWIG0(swigCPtr, this), true);
+ }
+
+ public SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator cbegin() {
+ return new SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator(
+ DrealJNI.environmentCbegin(swigCPtr, this), true);
+ }
+
+ public SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator cend() {
+ return new SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator(
+ DrealJNI.environmentCend(swigCPtr, this), true);
+ }
+
+ public void insert(Variable key, double elem) {
+ DrealJNI.environmentInsert(swigCPtr, this, Variable.getCPtr(key), key, elem);
+ }
+
+ public boolean empty() {
+ return DrealJNI.environmentEmpty(swigCPtr, this);
+ }
+
+ public long size() {
+ return DrealJNI.environmentSize(swigCPtr, this);
+ }
+
+ public SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator find(Variable key) {
+ return new SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator(
+ DrealJNI.environmentFindSWIG0(swigCPtr, this, Variable.getCPtr(key), key), true);
+ }
+
+ public Variables domain() {
+ return new Variables(DrealJNI.environmentDomain(swigCPtr, this), true);
+ }
+
+ @Override
+ public String toString() {
+ return DrealJNI.environmentToString(swigCPtr, this);
+ }
+
+ public SwigTypePDouble indexing(Variable key) {
+ return new SwigTypePDouble(
+ DrealJNI.environmentIndexingSWIG0(swigCPtr, this, Variable.getCPtr(key), key), false);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Expression.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Expression.java
new file mode 100644
index 0000000000..7c80ecfbca
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Expression.java
@@ -0,0 +1,231 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class Expression {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Expression(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Expression obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Expression obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteExpression(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public Expression(Expression arg0) {
+ this(DrealJNI.newExpressionSWIG0(Expression.getCPtr(arg0), arg0), true);
+ }
+
+ public Expression assignOperator(Expression arg0) {
+ return new Expression(
+ DrealJNI.expressionAssignOperatorSWIG0(swigCPtr, this, Expression.getCPtr(arg0), arg0),
+ false);
+ }
+
+ public Expression() {
+ this(DrealJNI.newExpressionSWIG1(), true);
+ }
+
+ public Expression(double d) {
+ this(DrealJNI.newExpressionSWIG2(d), true);
+ }
+
+ public Expression(long l) {
+ this(DrealJNI.newExpressionSWIG4(l), true);
+ }
+
+ public Expression(Variable var) {
+ this(DrealJNI.newExpressionSWIG3(Variable.getCPtr(var), var), true);
+ }
+
+ public ExpressionKind.ExpressionType getKind() {
+ return ExpressionKind.swigToEnum(DrealJNI.expressionGetKind(swigCPtr, this));
+ }
+
+ public long getHash() {
+ return DrealJNI.expressionGetHash(swigCPtr, this);
+ }
+
+ public Variables expressionGetVariables() {
+ return new Variables(DrealJNI.expressionGetVariables(swigCPtr, this), false);
+ }
+
+ public boolean equalTo(Expression e) {
+ return DrealJNI.expressionEqualTo(swigCPtr, this, Expression.getCPtr(e), e);
+ }
+
+ public boolean less(Expression e) {
+ return DrealJNI.expressionLess(swigCPtr, this, Expression.getCPtr(e), e);
+ }
+
+ public boolean isPolynomial() {
+ return DrealJNI.expressionIsPolynomial(swigCPtr, this);
+ }
+
+ public boolean includeIte() {
+ return DrealJNI.expressionIncludeIte(swigCPtr, this);
+ }
+
+ public double evaluate(Environment env) {
+ return DrealJNI.expressionEvaluateSWIG0(swigCPtr, this, Environment.getCPtr(env), env);
+ }
+
+ public double evaluate() {
+ return DrealJNI.expressionEvaluateSWIG1(swigCPtr, this);
+ }
+
+ public Expression evaluatePartial(Environment env) {
+ return new Expression(
+ DrealJNI.expressionEvaluatePartial(swigCPtr, this, Environment.getCPtr(env), env), true);
+ }
+
+ public Expression expand() {
+ return new Expression(DrealJNI.expressionExpand(swigCPtr, this), true);
+ }
+
+ public Expression substitute(Variable var, Expression e) {
+ return new Expression(
+ DrealJNI.expressionSubstituteSWIG0(
+ swigCPtr, this, Variable.getCPtr(var), var, Expression.getCPtr(e), e),
+ true);
+ }
+
+ public Expression substitute(
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable exprSubst,
+ SwigTypePStdUnorderedMapVariableFormulaHashValueVariable formulaSubst) {
+ return new Expression(
+ DrealJNI.expressionSubstituteSWIG1(
+ swigCPtr,
+ this,
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable.getCPtr(exprSubst),
+ SwigTypePStdUnorderedMapVariableFormulaHashValueVariable.getCPtr(formulaSubst)),
+ true);
+ }
+
+ public Expression substitute(
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable exprSubst) {
+ return new Expression(
+ DrealJNI.expressionSubstituteSWIG2(
+ swigCPtr,
+ this,
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable.getCPtr(exprSubst)),
+ true);
+ }
+
+ public Expression substitute(
+ SwigTypePStdUnorderedMapVariableFormulaHashValueVariable formulaSubst) {
+ return new Expression(
+ DrealJNI.expressionSubstituteSWIG3(
+ swigCPtr,
+ this,
+ SwigTypePStdUnorderedMapVariableFormulaHashValueVariable.getCPtr(formulaSubst)),
+ true);
+ }
+
+ public Expression differentiate(Variable x) {
+ return new Expression(
+ DrealJNI.expressionDifferentiate(swigCPtr, this, Variable.getCPtr(x), x), true);
+ }
+
+ @Override
+ public String toString() {
+ return DrealJNI.expressionToString(swigCPtr, this);
+ }
+
+ public static Expression zero() {
+ return new Expression(DrealJNI.expressionZero(), true);
+ }
+
+ public static Expression one() {
+ return new Expression(DrealJNI.expressionOne(), true);
+ }
+
+ public static Expression pi() {
+ return new Expression(DrealJNI.expressionPi(), true);
+ }
+
+ public static Expression e() {
+ return new Expression(DrealJNI.expressionE(), true);
+ }
+
+ public static Expression naN() {
+ return new Expression(DrealJNI.expressionNaN(), true);
+ }
+
+ public Expression increment() {
+ return new Expression(DrealJNI.expressionIncrementSWIG0(swigCPtr, this), false);
+ }
+
+ public Expression increment(int arg0) {
+ return new Expression(DrealJNI.expressionIncrementSWIG1(swigCPtr, this, arg0), true);
+ }
+
+ public Expression decrement() {
+ return new Expression(DrealJNI.expressionDecrementSWIG0(swigCPtr, this), false);
+ }
+
+ public Expression decrement(int arg0) {
+ return new Expression(DrealJNI.expressionDecrementSWIG1(swigCPtr, this, arg0), true);
+ }
+
+ // self written
+
+ /**
+ * This function is used to get all the Variables in a set. This function is called on an
+ * expression, so for example (x + y + 3) returns a set with x,y
+ *
+ * @return VariableSet a set of variables
+ */
+ public VariableSet getVariables() {
+ VariableSet set = new VariableSet();
+ DrealJNI.getVariables(VariableSet.getCPtr(set), Expression.getCPtr(this));
+ return set;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionDoubleMap.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionDoubleMap.java
new file mode 100644
index 0000000000..c0bc4b0dff
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionDoubleMap.java
@@ -0,0 +1,271 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class ExpressionDoubleMap extends java.util.AbstractMap {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected ExpressionDoubleMap(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(ExpressionDoubleMap obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(ExpressionDoubleMap obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteExpressionDoubleMap(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ @Override
+ public int size() {
+ return sizeImpl();
+ }
+
+ @Override
+ public boolean containsKey(java.lang.Object key) {
+ if (!(key instanceof Expression)) {
+ return false;
+ }
+
+ return containsImpl((Expression) key);
+ }
+
+ @Override
+ public Double get(java.lang.Object key) {
+ if (!(key instanceof Expression)) {
+ return null;
+ }
+
+ Iterator itr = find((Expression) key);
+ if (itr.isNot(end())) {
+ return itr.getValue();
+ }
+
+ return null;
+ }
+
+ @Override
+ public Double put(Expression key, Double value) {
+ Iterator itr = find(key);
+ if (itr.isNot(end())) {
+ Double oldValue = itr.getValue();
+ itr.setValue(value);
+ return oldValue;
+ } else {
+ putUnchecked(key, value);
+ return null;
+ }
+ }
+
+ @Override
+ public Double remove(java.lang.Object key) {
+ if (!(key instanceof Expression)) {
+ return null;
+ }
+
+ Iterator itr = find((Expression) key);
+ if (itr.isNot(end())) {
+ Double oldValue = itr.getValue();
+ removeUnchecked(itr);
+ return oldValue;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public java.util.Set> entrySet() {
+ java.util.Set> setToReturn = new java.util.HashSet<>();
+
+ Iterator itr = begin();
+ final Iterator end = end();
+ while (itr.isNot(end)) {
+ setToReturn.add(
+ new Entry() {
+ private Iterator iterator;
+
+ private Entry init(Iterator iter) {
+ this.iterator = iter;
+ return this;
+ }
+
+ @Override
+ public Expression getKey() {
+ return iterator.getKey();
+ }
+
+ @Override
+ public Double getValue() {
+ return iterator.getValue();
+ }
+
+ @Override
+ public Double setValue(Double newValue) {
+ Double oldValue = iterator.getValue();
+ iterator.setValue(newValue);
+ return oldValue;
+ }
+ }.init(itr));
+ itr = itr.getNextUnchecked();
+ }
+
+ return setToReturn;
+ }
+
+ public ExpressionDoubleMap() {
+ this(DrealJNI.newExpressionDoubleMapSWIG0(), true);
+ }
+
+ public ExpressionDoubleMap(ExpressionDoubleMap other) {
+ this(DrealJNI.newExpressionDoubleMapSWIG1(ExpressionDoubleMap.getCPtr(other), other), true);
+ }
+
+ @NotThreadSafe
+ protected static class Iterator {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Iterator(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Iterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Iterator obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteExpressionDoubleMapIterator(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ private ExpressionDoubleMap.Iterator getNextUnchecked() {
+ return new ExpressionDoubleMap.Iterator(
+ DrealJNI.expressionDoubleMapIteratorGetNextUnchecked(swigCPtr, this), true);
+ }
+
+ private boolean isNot(ExpressionDoubleMap.Iterator other) {
+ return DrealJNI.expressionDoubleMapIteratorIsNot(
+ swigCPtr, this, ExpressionDoubleMap.Iterator.getCPtr(other), other);
+ }
+
+ private Expression getKey() {
+ return new Expression(DrealJNI.expressionDoubleMapIteratorGetKey(swigCPtr, this), true);
+ }
+
+ private double getValue() {
+ return DrealJNI.expressionDoubleMapIteratorGetValue(swigCPtr, this);
+ }
+
+ private void setValue(double newValue) {
+ DrealJNI.expressionDoubleMapIteratorSetValue(swigCPtr, this, newValue);
+ }
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return DrealJNI.expressionDoubleMapIsEmpty(swigCPtr, this);
+ }
+
+ @Override
+ public void clear() {
+ DrealJNI.expressionDoubleMapClear(swigCPtr, this);
+ }
+
+ private ExpressionDoubleMap.Iterator find(Expression key) {
+ return new ExpressionDoubleMap.Iterator(
+ DrealJNI.expressionDoubleMapFind(swigCPtr, this, Expression.getCPtr(key), key), true);
+ }
+
+ private ExpressionDoubleMap.Iterator begin() {
+ return new ExpressionDoubleMap.Iterator(
+ DrealJNI.expressionDoubleMapBegin(swigCPtr, this), true);
+ }
+
+ private ExpressionDoubleMap.Iterator end() {
+ return new ExpressionDoubleMap.Iterator(DrealJNI.expressionDoubleMapEnd(swigCPtr, this), true);
+ }
+
+ private int sizeImpl() {
+ return DrealJNI.expressionDoubleMapSizeImpl(swigCPtr, this);
+ }
+
+ private boolean containsImpl(Expression key) {
+ return DrealJNI.expressionDoubleMapContainsImpl(swigCPtr, this, Expression.getCPtr(key), key);
+ }
+
+ private void putUnchecked(Expression key, double value) {
+ DrealJNI.expressionDoubleMapPutUnchecked(swigCPtr, this, Expression.getCPtr(key), key, value);
+ }
+
+ private void removeUnchecked(ExpressionDoubleMap.Iterator itr) {
+ DrealJNI.expressionDoubleMapRemoveUnchecked(
+ swigCPtr, this, ExpressionDoubleMap.Iterator.getCPtr(itr), itr);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionExpressionMap.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionExpressionMap.java
new file mode 100644
index 0000000000..9252e814d7
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionExpressionMap.java
@@ -0,0 +1,276 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class ExpressionExpressionMap extends java.util.AbstractMap {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected ExpressionExpressionMap(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(ExpressionExpressionMap obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(ExpressionExpressionMap obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteExpressionExpressionMap(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ @Override
+ public int size() {
+ return sizeImpl();
+ }
+
+ @Override
+ public boolean containsKey(java.lang.Object key) {
+ if (!(key instanceof Expression)) {
+ return false;
+ }
+
+ return containsImpl((Expression) key);
+ }
+
+ @Override
+ public Expression get(java.lang.Object key) {
+ if (!(key instanceof Expression)) {
+ return null;
+ }
+
+ Iterator itr = find((Expression) key);
+ if (itr.isNot(end())) {
+ return itr.getValue();
+ }
+
+ return null;
+ }
+
+ @Override
+ public Expression put(Expression key, Expression value) {
+ Iterator itr = find(key);
+ if (itr.isNot(end())) {
+ Expression oldValue = itr.getValue();
+ itr.setValue(value);
+ return oldValue;
+ } else {
+ putUnchecked(key, value);
+ return null;
+ }
+ }
+
+ @Override
+ public Expression remove(java.lang.Object key) {
+ if (!(key instanceof Expression)) {
+ return null;
+ }
+
+ Iterator itr = find((Expression) key);
+ if (itr.isNot(end())) {
+ Expression oldValue = itr.getValue();
+ removeUnchecked(itr);
+ return oldValue;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public java.util.Set> entrySet() {
+ java.util.Set> setToReturn = new java.util.HashSet<>();
+
+ Iterator itr = begin();
+ final Iterator end = end();
+ while (itr.isNot(end)) {
+ setToReturn.add(
+ new Entry() {
+ private Iterator iterator;
+
+ private Entry init(Iterator iter) {
+ this.iterator = iter;
+ return this;
+ }
+
+ @Override
+ public Expression getKey() {
+ return iterator.getKey();
+ }
+
+ @Override
+ public Expression getValue() {
+ return iterator.getValue();
+ }
+
+ @Override
+ public Expression setValue(Expression newValue) {
+ Expression oldValue = iterator.getValue();
+ iterator.setValue(newValue);
+ return oldValue;
+ }
+ }.init(itr));
+ itr = itr.getNextUnchecked();
+ }
+
+ return setToReturn;
+ }
+
+ public ExpressionExpressionMap() {
+ this(DrealJNI.newExpressionExpressionMapSWIG0(), true);
+ }
+
+ public ExpressionExpressionMap(ExpressionExpressionMap other) {
+ this(
+ DrealJNI.newExpressionExpressionMapSWIG1(ExpressionExpressionMap.getCPtr(other), other),
+ true);
+ }
+
+ @NotThreadSafe
+ protected static class Iterator {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Iterator(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Iterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Iterator obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteExpressionExpressionMapIterator(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ private ExpressionExpressionMap.Iterator getNextUnchecked() {
+ return new ExpressionExpressionMap.Iterator(
+ DrealJNI.expressionExpressionMapIteratorGetNextUnchecked(swigCPtr, this), true);
+ }
+
+ private boolean isNot(ExpressionExpressionMap.Iterator other) {
+ return DrealJNI.expressionExpressionMapIteratorIsNot(
+ swigCPtr, this, ExpressionExpressionMap.Iterator.getCPtr(other), other);
+ }
+
+ private Expression getKey() {
+ return new Expression(DrealJNI.expressionExpressionMapIteratorGetKey(swigCPtr, this), true);
+ }
+
+ private Expression getValue() {
+ return new Expression(DrealJNI.expressionExpressionMapIteratorGetValue(swigCPtr, this), true);
+ }
+
+ private void setValue(Expression newValue) {
+ DrealJNI.expressionExpressionMapIteratorSetValue(
+ swigCPtr, this, Expression.getCPtr(newValue), newValue);
+ }
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return DrealJNI.expressionExpressionMapIsEmpty(swigCPtr, this);
+ }
+
+ @Override
+ public void clear() {
+ DrealJNI.expressionExpressionMapClear(swigCPtr, this);
+ }
+
+ private ExpressionExpressionMap.Iterator find(Expression key) {
+ return new ExpressionExpressionMap.Iterator(
+ DrealJNI.expressionExpressionMapFind(swigCPtr, this, Expression.getCPtr(key), key), true);
+ }
+
+ private ExpressionExpressionMap.Iterator begin() {
+ return new ExpressionExpressionMap.Iterator(
+ DrealJNI.expressionExpressionMapBegin(swigCPtr, this), true);
+ }
+
+ private ExpressionExpressionMap.Iterator end() {
+ return new ExpressionExpressionMap.Iterator(
+ DrealJNI.expressionExpressionMapEnd(swigCPtr, this), true);
+ }
+
+ private int sizeImpl() {
+ return DrealJNI.expressionExpressionMapSizeImpl(swigCPtr, this);
+ }
+
+ private boolean containsImpl(Expression key) {
+ return DrealJNI.expressionExpressionMapContainsImpl(
+ swigCPtr, this, Expression.getCPtr(key), key);
+ }
+
+ private void putUnchecked(Expression key, Expression value) {
+ DrealJNI.expressionExpressionMapPutUnchecked(
+ swigCPtr, this, Expression.getCPtr(key), key, Expression.getCPtr(value), value);
+ }
+
+ private void removeUnchecked(ExpressionExpressionMap.Iterator itr) {
+ DrealJNI.expressionExpressionMapRemoveUnchecked(
+ swigCPtr, this, ExpressionExpressionMap.Iterator.getCPtr(itr), itr);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionKind.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionKind.java
new file mode 100644
index 0000000000..6fbbb3d70f
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionKind.java
@@ -0,0 +1,132 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public final class ExpressionKind {
+ public static final ExpressionKind.ExpressionType CONSTANT =
+ new ExpressionKind.ExpressionType("Constant");
+ public static final ExpressionKind.ExpressionType REAL_CONSTANT =
+ new ExpressionKind.ExpressionType("RealConstant");
+ public static final ExpressionKind.ExpressionType VAR = new ExpressionKind.ExpressionType("Var");
+ public static final ExpressionKind.ExpressionType ADD = new ExpressionKind.ExpressionType("Add");
+ public static final ExpressionKind.ExpressionType MUL = new ExpressionKind.ExpressionType("Mul");
+ public static final ExpressionKind.ExpressionType DIV = new ExpressionKind.ExpressionType("Div");
+ public static final ExpressionKind.ExpressionType LOG = new ExpressionKind.ExpressionType("Log");
+ public static final ExpressionKind.ExpressionType ABS = new ExpressionKind.ExpressionType("Abs");
+ public static final ExpressionKind.ExpressionType EXP = new ExpressionKind.ExpressionType("Exp");
+ public static final ExpressionKind.ExpressionType SQRT =
+ new ExpressionKind.ExpressionType("Sqrt");
+ public static final ExpressionKind.ExpressionType POW = new ExpressionKind.ExpressionType("Pow");
+ public static final ExpressionKind.ExpressionType SIN = new ExpressionKind.ExpressionType("Sin");
+ public static final ExpressionKind.ExpressionType COS = new ExpressionKind.ExpressionType("Cos");
+ public static final ExpressionKind.ExpressionType TAN = new ExpressionKind.ExpressionType("Tan");
+ public static final ExpressionKind.ExpressionType ASIN =
+ new ExpressionKind.ExpressionType("Asin");
+ public static final ExpressionKind.ExpressionType ACOS =
+ new ExpressionKind.ExpressionType("Acos");
+ public static final ExpressionKind.ExpressionType ATAN =
+ new ExpressionKind.ExpressionType("Atan");
+ public static final ExpressionKind.ExpressionType ATAN2 =
+ new ExpressionKind.ExpressionType("Atan2");
+ public static final ExpressionKind.ExpressionType SINH =
+ new ExpressionKind.ExpressionType("Sinh");
+ public static final ExpressionKind.ExpressionType COSH =
+ new ExpressionKind.ExpressionType("Cosh");
+ public static final ExpressionKind.ExpressionType TANH =
+ new ExpressionKind.ExpressionType("Tanh");
+ public static final ExpressionKind.ExpressionType MIN = new ExpressionKind.ExpressionType("Min");
+ public static final ExpressionKind.ExpressionType MAX = new ExpressionKind.ExpressionType("Max");
+ public static final ExpressionKind.ExpressionType ITE =
+ new ExpressionKind.ExpressionType("IfThenElse");
+ public static final ExpressionKind.ExpressionType NAN = new ExpressionKind.ExpressionType("NaN");
+ public static final ExpressionKind.ExpressionType UF =
+ new ExpressionKind.ExpressionType("UninterpretedFunction");
+
+ private static ExpressionKind.ExpressionType[] swigValues = {
+ CONSTANT,
+ REAL_CONSTANT,
+ VAR,
+ ADD,
+ MUL,
+ DIV,
+ LOG,
+ ABS,
+ EXP,
+ SQRT,
+ POW,
+ SIN,
+ COS,
+ TAN,
+ ASIN,
+ ACOS,
+ ATAN,
+ ATAN2,
+ SINH,
+ COSH,
+ TANH,
+ MIN,
+ MAX,
+ ITE,
+ NAN,
+ UF,
+ };
+ private static int swigNext = 0;
+
+ @SuppressWarnings("unused")
+ private ExpressionKind() {
+ throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
+ }
+
+ public static ExpressionKind.ExpressionType swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue() == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue() == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException(
+ "No enum " + ExpressionKind.ExpressionType.class + " with value " + swigValue);
+ }
+
+ public static class ExpressionType {
+
+ private final int swigValue;
+ private final String swigName;
+
+ public ExpressionType(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionVector.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionVector.java
new file mode 100644
index 0000000000..523db456ac
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/ExpressionVector.java
@@ -0,0 +1,174 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import com.google.common.collect.Iterables;
+import java.util.Arrays;
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class ExpressionVector extends java.util.AbstractList
+ implements java.util.RandomAccess {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected ExpressionVector(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(ExpressionVector obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(ExpressionVector obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteExpressionVector(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public ExpressionVector(Expression[] initialElements) {
+ this();
+ reserve(initialElements.length);
+ this.addAll(Arrays.asList(initialElements));
+ }
+
+ public ExpressionVector(Iterable initialElements) {
+ this();
+ Iterables.addAll(this, initialElements);
+ }
+
+ @Override
+ public Expression get(int index) {
+ return doGet(index);
+ }
+
+ @Override
+ public Expression set(int index, Expression e) {
+ return doSet(index, e);
+ }
+
+ @Override
+ public boolean add(Expression e) {
+ modCount++;
+ doAdd(e);
+ return true;
+ }
+
+ @Override
+ public void add(int index, Expression e) {
+ modCount++;
+ doAdd(index, e);
+ }
+
+ @Override
+ public Expression remove(int index) {
+ modCount++;
+ return doRemove(index);
+ }
+
+ @Override
+ protected void removeRange(int fromIndex, int toIndex) {
+ modCount++;
+ doRemoveRange(fromIndex, toIndex);
+ }
+
+ @Override
+ public int size() {
+ return doSize();
+ }
+
+ public ExpressionVector() {
+ this(DrealJNI.newExpressionVectorSWIG0(), true);
+ }
+
+ public ExpressionVector(ExpressionVector other) {
+ this(DrealJNI.newExpressionVectorSWIG1(ExpressionVector.getCPtr(other), other), true);
+ }
+
+ public long capacity() {
+ return DrealJNI.expressionVectorCapacity(swigCPtr, this);
+ }
+
+ public void reserve(long n) {
+ DrealJNI.expressionVectorReserve(swigCPtr, this, n);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return DrealJNI.expressionVectorIsEmpty(swigCPtr, this);
+ }
+
+ @Override
+ public void clear() {
+ DrealJNI.expressionVectorClear(swigCPtr, this);
+ }
+
+ public ExpressionVector(int count, Expression value) {
+ this(DrealJNI.newExpressionVectorSWIG2(count, Expression.getCPtr(value), value), true);
+ }
+
+ private int doSize() {
+ return DrealJNI.expressionVectorDoSize(swigCPtr, this);
+ }
+
+ private void doAdd(Expression x) {
+ DrealJNI.expressionVectorDoAddSWIG0(swigCPtr, this, Expression.getCPtr(x), x);
+ }
+
+ private void doAdd(int index, Expression x) {
+ DrealJNI.expressionVectorDoAddSWIG1(swigCPtr, this, index, Expression.getCPtr(x), x);
+ }
+
+ private Expression doRemove(int index) {
+ return new Expression(DrealJNI.expressionVectorDoRemove(swigCPtr, this, index), true);
+ }
+
+ private Expression doGet(int index) {
+ return new Expression(DrealJNI.expressionVectorDoGet(swigCPtr, this, index), false);
+ }
+
+ private Expression doSet(int index, Expression val) {
+ return new Expression(
+ DrealJNI.expressionVectorDoSet(swigCPtr, this, index, Expression.getCPtr(val), val), true);
+ }
+
+ private void doRemoveRange(int fromIndex, int toIndex) {
+ DrealJNI.expressionVectorDoRemoveRange(swigCPtr, this, fromIndex, toIndex);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Formula.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Formula.java
new file mode 100644
index 0000000000..303583a1f7
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Formula.java
@@ -0,0 +1,199 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class Formula {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Formula(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Formula obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Formula obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteFormula(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public Formula() {
+ this(DrealJNI.newFormulaSWIG0(), true);
+ }
+
+ public Formula(Formula arg0) {
+ this(DrealJNI.newFormulaSWIG1(Formula.getCPtr(arg0), arg0), true);
+ }
+
+ public Formula assignOperator(Formula arg0) {
+ return new Formula(
+ DrealJNI.formulaAssignOperatorSWIG0(swigCPtr, this, Formula.getCPtr(arg0), arg0), false);
+ }
+
+ public Formula(Variable var) {
+ this(DrealJNI.newFormulaSWIG2(Variable.getCPtr(var), var), true);
+ }
+
+ public FormulaKind.FormulaType getKind() {
+ return FormulaKind.swigToEnum(DrealJNI.formulaGetKind(swigCPtr, this));
+ }
+
+ public long getHash() {
+ return DrealJNI.formulaGetHash(swigCPtr, this);
+ }
+
+ public Variables variableGetFreeVariables() {
+ return new Variables(DrealJNI.formulaGetFreeVariables(swigCPtr, this), false);
+ }
+
+ public boolean equalTo(Formula f) {
+ return DrealJNI.formulaEqualTo(swigCPtr, this, Formula.getCPtr(f), f);
+ }
+
+ public boolean less(Formula f) {
+ return DrealJNI.formulaLess(swigCPtr, this, Formula.getCPtr(f), f);
+ }
+
+ public boolean evaluate(Environment env) {
+ return DrealJNI.formulaEvaluateSWIG0(swigCPtr, this, Environment.getCPtr(env), env);
+ }
+
+ public boolean evaluate() {
+ return DrealJNI.formulaEvaluateSWIG1(swigCPtr, this);
+ }
+
+ public Formula substitute(Variable var, Expression e) {
+ return new Formula(
+ DrealJNI.formulaSubstituteSWIG0(
+ swigCPtr, this, Variable.getCPtr(var), var, Expression.getCPtr(e), e),
+ true);
+ }
+
+ public Formula substitute(Variable var, Formula f) {
+ return new Formula(
+ DrealJNI.formulaSubstituteSWIG1(
+ swigCPtr, this, Variable.getCPtr(var), var, Formula.getCPtr(f), f),
+ true);
+ }
+
+ public Formula substitute(
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable exprSubst,
+ SwigTypePStdUnorderedMapVariableFormulaHashValueVariable formulaSubst) {
+ return new Formula(
+ DrealJNI.formulaSubstituteSWIG2(
+ swigCPtr,
+ this,
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable.getCPtr(exprSubst),
+ SwigTypePStdUnorderedMapVariableFormulaHashValueVariable.getCPtr(formulaSubst)),
+ true);
+ }
+
+ public Formula substitute(SwigTypePStdUnorderedMapVariableExpressionHashValueVariable exprSubst) {
+ return new Formula(
+ DrealJNI.formulaSubstituteSWIG3(
+ swigCPtr,
+ this,
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable.getCPtr(exprSubst)),
+ true);
+ }
+
+ public Formula substitute(SwigTypePStdUnorderedMapVariableFormulaHashValueVariable formulaSubst) {
+ return new Formula(
+ DrealJNI.formulaSubstituteSWIG4(
+ swigCPtr,
+ this,
+ SwigTypePStdUnorderedMapVariableFormulaHashValueVariable.getCPtr(formulaSubst)),
+ true);
+ }
+
+ @Override
+ public String toString() {
+ return DrealJNI.formulaToString(swigCPtr, this);
+ }
+
+ public static Formula formulaTrue() {
+ return new Formula(DrealJNI.formulaTrue(), true);
+ }
+
+ public static Formula formulaFalse() {
+ return new Formula(DrealJNI.formulaFalse(), true);
+ }
+
+ public boolean boolOperator() {
+ return DrealJNI.formulaBoolOperator(swigCPtr, this);
+ }
+
+ public static Formula makeConjunction(Formula f1, Formula f2) {
+ return new Formula(
+ DrealJNI.formulaMakeConjunction(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public static Formula makeDisjunction(Formula f1, Formula f2) {
+ return new Formula(
+ DrealJNI.formulaMakeDisjunction(Formula.getCPtr(f1), f1, Formula.getCPtr(f2), f2), true);
+ }
+
+ public boolean includeIte() {
+ return DrealJNI.formulaIncludeIte(swigCPtr, this);
+ }
+
+ // self written
+ public VariableSet getQuantifiedVariables() {
+ VariableSet set = new VariableSet();
+ DrealJNI.formulaGetQuantifiedVariables(VariableSet.getCPtr(set), Formula.getCPtr(this));
+ return set;
+ }
+
+ /**
+ * This functions returns all the free variables in a formula.
+ *
+ * @return VariableSet set of free variables in a formula.
+ */
+ public VariableSet getFreeVariables() {
+ VariableSet set = new VariableSet();
+ DrealJNI.formulaGetFreeVariables0(VariableSet.getCPtr(set), Formula.getCPtr(this));
+ return set;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaKind.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaKind.java
new file mode 100644
index 0000000000..449ae5f089
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaKind.java
@@ -0,0 +1,82 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public final class FormulaKind {
+ public static final FormulaKind.FormulaType FALSE = new FormulaKind.FormulaType("False");
+ public static final FormulaKind.FormulaType TRUE = new FormulaKind.FormulaType("True");
+ public static final FormulaKind.FormulaType VAR = new FormulaKind.FormulaType("Var");
+ public static final FormulaKind.FormulaType EQ = new FormulaKind.FormulaType("Eq");
+ public static final FormulaKind.FormulaType NEQ = new FormulaKind.FormulaType("Neq");
+ public static final FormulaKind.FormulaType GT = new FormulaKind.FormulaType("Gt");
+ public static final FormulaKind.FormulaType GEQ = new FormulaKind.FormulaType("Geq");
+ public static final FormulaKind.FormulaType LT = new FormulaKind.FormulaType("Lt");
+ public static final FormulaKind.FormulaType LEQ = new FormulaKind.FormulaType("Leq");
+ public static final FormulaKind.FormulaType AND = new FormulaKind.FormulaType("And");
+ public static final FormulaKind.FormulaType OR = new FormulaKind.FormulaType("Or");
+ public static final FormulaKind.FormulaType NOT = new FormulaKind.FormulaType("Not");
+ public static final FormulaKind.FormulaType FORALL = new FormulaKind.FormulaType("Forall");
+ private static FormulaKind.FormulaType[] swigValues = {
+ FALSE, TRUE, VAR, EQ, NEQ, GT, GEQ, LT, LEQ, AND, OR, NOT, FORALL,
+ };
+ private static int swigNext = 0;
+
+ @SuppressWarnings("unused")
+ private FormulaKind() {
+ throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
+ }
+
+ public static FormulaKind.FormulaType swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue() == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ {
+ if (swigValues[i].swigValue() == swigValue) {
+ return swigValues[i];
+ }
+ }
+ }
+ throw new IllegalArgumentException(
+ "No enum " + FormulaKind.FormulaType.class + " with value " + swigValue);
+ }
+
+ public static class FormulaType {
+ private final int swigValue;
+ private final String swigName;
+
+ public FormulaType(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaSet.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaSet.java
new file mode 100644
index 0000000000..e60481a24d
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaSet.java
@@ -0,0 +1,267 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class FormulaSet extends java.util.AbstractSet {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected FormulaSet(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(FormulaSet obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(FormulaSet obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteFormulaSet(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public FormulaSet(java.util.Collection extends Formula> collection) {
+ this();
+ addAll(collection);
+ }
+
+ @Override
+ public int size() {
+ return sizeImpl();
+ }
+
+ @Override
+ public boolean add(Formula key) {
+ return addImpl(key);
+ }
+
+ @CanIgnoreReturnValue
+ @Override
+ public boolean addAll(java.util.Collection extends Formula> collection) {
+ boolean didAddElement = false;
+ for (java.lang.Object object : collection) {
+ didAddElement = add((Formula) object);
+ }
+
+ return didAddElement;
+ }
+
+ @Override
+ public java.util.Iterator iterator() {
+ return new java.util.Iterator() {
+ private Iterator curr;
+ private Iterator end;
+
+ private java.util.Iterator init() {
+ curr = FormulaSet.this.begin();
+ end = FormulaSet.this.end();
+ return this;
+ }
+
+ @Override
+ public Formula next() {
+ if (!hasNext()) {
+ throw new java.util.NoSuchElementException();
+ }
+
+ // Save the current position, increment it,
+ // then return the value at the position before the increment.
+ final Formula currValue = curr.derefUnchecked();
+ curr.incrementUnchecked();
+ return currValue;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return curr.isNot(end);
+ }
+
+ @Override
+ public void remove() {
+ throw new java.lang.UnsupportedOperationException();
+ }
+ }.init();
+ }
+
+ @Override
+ public boolean containsAll(java.util.Collection> collection) {
+ for (java.lang.Object object : collection) {
+ if (!contains(object)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ @Override
+ public boolean contains(java.lang.Object object) {
+ if (!(object instanceof Formula)) {
+ return false;
+ }
+
+ return containsImpl((Formula) object);
+ }
+
+ @Override
+ public boolean removeAll(java.util.Collection> collection) {
+ boolean didRemoveElement = false;
+ for (java.lang.Object object : collection) {
+ didRemoveElement = remove(object);
+ }
+
+ return didRemoveElement;
+ }
+
+ @Override
+ public boolean remove(java.lang.Object object) {
+ if (!(object instanceof Formula)) {
+ return false;
+ }
+
+ return removeImpl((Formula) object);
+ }
+
+ @NotThreadSafe
+ protected static class Iterator {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected Iterator(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(Iterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(Iterator obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteFormulaSetIterator(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ private void incrementUnchecked() {
+ DrealJNI.formulaSetIteratorIncrementUnchecked(swigCPtr, this);
+ }
+
+ private Formula derefUnchecked() {
+ return new Formula(DrealJNI.formulaSetIteratorDerefUnchecked(swigCPtr, this), true);
+ }
+
+ private boolean isNot(FormulaSet.Iterator other) {
+ return DrealJNI.formulaSetIteratorIsNot(
+ swigCPtr, this, FormulaSet.Iterator.getCPtr(other), other);
+ }
+ }
+
+ public FormulaSet() {
+ this(DrealJNI.newFormulaSetSWIG0(), true);
+ }
+
+ public FormulaSet(FormulaSet other) {
+ this(DrealJNI.newFormulaSetSWIG1(FormulaSet.getCPtr(other), other), true);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return DrealJNI.formulaSetIsEmpty(swigCPtr, this);
+ }
+
+ @Override
+ public void clear() {
+ DrealJNI.formulaSetClear(swigCPtr, this);
+ }
+
+ private FormulaSet.Iterator begin() {
+ return new FormulaSet.Iterator(DrealJNI.formulaSetBegin(swigCPtr, this), true);
+ }
+
+ private FormulaSet.Iterator end() {
+ return new FormulaSet.Iterator(DrealJNI.formulaSetEnd(swigCPtr, this), true);
+ }
+
+ public boolean addImpl(Formula key) {
+ return DrealJNI.formulaSetAddImpl(swigCPtr, this, Formula.getCPtr(key), key);
+ }
+
+ private boolean containsImpl(Formula key) {
+ return DrealJNI.formulaSetContainsImpl(swigCPtr, this, Formula.getCPtr(key), key);
+ }
+
+ private boolean removeImpl(Formula key) {
+ return DrealJNI.formulaSetRemoveImpl(swigCPtr, this, Formula.getCPtr(key), key);
+ }
+
+ private int sizeImpl() {
+ return DrealJNI.formulaSetSizeImpl(swigCPtr, this);
+ }
+
+ @SuppressWarnings("unused")
+ private boolean hasNextImpl(FormulaSet.Iterator itr) {
+ return DrealJNI.formulaSetHasNextImpl(swigCPtr, this, FormulaSet.Iterator.getCPtr(itr), itr);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaVector.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaVector.java
new file mode 100644
index 0000000000..f9016161c7
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/FormulaVector.java
@@ -0,0 +1,176 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import com.google.common.collect.Iterables;
+import java.util.Arrays;
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class FormulaVector extends java.util.AbstractList
+ implements java.util.RandomAccess {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected FormulaVector(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(FormulaVector obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(FormulaVector obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteFormulaVector(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ @SuppressWarnings("unused")
+ public FormulaVector(Formula[] initialElements) {
+ this();
+ reserve(initialElements.length);
+ this.addAll(Arrays.asList(initialElements));
+ }
+
+ @SuppressWarnings("unused")
+ public FormulaVector(Iterable initialElements) {
+ this();
+ Iterables.addAll(this, initialElements);
+ }
+
+ @Override
+ public Formula get(int index) {
+ return doGet(index);
+ }
+
+ @Override
+ public Formula set(int index, Formula e) {
+ return doSet(index, e);
+ }
+
+ @Override
+ public boolean add(Formula e) {
+ modCount++;
+ doAdd(e);
+ return true;
+ }
+
+ @Override
+ public void add(int index, Formula e) {
+ modCount++;
+ doAdd(index, e);
+ }
+
+ @Override
+ public Formula remove(int index) {
+ modCount++;
+ return doRemove(index);
+ }
+
+ @Override
+ protected void removeRange(int fromIndex, int toIndex) {
+ modCount++;
+ doRemoveRange(fromIndex, toIndex);
+ }
+
+ @Override
+ public int size() {
+ return doSize();
+ }
+
+ public FormulaVector() {
+ this(DrealJNI.newFormulaVectorSWIG0(), true);
+ }
+
+ public FormulaVector(FormulaVector other) {
+ this(DrealJNI.newFormulaVectorSWIG1(FormulaVector.getCPtr(other), other), true);
+ }
+
+ public long capacity() {
+ return DrealJNI.formulaVectorCapacity(swigCPtr, this);
+ }
+
+ public void reserve(long n) {
+ DrealJNI.formulaVectorReserve(swigCPtr, this, n);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return DrealJNI.formulaVectorIsEmpty(swigCPtr, this);
+ }
+
+ @Override
+ public void clear() {
+ DrealJNI.formulaVectorClear(swigCPtr, this);
+ }
+
+ public FormulaVector(int count, Formula value) {
+ this(DrealJNI.newFormulaVectorSWIG2(count, Formula.getCPtr(value), value), true);
+ }
+
+ private int doSize() {
+ return DrealJNI.formulaVectorDoSize(swigCPtr, this);
+ }
+
+ private void doAdd(Formula x) {
+ DrealJNI.formulaVectorDoAddSWIG0(swigCPtr, this, Formula.getCPtr(x), x);
+ }
+
+ private void doAdd(int index, Formula x) {
+ DrealJNI.formulaVectorDoAddSWIG1(swigCPtr, this, index, Formula.getCPtr(x), x);
+ }
+
+ private Formula doRemove(int index) {
+ return new Formula(DrealJNI.formulaVectorDoRemove(swigCPtr, this, index), true);
+ }
+
+ private Formula doGet(int index) {
+ return new Formula(DrealJNI.formulaVectorDoGet(swigCPtr, this, index), false);
+ }
+
+ private Formula doSet(int index, Formula val) {
+ return new Formula(
+ DrealJNI.formulaVectorDoSet(swigCPtr, this, index, Formula.getCPtr(val), val), true);
+ }
+
+ private void doRemoveRange(int fromIndex, int toIndex) {
+ DrealJNI.formulaVectorDoRemoveRange(swigCPtr, this, fromIndex, toIndex);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Logic.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Logic.java
new file mode 100644
index 0000000000..314a041228
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Logic.java
@@ -0,0 +1,78 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public final class Logic {
+ public static final Logic.LogicType ALL = new Logic.LogicType("ALL");
+ public static final Logic.LogicType QF_LIA = new Logic.LogicType("QF_LIA");
+ public static final Logic.LogicType QF_LIRA = new Logic.LogicType("QF_LIRA");
+ public static final Logic.LogicType QF_LRA = new Logic.LogicType("QF_LRA");
+ public static final Logic.LogicType QF_NIA = new Logic.LogicType("QF_NIA");
+ public static final Logic.LogicType QF_NIAT = new Logic.LogicType("QF_NIAT");
+ public static final Logic.LogicType QF_NIRA = new Logic.LogicType("QF_NIRA");
+ public static final Logic.LogicType QF_NIRAT = new Logic.LogicType("QF_NIRAT");
+ public static final Logic.LogicType QF_NRA = new Logic.LogicType("QF_NRA");
+ public static final Logic.LogicType QF_NRAT = new Logic.LogicType("QF_NRAT");
+ public static final Logic.LogicType QF_RDL = new Logic.LogicType("QF_RDL");
+ private static Logic.LogicType[] swigValues = {
+ ALL, QF_LIA, QF_LIRA, QF_LRA, QF_NIA, QF_NIAT, QF_NIRA, QF_NIRAT, QF_NRA, QF_NRAT, QF_RDL,
+ };
+ private static int swigNext = 0;
+
+ @SuppressWarnings("unused")
+ private Logic() {
+ throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
+ }
+
+ public static Logic.LogicType swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException(
+ "No enum " + Logic.LogicType.class + " with value " + swigValue);
+ }
+
+ public static class LogicType {
+ private final int swigValue;
+ private final String swigName;
+
+ public LogicType(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueBool.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueBool.java
new file mode 100644
index 0000000000..18bbd12a1e
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueBool.java
@@ -0,0 +1,151 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class OptionValueBool {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected OptionValueBool(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(OptionValueBool obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(OptionValueBool obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteOptionValueBool(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public OptionValueBool(boolean value) {
+ this(DrealJNI.newOptionValueBoolSWIG0(value), true);
+ }
+
+ public OptionValueBool(OptionValueBool arg0) {
+ this(DrealJNI.newOptionValueBoolSWIG1(OptionValueBool.getCPtr(arg0), arg0), true);
+ }
+
+ public OptionValueBool assignOperator(OptionValueBool arg0) {
+ return new OptionValueBool(
+ DrealJNI.optionValueBoolAssignOperatorSWIG0(
+ swigCPtr, this, OptionValueBool.getCPtr(arg0), arg0),
+ false);
+ }
+
+ public OptionValueBool assignOperator(boolean value) {
+ return new OptionValueBool(
+ DrealJNI.optionValueBoolAssignOperatorSWIG2(swigCPtr, this, value), false);
+ }
+
+ public OptionValueBool assignOperator(SwigTypePBool value) {
+ return new OptionValueBool(
+ DrealJNI.optionValueBoolAssignOperatorSWIG3(
+ swigCPtr, this, SwigTypePBool.swigRelease(value)),
+ false);
+ }
+
+ public boolean get() {
+ return DrealJNI.optionValueBoolGet(swigCPtr, this);
+ }
+
+ public void setFromCommandLine(boolean value) {
+ DrealJNI.optionValueBoolSetFromCommandLine(swigCPtr, this, value);
+ }
+
+ public void setFromFile(boolean value) {
+ DrealJNI.optionValueBoolSetFromFile(swigCPtr, this, value);
+ }
+
+ public static final class Type {
+ public static final OptionValueBool.Type.Kind DEFAULT =
+ new OptionValueBool.Type.Kind("DEFAULT");
+ public static final OptionValueBool.Type.Kind FROM_FILE =
+ new OptionValueBool.Type.Kind("FROM_FILE");
+ public static final OptionValueBool.Type.Kind FROM_COMMAND_LINE =
+ new OptionValueBool.Type.Kind("FROM_COMMAND_LINE");
+ public static final OptionValueBool.Type.Kind FROM_CODE =
+ new OptionValueBool.Type.Kind("FROM_CODE");
+ private static Type.Kind[] swigValues = {DEFAULT, FROM_FILE, FROM_COMMAND_LINE, FROM_CODE};
+ private static int swigNext = 0;
+
+ public static Type.Kind swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException("No enum " + Type.class + " with value " + swigValue);
+ }
+
+ public static class Kind {
+ private final int swigValue;
+ private final String swigName;
+
+ public Kind(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueDouble.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueDouble.java
new file mode 100644
index 0000000000..da637c243c
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueDouble.java
@@ -0,0 +1,152 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class OptionValueDouble {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected OptionValueDouble(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(OptionValueDouble obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(OptionValueDouble obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteOptionValueDouble(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public OptionValueDouble(double value) {
+ this(DrealJNI.newOptionValueDoubleSWIG0(value), true);
+ }
+
+ public OptionValueDouble(OptionValueDouble arg0) {
+ this(DrealJNI.newOptionValueDoubleSWIG1(OptionValueDouble.getCPtr(arg0), arg0), true);
+ }
+
+ public OptionValueDouble assignOperator(OptionValueDouble arg0) {
+ return new OptionValueDouble(
+ DrealJNI.optionValueDoubleAssignOperatorSWIG0(
+ swigCPtr, this, OptionValueDouble.getCPtr(arg0), arg0),
+ false);
+ }
+
+ public OptionValueDouble assignOperator(double value) {
+ return new OptionValueDouble(
+ DrealJNI.optionValueDoubleAssignOperatorSWIG2(swigCPtr, this, value), false);
+ }
+
+ public OptionValueDouble assignOperator(SwigTypePDouble value) {
+ return new OptionValueDouble(
+ DrealJNI.optionValueDoubleAssignOperatorSWIG3(
+ swigCPtr, this, SwigTypePDouble.swigRelease(value)),
+ false);
+ }
+
+ public double get() {
+ return DrealJNI.optionValueDoubleGet(swigCPtr, this);
+ }
+
+ public void setFromCommandLine(double value) {
+ DrealJNI.optionValueDoubleSetFromCommandLine(swigCPtr, this, value);
+ }
+
+ public void setFromFile(double value) {
+ DrealJNI.optionValueDoubleSetFromFile(swigCPtr, this, value);
+ }
+
+ public static final class Type {
+ public static final OptionValueDouble.Type.Kind DEFAULT =
+ new OptionValueDouble.Type.Kind("DEFAULT");
+ public static final OptionValueDouble.Type.Kind FROM_FILE =
+ new OptionValueDouble.Type.Kind("FROM_FILE");
+ public static final OptionValueDouble.Type.Kind FROM_COMMAND_LINE =
+ new OptionValueDouble.Type.Kind("FROM_COMMAND_LINE");
+ public static final OptionValueDouble.Type.Kind FROM_CODE =
+ new OptionValueDouble.Type.Kind("FROM_CODE");
+
+ private static Type.Kind[] swigValues = {DEFAULT, FROM_FILE, FROM_COMMAND_LINE, FROM_CODE};
+ private static int swigNext = 0;
+
+ public static Type.Kind swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException("No enum " + Type.Kind.class + " with value " + swigValue);
+ }
+
+ public static class Kind {
+ private final int swigValue;
+ private final String swigName;
+
+ public Kind(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueInt.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueInt.java
new file mode 100644
index 0000000000..74fe15e9fe
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueInt.java
@@ -0,0 +1,150 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class OptionValueInt {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected OptionValueInt(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(OptionValueInt obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(OptionValueInt obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteOptionValueInt(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public OptionValueInt(int value) {
+ this(DrealJNI.newOptionValueIntSWIG0(value), true);
+ }
+
+ public OptionValueInt(OptionValueInt arg0) {
+ this(DrealJNI.newOptionValueIntSWIG1(OptionValueInt.getCPtr(arg0), arg0), true);
+ }
+
+ public OptionValueInt assignOperator(OptionValueInt arg0) {
+ return new OptionValueInt(
+ DrealJNI.optionValueIntAssignOperatorSWIG0(
+ swigCPtr, this, OptionValueInt.getCPtr(arg0), arg0),
+ false);
+ }
+
+ public OptionValueInt assignOperator(int value) {
+ return new OptionValueInt(
+ DrealJNI.optionValueIntAssignOperatorSWIG2(swigCPtr, this, value), false);
+ }
+
+ public OptionValueInt assignOperator(SwigTypePInt value) {
+ return new OptionValueInt(
+ DrealJNI.optionValueIntAssignOperatorSWIG3(swigCPtr, this, SwigTypePInt.swigRelease(value)),
+ false);
+ }
+
+ public int get() {
+ return DrealJNI.optionValueIntGet(swigCPtr, this);
+ }
+
+ public void setFromCommandLine(int value) {
+ DrealJNI.optionValueIntSetFromCommandLine(swigCPtr, this, value);
+ }
+
+ public void setFromFile(int value) {
+ DrealJNI.optionValueIntSetFromFile(swigCPtr, this, value);
+ }
+
+ public static final class Type {
+ public static final OptionValueInt.Type.Kind DEFAULT = new OptionValueInt.Type.Kind("DEFAULT");
+ public static final OptionValueInt.Type.Kind FROM_FILE =
+ new OptionValueInt.Type.Kind("FROM_FILE");
+ public static final OptionValueInt.Type.Kind FROM_COMMAND_LINE =
+ new OptionValueInt.Type.Kind("FROM_COMMAND_LINE");
+ public static final OptionValueInt.Type.Kind FROM_CODE =
+ new OptionValueInt.Type.Kind("FROM_CODE");
+
+ private static Type.Kind[] swigValues = {DEFAULT, FROM_FILE, FROM_COMMAND_LINE, FROM_CODE};
+ private static int swigNext = 0;
+
+ public static Type.Kind swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException("No enum " + Type.Kind.class + " with value " + swigValue);
+ }
+
+ public static class Kind {
+ private final int swigValue;
+ private final String swigName;
+
+ public Kind(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueUnsignedInt.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueUnsignedInt.java
new file mode 100644
index 0000000000..6586cb8828
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/OptionValueUnsignedInt.java
@@ -0,0 +1,147 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class OptionValueUnsignedInt {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected OptionValueUnsignedInt(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(OptionValueUnsignedInt obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(OptionValueUnsignedInt obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteOptionValueUnsignedInt(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public OptionValueUnsignedInt(SwigTypePUnit32T value) {
+ this(DrealJNI.newOptionValueUnsignedIntSWIG0(SwigTypePUnit32T.getCPtr(value)), true);
+ }
+
+ public OptionValueUnsignedInt(OptionValueUnsignedInt arg0) {
+ this(DrealJNI.newOptionValueUnsignedIntSWIG1(OptionValueUnsignedInt.getCPtr(arg0), arg0), true);
+ }
+
+ public OptionValueUnsignedInt assignOperator(OptionValueUnsignedInt arg0) {
+ return new OptionValueUnsignedInt(
+ DrealJNI.optionValueUnsignedIntAssignOperatorSWIG0(
+ swigCPtr, this, OptionValueUnsignedInt.getCPtr(arg0), arg0),
+ false);
+ }
+
+ public OptionValueUnsignedInt assignOperator(SwigTypePUnit32T value) {
+ return new OptionValueUnsignedInt(
+ DrealJNI.optionValueUnsignedIntAssignOperatorSWIG2(
+ swigCPtr, this, SwigTypePUnit32T.getCPtr(value)),
+ false);
+ }
+
+ public SwigTypePUnit32T get() {
+ return new SwigTypePUnit32T(DrealJNI.optionValueUnsignedIntGet(swigCPtr, this), false);
+ }
+
+ public void setFromCommandLine(SwigTypePUnit32T value) {
+ DrealJNI.optionValueUnsignedIntSetFromCommandLine(
+ swigCPtr, this, SwigTypePUnit32T.getCPtr(value));
+ }
+
+ public void setFromFile(SwigTypePUnit32T value) {
+ DrealJNI.optionValueUnsignedIntSetFromFile(swigCPtr, this, SwigTypePUnit32T.getCPtr(value));
+ }
+
+ public static final class Type {
+ public static final OptionValueUnsignedInt.Type.Kind DEFAULT =
+ new OptionValueUnsignedInt.Type.Kind("DEFAULT");
+ public static final OptionValueUnsignedInt.Type.Kind FROM_FILE =
+ new OptionValueUnsignedInt.Type.Kind("FROM_FILE");
+ public static final OptionValueUnsignedInt.Type.Kind FROM_COMMAND_LINE =
+ new OptionValueUnsignedInt.Type.Kind("FROM_COMMAND_LINE");
+ public static final OptionValueUnsignedInt.Type.Kind FROM_CODE =
+ new OptionValueUnsignedInt.Type.Kind("FROM_CODE");
+ private static Type.Kind[] swigValues = {DEFAULT, FROM_FILE, FROM_COMMAND_LINE, FROM_CODE};
+ private static int swigNext = 0;
+
+ public static Type.Kind swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException("No enum " + Type.Kind.class + " with value " + swigValue);
+ }
+
+ public static class Kind {
+ private final int swigValue;
+ private final String swigName;
+
+ public Kind(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/RelationalOperator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/RelationalOperator.java
new file mode 100644
index 0000000000..0e8cf703b0
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/RelationalOperator.java
@@ -0,0 +1,72 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public final class RelationalOperator {
+ public static final RelationalOperator.Type EQ = new RelationalOperator.Type("EQ");
+ public static final RelationalOperator.Type NEQ = new RelationalOperator.Type("NEQ");
+ public static final RelationalOperator.Type GT = new RelationalOperator.Type("GT");
+ public static final RelationalOperator.Type GEQ = new RelationalOperator.Type("GEQ");
+ public static final RelationalOperator.Type LT = new RelationalOperator.Type("LT");
+ public static final RelationalOperator.Type LEQ = new RelationalOperator.Type("LEQ");
+ private static RelationalOperator.Type[] swigValues = {EQ, NEQ, GT, GEQ, LT, LEQ};
+ private static int swigNext = 0;
+
+ @SuppressWarnings("unused")
+ private RelationalOperator() {
+ throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
+ }
+
+ public static RelationalOperator.Type swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length
+ && swigValue >= 0
+ && swigValues[swigValue].swigValue == swigValue) {
+ return swigValues[swigValue];
+ }
+ for (int i = 0; i < swigValues.length; i++) {
+ if (swigValues[i].swigValue == swigValue) {
+ return swigValues[i];
+ }
+ }
+ throw new IllegalArgumentException(
+ "No enum " + RelationalOperator.Type.class + " with value " + swigValue);
+ }
+
+ public static class Type {
+
+ private final int swigValue;
+ private final String swigName;
+
+ public Type(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext;
+ incrementSwigNext();
+ }
+
+ private void incrementSwigNext() {
+ swigNext++;
+ }
+
+ public int swigValue() {
+ return this.swigValue;
+ }
+
+ @Override
+ public String toString() {
+ return this.swigName;
+ }
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToUnorderedMap.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToUnorderedMap.java
new file mode 100644
index 0000000000..594d78c4c6
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToUnorderedMap.java
@@ -0,0 +1,65 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class SharedPointerToUnorderedMap {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected SharedPointerToUnorderedMap(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(SharedPointerToUnorderedMap obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SharedPointerToUnorderedMap obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteSharedPointerToUnorderedMap(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ @SuppressWarnings("unused")
+ public SharedPointerToUnorderedMap() {
+ this(DrealJNI.newSharedPointerToUnorderedMap(), true);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToUnorderedMapWithHashValue.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToUnorderedMapWithHashValue.java
new file mode 100644
index 0000000000..a9137b490b
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToUnorderedMapWithHashValue.java
@@ -0,0 +1,65 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class SharedPointerToUnorderedMapWithHashValue {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected SharedPointerToUnorderedMapWithHashValue(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(SharedPointerToUnorderedMapWithHashValue obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SharedPointerToUnorderedMapWithHashValue obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteSharedPointerToUnorderedMapWithHashValue(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ @SuppressWarnings("unused")
+ public SharedPointerToUnorderedMapWithHashValue() {
+ this(DrealJNI.newSharedPointerToUnorderedMapWithHashValue(), true);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToVector.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToVector.java
new file mode 100644
index 0000000000..3133fd9e49
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SharedPointerToVector.java
@@ -0,0 +1,65 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+import javax.annotation.concurrent.NotThreadSafe;
+
+@NotThreadSafe
+public class SharedPointerToVector {
+ private transient long swigCPtr;
+ protected transient boolean swigCMemOwn;
+
+ protected SharedPointerToVector(long cPtr, boolean cMemoryOwn) {
+ swigCMemOwn = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(SharedPointerToVector obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SharedPointerToVector obj) {
+ long ptr = 0;
+ if (obj != null) {
+ if (!obj.swigCMemOwn) {
+ throw new RuntimeException("Cannot release ownership as memory is not owned");
+ }
+ ptr = obj.swigCPtr;
+ obj.swigCMemOwn = false;
+ obj.delete();
+ }
+ return ptr;
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize1() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ DrealJNI.deleteSharedPointerToVector(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ }
+
+ public SharedPointerToVector() {
+ this(DrealJNI.newSharedPointerToVector(), true);
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox.java
new file mode 100644
index 0000000000..362a14daee
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox.java
@@ -0,0 +1,39 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox {
+ private transient long swigCPtr;
+
+ protected SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(
+ SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(
+ SwigTypeOptionValueStdFunctionIntBoxConstDynamicBitsetConstBoxPBox obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePBool.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePBool.java
new file mode 100644
index 0000000000..4a367507d2
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePBool.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePBool {
+ private transient long swigCPtr;
+
+ protected SwigTypePBool(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePBool() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePBool obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePBool obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePDouble.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePDouble.java
new file mode 100644
index 0000000000..269aaf8386
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePDouble.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePDouble {
+ private transient long swigCPtr;
+
+ protected SwigTypePDouble(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePDouble() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePDouble obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePDouble obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT.java
new file mode 100644
index 0000000000..67184820e5
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT {
+ private transient long swigCPtr;
+
+ protected SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePDrealOptionValueTDrealConfigSatDefaultPhaseT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePIbexInterval.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePIbexInterval.java
new file mode 100644
index 0000000000..33d5f47caf
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePIbexInterval.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePIbexInterval {
+ private transient long swigCPtr;
+
+ protected SwigTypePIbexInterval(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePIbexInterval() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePIbexInterval obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePIbexInterval obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePIbexIntervalVector.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePIbexIntervalVector.java
new file mode 100644
index 0000000000..20a01a624e
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePIbexIntervalVector.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePIbexIntervalVector {
+ private transient long swigCPtr;
+
+ protected SwigTypePIbexIntervalVector(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePIbexIntervalVector() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePIbexIntervalVector obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePIbexIntervalVector obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePInt.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePInt.java
new file mode 100644
index 0000000000..e092fff458
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePInt.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePInt {
+ private transient long swigCPtr;
+
+ protected SwigTypePInt(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePInt() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePInt obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePInt obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePOptionalTDrealBoxT.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePOptionalTDrealBoxT.java
new file mode 100644
index 0000000000..ccf0c949ac
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePOptionalTDrealBoxT.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePOptionalTDrealBoxT {
+ private transient long swigCPtr;
+
+ protected SwigTypePOptionalTDrealBoxT(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePOptionalTDrealBoxT() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePOptionalTDrealBoxT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePOptionalTDrealBoxT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePOptionalTStdStringT.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePOptionalTStdStringT.java
new file mode 100644
index 0000000000..579102c724
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePOptionalTStdStringT.java
@@ -0,0 +1,35 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePOptionalTStdStringT {
+ private transient long swigCPtr;
+
+ protected SwigTypePOptionalTStdStringT(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePOptionalTStdStringT() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePOptionalTStdStringT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePOptionalTStdStringT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT.java
new file mode 100644
index 0000000000..cdaf4d1e46
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT {
+ private transient long swigCPtr;
+
+ protected SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePScopedVectorTDrealDrakeSymbolicFormulaT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox.java
new file mode 100644
index 0000000000..b12a40d616
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdFunctionIntBoxConstDynamicBitsetConstBoxPBox obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdFunctionTFormulaFFormulaConstRFT.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdFunctionTFormulaFFormulaConstRFT.java
new file mode 100644
index 0000000000..18b1a87b46
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdFunctionTFormulaFFormulaConstRFT.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdFunctionTFormulaFFormulaConstRFT {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdFunctionTFormulaFFormulaConstRFT(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdFunctionTFormulaFFormulaConstRFT() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdFunctionTFormulaFFormulaConstRFT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdFunctionTFormulaFFormulaConstRFT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdInitializerListTDrealDrakeSymboliVariableT.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdInitializerListTDrealDrakeSymboliVariableT.java
new file mode 100644
index 0000000000..7fe7310efc
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdInitializerListTDrealDrakeSymboliVariableT.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdInitializerListTDrealDrakeSymboliVariableT {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdInitializerListTDrealDrakeSymboliVariableT(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdInitializerListTDrealDrakeSymboliVariableT() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdInitializerListTDrealDrakeSymboliVariableT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdInitializerListTDrealDrakeSymboliVariableT obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdOstream.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdOstream.java
new file mode 100644
index 0000000000..bd5a20bd05
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdOstream.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdOstream {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdOstream(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdOstream() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdOstream obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdOstream obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator.java
new file mode 100644
index 0000000000..3d2d1b81a6
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator.java
new file mode 100644
index 0000000000..62cdcf5762
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator.java
@@ -0,0 +1,39 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(
+ SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(
+ SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator.java
new file mode 100644
index 0000000000..9d4f45ba8f
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator.java
new file mode 100644
index 0000000000..a2fdfeff3d
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator.java
@@ -0,0 +1,38 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(
+ SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType.java
new file mode 100644
index 0000000000..ed604b8691
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdSetTDrealDrakeSymbolicVariableTSizeType obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariable.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariable.java
new file mode 100644
index 0000000000..cd3f07930a
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariable.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdUnorderedMapVariableDoubleHashValueVariable {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdUnorderedMapVariableDoubleHashValueVariable(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdUnorderedMapVariableDoubleHashValueVariable() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdUnorderedMapVariableDoubleHashValueVariable obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdUnorderedMapVariableDoubleHashValueVariable obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator.java
new file mode 100644
index 0000000000..94398b6b5c
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator.java
@@ -0,0 +1,39 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(
+ SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(
+ SwigTypePStdUnorderedMapVariableDoubleHashValueVariableConstIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator.java
new file mode 100644
index 0000000000..f5621e301a
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator.java
@@ -0,0 +1,39 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(
+ SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(
+ SwigTypePStdUnorderedMapVariableDoubleHashValueVariableIterator obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableExpressionHashValueVariable.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableExpressionHashValueVariable.java
new file mode 100644
index 0000000000..dfb24f2dc7
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableExpressionHashValueVariable.java
@@ -0,0 +1,38 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdUnorderedMapVariableExpressionHashValueVariable {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdUnorderedMapVariableExpressionHashValueVariable(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdUnorderedMapVariableExpressionHashValueVariable() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdUnorderedMapVariableExpressionHashValueVariable obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(
+ SwigTypePStdUnorderedMapVariableExpressionHashValueVariable obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableFormulaHashValueVariable.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableFormulaHashValueVariable.java
new file mode 100644
index 0000000000..0384516928
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePStdUnorderedMapVariableFormulaHashValueVariable.java
@@ -0,0 +1,37 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer
+//
+// SPDX-License-Identifier: Apache-2.0
+
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (https://www.swig.org).
+ * Version 4.1.1
+ *
+ * Do not make changes to this file unless you know what you are doing - modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+package org.sosy_lab.java_smt.solvers.dreal4.drealjni;
+
+public class SwigTypePStdUnorderedMapVariableFormulaHashValueVariable {
+ private transient long swigCPtr;
+
+ protected SwigTypePStdUnorderedMapVariableFormulaHashValueVariable(
+ long cPtr, @SuppressWarnings("unused") boolean futureUse) {
+ swigCPtr = cPtr;
+ }
+
+ protected SwigTypePStdUnorderedMapVariableFormulaHashValueVariable() {
+ swigCPtr = 0;
+ }
+
+ protected static long getCPtr(SwigTypePStdUnorderedMapVariableFormulaHashValueVariable obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected static long swigRelease(SwigTypePStdUnorderedMapVariableFormulaHashValueVariable obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+}
diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePUnit32T.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePUnit32T.java
new file mode 100644
index 0000000000..ab14a9f112
--- /dev/null
+++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypePUnit32T.java
@@ -0,0 +1,36 @@
+// This file is part of JavaSMT,
+// an API wrapper for a collection of SMT solvers:
+// https://github.com/sosy-lab/java-smt
+//
+// SPDX-FileCopyrightText: 2023 Dirk Beyer