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 pFromToMapping) { + DRealTerm[] changeFrom = new DRealTerm[pFromToMapping.size()]; + DRealTerm[] changeTo = new DRealTerm[pFromToMapping.size()]; + int idx = 0; + for (Map.Entry 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 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 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 +// +// 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 SwigTypePUnit32T { + private transient long swigCPtr; + + protected SwigTypePUnit32T(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SwigTypePUnit32T() { + swigCPtr = 0; + } + + protected static long getCPtr(SwigTypePUnit32T obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected static long swigRelease(SwigTypePUnit32T obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType.java new file mode 100644 index 0000000000..65abfb5c21 --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType.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 SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType { + private transient long swigCPtr; + + protected SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType( + long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType() { + swigCPtr = 0; + } + + protected static long getCPtr( + SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected static long swigRelease( + SwigTypeStdInitializerListStdUnorderedMapTVariableDoubleHashValueVariableValueType obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Variable.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Variable.java new file mode 100644 index 0000000000..b661d08f77 --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Variable.java @@ -0,0 +1,166 @@ +// 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 Variable { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected Variable(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(Variable obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected static long swigRelease(Variable 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("Finalize") + protected void finalize1() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + DrealJNI.deleteVariable(swigCPtr); + } + swigCPtr = 0; + } + } + + public Variable(Variable arg0) { + this(DrealJNI.newVariableSWIG0(Variable.getCPtr(arg0), arg0), true); + } + + public Variable assignOperator(Variable arg0) { + return new Variable( + DrealJNI.variableAssignOperatorSWIG0(swigCPtr, this, Variable.getCPtr(arg0), arg0), false); + } + + public Variable() { + this(DrealJNI.newVariableSWIG1(), true); + } + + public Variable(String name, Variable.Type.Kind type) { + this(DrealJNI.newVariableSWIG2(name, type.swigValue()), true); + } + + public Variable(String name) { + this(DrealJNI.newVariableSWIG3(name), true); + } + + public Variable(String name, Variable.Type.Kind type, boolean modelVariable) { + this(DrealJNI.newVariableSWIG4(name, type.swigValue(), modelVariable), true); + } + + public boolean isDummy() { + return DrealJNI.variableIsDummy(swigCPtr, this); + } + + public long getId() { + return DrealJNI.variableGetId(swigCPtr, this); + } + + public Variable.Type.Kind getType() { + return Variable.Type.swigToEnum(DrealJNI.variableGetType(swigCPtr, this)); + } + + public long getHash() { + return DrealJNI.variableGetHash(swigCPtr, this); + } + + public String getName() { + return DrealJNI.variableGetName(swigCPtr, this); + } + + @Override + public String toString() { + return DrealJNI.variableToString(swigCPtr, this); + } + + public boolean equalTo(Variable v) { + return DrealJNI.variableEqualTo(swigCPtr, this, Variable.getCPtr(v), v); + } + + public boolean less(Variable v) { + return DrealJNI.variableLess(swigCPtr, this, Variable.getCPtr(v), v); + } + + public static final class Type { + public static final Variable.Type.Kind CONTINUOUS = new Variable.Type.Kind("CONTINUOUS"); + public static final Variable.Type.Kind INTEGER = new Variable.Type.Kind("INTEGER"); + public static final Variable.Type.Kind BINARY = new Variable.Type.Kind("BINARY"); + public static final Variable.Type.Kind BOOLEAN = new Variable.Type.Kind("BOOLEAN"); + private static Type.Kind[] swigValues = {CONTINUOUS, INTEGER, BINARY, BOOLEAN}; + 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 String swigName; + private final int swigValue; + + public Kind(String swigName) { + this.swigName = swigName; + swigValue = swigNext; + incrementSwigNext(); + } + + private void incrementSwigNext() { + swigNext++; + } + + public int swigValue() { + return swigValue; + } + + @Override + public String toString() { + return swigName; + } + } + } +} diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableIntUnorderedMap.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableIntUnorderedMap.java new file mode 100644 index 0000000000..091519ab20 --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableIntUnorderedMap.java @@ -0,0 +1,274 @@ +// 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 VariableIntUnorderedMap extends java.util.AbstractMap { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected VariableIntUnorderedMap(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(VariableIntUnorderedMap obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected static long swigRelease(VariableIntUnorderedMap 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.deleteVaribaleIntUnorderedMap(swigCPtr); + } + swigCPtr = 0; + } + } + + @Override + public int size() { + return sizeImpl(); + } + + @Override + public boolean containsKey(java.lang.Object key) { + if (!(key instanceof Variable)) { + return false; + } + + return containsImpl((Variable) key); + } + + @Override + public Integer get(java.lang.Object key) { + if (!(key instanceof Variable)) { + return null; + } + + Iterator itr = find((Variable) key); + if (itr.isNot(end())) { + return itr.getValue(); + } + + return null; + } + + @Override + public Integer put(Variable key, Integer value) { + Iterator itr = find(key); + if (itr.isNot(end())) { + Integer oldValue = itr.getValue(); + itr.setValue(value); + return oldValue; + } else { + putUnchecked(key, value); + return null; + } + } + + @Override + public Integer remove(java.lang.Object key) { + if (!(key instanceof Variable)) { + return null; + } + + Iterator itr = find((Variable) key); + if (itr.isNot(end())) { + Integer 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 Variable getKey() { + return iterator.getKey(); + } + + @Override + public Integer getValue() { + return iterator.getValue(); + } + + @Override + public Integer setValue(Integer newValue) { + Integer oldValue = iterator.getValue(); + iterator.setValue(newValue); + return oldValue; + } + }.init(itr)); + itr = itr.getNextUnchecked(); + } + + return setToReturn; + } + + public VariableIntUnorderedMap() { + this(DrealJNI.newVaribaleIntUnorderedMapSWIG0(), true); + } + + public VariableIntUnorderedMap(VariableIntUnorderedMap other) { + this( + DrealJNI.newVaribaleIntUnorderedMapSWIG1(VariableIntUnorderedMap.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.deleteVaribaleIntUnorderedMapIterator(swigCPtr); + } + swigCPtr = 0; + } + } + + private VariableIntUnorderedMap.Iterator getNextUnchecked() { + return new VariableIntUnorderedMap.Iterator( + DrealJNI.varibaleIntUnorderedMapIteratorGetNextUnchecked(swigCPtr, this), true); + } + + private boolean isNot(VariableIntUnorderedMap.Iterator other) { + return DrealJNI.varibaleIntUnorderedMapIteratorIsNot( + swigCPtr, this, VariableIntUnorderedMap.Iterator.getCPtr(other), other); + } + + private Variable getKey() { + return new Variable(DrealJNI.varibaleIntUnorderedMapIteratorGetKey(swigCPtr, this), true); + } + + private int getValue() { + return DrealJNI.varibaleIntUnorderedMapIteratorGetValue(swigCPtr, this); + } + + private void setValue(int newValue) { + DrealJNI.varibaleIntUnorderedMapIteratorSetValue(swigCPtr, this, newValue); + } + } + + @Override + public boolean isEmpty() { + return DrealJNI.varibaleIntUnorderedMapIsEmpty(swigCPtr, this); + } + + @Override + public void clear() { + DrealJNI.varibaleIntUnorderedMapClear(swigCPtr, this); + } + + private VariableIntUnorderedMap.Iterator find(Variable key) { + return new VariableIntUnorderedMap.Iterator( + DrealJNI.varibaleIntUnorderedMapFind(swigCPtr, this, Variable.getCPtr(key), key), true); + } + + private VariableIntUnorderedMap.Iterator begin() { + return new VariableIntUnorderedMap.Iterator( + DrealJNI.varibaleIntUnorderedMapBegin(swigCPtr, this), true); + } + + private VariableIntUnorderedMap.Iterator end() { + return new VariableIntUnorderedMap.Iterator( + DrealJNI.varibaleIntUnorderedMapEnd(swigCPtr, this), true); + } + + private int sizeImpl() { + return DrealJNI.varibaleIntUnorderedMapSizeImpl(swigCPtr, this); + } + + private boolean containsImpl(Variable key) { + return DrealJNI.varibaleIntUnorderedMapContainsImpl(swigCPtr, this, Variable.getCPtr(key), key); + } + + private void putUnchecked(Variable key, int value) { + DrealJNI.varibaleIntUnorderedMapPutUnchecked(swigCPtr, this, Variable.getCPtr(key), key, value); + } + + private void removeUnchecked(VariableIntUnorderedMap.Iterator itr) { + DrealJNI.varibaleIntUnorderedMapRemoveUnchecked( + swigCPtr, this, VariableIntUnorderedMap.Iterator.getCPtr(itr), itr); + } +} diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableSet.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableSet.java new file mode 100644 index 0000000000..6e9d312da2 --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableSet.java @@ -0,0 +1,268 @@ +// 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 VariableSet extends java.util.AbstractSet { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected VariableSet(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(VariableSet obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected static long swigRelease(VariableSet 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.deleteVariableSet(swigCPtr); + } + swigCPtr = 0; + } + } + + public VariableSet(java.util.Collection collection) { + this(); + addAll(collection); + } + + @Override + public int size() { + return sizeImpl(); + } + + @Override + public boolean add(Variable key) { + return addImpl(key); + } + + @CanIgnoreReturnValue + @Override + public boolean addAll(java.util.Collection collection) { + boolean didAddElement = false; + for (java.lang.Object object : collection) { + didAddElement = add((Variable) 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 = VariableSet.this.begin(); + end = VariableSet.this.end(); + return this; + } + + @Override + public Variable 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 Variable 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 Variable)) { + return false; + } + + return containsImpl((Variable) 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 Variable)) { + return false; + } + + return removeImpl((Variable) 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.deleteVariableSetIterator(swigCPtr); + } + swigCPtr = 0; + } + } + + private void incrementUnchecked() { + DrealJNI.variableSetIteratorIncrementUnchecked(swigCPtr, this); + } + + private Variable derefUnchecked() { + return new Variable(DrealJNI.variableSetIteratorDerefUnchecked(swigCPtr, this), true); + } + + private boolean isNot(VariableSet.Iterator other) { + return DrealJNI.variableSetIteratorIsNot( + swigCPtr, this, VariableSet.Iterator.getCPtr(other), other); + } + } + + public VariableSet() { + this(DrealJNI.newVariableSetSWIG0(), true); + } + + public VariableSet(VariableSet other) { + this(DrealJNI.newVariableSetSWIG1(VariableSet.getCPtr(other), other), true); + } + + @Override + public boolean isEmpty() { + return DrealJNI.variableSetIsEmpty(swigCPtr, this); + } + + @Override + public void clear() { + DrealJNI.variableSetClear(swigCPtr, this); + } + + private VariableSet.Iterator begin() { + return new VariableSet.Iterator(DrealJNI.variableSetBegin(swigCPtr, this), true); + } + + private VariableSet.Iterator end() { + return new VariableSet.Iterator(DrealJNI.variableSetEnd(swigCPtr, this), true); + } + + public boolean addImpl(Variable key) { + return DrealJNI.variableSetAddImpl(swigCPtr, this, Variable.getCPtr(key), key); + } + + private boolean containsImpl(Variable key) { + return DrealJNI.variableSetContainsImpl(swigCPtr, this, Variable.getCPtr(key), key); + } + + private boolean removeImpl(Variable key) { + return DrealJNI.variableSetRemoveImpl(swigCPtr, this, Variable.getCPtr(key), key); + } + + private int sizeImpl() { + return DrealJNI.variableSetSizeImpl(swigCPtr, this); + } + + @SuppressWarnings("unused") + private boolean hasNextImpl(VariableSet.Iterator itr) { + return DrealJNI.variableSetHasNextImpl(swigCPtr, this, VariableSet.Iterator.getCPtr(itr), itr); + } +} diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableVector.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableVector.java new file mode 100644 index 0000000000..5c670e0652 --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/VariableVector.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 VariableVector extends java.util.AbstractList + implements java.util.RandomAccess { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected VariableVector(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(VariableVector obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected static long swigRelease(VariableVector 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.deleteVariableVector(swigCPtr); + } + swigCPtr = 0; + } + } + + public VariableVector(Variable[] initialElements) { + this(); + reserve(initialElements.length); + this.addAll(Arrays.asList(initialElements)); + } + + public VariableVector(Iterable initialElements) { + this(); + Iterables.addAll(this, initialElements); + } + + @Override + public Variable get(int index) { + return doGet(index); + } + + @Override + public Variable set(int index, Variable e) { + return doSet(index, e); + } + + @Override + public boolean add(Variable e) { + modCount++; + doAdd(e); + return true; + } + + @Override + public void add(int index, Variable e) { + modCount++; + doAdd(index, e); + } + + @Override + public Variable 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 VariableVector() { + this(DrealJNI.newVariableVectorSWIG0(), true); + } + + public VariableVector(VariableVector other) { + this(DrealJNI.newVariableVectorSWIG1(VariableVector.getCPtr(other), other), true); + } + + public long capacity() { + return DrealJNI.variableVectorCapacity(swigCPtr, this); + } + + public void reserve(long n) { + DrealJNI.variableVectorReserve(swigCPtr, this, n); + } + + @Override + public boolean isEmpty() { + return DrealJNI.variableVectorIsEmpty(swigCPtr, this); + } + + @Override + public void clear() { + DrealJNI.variableVectorClear(swigCPtr, this); + } + + public VariableVector(int count, Variable value) { + this(DrealJNI.newVariableVectorSWIG2(count, Variable.getCPtr(value), value), true); + } + + private int doSize() { + return DrealJNI.variableVectorDoSize(swigCPtr, this); + } + + private void doAdd(Variable x) { + DrealJNI.variableVectorDoAddSWIG0(swigCPtr, this, Variable.getCPtr(x), x); + } + + private void doAdd(int index, Variable x) { + DrealJNI.variableVectorDoAddSWIG1(swigCPtr, this, index, Variable.getCPtr(x), x); + } + + private Variable doRemove(int index) { + return new Variable(DrealJNI.variableVectorDoRemove(swigCPtr, this, index), true); + } + + private Variable doGet(int index) { + return new Variable(DrealJNI.variableVectorDoGet(swigCPtr, this, index), false); + } + + private Variable doSet(int index, Variable val) { + return new Variable( + DrealJNI.variableVectorDoSet(swigCPtr, this, index, Variable.getCPtr(val), val), true); + } + + private void doRemoveRange(int fromIndex, int toIndex) { + DrealJNI.variableVectorDoRemoveRange(swigCPtr, this, fromIndex, toIndex); + } +} diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Variables.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Variables.java new file mode 100644 index 0000000000..0aa27336fb --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/Variables.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 + +/* ---------------------------------------------------------------------------- + * 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; + +@SuppressWarnings("unused") +@NotThreadSafe +public class Variables { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected Variables(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(Variables obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected static long swigRelease(Variables 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.deleteVariables(swigCPtr); + } + swigCPtr = 0; + } + } + + public Variables(Variables arg0) { + this(DrealJNI.newVariablesSWIG0(Variables.getCPtr(arg0), arg0), true); + } + + public Variables assignOperator(Variables arg0) { + return new Variables( + DrealJNI.variablesAssignOperatorSWIG0(swigCPtr, this, Variables.getCPtr(arg0), arg0), + false); + } + + public Variables() { + this(DrealJNI.newVariablesSWIG1(), true); + } + + public Variables(Variable[] arr) { + this(DrealJNI.newVariablesSWIG1(), true); + for (Variable var : arr) { + this.insert(var); + } + } + + public Variables(SwigTypePStdInitializerListTDrealDrakeSymboliVariableT init) { + this( + DrealJNI.newVariablesSWIG2( + SwigTypePStdInitializerListTDrealDrakeSymboliVariableT.getCPtr(init)), + true); + } + + public long getHash() { + return DrealJNI.variablesGetHash(swigCPtr, this); + } + + public long size() { + return DrealJNI.variablesSize(swigCPtr, this); + } + + public boolean empty() { + return DrealJNI.variablesEmpty(swigCPtr, this); + } + + @Override + public String toString() { + return DrealJNI.variablesToString(swigCPtr, this); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator begin() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator( + DrealJNI.variablesBeginSWIG0(swigCPtr, this), true); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator end() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator( + DrealJNI.variablesEndSWIG0(swigCPtr, this), true); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator cbegin() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator( + DrealJNI.variablesCbegin(swigCPtr, this), true); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator cend() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTConstIterator( + DrealJNI.variablesCend(swigCPtr, this), true); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator rbegin() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator( + DrealJNI.variablesRbeginSWIG0(swigCPtr, this), true); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator rend() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTReverseIterator( + DrealJNI.variablesRendSWIG0(swigCPtr, this), true); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator crbegin() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator( + DrealJNI.variablesCrbegin(swigCPtr, this), true); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator crend() { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTConstReverseIterator( + DrealJNI.variablesCrend(swigCPtr, this), true); + } + + public void insert(Variable var) { + DrealJNI.variablesInsertSWIG0(swigCPtr, this, Variable.getCPtr(var), var); + } + + public void insert(Variables vars) { + DrealJNI.variablesInsertSWIG2(swigCPtr, this, Variables.getCPtr(vars), vars); + } + + public long erase(Variable key) { + return DrealJNI.variablesEraseSWIG0(swigCPtr, this, Variable.getCPtr(key), key); + } + + public long erase(Variables vars) { + return DrealJNI.variablesEraseSWIG1(swigCPtr, this, Variables.getCPtr(vars), vars); + } + + public SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator find(Variable key) { + return new SwigTypePStdSetTDrealDrakeSymbolicVariableTIterator( + DrealJNI.variablesFindSWIG0(swigCPtr, this, Variable.getCPtr(key), key), true); + } + + public boolean include(Variable key) { + return DrealJNI.variablesInclude(swigCPtr, this, Variable.getCPtr(key), key); + } + + public boolean isSubsetOf(Variables vars) { + return DrealJNI.variablesIsSubsetOf(swigCPtr, this, Variables.getCPtr(vars), vars); + } + + public boolean isSupersetOf(Variables vars) { + return DrealJNI.variablesIsSupersetOf(swigCPtr, this, Variables.getCPtr(vars), vars); + } + + public boolean isStrictSubsetOf(Variables vars) { + return DrealJNI.variablesIsStrictSubsetOf(swigCPtr, this, Variables.getCPtr(vars), vars); + } + + public boolean isStrictSupersetOf(Variables vars) { + return DrealJNI.variablesIsStrictSupersetOf(swigCPtr, this, Variables.getCPtr(vars), vars); + } +} diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/package-info.java b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/package-info.java new file mode 100644 index 0000000000..2a3a30ba81 --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/drealjni/package-info.java @@ -0,0 +1,14 @@ +// 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 + +/** Interface to the native C++ API and JNI for dReal. */ +@com.google.errorprone.annotations.CheckReturnValue +@javax.annotation.ParametersAreNonnullByDefault +@org.sosy_lab.common.annotations.FieldsAreNonnullByDefault +@org.sosy_lab.common.annotations.ReturnValuesAreNonnullByDefault +package org.sosy_lab.java_smt.solvers.dreal4.drealjni; diff --git a/src/org/sosy_lab/java_smt/solvers/dreal4/package-info.java b/src/org/sosy_lab/java_smt/solvers/dreal4/package-info.java new file mode 100644 index 0000000000..036a6582e4 --- /dev/null +++ b/src/org/sosy_lab/java_smt/solvers/dreal4/package-info.java @@ -0,0 +1,14 @@ +// 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 + +/** Interface to the SMT solver dReal. */ +@com.google.errorprone.annotations.CheckReturnValue +@javax.annotation.ParametersAreNonnullByDefault +@org.sosy_lab.common.annotations.FieldsAreNonnullByDefault +@org.sosy_lab.common.annotations.ReturnValuesAreNonnullByDefault +package org.sosy_lab.java_smt.solvers.dreal4; diff --git a/src/org/sosy_lab/java_smt/test/BooleanFormulaSubjectTest.java b/src/org/sosy_lab/java_smt/test/BooleanFormulaSubjectTest.java index 2f85cca4b8..0a1e1d9012 100644 --- a/src/org/sosy_lab/java_smt/test/BooleanFormulaSubjectTest.java +++ b/src/org/sosy_lab/java_smt/test/BooleanFormulaSubjectTest.java @@ -9,7 +9,6 @@ package org.sosy_lab.java_smt.test; import static com.google.common.truth.ExpectFailure.assertThat; -import static com.google.common.truth.TruthJUnit.assume; import static org.sosy_lab.java_smt.test.BooleanFormulaSubject.booleanFormulasOf; import com.google.common.base.Throwables; @@ -18,7 +17,6 @@ import com.google.common.truth.SimpleSubjectBuilder; import org.junit.Before; import org.junit.Test; -import org.sosy_lab.java_smt.SolverContextFactory.Solvers; import org.sosy_lab.java_smt.api.BooleanFormula; import org.sosy_lab.java_smt.api.SolverException; @@ -66,12 +64,7 @@ public void testIsSatisfiableYes() throws SolverException, InterruptedException @Test public void testIsSatisfiableNo() { - // INFO: OpenSMT does not support unsat core - assume() - .withMessage("Solver does not support unsat core generation in a usable way") - .that(solverToUse()) - .isNoneOf(Solvers.BOOLECTOR, Solvers.OPENSMT); - + requireUnsatCore(); AssertionError failure = expectFailure(whenTesting -> whenTesting.that(contradiction).isSatisfiable()); assertThat(failure).factValue("which has unsat core").isNotEmpty(); @@ -167,9 +160,9 @@ public void testIsEquisatisfiableToYes() throws SolverException, InterruptedExce public void testIsEquisatisfiableToNo() { BooleanFormula simpleFormula2; if (imgr != null) { - simpleFormula2 = imgr.equal(imgr.makeVariable("a"), imgr.makeNumber("2")); + simpleFormula2 = imgr.equal(imgr.makeVariable("a"), imgr.makeNumber(2)); } else { - simpleFormula2 = bvmgr.equal(bvmgr.makeVariable(2, "a"), bvmgr.makeVariable(2, "2")); + simpleFormula2 = bvmgr.equal(bvmgr.makeVariable(2, "a"), bvmgr.makeBitvector(2, 2)); } AssertionError failure = expectFailure( diff --git a/src/org/sosy_lab/java_smt/test/FormulaManagerTest.java b/src/org/sosy_lab/java_smt/test/FormulaManagerTest.java index fffdcb36e7..978a42d2f3 100644 --- a/src/org/sosy_lab/java_smt/test/FormulaManagerTest.java +++ b/src/org/sosy_lab/java_smt/test/FormulaManagerTest.java @@ -41,12 +41,19 @@ public void testEmptySubstitution() throws SolverException, InterruptedException IntegerFormula variable3 = imgr.makeVariable("variable3"); IntegerFormula variable4 = imgr.makeVariable("variable4"); - FunctionDeclaration uf2Decl = - fmgr.declareUF("uf", BooleanType, IntegerType, IntegerType); - BooleanFormula f1 = fmgr.callUF(uf2Decl, variable1, variable3); - BooleanFormula f2 = fmgr.callUF(uf2Decl, variable2, variable4); - BooleanFormula input = bmgr.xor(f1, f2); + BooleanFormula input; + if (solverToUse() == Solvers.DREAL4) { + BooleanFormula f1 = imgr.lessOrEquals(variable1, variable2); + BooleanFormula f2 = imgr.lessOrEquals(variable3, variable4); + input = bmgr.xor(f1, f2); + } else { + FunctionDeclaration uf2Decl = + fmgr.declareUF("uf", BooleanType, IntegerType, IntegerType); + BooleanFormula f1 = fmgr.callUF(uf2Decl, variable1, variable3); + BooleanFormula f2 = fmgr.callUF(uf2Decl, variable2, variable4); + input = bmgr.xor(f1, f2); + } BooleanFormula out = mgr.substitute(input, ImmutableMap.of()); assertThatFormula(out).isEquivalentTo(input); } @@ -61,17 +68,32 @@ public void testNoSubstitution() throws SolverException, InterruptedException { IntegerFormula variable3 = imgr.makeVariable("variable3"); IntegerFormula variable4 = imgr.makeVariable("variable4"); - FunctionDeclaration uf2Decl = - fmgr.declareUF("uf", BooleanType, IntegerType, IntegerType); - BooleanFormula f1 = fmgr.callUF(uf2Decl, variable1, variable3); - BooleanFormula f2 = fmgr.callUF(uf2Decl, variable2, variable4); - BooleanFormula input = bmgr.xor(f1, f2); + BooleanFormula input; - Map substitution = - ImmutableMap.of( - bmgr.makeVariable("a"), bmgr.makeVariable("a1"), - bmgr.makeVariable("b"), bmgr.makeVariable("b1"), - bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")), bmgr.makeVariable("e")); + Map substitution; + + if (solverToUse() == Solvers.DREAL4) { + BooleanFormula f1 = imgr.lessOrEquals(variable1, variable2); + BooleanFormula f2 = imgr.lessOrEquals(variable3, variable4); + input = bmgr.xor(f1, f2); + + substitution = + ImmutableMap.of( + bmgr.makeVariable("a"), bmgr.makeVariable("a1"), + bmgr.makeVariable("b"), bmgr.makeVariable("b1")); + } else { + FunctionDeclaration uf2Decl = + fmgr.declareUF("uf", BooleanType, IntegerType, IntegerType); + BooleanFormula f1 = fmgr.callUF(uf2Decl, variable1, variable3); + BooleanFormula f2 = fmgr.callUF(uf2Decl, variable2, variable4); + input = bmgr.xor(f1, f2); + + substitution = + ImmutableMap.of( + bmgr.makeVariable("a"), bmgr.makeVariable("a1"), + bmgr.makeVariable("b"), bmgr.makeVariable("b1"), + bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")), bmgr.makeVariable("e")); + } BooleanFormula out = mgr.substitute(input, substitution); assertThatFormula(out).isEquivalentTo(input); @@ -85,18 +107,36 @@ public void testSubstitution() throws SolverException, InterruptedException { bmgr.or( bmgr.and(bmgr.makeVariable("a"), bmgr.makeVariable("b")), bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d"))); - BooleanFormula out = - mgr.substitute( - input, - ImmutableMap.of( - bmgr.makeVariable("a"), bmgr.makeVariable("a1"), - bmgr.makeVariable("b"), bmgr.makeVariable("b1"), - bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")), bmgr.makeVariable("e"))); - assertThatFormula(out) - .isEquivalentTo( - bmgr.or( - bmgr.and(bmgr.makeVariable("a1"), bmgr.makeVariable("b1")), - bmgr.makeVariable("e"))); + + BooleanFormula out; + + if (solverToUse() == Solvers.DREAL4) { + out = + mgr.substitute( + input, + ImmutableMap.of( + bmgr.makeVariable("a"), bmgr.makeVariable("a1"), + bmgr.makeVariable("b"), bmgr.makeVariable("b1"))); + assertThatFormula(out) + .isEquivalentTo( + bmgr.or( + bmgr.and(bmgr.makeVariable("a1"), bmgr.makeVariable("b1")), + bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")))); + } else { + out = + mgr.substitute( + input, + ImmutableMap.of( + bmgr.makeVariable("a"), bmgr.makeVariable("a1"), + bmgr.makeVariable("b"), bmgr.makeVariable("b1"), + bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")), + bmgr.makeVariable("e"))); + assertThatFormula(out) + .isEquivalentTo( + bmgr.or( + bmgr.and(bmgr.makeVariable("a1"), bmgr.makeVariable("b1")), + bmgr.makeVariable("e"))); + } } @Test @@ -107,17 +147,34 @@ public void testSubstitutionTwice() throws SolverException, InterruptedException bmgr.or( bmgr.and(bmgr.makeVariable("a"), bmgr.makeVariable("b")), bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d"))); - ImmutableMap substitution = - ImmutableMap.of( - bmgr.makeVariable("a"), bmgr.makeVariable("a1"), - bmgr.makeVariable("b"), bmgr.makeVariable("b1"), - bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")), bmgr.makeVariable("e")); - BooleanFormula out = mgr.substitute(input, substitution); - assertThatFormula(out) - .isEquivalentTo( - bmgr.or( - bmgr.and(bmgr.makeVariable("a1"), bmgr.makeVariable("b1")), - bmgr.makeVariable("e"))); + + ImmutableMap substitution; + BooleanFormula out; + + if (solverToUse() == Solvers.DREAL4) { + substitution = + ImmutableMap.of( + bmgr.makeVariable("a"), bmgr.makeVariable("a1"), + bmgr.makeVariable("b"), bmgr.makeVariable("b1")); + out = mgr.substitute(input, substitution); + assertThatFormula(out) + .isEquivalentTo( + bmgr.or( + bmgr.and(bmgr.makeVariable("a1"), bmgr.makeVariable("b1")), + bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")))); + } else { + substitution = + ImmutableMap.of( + bmgr.makeVariable("a"), bmgr.makeVariable("a1"), + bmgr.makeVariable("b"), bmgr.makeVariable("b1"), + bmgr.and(bmgr.makeVariable("c"), bmgr.makeVariable("d")), bmgr.makeVariable("e")); + out = mgr.substitute(input, substitution); + assertThatFormula(out) + .isEquivalentTo( + bmgr.or( + bmgr.and(bmgr.makeVariable("a1"), bmgr.makeVariable("b1")), + bmgr.makeVariable("e"))); + } BooleanFormula out2 = mgr.substitute(out, substitution); assertThatFormula(out2).isEquivalentTo(out); @@ -171,6 +228,9 @@ public void testSubstitutionSelfReference() throws SolverException, InterruptedE @Test public void formulaEqualsAndHashCode() { + // Solvers without UF (dReal) get their own test below + requireUF(); + // Solvers without integers (Boolector) get their own test below assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR); FunctionDeclaration fb = fmgr.declareUF("f_b", IntegerType, IntegerType); @@ -268,6 +328,41 @@ public void bitvectorFormulaEqualsAndHashCode() { .testEquals(); } + @Test + public void withOutUFFormulaEqualsAndHashCode() { + assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR); + + new EqualsTester() + .addEqualityGroup(bmgr.makeBoolean(true)) + .addEqualityGroup(bmgr.makeBoolean(false)) + .addEqualityGroup(bmgr.makeVariable("bool_a")) + .addEqualityGroup(imgr.makeVariable("int_a")) + + // Way of creating numbers should not make a difference. + .addEqualityGroup( + imgr.makeNumber(0.0), + imgr.makeNumber(0L), + imgr.makeNumber(BigInteger.ZERO), + imgr.makeNumber(BigDecimal.ZERO), + imgr.makeNumber("0")) + .addEqualityGroup( + imgr.makeNumber(1.0), + imgr.makeNumber(1L), + imgr.makeNumber(BigInteger.ONE), + imgr.makeNumber(BigDecimal.ONE), + imgr.makeNumber("1")) + + // The same formula when created twice should compare equal. + .addEqualityGroup(bmgr.makeVariable("bool_b"), bmgr.makeVariable("bool_b")) + .addEqualityGroup( + bmgr.and(bmgr.makeVariable("bool_a"), bmgr.makeVariable("bool_b")), + bmgr.and(bmgr.makeVariable("bool_a"), bmgr.makeVariable("bool_b"))) + .addEqualityGroup( + imgr.equal(imgr.makeNumber(0), imgr.makeVariable("int_a")), + imgr.equal(imgr.makeNumber(0), imgr.makeVariable("int_a"))) + .testEquals(); + } + @Test public void variableNameExtractorTest() { // Since Boolector does not support integers we use bitvectors @@ -302,6 +397,8 @@ public void variableNameExtractorTest() { @Test public void ufNameExtractorTest() { + requireUF(); + // Since Boolector does not support integers we use bitvectors for constraints if (imgr != null) { BooleanFormula constraint = diff --git a/src/org/sosy_lab/java_smt/test/HardFormulaRationalGenerator.java b/src/org/sosy_lab/java_smt/test/HardFormulaRationalGenerator.java new file mode 100644 index 0000000000..dba22fa266 --- /dev/null +++ b/src/org/sosy_lab/java_smt/test/HardFormulaRationalGenerator.java @@ -0,0 +1,58 @@ +// 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.test; + +import com.google.common.base.Preconditions; +import java.util.ArrayList; +import java.util.List; +import org.sosy_lab.java_smt.api.BooleanFormula; +import org.sosy_lab.java_smt.api.BooleanFormulaManager; +import org.sosy_lab.java_smt.api.RationalFormulaManager; + +/** Generator of hard formulas using the theory of rationals. */ +public class HardFormulaRationalGenerator { + private final RationalFormulaManager rfmgr; + private final BooleanFormulaManager bfmgr; + private static final String CHOICE_PREFIX = "b@"; + private static final String COUNTER_PREFIX = "i@"; + + public HardFormulaRationalGenerator(RationalFormulaManager pRfmgr, BooleanFormulaManager pBfmgr) { + rfmgr = pRfmgr; + bfmgr = pBfmgr; + } + + public BooleanFormula generate(int n) { + Preconditions.checkArgument(n >= 2); + List clauses = new ArrayList<>(); + clauses.add(rfmgr.equal(rfmgr.makeVariable(COUNTER_PREFIX + 0), rfmgr.makeNumber(0))); + int lastIdx = 0; + int expected = 0; + for (int i = 1; i < 2 * n; i += 2) { + BooleanFormula selector = bfmgr.makeVariable(CHOICE_PREFIX + i); + clauses.add(bfmgr.or(mkConstraint(i, 3, selector), mkConstraint(i, 2, bfmgr.not(selector)))); + clauses.add( + bfmgr.or(mkConstraint(i + 1, 3, bfmgr.not(selector)), mkConstraint(i + 1, 2, selector))); + lastIdx = i + 1; + expected += 5; + } + clauses.add( + rfmgr.greaterThan( + rfmgr.makeVariable(COUNTER_PREFIX + lastIdx), rfmgr.makeNumber(expected))); + return bfmgr.and(clauses); + } + + private BooleanFormula mkConstraint(int newIdx, int increment, BooleanFormula selector) { + return bfmgr.and( + selector, + rfmgr.equal( + rfmgr.makeVariable(COUNTER_PREFIX + newIdx), + rfmgr.add( + rfmgr.makeVariable(COUNTER_PREFIX + (newIdx - 1)), rfmgr.makeNumber(increment)))); + } +} diff --git a/src/org/sosy_lab/java_smt/test/ModelTest.java b/src/org/sosy_lab/java_smt/test/ModelTest.java index f1622b109b..1d5ec66a53 100644 --- a/src/org/sosy_lab/java_smt/test/ModelTest.java +++ b/src/org/sosy_lab/java_smt/test/ModelTest.java @@ -80,7 +80,7 @@ public class ModelTest extends SolverBasedTest0.ParameterizedSolverBasedTest0 { FormulaType.getArrayType(IntegerType, IntegerType); private static final ImmutableList SOLVERS_WITH_PARTIAL_MODEL = - ImmutableList.of(Solvers.Z3, Solvers.PRINCESS); + ImmutableList.of(Solvers.Z3, Solvers.PRINCESS, Solvers.DREAL4); @Before public void setup() { @@ -136,6 +136,13 @@ public void testGetNegativeIntegers() throws SolverException, InterruptedExcepti @Test public void testGetLargeIntegers() throws SolverException, InterruptedException { + assume() + .withMessage( + "This number is to big for integers in dReal, BigIntegers are not supported," + + " only in rationals.") + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireIntegers(); BigInteger large = new BigInteger("1000000000000000000000000000000000000000"); testModelGetters( @@ -170,6 +177,14 @@ public void testGetLargeIntegralRationals() throws SolverException, InterruptedE @Test public void testGetRationals() throws SolverException, InterruptedException { + assume() + .withMessage( + "dReal does get the an answer, just not as precise, because dReal uses " + + "double as rationals. Therefore the solution here is 333333/1000000 because of " + + "rounding.") + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireIntegers(); requireRationals(); for (String name : VARIABLE_NAMES) { @@ -243,6 +258,7 @@ public void testGetBvUfs() throws SolverException, InterruptedException { /** Test that different names are no problem for int UFs in the model. */ @Test public void testGetIntUfs() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); // Some names are specificly chosen to test the Boolector model // Use 1 instead of 0 or max bv value, as solvers tend to use 0, min or max as default @@ -266,6 +282,7 @@ public void testGetIntUfs() throws SolverException, InterruptedException { @Test public void testGetUFs() throws SolverException, InterruptedException { + requireUF(); // Boolector does not support integers if (imgr != null) { IntegerFormula x = @@ -299,6 +316,7 @@ public void testGetUFs() throws SolverException, InterruptedException { @Test public void testGetUFsWithMultipleAssignments() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); List constraints = new ArrayList<>(); @@ -335,6 +353,7 @@ public void testGetUFsWithMultipleAssignments() throws SolverException, Interrup @Test public void testGetUFwithMoreParams() throws Exception { + requireUF(); // Boolector does not support integers if (imgr != null) { IntegerFormula x = @@ -356,6 +375,7 @@ public void testGetUFwithMoreParams() throws Exception { @Test public void testGetMultipleUFsWithInts() throws Exception { + requireUF(); requireIntegers(); IntegerFormula arg1 = imgr.makeVariable("arg1"); IntegerFormula arg2 = imgr.makeVariable("arg2"); @@ -573,6 +593,7 @@ public void testGetMultipleUFsWithBvsWithMultipleArguments() throws Exception { // var = 1 & Exists boundVar . (boundVar = 0 & var = f(boundVar)) @Test public void testQuantifiedUF() throws SolverException, InterruptedException { + requireUF(); requireQuantifiers(); requireIntegers(); @@ -628,6 +649,7 @@ public void testQuantifiedUF() throws SolverException, InterruptedException { // var = 1 & boundVar = 1 & Exists boundVar . (boundVar = 0 & var = func(boundVar)) @Test public void testQuantifiedUF2() throws SolverException, InterruptedException { + requireUF(); requireQuantifiers(); requireIntegers(); @@ -819,7 +841,11 @@ public void testPartialModels2() throws SolverException, InterruptedException { prover.push(imgr.greaterThan(x, imgr.makeNumber(0))); assertThat(prover).isSatisfiable(); try (Model m = prover.getModel()) { - assertThat(m.evaluate(x)).isEqualTo(BigInteger.ONE); + if (solverToUse() != Solvers.DREAL4) { + assertThat(m.evaluate(x)).isEqualTo(BigInteger.ONE); + } else { + assertThat(m.evaluate(x)).isEqualTo(BigInteger.valueOf(1073741823)); + } // it works now, but maybe the model "x=1" for the constraint "x>0" is not valid for new // solvers. } @@ -1851,8 +1877,14 @@ public void quantifierTestShort() throws SolverException, InterruptedException { try (ProverEnvironment prover = context.newProverEnvironment(ProverOptions.GENERATE_MODELS)) { - // exists x : x==0 - prover.push(qmgr.exists(ctr, body)); + switch (solverToUse()) { + case DREAL4: // exist does not exist + prover.push(body); + break; + default: + // exists x : x==0 + prover.push(qmgr.exists(ctr, body)); + } assertThat(prover.isUnsat()).isFalse(); try (Model m = prover.getModel()) { for (ValueAssignment v : m) { @@ -2350,6 +2382,14 @@ public void testGetSmallIntegralRationals1() throws SolverException, Interrupted @Test public void testGetRationals1() throws SolverException, InterruptedException { + assume() + .withMessage( + "dReal does get the an answer, just not as precise, because dReal uses " + + "double as rationals. Therefore the solution here is 333333/2000000 because of " + + "rounding.") + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireRationals(); evaluateInModel( rmgr.equal(rmgr.makeVariable("x"), rmgr.makeNumber(Rational.ofString("1/3"))), diff --git a/src/org/sosy_lab/java_smt/test/NonLinearArithmeticTest.java b/src/org/sosy_lab/java_smt/test/NonLinearArithmeticTest.java index 786ae61578..df358c8527 100644 --- a/src/org/sosy_lab/java_smt/test/NonLinearArithmeticTest.java +++ b/src/org/sosy_lab/java_smt/test/NonLinearArithmeticTest.java @@ -38,8 +38,6 @@ public class NonLinearArithmeticTest extends SolverBas // Boolector, CVC4, SMTInterpol, MathSAT5 and OpenSMT do not fully support non-linear arithmetic // (though SMTInterpol and MathSAT5 support some parts) - - // INFO: OpenSmt does not suport nonlinear arithmetic static final ImmutableSet SOLVER_WITHOUT_NONLINEAR_ARITHMETIC = ImmutableSet.of( Solvers.SMTINTERPOL, @@ -180,6 +178,10 @@ public void testMultiplicationOfVariablesUnsatisfiable() // MathSAT supports non-linear multiplication assertThatFormula(f).isUnsatisfiable(); + } else if (solver == Solvers.DREAL4) { + // dReal does not support UF's and APPROXIMATE_ALWAYS/FALLBACK is disabled, so result should + // not change + assertThatFormula(f).isUnsatisfiable(); } else { assertExpectedUnsatifiabilityForNonLinearArithmetic(f); } @@ -200,11 +202,11 @@ public void testDivisionByConstant() throws SolverException, InterruptedExceptio @Test public void testDivisionByZero() throws SolverException, InterruptedException { - // INFO: OpenSmt does not allow division by zero assume() .withMessage("Solver %s does not support division by zero", solverToUse()) .that(solverToUse()) - .isNoneOf(Solvers.YICES2, Solvers.OPENSMT); + .isNoneOf(Solvers.YICES2, Solvers.OPENSMT, Solvers.DREAL4); + T a = nmgr.makeVariable("a"); T b = nmgr.makeVariable("b"); @@ -229,11 +231,14 @@ public void testDivisionByConstantUnsatisfiable() throws SolverException, Interr nmgr.equal(nmgr.divide(a, nmgr.makeNumber(3)), nmgr.makeNumber(2)), nmgr.equal(nmgr.divide(a, nmgr.makeNumber(2)), nmgr.makeNumber(3)))); - if (formulaType.equals(FormulaType.IntegerType) + if (solverToUse() == Solvers.DREAL4) { + // dReal does not support UF's and APPROXIMATE_ALWAYS/FALLBACK is disabled, so result should + // not change + assertThatFormula(f).isUnsatisfiable(); + } else if (formulaType.equals(FormulaType.IntegerType) && nonLinearArithmetic == NonLinearArithmetic.APPROXIMATE_ALWAYS) { // Integer division is always non-linear due to rounding rules assertThatFormula(f).isSatisfiable(); - } else { assertThatFormula(f).isUnsatisfiable(); } @@ -271,6 +276,10 @@ public void testDivisionUnsatisfiable() throws SolverException, InterruptedExcep // some solvers support non-linear multiplication (partially) assertThatFormula(f).isUnsatisfiable(); + } else if (solverToUse() == Solvers.DREAL4) { + // dReal does not support UF's and APPROXIMATE_ALWAYS/FALLBACK is disabled, so result should + // not change + assertThatFormula(f).isUnsatisfiable(); } else { assertExpectedUnsatifiabilityForNonLinearArithmetic(f); } diff --git a/src/org/sosy_lab/java_smt/test/NonLinearArithmeticWithModuloTest.java b/src/org/sosy_lab/java_smt/test/NonLinearArithmeticWithModuloTest.java index 16b811f764..24d0bf4eed 100644 --- a/src/org/sosy_lab/java_smt/test/NonLinearArithmeticWithModuloTest.java +++ b/src/org/sosy_lab/java_smt/test/NonLinearArithmeticWithModuloTest.java @@ -57,12 +57,16 @@ protected ConfigurationBuilder createTestConfigBuilder() { .setOption("solver.nonLinearArithmetic", nonLinearArithmetic.name()); } + // dReal does not support modulo and UF's, so if APPROXIMATE_FALLBACK/ALWAYS is tested, in + // dReal USE is still used, because UF's are not supported and therefore and + // UnsupportedOperationException is thrown caused by modulo operation call private IntegerFormula handleExpectedException(Supplier supplier) { try { return supplier.get(); } catch (UnsupportedOperationException e) { - if (nonLinearArithmetic == NonLinearArithmetic.USE - && NonLinearArithmeticTest.SOLVER_WITHOUT_NONLINEAR_ARITHMETIC.contains(solver)) { + if ((nonLinearArithmetic == NonLinearArithmetic.USE + && NonLinearArithmeticTest.SOLVER_WITHOUT_NONLINEAR_ARITHMETIC.contains(solver)) + || solverToUse() == Solvers.DREAL4) { throw new AssumptionViolatedException( "Expected UnsupportedOperationException was thrown correctly"); } diff --git a/src/org/sosy_lab/java_smt/test/NumeralFormulaManagerTest.java b/src/org/sosy_lab/java_smt/test/NumeralFormulaManagerTest.java index 4461a7495a..cd525c1955 100644 --- a/src/org/sosy_lab/java_smt/test/NumeralFormulaManagerTest.java +++ b/src/org/sosy_lab/java_smt/test/NumeralFormulaManagerTest.java @@ -9,12 +9,14 @@ package org.sosy_lab.java_smt.test; import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.TruthJUnit.assume; import static org.junit.Assert.assertThrows; import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; import org.junit.Test; +import org.sosy_lab.java_smt.SolverContextFactory.Solvers; import org.sosy_lab.java_smt.api.BooleanFormula; import org.sosy_lab.java_smt.api.Formula; import org.sosy_lab.java_smt.api.FormulaType; @@ -55,6 +57,12 @@ public void distinctTest2() throws SolverException, InterruptedException { @Test public void distinctTest3() throws SolverException, InterruptedException { + // dReal has delta-precision of 0.001 as default, therefore this formula is satisfiable + assume() + .withMessage("Solver %s has delta-precision.", solverToUse()) + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireIntegers(); IntegerFormula zero = imgr.makeNumber(0); IntegerFormula four = imgr.makeNumber(4); @@ -86,10 +94,12 @@ public void failOnInvalidStringRational() { @SuppressWarnings("CheckReturnValue") @Test public void testSubTypes() { + requireUF(); requireIntegers(); requireRationals(); IntegerFormula a = imgr.makeVariable("a"); RationalFormula r = rmgr.makeVariable("r"); + List> argTypes = ImmutableList.of(FormulaType.RationalType, FormulaType.RationalType); FunctionDeclaration ufDecl = diff --git a/src/org/sosy_lab/java_smt/test/RationalFormulaManagerTest.java b/src/org/sosy_lab/java_smt/test/RationalFormulaManagerTest.java index 1515133f88..0339150926 100644 --- a/src/org/sosy_lab/java_smt/test/RationalFormulaManagerTest.java +++ b/src/org/sosy_lab/java_smt/test/RationalFormulaManagerTest.java @@ -36,6 +36,7 @@ public class RationalFormulaManagerTest extends SolverBasedTest0.ParameterizedSo @Test public void rationalToIntTest() throws SolverException, InterruptedException { + requireFloor(); requireRationals(); assume() .withMessage("Solver %s does not support floor operation", solverToUse()) @@ -75,6 +76,7 @@ public void intToIntWithRmgrTest() throws SolverException, InterruptedException @Test public void floorIsLessOrEqualsValueTest() throws SolverException, InterruptedException { + requireFloor(); requireRationals(); requireQuantifiers(); RationalFormula v = rmgr.makeVariable("v"); @@ -83,6 +85,7 @@ public void floorIsLessOrEqualsValueTest() throws SolverException, InterruptedEx @Test public void floorIsGreaterThanValueTest() throws SolverException, InterruptedException { + requireFloor(); requireRationals(); requireQuantifiers(); RationalFormula v = rmgr.makeVariable("v"); @@ -91,6 +94,7 @@ public void floorIsGreaterThanValueTest() throws SolverException, InterruptedExc @Test public void forallFloorIsLessOrEqualsValueTest() throws SolverException, InterruptedException { + requireFloor(); requireRationals(); requireQuantifiers(); RationalFormula v = rmgr.makeVariable("v"); @@ -99,6 +103,7 @@ public void forallFloorIsLessOrEqualsValueTest() throws SolverException, Interru @Test public void forallFloorIsLessThanValueTest() throws SolverException, InterruptedException { + requireFloor(); requireRationals(); requireQuantifiers(); RationalFormula v = rmgr.makeVariable("v"); @@ -108,6 +113,7 @@ public void forallFloorIsLessThanValueTest() throws SolverException, Interrupted @Test public void visitFloorTest() { + requireFloor(); requireRationals(); assume() .withMessage("Solver %s does not support floor operation", solverToUse()) diff --git a/src/org/sosy_lab/java_smt/test/SolverBasedTest0.java b/src/org/sosy_lab/java_smt/test/SolverBasedTest0.java index d57494e017..f2a175b652 100644 --- a/src/org/sosy_lab/java_smt/test/SolverBasedTest0.java +++ b/src/org/sosy_lab/java_smt/test/SolverBasedTest0.java @@ -303,7 +303,14 @@ protected void requireParser() { assume() .withMessage("Solver %s does not support parsing formulae", solverToUse()) .that(solverToUse()) - .isNoneOf(Solvers.CVC4, Solvers.BOOLECTOR, Solvers.YICES2, Solvers.CVC5); + .isNoneOf(Solvers.CVC4, Solvers.BOOLECTOR, Solvers.YICES2, Solvers.CVC5, Solvers.DREAL4); + } + + protected void requireDumping() { + assume() + .withMessage("Solver %s does not support dumping a formulae", solverToUse()) + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); } protected void requireArrayModel() { @@ -332,7 +339,7 @@ protected void requireUnsatCore() { assume() .withMessage("Solver %s does not support unsat core generation", solverToUse()) .that(solverToUse()) - .isNoneOf(Solvers.BOOLECTOR, Solvers.OPENSMT); + .isNoneOf(Solvers.BOOLECTOR, Solvers.OPENSMT, Solvers.DREAL4); } protected void requireUnsatCoreOverAssumptions() { @@ -349,6 +356,30 @@ protected void requireSubstitution() { .isNotEqualTo(Solvers.BOOLECTOR); } + /** Skip test if solver does not support uninterpreted function. */ + protected final void requireUF() { + assume() + .withMessage("Solver %s does not support uninterpreted function.", solverToUse()) + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + } + + /** Skip test if solver does not support exist quantifier. */ + protected final void requireExistQuantifier() { + assume() + .withMessage("Solver %s does not support existential quantifier.", solverToUse()) + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + } + + /** Skip test if solver does not support floor operation. */ + protected final void requireFloor() { + assume() + .withMessage("Solver %s does not support floor opertion.", solverToUse()) + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + } + protected void requireUserPropagators() { assume() .withMessage("Solver %s does not support user propagation", solverToUse()) diff --git a/src/org/sosy_lab/java_smt/test/SolverConcurrencyTest.java b/src/org/sosy_lab/java_smt/test/SolverConcurrencyTest.java index ea3bae1d36..42f44f4b1b 100644 --- a/src/org/sosy_lab/java_smt/test/SolverConcurrencyTest.java +++ b/src/org/sosy_lab/java_smt/test/SolverConcurrencyTest.java @@ -148,7 +148,7 @@ private void requireBitvectors() { assume() .withMessage("Solver does not support bitvectors") .that(solver) - .isNoneOf(Solvers.SMTINTERPOL, Solvers.YICES2, Solvers.OPENSMT); + .isNoneOf(Solvers.SMTINTERPOL, Solvers.YICES2, Solvers.OPENSMT, Solvers.DREAL4); } private void requireOptimization() { @@ -162,7 +162,8 @@ private void requireOptimization() { Solvers.CVC4, Solvers.CVC5, Solvers.YICES2, - Solvers.OPENSMT); + Solvers.OPENSMT, + Solvers.DREAL4); } /** @@ -231,7 +232,7 @@ public void testFormulaTranslationWithConcurrentContexts() assume() .withMessage("Solver does not support translation of formulas") .that(solver) - .isNoneOf(Solvers.CVC4, Solvers.PRINCESS, Solvers.CVC5); + .isNoneOf(Solvers.CVC4, Solvers.PRINCESS, Solvers.CVC5, Solvers.DREAL4); ConcurrentLinkedQueue contextAndFormulaList = new ConcurrentLinkedQueue<>(); @@ -443,7 +444,7 @@ public void continuousRunningThreadFormulaTransferTranslateTest() { assume() .withMessage("Solver does not support translation of formulas") .that(solver) - .isNoneOf(Solvers.CVC4, Solvers.CVC5, Solvers.PRINCESS); + .isNoneOf(Solvers.CVC4, Solvers.CVC5, Solvers.PRINCESS, Solvers.DREAL4); // This is fine! We might access this more than once at a time, // but that gives only access to the bucket, which is threadsafe. diff --git a/src/org/sosy_lab/java_smt/test/SolverContextFactoryTest.java b/src/org/sosy_lab/java_smt/test/SolverContextFactoryTest.java index c145b1b181..1bd1a38108 100644 --- a/src/org/sosy_lab/java_smt/test/SolverContextFactoryTest.java +++ b/src/org/sosy_lab/java_smt/test/SolverContextFactoryTest.java @@ -95,6 +95,7 @@ private void requireSupportedOperatingSystem() { case CVC5: case OPENSMT: case YICES2: + case DREAL4: assume.that(IS_LINUX).isTrue(); return; case MATHSAT5: diff --git a/src/org/sosy_lab/java_smt/test/SolverFormulaIOTest.java b/src/org/sosy_lab/java_smt/test/SolverFormulaIOTest.java index 125a3a568e..06977d3c21 100644 --- a/src/org/sosy_lab/java_smt/test/SolverFormulaIOTest.java +++ b/src/org/sosy_lab/java_smt/test/SolverFormulaIOTest.java @@ -21,6 +21,7 @@ import com.google.common.truth.TruthJUnit; import java.util.List; import java.util.function.Supplier; +import org.junit.Before; import org.junit.Test; import org.sosy_lab.java_smt.SolverContextFactory.Solvers; import org.sosy_lab.java_smt.api.BitvectorFormula; @@ -97,6 +98,11 @@ public class SolverFormulaIOTest extends SolverBasedTest0.ParameterizedSolverBas + "(assert (let (($x35 (and (xor q (= (+ a b) c)) (>= a b)))) (let (($x9 (= a b))) (and" + " (and (or $x35 u) q) (and $x9 $x35)))))"; + @Before + public void checkThatSolverIsAvailable() { + requireDumping(); + } + @Test public void varDumpTest() { // Boolector will fail this anyway since bools are bitvecs for btor diff --git a/src/org/sosy_lab/java_smt/test/SolverStackTest0.java b/src/org/sosy_lab/java_smt/test/SolverStackTest0.java index 94617e98c2..2d38d39e0f 100644 --- a/src/org/sosy_lab/java_smt/test/SolverStackTest0.java +++ b/src/org/sosy_lab/java_smt/test/SolverStackTest0.java @@ -596,6 +596,8 @@ public void modelForSatFormula() throws SolverException, InterruptedException { @Test public void modelForSatFormulaWithLargeValue() throws SolverException, InterruptedException { + // FIXME: dReal returns 'unsat' for large numbers (> 10^10) + assume().that(solverToUse()).isNotEqualTo(Solvers.DREAL4); requireIntegers(); try (BasicProverEnvironment stack = newEnvironmentForTest(context, ProverOptions.GENERATE_MODELS)) { @@ -612,6 +614,7 @@ public void modelForSatFormulaWithLargeValue() throws SolverException, Interrupt @Test public void modelForSatFormulaWithUF() throws SolverException, InterruptedException { requireIntegers(); + requireUF(); requireTheoryCombination(); try (BasicProverEnvironment stack = diff --git a/src/org/sosy_lab/java_smt/test/SolverTacticsTest.java b/src/org/sosy_lab/java_smt/test/SolverTacticsTest.java index db5b9841ae..e90f0880d0 100644 --- a/src/org/sosy_lab/java_smt/test/SolverTacticsTest.java +++ b/src/org/sosy_lab/java_smt/test/SolverTacticsTest.java @@ -133,6 +133,7 @@ public void cnfTacticDefaultTest3() throws SolverException, InterruptedException @Test public void ufEliminationSimpleTest() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); // f := uf(v1, v3) XOR uf(v2, v4) IntegerFormula variable1 = imgr.makeVariable("variable1"); @@ -164,6 +165,7 @@ public void ufEliminationSimpleTest() throws SolverException, InterruptedExcepti @Test public void ufEliminationNestedUfsTest() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); // f :=uf2(uf1(v1, v2), v3) XOR uf2(uf1(v2, v1), v4) IntegerFormula variable1 = imgr.makeVariable("variable1"); @@ -200,6 +202,7 @@ public void ufEliminationNestedUfsTest() throws SolverException, InterruptedExce @Test public void ufEliminationNesteQuantifierTest() throws InterruptedException { + requireUF(); requireIntegers(); requireQuantifiers(); // f := exists v1,v2v,v3,v4 : uf(v1, v3) == uf(v2, v4) diff --git a/src/org/sosy_lab/java_smt/test/SolverTheoriesTest.java b/src/org/sosy_lab/java_smt/test/SolverTheoriesTest.java index c9dda2adf0..ac14e59228 100644 --- a/src/org/sosy_lab/java_smt/test/SolverTheoriesTest.java +++ b/src/org/sosy_lab/java_smt/test/SolverTheoriesTest.java @@ -251,14 +251,18 @@ public void intTest3_DivModLinear() throws SolverException, InterruptedException assertDivision(num10, numNeg3, numNeg3); assertDivision(num0, num3, num0); - assertDivision(a, num5, b, aEq10, bEq2); - assertDivision(a, num3, num3, aEq10); - assertDivision(a, num5, b, aEqNeg10, bEqNeg2); - assertDivision(a, num3, numNeg4, aEqNeg10); - assertDivision(a, numNeg3, num4, aEqNeg10); + // dReal does not use real integer division + if (solverToUse() != Solvers.DREAL4) { + assertDivision(a, num5, b, aEq10, bEq2); + assertDivision(a, num3, num3, aEq10); + assertDivision(a, num5, b, aEqNeg10, bEqNeg2); + assertDivision(a, num3, numNeg4, aEqNeg10); + assertDivision(a, numNeg3, num4, aEqNeg10); + } switch (solverToUse()) { - case MATHSAT5: // modulo not supported + case MATHSAT5: + case DREAL4: // modulo not supported assertThrows(UnsupportedOperationException.class, () -> buildModulo(num10, num5, num0)); break; default: @@ -299,6 +303,9 @@ public void intTest3_DivModLinear_zeroDenumerator() throws SolverException, Inte UnsupportedOperationException.class, () -> assertThatFormula(buildDivision(num10, num0, num10)).isSatisfiable()); break; + case DREAL4: // does not support division by zero + assertThrows(IllegalArgumentException.class, () -> buildDivision(num10, num0, num10)); + break; default: // division-by-zero results in an arbitrary result assertDivision(false, num0, num0, num0); @@ -319,8 +326,9 @@ public void intTest3_DivModLinear_zeroDenumerator() throws SolverException, Inte IllegalArgumentException.class, () -> assertThatFormula(buildModulo(num10, num0, num10)).isSatisfiable()); break; - case OPENSMT: // INFO - case MATHSAT5: // modulo not supported + case OPENSMT: // modulo not supported + case MATHSAT5: + case DREAL4: assertThrows(UnsupportedOperationException.class, () -> buildModulo(num10, num0, num10)); break; default: @@ -366,6 +374,7 @@ public void intTest3_DivModNonLinear() throws SolverException, InterruptedExcept assertThrows(UnsupportedOperationException.class, () -> buildModulo(a, b, num0)); break; case MATHSAT5: // modulo not supported + case DREAL4: assertDivision(a, b, num5, aEq10, bEq2); assertDivision(a, b, num5, aEqNeg10, bEqNeg2); assertThrows(UnsupportedOperationException.class, () -> buildModulo(num10, num5, num0)); @@ -379,7 +388,6 @@ public void intTest3_DivModNonLinear() throws SolverException, InterruptedExcept // TODO negative case is disabled, because we would need the option // solver.solver.useNonLinearIntegerArithmetic=true. - } @Test @@ -470,6 +478,13 @@ public void intTestBV_DivMod() throws SolverException, InterruptedException { @Test public void intTest4_ModularCongruence_Simple() throws SolverException, InterruptedException { + assume() + .withMessage( + "dReal does not use real integer division. Therefore modularCongruence " + + "may produce incorrect results.") + .that(solver) + .isNotEqualTo(Solvers.DREAL4); + requireIntegers(); final IntegerFormula x = imgr.makeVariable("x"); final BooleanFormula f1 = imgr.modularCongruence(x, imgr.makeNumber(0), 2); @@ -514,12 +529,19 @@ public void intTest4_ModularCongruence() throws SolverException, InterruptedExce assertThatFormula(bmgr.and(fa, fd, bmgr.not(fCond5))).isUnsatisfiable(); // check modular congruence, a=10 && b=5 && (a mod 7 != b mod 7) - assertThatFormula(bmgr.and(fa, fb, fConb7)).isUnsatisfiable(); - assertThatFormula(bmgr.and(fa, fb, bmgr.not(fConb7))).isSatisfiable(); - assertThatFormula(bmgr.and(fa, fc, fConc7)).isUnsatisfiable(); - assertThatFormula(bmgr.and(fa, fc, bmgr.not(fConc7))).isSatisfiable(); - assertThatFormula(bmgr.and(fa, fd, fCond7)).isUnsatisfiable(); - assertThatFormula(bmgr.and(fa, fd, bmgr.not(fCond7))).isSatisfiable(); + if (solverToUse() != Solvers.DREAL4) { + assertThatFormula(bmgr.and(fa, fb, fConb7)).isUnsatisfiable(); + assertThatFormula(bmgr.and(fa, fb, bmgr.not(fConb7))).isSatisfiable(); + assertThatFormula(bmgr.and(fa, fc, fConc7)).isUnsatisfiable(); + assertThatFormula(bmgr.and(fa, fc, bmgr.not(fConc7))).isSatisfiable(); + assertThatFormula(bmgr.and(fa, fd, fCond7)).isUnsatisfiable(); + assertThatFormula(bmgr.and(fa, fd, bmgr.not(fCond7))).isSatisfiable(); + } else { + // dReal does not use real integer division + assertThatFormula(bmgr.and(fa, fb, bmgr.not(fConb7))).isSatisfiable(); + assertThatFormula(bmgr.and(fa, fc, bmgr.not(fConc7))).isSatisfiable(); + assertThatFormula(bmgr.and(fa, fd, bmgr.not(fCond7))).isSatisfiable(); + } } @Test @@ -548,6 +570,13 @@ public void intTest4_ModularCongruence_NegativeNumbers() @Test public void testHardCongruence() throws SolverException, InterruptedException { + assume() + .withMessage( + "dReal does not use real integer division. Therefore modularCongruence " + + "may produce incorrect results.") + .that(solver) + .isNotEqualTo(Solvers.DREAL4); + requireIntegers(); IntegerFormula a = imgr.makeVariable("a"); IntegerFormula b = imgr.makeVariable("b"); @@ -596,6 +625,7 @@ public void realTest() throws SolverException, InterruptedException { @Test public void testUfWithBoolType() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); FunctionDeclaration uf = fmgr.declareUF("fun_ib", FormulaType.BooleanType, FormulaType.IntegerType); @@ -616,6 +646,7 @@ public void testUfWithBoolType() throws SolverException, InterruptedException { @Test public void testUfWithBoolArg() throws SolverException, InterruptedException { + requireUF(); assume() .withMessage("Solver %s does not support boolean arguments", solverToUse()) .that(solver) @@ -645,18 +676,30 @@ public void quantifierEliminationTest1() throws SolverException, InterruptedExce BooleanFormula gt_bMinusC_1000 = imgr.greaterThan(minus_b_c, num_1000); BooleanFormula and_cEq2_bMinusCgt1000 = bmgr.and(eq_c_2, gt_bMinusC_1000); - BooleanFormula f = qmgr.exists(ImmutableList.of(var_C), and_cEq2_bMinusCgt1000); - BooleanFormula result = qmgr.eliminateQuantifiers(f); - assertThat(result.toString()).doesNotContain("exists"); - assertThat(result.toString()).doesNotContain("c"); + switch (solverToUse()) { + case DREAL4: + BooleanFormula g = qmgr.forall(ImmutableList.of(var_C), and_cEq2_bMinusCgt1000); + assertThrows( + UnsupportedOperationException.class, + () -> { + qmgr.eliminateQuantifiers(g); + }); + break; + default: + BooleanFormula f = qmgr.exists(ImmutableList.of(var_C), and_cEq2_bMinusCgt1000); + BooleanFormula result = qmgr.eliminateQuantifiers(f); + assertThat(result.toString()).doesNotContain("exists"); + assertThat(result.toString()).doesNotContain("c"); - BooleanFormula expected = imgr.greaterOrEquals(var_B, imgr.makeNumber(1003)); - assertThatFormula(result).isEquivalentTo(expected); + BooleanFormula expected = imgr.greaterOrEquals(var_B, imgr.makeNumber(1003)); + assertThatFormula(result).isEquivalentTo(expected); + } } @Test @Ignore public void quantifierEliminationTest2() throws SolverException, InterruptedException { + requireExistQuantifier(); requireQuantifiers(); requireIntegers(); @@ -1047,6 +1090,12 @@ public void nonLinearDivision() throws SolverException, InterruptedException { @Test public void integerDivisionRounding() throws SolverException, InterruptedException { + assume() + .withMessage( + "dReal does not round if we have division with variables, only for " + "constants.") + .that(solver) + .isNotEqualTo(Solvers.DREAL4); + requireIntegers(); IntegerFormula varSeven = imgr.makeVariable("a"); IntegerFormula varEight = imgr.makeVariable("b"); @@ -1080,7 +1129,8 @@ public void integerDivisionRounding() throws SolverException, InterruptedExcepti Solvers.CVC5, Solvers.BOOLECTOR, Solvers.YICES2, - Solvers.OPENSMT); + Solvers.OPENSMT, + Solvers.DREAL4); private static final ImmutableSet VAR_AND_UF_TRACKING_SOLVERS = ImmutableSet.of( @@ -1117,6 +1167,7 @@ public void testFailOnVariableWithDifferentSort() { @Test @SuppressWarnings("CheckReturnValue") public void testVariableAndUFWithDifferentSort() { + requireUF(); assume().that(solverToUse()).isNotIn(VAR_AND_UF_TRACKING_SOLVERS); bmgr.makeVariable("y"); fmgr.declareUF("y", FormulaType.BooleanType, FormulaType.BooleanType); @@ -1140,6 +1191,7 @@ public void testFailOnUFAndVariableWithDifferentSort() { @Test public void testVariableAndUFWithEqualSort() { + requireUF(); assume() .withMessage("Solver %s does not support UFs without arguments", solverToUse()) .that(solverToUse()) diff --git a/src/org/sosy_lab/java_smt/test/SolverVisitorTest.java b/src/org/sosy_lab/java_smt/test/SolverVisitorTest.java index 7549c4c690..9cb779d375 100644 --- a/src/org/sosy_lab/java_smt/test/SolverVisitorTest.java +++ b/src/org/sosy_lab/java_smt/test/SolverVisitorTest.java @@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.truth.Truth; +import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.Collection; @@ -295,7 +296,12 @@ public void rationalConstantVisit() { }) { ConstantsVisitor visitor = new ConstantsVisitor(); mgr.visit(rmgr.makeNumber(Rational.ofLongs(n, 321)), visitor); - assertThat(visitor.found).containsExactly(Rational.ofLongs(n, 321)); + if (solverToUse() == Solvers.DREAL4) { + assertThat(visitor.found) + .containsExactly(Rational.ofBigDecimal(BigDecimal.valueOf((double) n / 321))); + } else { + assertThat(visitor.found).containsExactly(Rational.ofLongs(n, 321)); + } } } @@ -813,9 +819,9 @@ public TraversalProcess visitFreeVariable(Formula formula, String name) { public void testBooleanFormulaQuantifierHandling() throws Exception { requireQuantifiers(); assume() - .withMessage("Princess does not support quantifier over boolean variables") + .withMessage("Solver %s does not support quantifier over boolean variables.", solverToUse()) .that(solverToUse()) - .isNotEqualTo(Solvers.PRINCESS); + .isNoneOf(Solvers.PRINCESS, Solvers.DREAL4); BooleanFormula x = bmgr.makeVariable("x"); BooleanFormula constraint = qmgr.forall(ImmutableList.of(x), x); @@ -829,9 +835,9 @@ public void testBooleanFormulaQuantifierHandling() throws Exception { public void testBooleanFormulaQuantifierRecursiveHandling() throws Exception { requireQuantifiers(); assume() - .withMessage("Princess does not support quantifier over boolean variables") + .withMessage("Solver %s does not support quantifier over boolean variables.", solverToUse()) .that(solverToUse()) - .isNotEqualTo(Solvers.PRINCESS); + .isNoneOf(Solvers.PRINCESS, Solvers.DREAL4); BooleanFormula x = bmgr.makeVariable("x"); BooleanFormula constraint = qmgr.forall(ImmutableList.of(x), x); @@ -844,6 +850,11 @@ public void testBooleanFormulaQuantifierRecursiveHandling() throws Exception { // Same as testBooleanFormulaQuantifierHandling but with Ints @Test public void testIntegerFormulaQuantifierHandlingUNSAT() throws Exception { + assume() + .withMessage("dReal solves the Formula with x equal to entire.") + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireQuantifiers(); requireIntegers(); @@ -860,6 +871,10 @@ public void testIntegerFormulaQuantifierHandlingUNSAT() throws Exception { public void testIntegerFormulaQuantifierHandlingTrivialSAT() throws Exception { requireQuantifiers(); requireIntegers(); + assume() + .withMessage("Solver %s does not support quantifier over boolean variables.", solverToUse()) + .that(solverToUse()) + .isNoneOf(Solvers.PRINCESS, Solvers.DREAL4); IntegerFormula x = imgr.makeVariable("x"); BooleanFormula xEqx = imgr.equal(x, x); @@ -898,6 +913,12 @@ public void testIntegerFormulaQuantifierSymbolsExtraction() { public void testIntegerFormulaQuantifierHandlingTrivialUNSAT() throws Exception { requireQuantifiers(); requireIntegers(); + requireQuantifiers(); + requireIntegers(); + assume() + .withMessage("Solver %s does not support quantifier over boolean variables.", solverToUse()) + .that(solverToUse()) + .isNoneOf(Solvers.PRINCESS, Solvers.DREAL4); IntegerFormula x = imgr.makeVariable("x"); BooleanFormula notxEqx = bmgr.not(imgr.equal(x, x)); @@ -924,8 +945,12 @@ public void testNestedIntegerFormulaQuantifierHandling() throws Exception { IntegerFormula x = imgr.makeVariable("x"); BooleanFormula xEq1 = imgr.equal(x, imgr.makeNumber(1)); - BooleanFormula constraint = - qmgr.exists(ImmutableList.of(x), qmgr.forall(ImmutableList.of(x), xEq1)); + BooleanFormula constraint; + if (solverToUse() == Solvers.DREAL4) { + constraint = qmgr.forall(ImmutableList.of(x), xEq1); + } else { + constraint = qmgr.exists(ImmutableList.of(x), qmgr.forall(ImmutableList.of(x), xEq1)); + } assertThatFormula(constraint).isUnsatisfiable(); BooleanFormula newConstraint = bmgr.visit(constraint, new BooleanFormulaTransformationVisitor(mgr) {}); @@ -942,8 +967,14 @@ public void testNestedIntegerFormulaQuantifierRecursiveHandling() throws Excepti IntegerFormula x = imgr.makeVariable("x"); BooleanFormula xEq1 = imgr.equal(x, imgr.makeNumber(1)); - BooleanFormula constraint = - qmgr.exists(ImmutableList.of(x), qmgr.forall(ImmutableList.of(x), xEq1)); + BooleanFormula constraint; + + if (solverToUse() == Solvers.DREAL4) { + constraint = qmgr.forall(ImmutableList.of(x), xEq1); + } else { + constraint = qmgr.exists(ImmutableList.of(x), qmgr.forall(ImmutableList.of(x), xEq1)); + } + assertThatFormula(constraint).isUnsatisfiable(); BooleanFormula newConstraint = bmgr.transformRecursively(constraint, new BooleanFormulaTransformationVisitor(mgr) {}); @@ -1087,9 +1118,9 @@ public void testTransformationInsideQuantifiers() { requireQuantifiers(); // TODO Maybe rewrite using quantified integer variable to allow testing with Princess assume() - .withMessage("Princess does not support quantifier over boolean variables") + .withMessage("Solver %s does not support quantifier over boolean variables.", solverToUse()) .that(solverToUse()) - .isNotEqualTo(Solvers.PRINCESS); + .isNoneOf(Solvers.PRINCESS, Solvers.DREAL4); BooleanFormula[] usedVars = Stream.of("a", "b", "c", "d", "e", "f") @@ -1123,6 +1154,11 @@ public BooleanFormula visitAtom( @Test public void testTransformationInsideQuantifiersWithTrue() throws SolverException, InterruptedException { + assume() + .withMessage("dReal does not support elimination.") + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireQuantifiers(); List quantifiedVars = ImmutableList.of(imgr.makeVariable("x")); BooleanFormula body = bmgr.makeTrue(); @@ -1135,6 +1171,11 @@ public void testTransformationInsideQuantifiersWithTrue() @Test public void testTransformationInsideQuantifiersWithFalse() throws SolverException, InterruptedException { + assume() + .withMessage("dReal does not support elimination.") + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireQuantifiers(); List quantifiedVars = ImmutableList.of(imgr.makeVariable("x")); BooleanFormula body = bmgr.makeFalse(); @@ -1147,6 +1188,11 @@ public void testTransformationInsideQuantifiersWithFalse() @Test public void testTransformationInsideQuantifiersWithVariable() throws SolverException, InterruptedException { + assume() + .withMessage("dReal does not support elimination.") + .that(solverToUse()) + .isNotEqualTo(Solvers.DREAL4); + requireQuantifiers(); List quantifiedVars = ImmutableList.of(imgr.makeVariable("x")); BooleanFormula body = bmgr.makeVariable("b"); @@ -1158,6 +1204,8 @@ public void testTransformationInsideQuantifiersWithVariable() @Test public void extractionTest1() { + requireUF(); + IntegerFormula v = imgr.makeVariable("v"); BooleanFormula q = fmgr.declareAndCallUF("q", FormulaType.BooleanType, v); Map mapping = mgr.extractVariablesAndUFs(q); @@ -1166,8 +1214,21 @@ public void extractionTest1() { assertThat(mapping).containsEntry("q", q); } + @Test + public void extractionTest1WithOutUF() { + IntegerFormula v = imgr.makeVariable("v"); + IntegerFormula z = imgr.makeVariable("z"); + BooleanFormula q = imgr.equal(v, z); + Map mapping = mgr.extractVariables(q); + assertThat(mapping).hasSize(2); + assertThat(mapping).containsEntry("v", v); + assertThat(mapping).containsEntry("z", z); + } + @Test public void extractionTest2() { + requireUF(); + // the same as above, but with nullary UF. IntegerFormula v = fmgr.declareAndCallUF("v", FormulaType.IntegerType); BooleanFormula q = fmgr.declareAndCallUF("q", FormulaType.BooleanType, v); @@ -1246,6 +1307,7 @@ public void visitArithmeticOperationWithMoreArgsTest() @Test public void extractionArguments() { + requireUF(); requireIntegers(); // Create the variables and uf @@ -1286,8 +1348,48 @@ protected Collection visitDefault(Formula pF) { assertThat(varsUfs.keySet()).containsExactly("a", "b", "testFunc"); } + @Test + public void extractionArgumentsWithOutUF() { + // Create the variables + IntegerFormula a = imgr.makeVariable("a"); + IntegerFormula b = imgr.makeVariable("b"); + IntegerFormula c = imgr.makeVariable("c"); + IntegerFormula d = imgr.makeVariable("d"); + BooleanFormula ab = imgr.equal(imgr.add(a, b), imgr.makeNumber(10)); + BooleanFormula cd = imgr.lessOrEquals(c, d); + BooleanFormula and = bmgr.and(cd, ab); + + FormulaVisitor> argCollectingVisitor = + new DefaultFormulaVisitor<>() { + + final Collection usedArgs = new LinkedHashSet<>(); + + @Override + public Collection visitFunction( + Formula pF, List args, FunctionDeclaration pFunctionDeclaration) { + usedArgs.addAll(args); + return usedArgs; + } + + @Override + protected Collection visitDefault(Formula pF) { + return usedArgs; + } + }; + + Collection usedArgs = mgr.visit(and, argCollectingVisitor); + + assertThat(usedArgs).hasSize(2); + assertThat(usedArgs).containsExactly(ab, cd); + + Map vars = mgr.extractVariables(and); + assertThat(vars).hasSize(4); + assertThat(vars.keySet()).containsExactly("a", "b", "c", "d"); + } + @Test public void extractionDeclarations() { + requireUF(); requireIntegers(); // Create the variables and uf diff --git a/src/org/sosy_lab/java_smt/test/TimeoutTest.java b/src/org/sosy_lab/java_smt/test/TimeoutTest.java index 80af046e9a..050c9d026e 100644 --- a/src/org/sosy_lab/java_smt/test/TimeoutTest.java +++ b/src/org/sosy_lab/java_smt/test/TimeoutTest.java @@ -82,7 +82,7 @@ public void testProverTimeoutInt() throws InterruptedException { TruthJUnit.assume() .withMessage(solverToUse() + " does not support interruption") .that(solverToUse()) - .isNoneOf(Solvers.PRINCESS, Solvers.BOOLECTOR, Solvers.CVC5); + .isNoneOf(Solvers.PRINCESS, Solvers.BOOLECTOR, Solvers.CVC5, Solvers.DREAL4); testBasicProverTimeoutInt(() -> context.newProverEnvironment()); } diff --git a/src/org/sosy_lab/java_smt/test/TranslateFormulaTest.java b/src/org/sosy_lab/java_smt/test/TranslateFormulaTest.java index 28d3851267..5777696b1d 100644 --- a/src/org/sosy_lab/java_smt/test/TranslateFormulaTest.java +++ b/src/org/sosy_lab/java_smt/test/TranslateFormulaTest.java @@ -93,14 +93,14 @@ private void requireParserTo() { assume() .withMessage("Solver %s does not support parsing formulae", translateTo) .that(translateTo) - .isNoneOf(Solvers.CVC4, Solvers.BOOLECTOR, Solvers.YICES2, Solvers.CVC5); + .isNoneOf(Solvers.CVC4, Solvers.BOOLECTOR, Solvers.YICES2, Solvers.CVC5, Solvers.DREAL4); } private void requireParserFrom() { assume() .withMessage("Solver %s does not support parsing formulae", translateFrom) .that(translateFrom) - .isNoneOf(Solvers.CVC4, Solvers.BOOLECTOR, Solvers.YICES2, Solvers.CVC5); + .isNoneOf(Solvers.CVC4, Solvers.BOOLECTOR, Solvers.YICES2, Solvers.CVC5, Solvers.DREAL4); } private void requireIntegers() { @@ -113,6 +113,10 @@ private void requireIntegers() { @Test public void testDumpingAndParsing() throws SolverException, InterruptedException { requireParserTo(); + assume() + .withMessage("Solver does not support dump/parse") + .that(translateTo) + .isEqualTo(Solvers.DREAL4); BooleanFormula input = createTestFormula(managerFrom); String out = managerFrom.dumpFormula(input).toString(); @@ -125,6 +129,11 @@ public void testDumpingAndParsing() throws SolverException, InterruptedException public void testTranslating() throws SolverException, InterruptedException { requireParserTo(); + assume() + .withMessage("Solver does not support dump/parse") + .that(translateTo) + .isEqualTo(Solvers.DREAL4); + BooleanFormula inputFrom = createTestFormula(managerFrom); BooleanFormula inputTo = createTestFormula(managerTo); BooleanFormula translatedInput = managerTo.translateFrom(inputFrom, managerFrom); @@ -151,7 +160,7 @@ public void testTranslatingForContextSibling() throws SolverException, Interrupt assume() .withMessage("Solver does not support shared terms or dump/parse") .that(translateTo) - .isNoneOf(Solvers.CVC4, Solvers.CVC5, Solvers.YICES2); + .isNoneOf(Solvers.CVC4, Solvers.CVC5, Solvers.YICES2, Solvers.DREAL4); BooleanFormula inputFrom = createTestFormula(managerFrom); BooleanFormula inputTo = createTestFormula(managerTo); diff --git a/src/org/sosy_lab/java_smt/test/UFManagerTest.java b/src/org/sosy_lab/java_smt/test/UFManagerTest.java index a14e90d21f..c7954ea5e1 100644 --- a/src/org/sosy_lab/java_smt/test/UFManagerTest.java +++ b/src/org/sosy_lab/java_smt/test/UFManagerTest.java @@ -14,6 +14,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.truth.Truth; import java.util.List; +import org.junit.Before; import org.junit.Test; import org.sosy_lab.java_smt.SolverContextFactory.Solvers; import org.sosy_lab.java_smt.api.Formula; @@ -29,6 +30,11 @@ public class UFManagerTest extends SolverBasedTest0.ParameterizedSolverBasedTest private static final ImmutableList VALID_NAMES = ImmutableList.of("Func", "(Func)"); + @Before + public void initSolvers() { + requireUF(); + } + @Test public void testDeclareAndCallUFWithInt() throws SolverException, InterruptedException { requireIntegers(); diff --git a/src/org/sosy_lab/java_smt/test/UfEliminationTest.java b/src/org/sosy_lab/java_smt/test/UfEliminationTest.java index c2e40f1d13..5047fcdaa7 100644 --- a/src/org/sosy_lab/java_smt/test/UfEliminationTest.java +++ b/src/org/sosy_lab/java_smt/test/UfEliminationTest.java @@ -37,6 +37,7 @@ public class UfEliminationTest extends SolverBasedTest0.ParameterizedSolverBased @Before public void setUp() { ackermannization = SolverUtils.ufElimination(mgr); + requireUF(); } @Test diff --git a/src/org/sosy_lab/java_smt/test/VariableNamesTest.java b/src/org/sosy_lab/java_smt/test/VariableNamesTest.java index b743f74fcf..62be100210 100644 --- a/src/org/sosy_lab/java_smt/test/VariableNamesTest.java +++ b/src/org/sosy_lab/java_smt/test/VariableNamesTest.java @@ -241,9 +241,16 @@ private void testName0( assertThatFormula(eq.apply(var, var2)).isSatisfiableAndHasModel(1); } - // check whether SMTLIB2-dump is possible - @SuppressWarnings("unused") - String dump = mgr.dumpFormula(eq.apply(var, var)).toString(); + if (solverToUse() == Solvers.DREAL4) { + if (allowInvalidNames()) { + // try to create a new (!) variable with a different name, the escaped previous name. + assertThat(createVariableWith(creator, "|" + name + "|")).isEqualTo(null); + } + } else { + // check whether SMTLIB2-dump is possible + @SuppressWarnings("unused") + String dump = mgr.dumpFormula(eq.apply(var, var)).toString(); + } if (allowInvalidNames()) { // try to create a new (!) variable with a different name, the escaped previous name. @@ -331,6 +338,7 @@ public void testNameBvArray() throws SolverException, InterruptedException { @Test public void testNameUF1Bool() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); for (String name : NAMES) { testName0( @@ -343,6 +351,7 @@ public void testNameUF1Bool() throws SolverException, InterruptedException { @Test public void testNameUF1Int() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); for (String name : NAMES) { testName0( @@ -366,6 +375,7 @@ public void testNameUFBv() throws SolverException, InterruptedException { @Test public void testNameUF2Bool() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); IntegerFormula zero = imgr.makeNumber(0); for (String name : NAMES) { @@ -376,6 +386,7 @@ public void testNameUF2Bool() throws SolverException, InterruptedException { @Test public void testNameUF2Int() throws SolverException, InterruptedException { + requireUF(); requireIntegers(); IntegerFormula zero = imgr.makeNumber(0); for (String name : NAMES) { @@ -396,7 +407,13 @@ public void testNameInQuantification() { } IntegerFormula zero = imgr.makeNumber(0); BooleanFormula eq = imgr.equal(var, zero); - BooleanFormula exists = qmgr.exists(var, eq); + BooleanFormula exists; + if (solverToUse() == Solvers.DREAL4) { + // exist not available in dReal + exists = qmgr.forall(var, eq); + } else { + exists = qmgr.exists(var, eq); + } BooleanFormula query = bmgr.and(bmgr.not(eq), exists); // (var != 0) & (EX var: (var == 0)) @@ -441,6 +458,7 @@ protected Void visitDefault(Formula pF) { @Test public void testNameInNestedQuantification() { + requireExistQuantifier(); requireQuantifiers(); requireIntegers(); @@ -456,7 +474,6 @@ public void testNameInNestedQuantification() { IntegerFormula zero = imgr.makeNumber(0); // (v1 == 0) & (EX v2: ((v2 == v1) & (EX v3: ((v3 == v2) & (EX v4: (v4 == v3)))) - BooleanFormula eq01 = imgr.equal(zero, var1); BooleanFormula eq12 = imgr.equal(var1, var2); BooleanFormula eq23 = imgr.equal(var2, var3); @@ -555,6 +572,7 @@ public Void visitAtom(BooleanFormula pAtom, FunctionDeclaration @Test public void testBoolVariableDump() { + requireDumping(); for (String name : getAllNames()) { BooleanFormula var = createVariableWith(bmgr::makeVariable, name); if (var != null) { @@ -566,6 +584,7 @@ public void testBoolVariableDump() { @Test public void testEqBoolVariableDump() { + requireDumping(); for (String name : getAllNames()) { BooleanFormula var = createVariableWith(bmgr::makeVariable, name); if (var != null) {