diff --git a/.gitignore b/.gitignore index 51bd306ac..a9ccbd38b 100644 --- a/.gitignore +++ b/.gitignore @@ -46,8 +46,11 @@ doc/_build *~ + # files in examples **/examples/* !**/examples/*cpp !**/examples/makefile +# results ibex files +*.cov \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 0a220287b..e83bf587a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,7 @@ matrix: - STATIC_OR_SHARED= - STATIC_OR_SHARED_CMAKE= - os: osx + osx_image: xcode11 compiler: clang env: - INTERVAL_LIB=gaol @@ -39,6 +40,7 @@ matrix: - STATIC_OR_SHARED_CMAKE= - CXXFLAGS=-std=c++11 - os: osx + osx_image: xcode11 compiler: clang env: - INTERVAL_LIB=gaol @@ -46,6 +48,7 @@ matrix: - STATIC_OR_SHARED=--enable-shared - STATIC_OR_SHARED_CMAKE=-DBUILD_SHARED_LIBS=ON - CXXFLAGS=-std=c++11 + allow_failures: - os: linux compiler: gcc @@ -63,13 +66,14 @@ addons: - flex - bison - libcppunit-dev - -# need this to install dependencies on osx -before_install: - - uname -a - - if [ "$TRAVIS_OS_NAME" = "osx" ] ; then brew update ; brew install flex bison cppunit; fi + homebrew: + packages: + - flex + - bison + - cppunit install: + - uname -a - ./waf configure --prefix=$HOME ${STATIC_OR_SHARED} --interval-lib=${INTERVAL_LIB} --lp-lib=${LP_LIB} || cat __build__/*.log - ./waf build install clean diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c48dfe27..4c2530e0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,9 +3,11 @@ cmake_minimum_required (VERSION 3.5.1) message (WARNING "CMake support is in beta, please report all bugs to https://github.com/ibex-team/ibex-lib/issues/") -project (IBEX VERSION 2.8.8 LANGUAGES CXX) +project (IBEX VERSION 2.8.9.1 LANGUAGES CXX) set (IBEX_DESCRIPTION "A C++ library for interval-based algorithm design") set (IBEX_URL "http://www.ibex-lib.org/") +set (IBEX_NAMESPACE "Ibex") # TODO use it everywhere +set (IBEX_CMAKE_PATH_FILES_PREFIX ibex-path-hints) ################################################################################ # Add cmake.utils to the list of CMAKE_MODULE_PATH @@ -14,10 +16,11 @@ set (MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake.utils") list (APPEND CMAKE_MODULE_PATH "${MODULE_DIR}") ################################################################################ -# Run common init function and install the module so plugins can use it +# Run common init function (the module is installed later so plugins can use it) ################################################################################ message (STATUS "Configuring Ibex ${IBEX_VERSION}") -include (ibex-config-utils) +set (IBEX_DEV_UTILS_FILENAME ibex-dev-utils) +include (${IBEX_DEV_UTILS_FILENAME}) ibex_init_common () ################################################################################ @@ -34,28 +37,27 @@ add_subdirectory (src) ################################################################################ # Generate ibex.pc ################################################################################ -include (IbexUtils) +include (ibex-gen-pkgconfig) ibex_generate_pkgconfig_file (ibex) ################################################################################ -# Tests +# Install some CMake utils files that are use for detecting dependencies in +# cmake-config.cmake module and can be useful in plugins. ################################################################################ -add_make_target_for_ctest (check) +install (FILES "${MODULE_DIR}/${IBEX_DEV_UTILS_FILENAME}.cmake" + "${MODULE_DIR}/FindCppUnit.cmake" + DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE}/cmake.utils + COMPONENT devtools) ################################################################################ -# TODO benchs +# Tests ################################################################################ -#add_subdirectory (benchs) +ibex_add_make_target_for_ctest (check) ################################################################################ -# We add this file last in the hope that the install script will run it last. -# Specifically, we want this to be run after the line -# install (EXPORT ibex... -# from src/CMakeLists.txt because this line can, in some cases, remove files -# matching ${CMAKE_INSTALL_CONFIGCMAKE}/ibex-config-*.cmake even if they were -# just installed. +# TODO benchs ################################################################################ -add_subdirectory (cmake.install) +#add_subdirectory (benchs) ################################################################################ # archives and packages diff --git a/benchs/optim/benchs-minlp/cvxnonsep_normcon20.bch b/benchs/optim/benchs-minlp/cvxnonsep_normcon20.bch new file mode 100644 index 000000000..7ae995e24 --- /dev/null +++ b/benchs/optim/benchs-minlp/cvxnonsep_normcon20.bch @@ -0,0 +1,47 @@ +variables +i1 in [0,5]; +i2 in [0,5]; +i3 in [0,5]; +i4 in [0,5]; +i5 in [0,5]; +i6 in [0,5]; +i7 in [0,5]; +i8 in [0,5]; +i9 in [0,5]; +i10 in [0,5]; +x11 in [0,5]; +x12 in [0,5]; +x13 in [0,5]; +x14 in [0,5]; +x15 in [0,5]; +x16 in [0,5]; +x17 in [0,5]; +x18 in [0,5]; +x19 in [0,5]; +x20 in [0,5]; + + + +minimize - 0.175*i1 - 0.39*i2 - 0.83*i3 - 0.805*i4 - 0.06*i5 - 0.4*i6 + - 0.52*i7 - 0.415*i8 - 0.655*i9 - 0.63*i10 - 0.29*x11 - 0.43*x12 + - 0.015*x13 - 0.985*x14 - 0.165*x15 - 0.105*x16 - 0.37*x17 - 0.2*x18 + - 0.49*x19 - 0.34*x20; + +constraints + +sqrt(0.0001 + i1^2 + i2^2 + i3^2 + i4^2 + i5^2 + i6^2 + i7^2 + i8^2 + i9^2 + + i10^2 + x11^2 + x12^2 + x13^2 + x14^2 + x15^2 + x16^2 + x17^2 + x18^2 + + x19^2 + x20^2) <= 10; + +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); +integer(i8); +integer(i9); +integer(i10); + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/cvxnonsep_nsig20.bch b/benchs/optim/benchs-minlp/cvxnonsep_nsig20.bch new file mode 100644 index 000000000..c410c37f4 --- /dev/null +++ b/benchs/optim/benchs-minlp/cvxnonsep_nsig20.bch @@ -0,0 +1,47 @@ +variables +i1 in [1,10]; +i2 in [1,10]; +i3 in [1,10]; +i4 in [1,10]; +i5 in [1,10]; +i6 in [1,10]; +i7 in [1,10]; +i8 in [1,10]; +i9 in [1,10]; +i10 in [0.00001,10]; +x11 in [0.00001,10]; +x12 in [0.00001,10]; +x13 in [0.00001,10]; +x14 in [0.00001,10]; +x15 in [0.00001,10]; +x16 in [0.00001,10]; +x17 in [0.00001,10]; +x18 in [0.00001,10]; +x19 in [0.00001,10]; +x20 in [0.00001,10]; + +minimize + + +1.5*i1 + 0.51*i2 + 1.01*i3 + 1.4*i4 + 1.78*i5 + 1.92*i6 + 1.09*i7 + + 0.48*i8 + 0.67*i9 + 0.52*i10 + 1.68*x11 + 0.51*x12 + 1.63*x13 + + 0.49*x14 + 1.86*x15 + 0.7*x16 + 0.39*x17 + 0.5*x18 + 1.23*x19 + + 0.95*x20 ; + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); +integer(i8); +integer(i9); +integer(i10); + +-0.2*i1^0.065*i2^0.004*i3^0.084*i4^0.093*i5^0.06*i6^0.075*i7^0.074* + i8^0.039*i9^0.065*i10^0.017*x11^0.07*x12^0.03*x13^0.028*x14^0.005* + x15^0.01*x16^0.082*x17^0.069*x18^0.032*x19^0.095*x20^0.003 <= -1; + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/cvxnonsep_pcon20.bch b/benchs/optim/benchs-minlp/cvxnonsep_pcon20.bch new file mode 100644 index 000000000..50983c0e8 --- /dev/null +++ b/benchs/optim/benchs-minlp/cvxnonsep_pcon20.bch @@ -0,0 +1,48 @@ +variables +i1 in [0,5]; +i2 in [0,5]; +i3 in [0,5]; +i4 in [0,5]; +i5 in [0,5]; +i6 in [0,5]; +i7 in [0,5]; +i8 in [0,5]; +i9 in [0,5]; +i10 in [0,5]; +x11 in [0,5]; +x12 in [0,5]; +x13 in [0,5]; +x14 in [0,5]; +x15 in [0,5]; +x16 in [0,5]; +x17 in [0,5]; +x18 in [0,5]; +x19 in [0,5]; +x20 in [0,5]; + +minimize +-(0.53*i1 + 0.65*i2 + 0.49*i3 + 0.82*i4 + 0.88*i5 + 0.97*i6 + 0.53*i7 + + 0.33*i8 + 0.11*i9 + 0.61*i10 + 0.78*x11 + 0.09*x12 + 0.27*x13 + + 0.15*x14 + 0.28*x15 + 0.44*x16 + 0.53*x17 + 0.46*x18 + 0.88*x19 + + 0.15*x20) ; + +constraints + + (2^(i1 + i2) + 2^(i2 + i3) + 2^(i3 + i4) + 2^(i4 + i5) + 2^(i5 + + i6) + 2^(i6 + i7) + 2^(i7 + i8) + 2^(i8 + i9) + 2^(i9 + i10) + 2^(i10 + + x11) + 2^(x11 + x12) + 2^(x12 + x13) + 2^(x13 + x14) + 2^(x14 + x15 + ) + 2^(x15 + x16) + 2^(x16 + x17) + 2^(x17 + x18) + 2^(x18 + x19) + 2 + ^(x19 + x20))^2 <= 57600; + +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); +integer(i8); +integer(i9); +integer(i10); + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/eg_all_s.bch b/benchs/optim/benchs-minlp/eg_all_s.bch new file mode 100644 index 000000000..21491acd0 --- /dev/null +++ b/benchs/optim/benchs-minlp/eg_all_s.bch @@ -0,0 +1,10306 @@ +variables +i1 in [3,6]; +i2 in [4,10]; +i3 in [4,10]; +i4 in [7,15]; +i5 in [1,2]; +i6 in [3,4]; +i7 in[2,5]; +x8 in [-1.e100,1.e100]; +minimize +x8 +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); + + + -(0.289028728*exp(-22.00930458*(-0.303 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.697 + 0.1*i2)^2)*exp(-12.56111847*(-0.8061 + 0.1*i3)^2)*exp(-2.803886871* + (-0.9586 + 0.1*i4)^2)*exp(-0.290932422*(-1.758 + i5)^2)*exp(-0.020392626*(- + 3.141 + i6)^2)*exp(-0.500010068*(-4.424 + i7)^2) - 3.362185224*exp(- + 22.00930458*(-0.5364 + 0.1*i1)^2)*exp(-12.76383299*(-0.9697 + 0.1*i2)^2)* + exp(-12.56111847*(-0.4909 + 0.1*i3)^2)*exp(-2.803886871*(-1.161 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.778 + i5)^2)*exp(-0.020392626*(-3.778 + i6)^2)*exp(- + 0.500010068*(-4.091 + i7)^2) - 2.188314357*exp(-22.00930458*(-0.503 + 0.1* + i1)^2)*exp(-12.76383299*(-0.6182 + 0.1*i2)^2)*exp(-12.56111847*(-0.4121 + + 0.1*i3)^2)*exp(-2.803886871*(-1.419 + 0.1*i4)^2)*exp(-0.290932422*(-1.333 + + i5)^2)*exp(-0.020392626*(-3.152 + i6)^2)*exp(-0.500010068*(-3.697 + i7)^ + 2) - 3.52978315*exp(-22.00930458*(-0.4606 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.903 + 0.1*i2)^2)*exp(-12.56111847*(-0.7576 + 0.1*i3)^2)*exp(-2.803886871* + (-0.7727 + 0.1*i4)^2)*exp(-0.290932422*(-1.242 + i5)^2)*exp(-0.020392626*(- + 3.98 + i6)^2)*exp(-0.500010068*(-3.424 + i7)^2) - 0.121695344*exp(- + 22.00930458*(-0.3 + 0.1*i1)^2)*exp(-12.76383299*(-0.7636 + 0.1*i2)^2)*exp(- + 12.56111847*(-0.8606 + 0.1*i3)^2)*exp(-2.803886871*(-1.153 + 0.1*i4)^2)* + exp(-0.290932422*(-1.556 + i5)^2)*exp(-0.020392626*(-3.939 + i6)^2)*exp(- + 0.500010068*(-2.818 + i7)^2) - 2.206398664*exp(-22.00930458*(-0.5879 + 0.1* + i1)^2)*exp(-12.76383299*(-0.703 + 0.1*i2)^2)*exp(-12.56111847*(-0.4788 + + 0.1*i3)^2)*exp(-2.803886871*(-1.039 + 0.1*i4)^2)*exp(-0.290932422*(-1.646 + + i5)^2)*exp(-0.020392626*(-3.222 + i6)^2)*exp(-0.500010068*(-4.636 + i7)^ + 2) + 1.57768218*exp(-22.00930458*(-0.4121 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.4424 + 0.1*i2)^2)*exp(-12.56111847*(-0.5939 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.46 + 0.1*i4)^2)*exp(-0.290932422*(-1.232 + i5)^2)*exp(-0.020392626*(- + 3.788 + i6)^2)*exp(-0.500010068*(-3.848 + i7)^2) - 0.08355624*exp(- + 22.00930458*(-0.5576 + 0.1*i1)^2)*exp(-12.76383299*(-0.8848 + 0.1*i2)^2)* + exp(-12.56111847*(-0.8121 + 0.1*i3)^2)*exp(-2.803886871*(-1.128 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.263 + i5)^2)*exp(-0.020392626*(-3.808 + i6)^2)*exp(- + 0.500010068*(-4.818 + i7)^2) + 0.505768112*exp(-22.00930458*(-0.4273 + 0.1* + i1)^2)*exp(-12.76383299*(-0.4848 + 0.1*i2)^2)*exp(-12.56111847*(-0.9697 + + 0.1*i3)^2)*exp(-2.803886871*(-0.9667 + 0.1*i4)^2)*exp(-0.290932422*(-1.364 + + i5)^2)*exp(-0.020392626*(-3.869 + i6)^2)*exp(-0.500010068*(-2.667 + i7)^ + 2) - 0.528390836*exp(-22.00930458*(-0.5455 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.4061 + 0.1*i2)^2)*exp(-12.56111847*(-0.6303 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.427 + 0.1*i4)^2)*exp(-0.290932422*(-1.747 + i5)^2)*exp(-0.020392626*(- + 3.444 + i6)^2)*exp(-0.500010068*(-3.576 + i7)^2) + 0.285611247*exp(- + 22.00930458*(-0.5394 + 0.1*i1)^2)*exp(-12.76383299*(-0.5273 + 0.1*i2)^2)* + exp(-12.56111847*(-0.5636 + 0.1*i3)^2)*exp(-2.803886871*(-1.355 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.253 + i5)^2)*exp(-0.020392626*(-3.566 + i6)^2)*exp(- + 0.500010068*(-2.121 + i7)^2) - 1.927848595*exp(-22.00930458*(-0.5273 + 0.1* + i1)^2)*exp(-12.76383299*(-0.8121 + 0.1*i2)^2)*exp(-12.56111847*(-0.8424 + + 0.1*i3)^2)*exp(-2.803886871*(-0.8535 + 0.1*i4)^2)*exp(-0.290932422*(-1.899 + + i5)^2)*exp(-0.020392626*(-3.889 + i6)^2)*exp(-0.500010068*(-4.061 + i7)^ + 2) + 0.171070479*exp(-22.00930458*(-0.5727 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.4909 + 0.1*i2)^2)*exp(-12.56111847*(-0.9333 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.306 + 0.1*i4)^2)*exp(-0.290932422*(-1.273 + i5)^2)*exp(-0.020392626*(- + 3.707 + i6)^2)*exp(-0.500010068*(-3.485 + i7)^2) - 1.655823498*exp(- + 22.00930458*(-0.3091 + 0.1*i1)^2)*exp(-12.76383299*(-0.6364 + 0.1*i2)^2)* + exp(-12.56111847*(-0.5758 + 0.1*i3)^2)*exp(-2.803886871*(-1.282 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.222 + i5)^2)*exp(-0.020392626*(-3.192 + i6)^2)*exp(- + 0.500010068*(-4.455 + i7)^2) - 0.981842482*exp(-22.00930458*(-0.4364 + 0.1* + i1)^2)*exp(-12.76383299*(-0.7394 + 0.1*i2)^2)*exp(-12.56111847*(-0.4485 + + 0.1*i3)^2)*exp(-2.803886871*(-1.403 + 0.1*i4)^2)*exp(-0.290932422*(-1.465 + + i5)^2)*exp(-0.020392626*(-3.687 + i6)^2)*exp(-0.500010068*(-4.939 + i7)^ + 2) + 0.019312196*exp(-22.00930458*(-0.5636 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.6485 + 0.1*i2)^2)*exp(-12.56111847*(-0.7273 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.346 + 0.1*i4)^2)*exp(-0.290932422*(-1.01 + i5)^2)*exp(-0.020392626*(- + 3.333 + i6)^2)*exp(-0.500010068*(-4.364 + i7)^2) - 2.803011135*exp(- + 22.00930458*(-0.597 + 0.1*i1)^2)*exp(-12.76383299*(-0.7152 + 0.1*i2)^2)* + exp(-12.56111847*(-0.703 + 0.1*i3)^2)*exp(-2.803886871*(-1.209 + 0.1*i4)^2) + *exp(-0.290932422*(-1.354 + i5)^2)*exp(-0.020392626*(-3.01 + i6)^2)*exp(- + 0.500010068*(-2.758 + i7)^2) - 3.300182679*exp(-22.00930458*(-0.5152 + 0.1* + i1)^2)*exp(-12.76383299*(-0.6606 + 0.1*i2)^2)*exp(-12.56111847*(-0.503 + + 0.1*i3)^2)*exp(-2.803886871*(-0.7566 + 0.1*i4)^2)*exp(-0.290932422*(-1.424 + + i5)^2)*exp(-0.020392626*(-3.848 + i6)^2)*exp(-0.500010068*(-4.576 + i7)^ + 2) + 1.346366631*exp(-22.00930458*(-0.5758 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.5152 + 0.1*i2)^2)*exp(-12.56111847*(-0.4303 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.8697 + 0.1*i4)^2)*exp(-0.290932422*(-1.374 + i5)^2)*exp(-0.020392626*( + -3.414 + i6)^2)*exp(-0.500010068*(-3.061 + i7)^2) + 6.418266482*exp(- + 22.00930458*(-0.3939 + 0.1*i1)^2)*exp(-12.76383299*(-0.7091 + 0.1*i2)^2)* + exp(-12.56111847*(-0.4242 + 0.1*i3)^2)*exp(-2.803886871*(-0.8293 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.434 + i5)^2)*exp(-0.020392626*(-3.121 + i6)^2)*exp( + -0.500010068*(-4.394 + i7)^2) - 0.442158274*exp(-22.00930458*(-0.403 + 0.1* + i1)^2)*exp(-12.76383299*(-0.5333 + 0.1*i2)^2)*exp(-12.56111847*(-0.5152 + + 0.1*i3)^2)*exp(-2.803886871*(-1.233 + 0.1*i4)^2)*exp(-0.290932422*(-1.889 + + i5)^2)*exp(-0.020392626*(-3.172 + i6)^2)*exp(-0.500010068*(-4.545 + i7)^ + 2) - 0.836118635*exp(-22.00930458*(-0.5061 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.6121 + 0.1*i2)^2)*exp(-12.56111847*(-0.4606 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.144 + 0.1*i4)^2)*exp(-0.290932422*(-1.879 + i5)^2)*exp(-0.020392626*(- + 3.343 + i6)^2)*exp(-0.500010068*(-2.152 + i7)^2) - 3.23714838*exp(- + 22.00930458*(-0.4152 + 0.1*i1)^2)*exp(-12.76383299*(-0.8242 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6545 + 0.1*i3)^2)*exp(-2.803886871*(-1.411 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.525 + i5)^2)*exp(-0.020392626*(-3.04 + i6)^2)*exp(- + 0.500010068*(-2.273 + i7)^2) + 1.107505959*exp(-22.00930458*(-0.4545 + 0.1* + i1)^2)*exp(-12.76383299*(-0.503 + 0.1*i2)^2)*exp(-12.56111847*(-0.7152 + + 0.1*i3)^2)*exp(-2.803886871*(-0.797 + 0.1*i4)^2)*exp(-0.290932422*(-1.798 + + i5)^2)*exp(-0.020392626*(-3.424 + i6)^2)*exp(-0.500010068*(-4.97 + i7)^2 + ) + 0.62250691*exp(-22.00930458*(-0.3606 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8 + 0.1*i2)^2)*exp(-12.56111847*(-0.9394 + 0.1*i3)^2)*exp(-2.803886871*(- + 0.8212 + 0.1*i4)^2)*exp(-0.290932422*(-1.101 + i5)^2)*exp(-0.020392626*(- + 3.535 + i6)^2)*exp(-0.500010068*(-2.909 + i7)^2) + 1.123488674*exp(- + 22.00930458*(-0.5818 + 0.1*i1)^2)*exp(-12.76383299*(-0.9394 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6364 + 0.1*i3)^2)*exp(-2.803886871*(-1.435 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.313 + i5)^2)*exp(-0.020392626*(-3.576 + i6)^2)*exp(- + 0.500010068*(-3.212 + i7)^2) + 5.836435972*exp(-22.00930458*(-0.4485 + 0.1* + i1)^2)*exp(-12.76383299*(-0.9273 + 0.1*i2)^2)*exp(-12.56111847*(-0.6 + 0.1* + i3)^2)*exp(-2.803886871*(-0.9505 + 0.1*i4)^2)*exp(-0.290932422*(-1.909 + i5 + )^2)*exp(-0.020392626*(-3.051 + i6)^2)*exp(-0.500010068*(-3.97 + i7)^2) - + 4.079017128*exp(-22.00930458*(-0.3394 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8788 + 0.1*i2)^2)*exp(-12.56111847*(-0.4727 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.7646 + 0.1*i4)^2)*exp(-0.290932422*(-1.293 + i5)^2)*exp(-0.020392626*( + -3.616 + i6)^2)*exp(-0.500010068*(-3.273 + i7)^2) + 1.207590683*exp(- + 22.00930458*(-0.3515 + 0.1*i1)^2)*exp(-12.76383299*(-0.9576 + 0.1*i2)^2)* + exp(-12.56111847*(-0.8182 + 0.1*i3)^2)*exp(-2.803886871*(-0.7485 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.768 + i5)^2)*exp(-0.020392626*(-3.505 + i6)^2)*exp( + -0.500010068*(-3.394 + i7)^2) + 0.768497709*exp(-22.00930458*(-0.4061 + 0.1 + *i1)^2)*exp(-12.76383299*(-0.6667 + 0.1*i2)^2)*exp(-12.56111847*(-0.9576 + + 0.1*i3)^2)*exp(-2.803886871*(-1.096 + 0.1*i4)^2)*exp(-0.290932422*(-1.131 + + i5)^2)*exp(-0.020392626*(-3.071 + i6)^2)*exp(-0.500010068*(-4.242 + i7)^ + 2) + 1.481755585*exp(-22.00930458*(-0.5788 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.6545 + 0.1*i2)^2)*exp(-12.56111847*(-0.7697 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.9101 + 0.1*i4)^2)*exp(-0.290932422*(-1.97 + i5)^2)*exp(-0.020392626*(- + 3.162 + i6)^2)*exp(-0.500010068*(-3.364 + i7)^2) - 0.196102548*exp(- + 22.00930458*(-0.4788 + 0.1*i1)^2)*exp(-12.76383299*(-0.9818 + 0.1*i2)^2)* + exp(-12.56111847*(-0.9879 + 0.1*i3)^2)*exp(-2.803886871*(-1.193 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.586 + i5)^2)*exp(-0.020392626*(-3.798 + i6)^2)*exp(- + 0.500010068*(-3.03 + i7)^2) - 0.28758241*exp(-22.00930458*(-0.3182 + 0.1*i1 + )^2)*exp(-12.76383299*(-0.5697 + 0.1*i2)^2)*exp(-12.56111847*(-0.7091 + 0.1 + *i3)^2)*exp(-2.803886871*(-1.217 + 0.1*i4)^2)*exp(-0.290932422*(-1.061 + i5 + )^2)*exp(-0.020392626*(-3.646 + i6)^2)*exp(-0.500010068*(-2.455 + i7)^2) - + 2.973671487*exp(-22.00930458*(-0.3909 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8606 + 0.1*i2)^2)*exp(-12.56111847*(-0.5818 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.468 + 0.1*i4)^2)*exp(-0.290932422*(-1.03 + i5)^2)*exp(-0.020392626*(- + 3.455 + i6)^2)*exp(-0.500010068*(-3.242 + i7)^2) + 1.764063326*exp(- + 22.00930458*(-0.5909 + 0.1*i1)^2)*exp(-12.76383299*(-0.6303 + 0.1*i2)^2)* + exp(-12.56111847*(-0.5091 + 0.1*i3)^2)*exp(-2.803886871*(-1.266 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.303 + i5)^2)*exp(-0.020392626*(-3.899 + i6)^2)*exp(- + 0.500010068*(-3.909 + i7)^2) + 1.388551416*exp(-22.00930458*(-0.5939 + 0.1* + i1)^2)*exp(-12.76383299*(-0.6727 + 0.1*i2)^2)*exp(-12.56111847*(-0.7758 + + 0.1*i3)^2)*exp(-2.803886871*(-1.249 + 0.1*i4)^2)*exp(-0.290932422*(-1.818 + + i5)^2)*exp(-0.020392626*(-3.586 + i6)^2)*exp(-0.500010068*(-4.848 + i7)^ + 2) - 0.954798034*exp(-22.00930458*(-0.5242 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8061 + 0.1*i2)^2)*exp(-12.56111847*(-0.5697 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.452 + 0.1*i4)^2)*exp(-0.290932422*(-1.949 + i5)^2)*exp(-0.020392626*(- + 3.253 + i6)^2)*exp(-0.500010068*(-3.606 + i7)^2) + 3.898470259*exp(- + 22.00930458*(-0.5667 + 0.1*i1)^2)*exp(-12.76383299*(-0.9636 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6182 + 0.1*i3)^2)*exp(-2.803886871*(-0.7242 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.495 + i5)^2)*exp(-0.020392626*(-3.475 + i6)^2)*exp( + -0.500010068*(-3.818 + i7)^2) + 0.51998228*exp(-22.00930458*(-0.3364 + 0.1* + i1)^2)*exp(-12.76383299*(-0.5091 + 0.1*i2)^2)*exp(-12.56111847*(-0.697 + + 0.1*i3)^2)*exp(-2.803886871*(-0.7323 + 0.1*i4)^2)*exp(-0.290932422*(-1.182 + + i5)^2)*exp(-0.020392626*(-3.313 + i6)^2)*exp(-0.500010068*(-3.727 + i7)^ + 2) + 0.036271803*exp(-22.00930458*(-0.4212 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.6061 + 0.1*i2)^2)*exp(-12.56111847*(-0.8485 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.476 + 0.1*i4)^2)*exp(-0.290932422*(-1.505 + i5)^2)*exp(-0.020392626*(- + 3.364 + i6)^2)*exp(-0.500010068*(-5 + i7)^2) - 5.73322067*exp(-22.00930458* + (-0.3697 + 0.1*i1)^2)*exp(-12.76383299*(-0.8485 + 0.1*i2)^2)*exp(- + 12.56111847*(-0.5455 + 0.1*i3)^2)*exp(-2.803886871*(-0.902 + 0.1*i4)^2)* + exp(-0.290932422*(-1.788 + i5)^2)*exp(-0.020392626*(-3.697 + i6)^2)*exp(- + 0.500010068*(-4.909 + i7)^2) + 1.092203524*exp(-22.00930458*(-0.5121 + 0.1* + i1)^2)*exp(-12.76383299*(-0.5758 + 0.1*i2)^2)*exp(-12.56111847*(-0.9091 + + 0.1*i3)^2)*exp(-2.803886871*(-0.8051 + 0.1*i4)^2)*exp(-0.290932422*(-1.152 + + i5)^2)*exp(-0.020392626*(-3.667 + i6)^2)*exp(-0.500010068*(-4.485 + i7)^ + 2) - 0.927341733*exp(-22.00930458*(-0.4697 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.7455 + 0.1*i2)^2)*exp(-12.56111847*(-0.9515 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.33 + 0.1*i4)^2)*exp(-0.290932422*(-1.162 + i5)^2)*exp(-0.020392626*(- + 3.354 + i6)^2)*exp(-0.500010068*(-2.182 + i7)^2) - 2.749529712*exp(- + 22.00930458*(-0.4758 + 0.1*i1)^2)*exp(-12.76383299*(-0.6848 + 0.1*i2)^2)* + exp(-12.56111847*(-0.4848 + 0.1*i3)^2)*exp(-2.803886871*(-0.7 + 0.1*i4)^2)* + exp(-0.290932422*(-1.939 + i5)^2)*exp(-0.020392626*(-3.515 + i6)^2)*exp(- + 0.500010068*(-3.333 + i7)^2) - 0.379015064*exp(-22.00930458*(-0.3152 + 0.1* + i1)^2)*exp(-12.76383299*(-0.5879 + 0.1*i2)^2)*exp(-12.56111847*(-0.8667 + + 0.1*i3)^2)*exp(-2.803886871*(-1.031 + 0.1*i4)^2)*exp(-0.290932422*(-1.485 + + i5)^2)*exp(-0.020392626*(-3.182 + i6)^2)*exp(-0.500010068*(-2.242 + i7)^ + 2) + 3.165134024*exp(-22.00930458*(-0.3818 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.7333 + 0.1*i2)^2)*exp(-12.56111847*(-0.4061 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.201 + 0.1*i4)^2)*exp(-0.290932422*(-1.283 + i5)^2)*exp(-0.020392626*(- + 3.949 + i6)^2)*exp(-0.500010068*(-3 + i7)^2) - 0.055112424*exp(-22.00930458 + *(-0.5182 + 0.1*i1)^2)*exp(-12.76383299*(-0.9939 + 0.1*i2)^2)*exp(- + 12.56111847*(-0.8788 + 0.1*i3)^2)*exp(-2.803886871*(-1.072 + 0.1*i4)^2)* + exp(-0.290932422*(-1.081 + i5)^2)*exp(-0.020392626*(-3.303 + i6)^2)*exp(- + 0.500010068*(-3.545 + i7)^2) + 2.394839148*exp(-22.00930458*(-0.4424 + 0.1* + i1)^2)*exp(-12.76383299*(-0.8364 + 0.1*i2)^2)*exp(-12.56111847*(-0.5333 + + 0.1*i3)^2)*exp(-2.803886871*(-1.484 + 0.1*i4)^2)*exp(-0.290932422*(-1.677 + + i5)^2)*exp(-0.020392626*(-3.737 + i6)^2)*exp(-0.500010068*(-2.333 + i7)^ + 2) - 1.167214979*exp(-22.00930458*(-0.397 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.5939 + 0.1*i2)^2)*exp(-12.56111847*(-0.8545 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.363 + 0.1*i4)^2)*exp(-0.290932422*(-1.869 + i5)^2)*exp(-0.020392626*(- + 3.02 + i6)^2)*exp(-0.500010068*(-3.515 + i7)^2) + 0.70583485*exp(- + 22.00930458*(-0.4879 + 0.1*i1)^2)*exp(-12.76383299*(-0.4788 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6121 + 0.1*i3)^2)*exp(-2.803886871*(-0.8939 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.051 + i5)^2)*exp(-0.020392626*(-3.879 + i6)^2)*exp( + -0.500010068*(-3.182 + i7)^2) - 0.173624371*exp(-22.00930458*(-0.3545 + 0.1 + *i1)^2)*exp(-12.76383299*(-0.4364 + 0.1*i2)^2)*exp(-12.56111847*(-0.7333 + + 0.1*i3)^2)*exp(-2.803886871*(-0.9828 + 0.1*i4)^2)*exp(-0.290932422*(-1.99 + + i5)^2)*exp(-0.020392626*(-3.495 + i6)^2)*exp(-0.500010068*(-2.97 + i7)^2 + ) - 1.171497605*exp(-22.00930458*(-0.5424 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.6909 + 0.1*i2)^2)*exp(-12.56111847*(-0.6727 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.7889 + 0.1*i4)^2)*exp(-0.290932422*(-1.121 + i5)^2)*exp(-0.020392626*( + -3.091 + i6)^2)*exp(-0.500010068*(-4.121 + i7)^2) - 2.001908679*exp(- + 22.00930458*(-0.4848 + 0.1*i1)^2)*exp(-12.76383299*(-0.7879 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6909 + 0.1*i3)^2)*exp(-2.803886871*(-0.7162 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.475 + i5)^2)*exp(-0.020392626*(-3.131 + i6)^2)*exp( + -0.500010068*(-2.212 + i7)^2) - 0.064305586*exp(-22.00930458*(-0.4394 + 0.1 + *i1)^2)*exp(-12.76383299*(-0.897 + 0.1*i2)^2)*exp(-12.56111847*(-0.9758 + + 0.1*i3)^2)*exp(-2.803886871*(-1.023 + 0.1*i4)^2)*exp(-0.290932422*(-1.667 + + i5)^2)*exp(-0.020392626*(-3.061 + i6)^2)*exp(-0.500010068*(-2.879 + i7)^ + 2) + 0.553693522*exp(-22.00930458*(-0.3848 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.5394 + 0.1*i2)^2)*exp(-12.56111847*(-0.9152 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.5 + 0.1*i4)^2)*exp(-0.290932422*(-1.596 + i5)^2)*exp(-0.020392626*(- + 3.636 + i6)^2)*exp(-0.500010068*(-2.727 + i7)^2) - 1.105479252*exp(- + 22.00930458*(-0.5545 + 0.1*i1)^2)*exp(-12.76383299*(-0.9758 + 0.1*i2)^2)* + exp(-12.56111847*(-0.7212 + 0.1*i3)^2)*exp(-2.803886871*(-1.08 + 0.1*i4)^2) + *exp(-0.290932422*(-1.838 + i5)^2)*exp(-0.020392626*(-3.434 + i6)^2)*exp(- + 0.500010068*(-2.364 + i7)^2) + 1.267573293*exp(-22.00930458*(-0.3758 + 0.1* + i1)^2)*exp(-12.76383299*(-0.8667 + 0.1*i2)^2)*exp(-12.56111847*(-0.5394 + + 0.1*i3)^2)*exp(-2.803886871*(-1.015 + 0.1*i4)^2)*exp(-0.290932422*(-1.919 + + i5)^2)*exp(-0.020392626*(-3.909 + i6)^2)*exp(-0.500010068*(-2.939 + i7)^ + 2) + 4.567678151*exp(-22.00930458*(-0.3212 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.7576 + 0.1*i2)^2)*exp(-12.56111847*(-0.5212 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.9343 + 0.1*i4)^2)*exp(-0.290932422*(-1.808 + i5)^2)*exp(-0.020392626*( + -3.212 + i6)^2)*exp(-0.500010068*(-2.545 + i7)^2) - 2.421052819*exp(- + 22.00930458*(-0.4727 + 0.1*i1)^2)*exp(-12.76383299*(-0.9333 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6485 + 0.1*i3)^2)*exp(-2.803886871*(-1.322 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.394 + i5)^2)*exp(-0.020392626*(-3.081 + i6)^2)*exp(- + 0.500010068*(-4.697 + i7)^2) + 1.058580661*exp(-22.00930458*(-0.4576 + 0.1* + i1)^2)*exp(-12.76383299*(-0.5455 + 0.1*i2)^2)*exp(-12.56111847*(-0.9939 + + 0.1*i3)^2)*exp(-2.803886871*(-1.169 + 0.1*i4)^2)*exp(-0.290932422*(-1.98 + + i5)^2)*exp(-0.020392626*(-3.626 + i6)^2)*exp(-0.500010068*(-3.939 + i7)^2) + + 3.668520992*exp(-22.00930458*(-0.3242 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.9212 + 0.1*i2)^2)*exp(-12.56111847*(-0.4667 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.314 + 0.1*i4)^2)*exp(-0.290932422*(-1.697 + i5)^2)*exp(-0.020392626*(- + 3.374 + i6)^2)*exp(-0.500010068*(-3.758 + i7)^2) + 1.575079823*exp(- + 22.00930458*(-0.5697 + 0.1*i1)^2)*exp(-12.76383299*(-0.4182 + 0.1*i2)^2)* + exp(-12.56111847*(-0.7394 + 0.1*i3)^2)*exp(-2.803886871*(-0.8374 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.717 + i5)^2)*exp(-0.020392626*(-3.727 + i6)^2)*exp( + -0.500010068*(-3.303 + i7)^2) + 2.596893777*exp(-22.00930458*(-0.3727 + 0.1 + *i1)^2)*exp(-12.76383299*(-0.9879 + 0.1*i2)^2)*exp(-12.56111847*(-0.6848 + + 0.1*i3)^2)*exp(-2.803886871*(-1.104 + 0.1*i4)^2)*exp(-0.290932422*(-1.343 + + i5)^2)*exp(-0.020392626*(-3.606 + i6)^2)*exp(-0.500010068*(-2 + i7)^2) + - 1.80733539*exp(-22.00930458*(-0.5091 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.4667 + 0.1*i2)^2)*exp(-12.56111847*(-0.8303 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.8859 + 0.1*i4)^2)*exp(-0.290932422*(-1.111 + i5)^2)*exp(-0.020392626*( + -3.283 + i6)^2)*exp(-0.500010068*(-2.576 + i7)^2) - 2.587800056*exp(- + 22.00930458*(-0.3485 + 0.1*i1)^2)*exp(-12.76383299*(-0.9091 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6606 + 0.1*i3)^2)*exp(-2.803886871*(-0.999 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.172 + i5)^2)*exp(-0.020392626*(-3.03 + i6)^2)*exp(- + 0.500010068*(-3.152 + i7)^2) + 0.53147207*exp(-22.00930458*(-0.5848 + 0.1* + i1)^2)*exp(-12.76383299*(-0.6788 + 0.1*i2)^2)*exp(-12.56111847*(-0.8 + 0.1* + i3)^2)*exp(-2.803886871*(-1.298 + 0.1*i4)^2)*exp(-0.290932422*(-1.848 + i5) + ^2)*exp(-0.020392626*(-3.828 + i6)^2)*exp(-0.500010068*(-2.636 + i7)^2) - + 1.228587578*exp(-22.00930458*(-0.3303 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.5212 + 0.1*i2)^2)*exp(-12.56111847*(-0.497 + 0.1*i3)^2)*exp(-2.803886871* + (-1.395 + 0.1*i4)^2)*exp(-0.290932422*(-1.636 + i5)^2)*exp(-0.020392626*(- + 3.384 + i6)^2)*exp(-0.500010068*(-2.697 + i7)^2) + 0.489293603*exp(- + 22.00930458*(-0.3061 + 0.1*i1)^2)*exp(-12.76383299*(-0.6242 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6788 + 0.1*i3)^2)*exp(-2.803886871*(-1.338 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.859 + i5)^2)*exp(-0.020392626*(-3.758 + i6)^2)*exp(- + 0.500010068*(-4.273 + i7)^2) - 2.342496671*exp(-22.00930458*(-0.5485 + 0.1* + i1)^2)*exp(-12.76383299*(-0.4545 + 0.1*i2)^2)*exp(-12.56111847*(-0.8848 + + 0.1*i3)^2)*exp(-2.803886871*(-1.112 + 0.1*i4)^2)*exp(-0.290932422*(-1.515 + + i5)^2)*exp(-0.020392626*(-3.101 + i6)^2)*exp(-0.500010068*(-4.333 + i7)^ + 2) + 1.263482541*exp(-22.00930458*(-0.4636 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.7939 + 0.1*i2)^2)*exp(-12.56111847*(-0.7879 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.492 + 0.1*i4)^2)*exp(-0.290932422*(-1.707 + i5)^2)*exp(-0.020392626*(- + 3.97 + i6)^2)*exp(-0.500010068*(-4.03 + i7)^2) - 0.504870884*exp(- + 22.00930458*(-0.3455 + 0.1*i1)^2)*exp(-12.76383299*(-0.5818 + 0.1*i2)^2)* + exp(-12.56111847*(-0.7455 + 0.1*i3)^2)*exp(-2.803886871*(-0.7404 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.687 + i5)^2)*exp(-0.020392626*(-3.929 + i6)^2)*exp( + -0.500010068*(-3.788 + i7)^2) + 1.108457951*exp(-22.00930458*(-0.6 + 0.1*i1 + )^2)*exp(-12.76383299*(-0.7515 + 0.1*i2)^2)*exp(-12.56111847*(-0.9455 + 0.1 + *i3)^2)*exp(-2.803886871*(-0.8616 + 0.1*i4)^2)*exp(-0.290932422*(-1.384 + + i5)^2)*exp(-0.020392626*(-3.596 + i6)^2)*exp(-0.500010068*(-2.848 + i7)^2) + - 0.049197609*exp(-22.00930458*(-0.3273 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.4 + 0.1*i2)^2)*exp(-12.56111847*(-0.897 + 0.1*i3)^2)*exp(-2.803886871*(- + 1.12 + 0.1*i4)^2)*exp(-0.290932422*(-1.404 + i5)^2)*exp(-0.020392626*(- + 3.525 + i6)^2)*exp(-0.500010068*(-4.182 + i7)^2) + 0.285192754*exp(- + 22.00930458*(-0.5212 + 0.1*i1)^2)*exp(-12.76383299*(-0.497 + 0.1*i2)^2)* + exp(-12.56111847*(-0.8909 + 0.1*i3)^2)*exp(-2.803886871*(-1.185 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.737 + i5)^2)*exp(-0.020392626*(-3.293 + i6)^2)*exp(- + 0.500010068*(-2.091 + i7)^2) + 1.629473966*exp(-22.00930458*(-0.4303 + 0.1* + i1)^2)*exp(-12.76383299*(-0.4606 + 0.1*i2)^2)*exp(-12.56111847*(-0.6242 + + 0.1*i3)^2)*exp(-2.803886871*(-1.225 + 0.1*i4)^2)*exp(-0.290932422*(-1.727 + + i5)^2)*exp(-0.020392626*(-3.96 + i6)^2)*exp(-0.500010068*(-2.424 + i7)^2 + ) + 0.428225015*exp(-22.00930458*(-0.3121 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8909 + 0.1*i2)^2)*exp(-12.56111847*(-0.903 + 0.1*i3)^2)*exp(-2.803886871* + (-1.387 + 0.1*i4)^2)*exp(-0.290932422*(-1.414 + i5)^2)*exp(-0.020392626*(- + 3.323 + i6)^2)*exp(-0.500010068*(-3.636 + i7)^2) - 1.619707977*exp(- + 22.00930458*(-0.3424 + 0.1*i1)^2)*exp(-12.76383299*(-0.4485 + 0.1*i2)^2)* + exp(-12.56111847*(-0.4182 + 0.1*i3)^2)*exp(-2.803886871*(-0.9747 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.566 + i5)^2)*exp(-0.020392626*(-3.657 + i6)^2)*exp( + -0.500010068*(-3.879 + i7)^2) + 2.317694434*exp(-22.00930458*(-0.497 + 0.1* + i1)^2)*exp(-12.76383299*(-0.7697 + 0.1*i2)^2)*exp(-12.56111847*(-0.7939 + + 0.1*i3)^2)*exp(-2.803886871*(-1.274 + 0.1*i4)^2)*exp(-0.290932422*(-1.141 + + i5)^2)*exp(-0.020392626*(-4 + i6)^2)*exp(-0.500010068*(-2.515 + i7)^2) + - 0.082556066*exp(-22.00930458*(-0.4939 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.5576 + 0.1*i2)^2)*exp(-12.56111847*(-0.4545 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.177 + 0.1*i4)^2)*exp(-0.290932422*(-1.96 + i5)^2)*exp(-0.020392626*(- + 3.818 + i6)^2)*exp(-0.500010068*(-4 + i7)^2) - 4.096258274*exp(-22.00930458 + *(-0.5 + 0.1*i1)^2)*exp(-12.76383299*(-0.9515 + 0.1*i2)^2)*exp(-12.56111847 + *(-0.4 + 0.1*i3)^2)*exp(-2.803886871*(-1.088 + 0.1*i4)^2)*exp(-0.290932422* + (-1.455 + i5)^2)*exp(-0.020392626*(-3.242 + i6)^2)*exp(-0.500010068*(-2.788 + + i7)^2) + 0.04213449*exp(-22.00930458*(-0.4182 + 0.1*i1)^2)*exp(- + 12.76383299*(-0.9455 + 0.1*i2)^2)*exp(-12.56111847*(-0.8364 + 0.1*i3)^2)* + exp(-2.803886871*(-1.258 + 0.1*i4)^2)*exp(-0.290932422*(-1.929 + i5)^2)* + exp(-0.020392626*(-3.465 + i6)^2)*exp(-0.500010068*(-4.606 + i7)^2) - + 1.100088663*exp(-22.00930458*(-0.3636 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.7818 + 0.1*i2)^2)*exp(-12.56111847*(-1 + 0.1*i3)^2)*exp(-2.803886871*(- + 0.9909 + 0.1*i4)^2)*exp(-0.290932422*(-1.535 + i5)^2)*exp(-0.020392626*(- + 3.768 + i6)^2)*exp(-0.500010068*(-4.667 + i7)^2) - 0.255188786*exp(- + 22.00930458*(-0.4091 + 0.1*i1)^2)*exp(-12.76383299*(-0.7212 + 0.1*i2)^2)* + exp(-12.56111847*(-0.9273 + 0.1*i3)^2)*exp(-2.803886871*(-1.371 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.04 + i5)^2)*exp(-0.020392626*(-3.747 + i6)^2)*exp(- + 0.500010068*(-4.152 + i7)^2) + 0.206615219*exp(-22.00930458*(-0.4455 + 0.1* + i1)^2)*exp(-12.76383299*(-0.4242 + 0.1*i2)^2)*exp(-12.56111847*(-0.5879 + + 0.1*i3)^2)*exp(-2.803886871*(-0.9182 + 0.1*i4)^2)*exp(-0.290932422*(-1.626 + + i5)^2)*exp(-0.020392626*(-3 + i6)^2)*exp(-0.500010068*(-3.091 + i7)^2) + - 0.457322846*exp(-22.00930458*(-0.3667 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8424 + 0.1*i2)^2)*exp(-12.56111847*(-0.8242 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.29 + 0.1*i4)^2)*exp(-0.290932422*(-2 + i5)^2)*exp(-0.020392626*(-3.485 + + i6)^2)*exp(-0.500010068*(-2.485 + i7)^2) - 2.949390266*exp(-22.00930458* + (-0.4 + 0.1*i1)^2)*exp(-12.76383299*(-0.6 + 0.1*i2)^2)*exp(-12.56111847*(- + 0.4364 + 0.1*i3)^2)*exp(-2.803886871*(-1.056 + 0.1*i4)^2)*exp(-0.290932422* + (-1.091 + i5)^2)*exp(-0.020392626*(-3.202 + i6)^2)*exp(-0.500010068*(-2.606 + + i7)^2) + 0.25607099*exp(-22.00930458*(-0.5303 + 0.1*i1)^2)*exp(- + 12.76383299*(-0.8545 + 0.1*i2)^2)*exp(-12.56111847*(-0.9212 + 0.1*i3)^2)* + exp(-2.803886871*(-0.8778 + 0.1*i4)^2)*exp(-0.290932422*(-1.616 + i5)^2)* + exp(-0.020392626*(-3.232 + i6)^2)*exp(-0.500010068*(-4.727 + i7)^2) - + 0.523371239*exp(-22.00930458*(-0.3879 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.5515 + 0.1*i2)^2)*exp(-12.56111847*(-0.5576 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.7808 + 0.1*i4)^2)*exp(-0.290932422*(-1.444 + i5)^2)*exp(-0.020392626*( + -3.677 + i6)^2)*exp(-0.500010068*(-2.03 + i7)^2) + 0.151681649*exp(- + 22.00930458*(-0.4515 + 0.1*i1)^2)*exp(-12.76383299*(-0.7273 + 0.1*i2)^2)* + exp(-12.56111847*(-0.8727 + 0.1*i3)^2)*exp(-2.803886871*(-0.8131 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1.828 + i5)^2)*exp(-0.020392626*(-3.717 + i6)^2)*exp( + -0.500010068*(-2.061 + i7)^2) + 1.034423568*exp(-22.00930458*(-0.4818 + 0.1 + *i1)^2)*exp(-12.76383299*(-0.4121 + 0.1*i2)^2)*exp(-12.56111847*(-0.5515 + + 0.1*i3)^2)*exp(-2.803886871*(-1.064 + 0.1*i4)^2)*exp(-0.290932422*(-1.202 + + i5)^2)*exp(-0.020392626*(-3.404 + i6)^2)*exp(-0.500010068*(-4.788 + i7)^ + 2) - 0.626724873*exp(-22.00930458*(-0.5515 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8182 + 0.1*i2)^2)*exp(-12.56111847*(-0.9636 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.443 + 0.1*i4)^2)*exp(-0.290932422*(-1.606 + i5)^2)*exp(-0.020392626*(- + 3.263 + i6)^2)*exp(-0.500010068*(-3.667 + i7)^2) - 0.092166434*exp(- + 22.00930458*(-0.4667 + 0.1*i1)^2)*exp(-12.76383299*(-0.4727 + 0.1*i2)^2)* + exp(-12.56111847*(-0.7818 + 0.1*i3)^2)*exp(-2.803886871*(-1.136 + 0.1*i4)^2 + )*exp(-0.290932422*(-1.545 + i5)^2)*exp(-0.020392626*(-3.99 + i6)^2)*exp(- + 0.500010068*(-4.758 + i7)^2) - 0.04021769*exp(-22.00930458*(-0.5606 + 0.1* + i1)^2)*exp(-12.76383299*(-0.7758 + 0.1*i2)^2)*exp(-12.56111847*(-0.5273 + + 0.1*i3)^2)*exp(-2.803886871*(-0.9263 + 0.1*i4)^2)*exp(-0.290932422*(-1.576 + + i5)^2)*exp(-0.020392626*(-3.919 + i6)^2)*exp(-0.500010068*(-2.394 + i7)^ + 2) - 0.379015764*exp(-22.00930458*(-0.4333 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.5636 + 0.1*i2)^2)*exp(-12.56111847*(-0.9818 + 0.1*i3)^2)*exp(-2.803886871 + *(-0.7081 + 0.1*i4)^2)*exp(-0.290932422*(-1.657 + i5)^2)*exp(-0.020392626*( + -3.273 + i6)^2)*exp(-0.500010068*(-3.455 + i7)^2) + 3.16566228*exp(- + 22.00930458*(-0.5333 + 0.1*i1)^2)*exp(-12.76383299*(-0.8303 + 0.1*i2)^2)* + exp(-12.56111847*(-0.6061 + 0.1*i3)^2)*exp(-2.803886871*(-0.9424 + 0.1*i4)^ + 2)*exp(-0.290932422*(-1 + i5)^2)*exp(-0.020392626*(-3.545 + i6)^2)*exp(- + 0.500010068*(-2.303 + i7)^2) + 0.964055093*exp(-22.00930458*(-0.3788 + 0.1* + i1)^2)*exp(-12.76383299*(-0.9152 + 0.1*i2)^2)*exp(-12.56111847*(-0.7515 + + 0.1*i3)^2)*exp(-2.803886871*(-0.8455 + 0.1*i4)^2)*exp(-0.290932422*(-1.212 + + i5)^2)*exp(-0.020392626*(-3.394 + i6)^2)*exp(-0.500010068*(-4.879 + i7)^ + 2) + 7.499035039*exp(-22.00930458*(-0.4909 + 0.1*i1)^2)*exp(-12.76383299*(- + 0.8727 + 0.1*i2)^2)*exp(-12.56111847*(-0.4424 + 0.1*i3)^2)*exp(-2.803886871 + *(-1.047 + 0.1*i4)^2)*exp(-0.290932422*(-1.02 + i5)^2)*exp(-0.020392626*(- + 3.556 + i6)^2)*exp(-0.500010068*(-4.303 + i7)^2)) + x8 >= 1.291143688; + + -(0.335075445*exp(-11.22151103*(-0.303 + 0.1*i1)^2)*exp(-12.7904179*(-0.697 + + 0.1*i2)^2)*exp(-12.6084759*(-0.8061 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.9586 + 0.1*i4)^2)*exp(-0.086608811*(-1.758 + i5)^2)*exp(-0.048443694*(- + 3.141 + i6)^2)*exp(-0.511069048*(-4.424 + i7)^2) + 1.995736074*exp(- + 11.22151103*(-0.5364 + 0.1*i1)^2)*exp(-12.7904179*(-0.9697 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4909 + 0.1*i3)^2)*exp(-1.702145313*(-1.161 + 0.1*i4)^2) + *exp(-0.086608811*(-1.778 + i5)^2)*exp(-0.048443694*(-3.778 + i6)^2)*exp(- + 0.511069048*(-4.091 + i7)^2) - 0.682520491*exp(-11.22151103*(-0.503 + 0.1* + i1)^2)*exp(-12.7904179*(-0.6182 + 0.1*i2)^2)*exp(-12.6084759*(-0.4121 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.419 + 0.1*i4)^2)*exp(-0.086608811*(-1.333 + i5 + )^2)*exp(-0.048443694*(-3.152 + i6)^2)*exp(-0.511069048*(-3.697 + i7)^2) - + 6.037438176*exp(-11.22151103*(-0.4606 + 0.1*i1)^2)*exp(-12.7904179*(-0.903 + + 0.1*i2)^2)*exp(-12.6084759*(-0.7576 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.7727 + 0.1*i4)^2)*exp(-0.086608811*(-1.242 + i5)^2)*exp(-0.048443694*(- + 3.98 + i6)^2)*exp(-0.511069048*(-3.424 + i7)^2) - 0.493387177*exp(- + 11.22151103*(-0.3 + 0.1*i1)^2)*exp(-12.7904179*(-0.7636 + 0.1*i2)^2)*exp(- + 12.6084759*(-0.8606 + 0.1*i3)^2)*exp(-1.702145313*(-1.153 + 0.1*i4)^2)*exp( + -0.086608811*(-1.556 + i5)^2)*exp(-0.048443694*(-3.939 + i6)^2)*exp(- + 0.511069048*(-2.818 + i7)^2) - 2.029747706*exp(-11.22151103*(-0.5879 + 0.1* + i1)^2)*exp(-12.7904179*(-0.703 + 0.1*i2)^2)*exp(-12.6084759*(-0.4788 + 0.1* + i3)^2)*exp(-1.702145313*(-1.039 + 0.1*i4)^2)*exp(-0.086608811*(-1.646 + i5) + ^2)*exp(-0.048443694*(-3.222 + i6)^2)*exp(-0.511069048*(-4.636 + i7)^2) - + 0.33109727*exp(-11.22151103*(-0.4121 + 0.1*i1)^2)*exp(-12.7904179*(-0.4424 + + 0.1*i2)^2)*exp(-12.6084759*(-0.5939 + 0.1*i3)^2)*exp(-1.702145313*(-1.46 + + 0.1*i4)^2)*exp(-0.086608811*(-1.232 + i5)^2)*exp(-0.048443694*(-3.788 + + i6)^2)*exp(-0.511069048*(-3.848 + i7)^2) - 0.317212303*exp(-11.22151103*(- + 0.5576 + 0.1*i1)^2)*exp(-12.7904179*(-0.8848 + 0.1*i2)^2)*exp(-12.6084759*( + -0.8121 + 0.1*i3)^2)*exp(-1.702145313*(-1.128 + 0.1*i4)^2)*exp(-0.086608811 + *(-1.263 + i5)^2)*exp(-0.048443694*(-3.808 + i6)^2)*exp(-0.511069048*(- + 4.818 + i7)^2) + 0.167937615*exp(-11.22151103*(-0.4273 + 0.1*i1)^2)*exp(- + 12.7904179*(-0.4848 + 0.1*i2)^2)*exp(-12.6084759*(-0.9697 + 0.1*i3)^2)*exp( + -1.702145313*(-0.9667 + 0.1*i4)^2)*exp(-0.086608811*(-1.364 + i5)^2)*exp(- + 0.048443694*(-3.869 + i6)^2)*exp(-0.511069048*(-2.667 + i7)^2) + + 0.892750438*exp(-11.22151103*(-0.5455 + 0.1*i1)^2)*exp(-12.7904179*(-0.4061 + + 0.1*i2)^2)*exp(-12.6084759*(-0.6303 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.427 + 0.1*i4)^2)*exp(-0.086608811*(-1.747 + i5)^2)*exp(-0.048443694*(- + 3.444 + i6)^2)*exp(-0.511069048*(-3.576 + i7)^2) - 0.371680267*exp(- + 11.22151103*(-0.5394 + 0.1*i1)^2)*exp(-12.7904179*(-0.5273 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5636 + 0.1*i3)^2)*exp(-1.702145313*(-1.355 + 0.1*i4)^2) + *exp(-0.086608811*(-1.253 + i5)^2)*exp(-0.048443694*(-3.566 + i6)^2)*exp(- + 0.511069048*(-2.121 + i7)^2) - 1.569254046*exp(-11.22151103*(-0.5273 + 0.1* + i1)^2)*exp(-12.7904179*(-0.8121 + 0.1*i2)^2)*exp(-12.6084759*(-0.8424 + 0.1 + *i3)^2)*exp(-1.702145313*(-0.8535 + 0.1*i4)^2)*exp(-0.086608811*(-1.899 + + i5)^2)*exp(-0.048443694*(-3.889 + i6)^2)*exp(-0.511069048*(-4.061 + i7)^2) + + 0.624820957*exp(-11.22151103*(-0.5727 + 0.1*i1)^2)*exp(-12.7904179*(- + 0.4909 + 0.1*i2)^2)*exp(-12.6084759*(-0.9333 + 0.1*i3)^2)*exp(-1.702145313* + (-1.306 + 0.1*i4)^2)*exp(-0.086608811*(-1.273 + i5)^2)*exp(-0.048443694*(- + 3.707 + i6)^2)*exp(-0.511069048*(-3.485 + i7)^2) - 1.460238863*exp(- + 11.22151103*(-0.3091 + 0.1*i1)^2)*exp(-12.7904179*(-0.6364 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5758 + 0.1*i3)^2)*exp(-1.702145313*(-1.282 + 0.1*i4)^2) + *exp(-0.086608811*(-1.222 + i5)^2)*exp(-0.048443694*(-3.192 + i6)^2)*exp(- + 0.511069048*(-4.455 + i7)^2) - 0.11156413*exp(-11.22151103*(-0.4364 + 0.1* + i1)^2)*exp(-12.7904179*(-0.7394 + 0.1*i2)^2)*exp(-12.6084759*(-0.4485 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.403 + 0.1*i4)^2)*exp(-0.086608811*(-1.465 + i5 + )^2)*exp(-0.048443694*(-3.687 + i6)^2)*exp(-0.511069048*(-4.939 + i7)^2) + + 0.530431968*exp(-11.22151103*(-0.5636 + 0.1*i1)^2)*exp(-12.7904179*(-0.6485 + + 0.1*i2)^2)*exp(-12.6084759*(-0.7273 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.346 + 0.1*i4)^2)*exp(-0.086608811*(-1.01 + i5)^2)*exp(-0.048443694*(- + 3.333 + i6)^2)*exp(-0.511069048*(-4.364 + i7)^2) - 1.25324444*exp(- + 11.22151103*(-0.597 + 0.1*i1)^2)*exp(-12.7904179*(-0.7152 + 0.1*i2)^2)*exp( + -12.6084759*(-0.703 + 0.1*i3)^2)*exp(-1.702145313*(-1.209 + 0.1*i4)^2)*exp( + -0.086608811*(-1.354 + i5)^2)*exp(-0.048443694*(-3.01 + i6)^2)*exp(- + 0.511069048*(-2.758 + i7)^2) - 4.139676977*exp(-11.22151103*(-0.5152 + 0.1* + i1)^2)*exp(-12.7904179*(-0.6606 + 0.1*i2)^2)*exp(-12.6084759*(-0.503 + 0.1* + i3)^2)*exp(-1.702145313*(-0.7566 + 0.1*i4)^2)*exp(-0.086608811*(-1.424 + i5 + )^2)*exp(-0.048443694*(-3.848 + i6)^2)*exp(-0.511069048*(-4.576 + i7)^2) + + 1.320701981*exp(-11.22151103*(-0.5758 + 0.1*i1)^2)*exp(-12.7904179*(-0.5152 + + 0.1*i2)^2)*exp(-12.6084759*(-0.4303 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.8697 + 0.1*i4)^2)*exp(-0.086608811*(-1.374 + i5)^2)*exp(-0.048443694*(- + 3.414 + i6)^2)*exp(-0.511069048*(-3.061 + i7)^2) + 8.687566628*exp(- + 11.22151103*(-0.3939 + 0.1*i1)^2)*exp(-12.7904179*(-0.7091 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4242 + 0.1*i3)^2)*exp(-1.702145313*(-0.8293 + 0.1*i4)^2 + )*exp(-0.086608811*(-1.434 + i5)^2)*exp(-0.048443694*(-3.121 + i6)^2)*exp(- + 0.511069048*(-4.394 + i7)^2) - 0.95648999*exp(-11.22151103*(-0.403 + 0.1*i1 + )^2)*exp(-12.7904179*(-0.5333 + 0.1*i2)^2)*exp(-12.6084759*(-0.5152 + 0.1* + i3)^2)*exp(-1.702145313*(-1.233 + 0.1*i4)^2)*exp(-0.086608811*(-1.889 + i5) + ^2)*exp(-0.048443694*(-3.172 + i6)^2)*exp(-0.511069048*(-4.545 + i7)^2) + + 0.847544914*exp(-11.22151103*(-0.5061 + 0.1*i1)^2)*exp(-12.7904179*(-0.6121 + + 0.1*i2)^2)*exp(-12.6084759*(-0.4606 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.144 + 0.1*i4)^2)*exp(-0.086608811*(-1.879 + i5)^2)*exp(-0.048443694*(- + 3.343 + i6)^2)*exp(-0.511069048*(-2.152 + i7)^2) - 2.471877132*exp(- + 11.22151103*(-0.4152 + 0.1*i1)^2)*exp(-12.7904179*(-0.8242 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6545 + 0.1*i3)^2)*exp(-1.702145313*(-1.411 + 0.1*i4)^2) + *exp(-0.086608811*(-1.525 + i5)^2)*exp(-0.048443694*(-3.04 + i6)^2)*exp(- + 0.511069048*(-2.273 + i7)^2) + 0.856019039*exp(-11.22151103*(-0.4545 + 0.1* + i1)^2)*exp(-12.7904179*(-0.503 + 0.1*i2)^2)*exp(-12.6084759*(-0.7152 + 0.1* + i3)^2)*exp(-1.702145313*(-0.797 + 0.1*i4)^2)*exp(-0.086608811*(-1.798 + i5) + ^2)*exp(-0.048443694*(-3.424 + i6)^2)*exp(-0.511069048*(-4.97 + i7)^2) + + 1.413329875*exp(-11.22151103*(-0.3606 + 0.1*i1)^2)*exp(-12.7904179*(-0.8 + + 0.1*i2)^2)*exp(-12.6084759*(-0.9394 + 0.1*i3)^2)*exp(-1.702145313*(-0.8212 + + 0.1*i4)^2)*exp(-0.086608811*(-1.101 + i5)^2)*exp(-0.048443694*(-3.535 + + i6)^2)*exp(-0.511069048*(-2.909 + i7)^2) + 0.394400797*exp(-11.22151103*(- + 0.5818 + 0.1*i1)^2)*exp(-12.7904179*(-0.9394 + 0.1*i2)^2)*exp(-12.6084759*( + -0.6364 + 0.1*i3)^2)*exp(-1.702145313*(-1.435 + 0.1*i4)^2)*exp(-0.086608811 + *(-1.313 + i5)^2)*exp(-0.048443694*(-3.576 + i6)^2)*exp(-0.511069048*(- + 3.212 + i7)^2) + 4.569338848*exp(-11.22151103*(-0.4485 + 0.1*i1)^2)*exp(- + 12.7904179*(-0.9273 + 0.1*i2)^2)*exp(-12.6084759*(-0.6 + 0.1*i3)^2)*exp(- + 1.702145313*(-0.9505 + 0.1*i4)^2)*exp(-0.086608811*(-1.909 + i5)^2)*exp(- + 0.048443694*(-3.051 + i6)^2)*exp(-0.511069048*(-3.97 + i7)^2) - 5.435781169 + *exp(-11.22151103*(-0.3394 + 0.1*i1)^2)*exp(-12.7904179*(-0.8788 + 0.1*i2)^ + 2)*exp(-12.6084759*(-0.4727 + 0.1*i3)^2)*exp(-1.702145313*(-0.7646 + 0.1*i4 + )^2)*exp(-0.086608811*(-1.293 + i5)^2)*exp(-0.048443694*(-3.616 + i6)^2)* + exp(-0.511069048*(-3.273 + i7)^2) + 2.840237801*exp(-11.22151103*(-0.3515 + + 0.1*i1)^2)*exp(-12.7904179*(-0.9576 + 0.1*i2)^2)*exp(-12.6084759*(- + 0.8182 + 0.1*i3)^2)*exp(-1.702145313*(-0.7485 + 0.1*i4)^2)*exp(-0.086608811 + *(-1.768 + i5)^2)*exp(-0.048443694*(-3.505 + i6)^2)*exp(-0.511069048*(- + 3.394 + i7)^2) - 1.042669057*exp(-11.22151103*(-0.4061 + 0.1*i1)^2)*exp(- + 12.7904179*(-0.6667 + 0.1*i2)^2)*exp(-12.6084759*(-0.9576 + 0.1*i3)^2)*exp( + -1.702145313*(-1.096 + 0.1*i4)^2)*exp(-0.086608811*(-1.131 + i5)^2)*exp(- + 0.048443694*(-3.071 + i6)^2)*exp(-0.511069048*(-4.242 + i7)^2) + + 1.830290963*exp(-11.22151103*(-0.5788 + 0.1*i1)^2)*exp(-12.7904179*(-0.6545 + + 0.1*i2)^2)*exp(-12.6084759*(-0.7697 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.9101 + 0.1*i4)^2)*exp(-0.086608811*(-1.97 + i5)^2)*exp(-0.048443694*(- + 3.162 + i6)^2)*exp(-0.511069048*(-3.364 + i7)^2) - 0.278253731*exp(- + 11.22151103*(-0.4788 + 0.1*i1)^2)*exp(-12.7904179*(-0.9818 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9879 + 0.1*i3)^2)*exp(-1.702145313*(-1.193 + 0.1*i4)^2) + *exp(-0.086608811*(-1.586 + i5)^2)*exp(-0.048443694*(-3.798 + i6)^2)*exp(- + 0.511069048*(-3.03 + i7)^2) + 0.236907083*exp(-11.22151103*(-0.3182 + 0.1* + i1)^2)*exp(-12.7904179*(-0.5697 + 0.1*i2)^2)*exp(-12.6084759*(-0.7091 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.217 + 0.1*i4)^2)*exp(-0.086608811*(-1.061 + i5 + )^2)*exp(-0.048443694*(-3.646 + i6)^2)*exp(-0.511069048*(-2.455 + i7)^2) - + 1.81575377*exp(-11.22151103*(-0.3909 + 0.1*i1)^2)*exp(-12.7904179*(-0.8606 + + 0.1*i2)^2)*exp(-12.6084759*(-0.5818 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.468 + 0.1*i4)^2)*exp(-0.086608811*(-1.03 + i5)^2)*exp(-0.048443694*(- + 3.455 + i6)^2)*exp(-0.511069048*(-3.242 + i7)^2) + 1.373224251*exp(- + 11.22151103*(-0.5909 + 0.1*i1)^2)*exp(-12.7904179*(-0.6303 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5091 + 0.1*i3)^2)*exp(-1.702145313*(-1.266 + 0.1*i4)^2) + *exp(-0.086608811*(-1.303 + i5)^2)*exp(-0.048443694*(-3.899 + i6)^2)*exp(- + 0.511069048*(-3.909 + i7)^2) + 1.024746966*exp(-11.22151103*(-0.5939 + 0.1* + i1)^2)*exp(-12.7904179*(-0.6727 + 0.1*i2)^2)*exp(-12.6084759*(-0.7758 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.249 + 0.1*i4)^2)*exp(-0.086608811*(-1.818 + i5 + )^2)*exp(-0.048443694*(-3.586 + i6)^2)*exp(-0.511069048*(-4.848 + i7)^2) - + 3.171915998*exp(-11.22151103*(-0.5242 + 0.1*i1)^2)*exp(-12.7904179*(-0.8061 + + 0.1*i2)^2)*exp(-12.6084759*(-0.5697 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.452 + 0.1*i4)^2)*exp(-0.086608811*(-1.949 + i5)^2)*exp(-0.048443694*(- + 3.253 + i6)^2)*exp(-0.511069048*(-3.606 + i7)^2) + 4.283981896*exp(- + 11.22151103*(-0.5667 + 0.1*i1)^2)*exp(-12.7904179*(-0.9636 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6182 + 0.1*i3)^2)*exp(-1.702145313*(-0.7242 + 0.1*i4)^2 + )*exp(-0.086608811*(-1.495 + i5)^2)*exp(-0.048443694*(-3.475 + i6)^2)*exp(- + 0.511069048*(-3.818 + i7)^2) - 0.739292447*exp(-11.22151103*(-0.3364 + 0.1* + i1)^2)*exp(-12.7904179*(-0.5091 + 0.1*i2)^2)*exp(-12.6084759*(-0.697 + 0.1* + i3)^2)*exp(-1.702145313*(-0.7323 + 0.1*i4)^2)*exp(-0.086608811*(-1.182 + i5 + )^2)*exp(-0.048443694*(-3.313 + i6)^2)*exp(-0.511069048*(-3.727 + i7)^2) - + 0.744246975*exp(-11.22151103*(-0.4212 + 0.1*i1)^2)*exp(-12.7904179*(-0.6061 + + 0.1*i2)^2)*exp(-12.6084759*(-0.8485 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.476 + 0.1*i4)^2)*exp(-0.086608811*(-1.505 + i5)^2)*exp(-0.048443694*(- + 3.364 + i6)^2)*exp(-0.511069048*(-5 + i7)^2) - 4.700924143*exp(-11.22151103 + *(-0.3697 + 0.1*i1)^2)*exp(-12.7904179*(-0.8485 + 0.1*i2)^2)*exp(- + 12.6084759*(-0.5455 + 0.1*i3)^2)*exp(-1.702145313*(-0.902 + 0.1*i4)^2)*exp( + -0.086608811*(-1.788 + i5)^2)*exp(-0.048443694*(-3.697 + i6)^2)*exp(- + 0.511069048*(-4.909 + i7)^2) + 1.665008111*exp(-11.22151103*(-0.5121 + 0.1* + i1)^2)*exp(-12.7904179*(-0.5758 + 0.1*i2)^2)*exp(-12.6084759*(-0.9091 + 0.1 + *i3)^2)*exp(-1.702145313*(-0.8051 + 0.1*i4)^2)*exp(-0.086608811*(-1.152 + + i5)^2)*exp(-0.048443694*(-3.667 + i6)^2)*exp(-0.511069048*(-4.485 + i7)^2) + - 0.494499106*exp(-11.22151103*(-0.4697 + 0.1*i1)^2)*exp(-12.7904179*(- + 0.7455 + 0.1*i2)^2)*exp(-12.6084759*(-0.9515 + 0.1*i3)^2)*exp(-1.702145313* + (-1.33 + 0.1*i4)^2)*exp(-0.086608811*(-1.162 + i5)^2)*exp(-0.048443694*(- + 3.354 + i6)^2)*exp(-0.511069048*(-2.182 + i7)^2) - 3.167115721*exp(- + 11.22151103*(-0.4758 + 0.1*i1)^2)*exp(-12.7904179*(-0.6848 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4848 + 0.1*i3)^2)*exp(-1.702145313*(-0.7 + 0.1*i4)^2)* + exp(-0.086608811*(-1.939 + i5)^2)*exp(-0.048443694*(-3.515 + i6)^2)*exp(- + 0.511069048*(-3.333 + i7)^2) - 0.490286062*exp(-11.22151103*(-0.3152 + 0.1* + i1)^2)*exp(-12.7904179*(-0.5879 + 0.1*i2)^2)*exp(-12.6084759*(-0.8667 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.031 + 0.1*i4)^2)*exp(-0.086608811*(-1.485 + i5 + )^2)*exp(-0.048443694*(-3.182 + i6)^2)*exp(-0.511069048*(-2.242 + i7)^2) + + 3.945078903*exp(-11.22151103*(-0.3818 + 0.1*i1)^2)*exp(-12.7904179*(-0.7333 + + 0.1*i2)^2)*exp(-12.6084759*(-0.4061 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.201 + 0.1*i4)^2)*exp(-0.086608811*(-1.283 + i5)^2)*exp(-0.048443694*(- + 3.949 + i6)^2)*exp(-0.511069048*(-3 + i7)^2) + 0.472791634*exp(-11.22151103 + *(-0.5182 + 0.1*i1)^2)*exp(-12.7904179*(-0.9939 + 0.1*i2)^2)*exp(- + 12.6084759*(-0.8788 + 0.1*i3)^2)*exp(-1.702145313*(-1.072 + 0.1*i4)^2)*exp( + -0.086608811*(-1.081 + i5)^2)*exp(-0.048443694*(-3.303 + i6)^2)*exp(- + 0.511069048*(-3.545 + i7)^2) + 1.115484703*exp(-11.22151103*(-0.4424 + 0.1* + i1)^2)*exp(-12.7904179*(-0.8364 + 0.1*i2)^2)*exp(-12.6084759*(-0.5333 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.484 + 0.1*i4)^2)*exp(-0.086608811*(-1.677 + i5 + )^2)*exp(-0.048443694*(-3.737 + i6)^2)*exp(-0.511069048*(-2.333 + i7)^2) - + 0.760294744*exp(-11.22151103*(-0.397 + 0.1*i1)^2)*exp(-12.7904179*(-0.5939 + + 0.1*i2)^2)*exp(-12.6084759*(-0.8545 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.363 + 0.1*i4)^2)*exp(-0.086608811*(-1.869 + i5)^2)*exp(-0.048443694*(- + 3.02 + i6)^2)*exp(-0.511069048*(-3.515 + i7)^2) + 1.444104728*exp(- + 11.22151103*(-0.4879 + 0.1*i1)^2)*exp(-12.7904179*(-0.4788 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6121 + 0.1*i3)^2)*exp(-1.702145313*(-0.8939 + 0.1*i4)^2 + )*exp(-0.086608811*(-1.051 + i5)^2)*exp(-0.048443694*(-3.879 + i6)^2)*exp(- + 0.511069048*(-3.182 + i7)^2) - 0.439173744*exp(-11.22151103*(-0.3545 + 0.1* + i1)^2)*exp(-12.7904179*(-0.4364 + 0.1*i2)^2)*exp(-12.6084759*(-0.7333 + 0.1 + *i3)^2)*exp(-1.702145313*(-0.9828 + 0.1*i4)^2)*exp(-0.086608811*(-1.99 + i5 + )^2)*exp(-0.048443694*(-3.495 + i6)^2)*exp(-0.511069048*(-2.97 + i7)^2) - + 0.611323979*exp(-11.22151103*(-0.5424 + 0.1*i1)^2)*exp(-12.7904179*(-0.6909 + + 0.1*i2)^2)*exp(-12.6084759*(-0.6727 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.7889 + 0.1*i4)^2)*exp(-0.086608811*(-1.121 + i5)^2)*exp(-0.048443694*(- + 3.091 + i6)^2)*exp(-0.511069048*(-4.121 + i7)^2) - 1.961409144*exp(- + 11.22151103*(-0.4848 + 0.1*i1)^2)*exp(-12.7904179*(-0.7879 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6909 + 0.1*i3)^2)*exp(-1.702145313*(-0.7162 + 0.1*i4)^2 + )*exp(-0.086608811*(-1.475 + i5)^2)*exp(-0.048443694*(-3.131 + i6)^2)*exp(- + 0.511069048*(-2.212 + i7)^2) - 0.578262292*exp(-11.22151103*(-0.4394 + 0.1* + i1)^2)*exp(-12.7904179*(-0.897 + 0.1*i2)^2)*exp(-12.6084759*(-0.9758 + 0.1* + i3)^2)*exp(-1.702145313*(-1.023 + 0.1*i4)^2)*exp(-0.086608811*(-1.667 + i5) + ^2)*exp(-0.048443694*(-3.061 + i6)^2)*exp(-0.511069048*(-2.879 + i7)^2) - + 0.5945258*exp(-11.22151103*(-0.3848 + 0.1*i1)^2)*exp(-12.7904179*(-0.5394 + + 0.1*i2)^2)*exp(-12.6084759*(-0.9152 + 0.1*i3)^2)*exp(-1.702145313*(-1.5 + + 0.1*i4)^2)*exp(-0.086608811*(-1.596 + i5)^2)*exp(-0.048443694*(-3.636 + + i6)^2)*exp(-0.511069048*(-2.727 + i7)^2) - 0.024016922*exp(-11.22151103*(- + 0.5545 + 0.1*i1)^2)*exp(-12.7904179*(-0.9758 + 0.1*i2)^2)*exp(-12.6084759*( + -0.7212 + 0.1*i3)^2)*exp(-1.702145313*(-1.08 + 0.1*i4)^2)*exp(-0.086608811* + (-1.838 + i5)^2)*exp(-0.048443694*(-3.434 + i6)^2)*exp(-0.511069048*(-2.364 + + i7)^2) + 9.499508095*exp(-11.22151103*(-0.3758 + 0.1*i1)^2)*exp(- + 12.7904179*(-0.8667 + 0.1*i2)^2)*exp(-12.6084759*(-0.5394 + 0.1*i3)^2)*exp( + -1.702145313*(-1.015 + 0.1*i4)^2)*exp(-0.086608811*(-1.919 + i5)^2)*exp(- + 0.048443694*(-3.909 + i6)^2)*exp(-0.511069048*(-2.939 + i7)^2) + + 2.417882235*exp(-11.22151103*(-0.3212 + 0.1*i1)^2)*exp(-12.7904179*(-0.7576 + + 0.1*i2)^2)*exp(-12.6084759*(-0.5212 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.9343 + 0.1*i4)^2)*exp(-0.086608811*(-1.808 + i5)^2)*exp(-0.048443694*(- + 3.212 + i6)^2)*exp(-0.511069048*(-2.545 + i7)^2) - 2.478101154*exp(- + 11.22151103*(-0.4727 + 0.1*i1)^2)*exp(-12.7904179*(-0.9333 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6485 + 0.1*i3)^2)*exp(-1.702145313*(-1.322 + 0.1*i4)^2) + *exp(-0.086608811*(-1.394 + i5)^2)*exp(-0.048443694*(-3.081 + i6)^2)*exp(- + 0.511069048*(-4.697 + i7)^2) + 0.580160532*exp(-11.22151103*(-0.4576 + 0.1* + i1)^2)*exp(-12.7904179*(-0.5455 + 0.1*i2)^2)*exp(-12.6084759*(-0.9939 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.169 + 0.1*i4)^2)*exp(-0.086608811*(-1.98 + i5) + ^2)*exp(-0.048443694*(-3.626 + i6)^2)*exp(-0.511069048*(-3.939 + i7)^2) - + 0.336570057*exp(-11.22151103*(-0.3242 + 0.1*i1)^2)*exp(-12.7904179*(-0.9212 + + 0.1*i2)^2)*exp(-12.6084759*(-0.4667 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.314 + 0.1*i4)^2)*exp(-0.086608811*(-1.697 + i5)^2)*exp(-0.048443694*(- + 3.374 + i6)^2)*exp(-0.511069048*(-3.758 + i7)^2) - 1.487704436*exp(- + 11.22151103*(-0.5697 + 0.1*i1)^2)*exp(-12.7904179*(-0.4182 + 0.1*i2)^2)* + exp(-12.6084759*(-0.7394 + 0.1*i3)^2)*exp(-1.702145313*(-0.8374 + 0.1*i4)^2 + )*exp(-0.086608811*(-1.717 + i5)^2)*exp(-0.048443694*(-3.727 + i6)^2)*exp(- + 0.511069048*(-3.303 + i7)^2) + 0.039434561*exp(-11.22151103*(-0.3727 + 0.1* + i1)^2)*exp(-12.7904179*(-0.9879 + 0.1*i2)^2)*exp(-12.6084759*(-0.6848 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.104 + 0.1*i4)^2)*exp(-0.086608811*(-1.343 + i5 + )^2)*exp(-0.048443694*(-3.606 + i6)^2)*exp(-0.511069048*(-2 + i7)^2) - + 0.307393175*exp(-11.22151103*(-0.5091 + 0.1*i1)^2)*exp(-12.7904179*(-0.4667 + + 0.1*i2)^2)*exp(-12.6084759*(-0.8303 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.8859 + 0.1*i4)^2)*exp(-0.086608811*(-1.111 + i5)^2)*exp(-0.048443694*(- + 3.283 + i6)^2)*exp(-0.511069048*(-2.576 + i7)^2) - 4.282457657*exp(- + 11.22151103*(-0.3485 + 0.1*i1)^2)*exp(-12.7904179*(-0.9091 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6606 + 0.1*i3)^2)*exp(-1.702145313*(-0.999 + 0.1*i4)^2) + *exp(-0.086608811*(-1.172 + i5)^2)*exp(-0.048443694*(-3.03 + i6)^2)*exp(- + 0.511069048*(-3.152 + i7)^2) - 0.591647092*exp(-11.22151103*(-0.5848 + 0.1* + i1)^2)*exp(-12.7904179*(-0.6788 + 0.1*i2)^2)*exp(-12.6084759*(-0.8 + 0.1*i3 + )^2)*exp(-1.702145313*(-1.298 + 0.1*i4)^2)*exp(-0.086608811*(-1.848 + i5)^2 + )*exp(-0.048443694*(-3.828 + i6)^2)*exp(-0.511069048*(-2.636 + i7)^2) - + 0.396922846*exp(-11.22151103*(-0.3303 + 0.1*i1)^2)*exp(-12.7904179*(-0.5212 + + 0.1*i2)^2)*exp(-12.6084759*(-0.497 + 0.1*i3)^2)*exp(-1.702145313*(-1.395 + + 0.1*i4)^2)*exp(-0.086608811*(-1.636 + i5)^2)*exp(-0.048443694*(-3.384 + + i6)^2)*exp(-0.511069048*(-2.697 + i7)^2) + 1.584632098*exp(-11.22151103*(- + 0.3061 + 0.1*i1)^2)*exp(-12.7904179*(-0.6242 + 0.1*i2)^2)*exp(-12.6084759*( + -0.6788 + 0.1*i3)^2)*exp(-1.702145313*(-1.338 + 0.1*i4)^2)*exp(-0.086608811 + *(-1.859 + i5)^2)*exp(-0.048443694*(-3.758 + i6)^2)*exp(-0.511069048*(- + 4.273 + i7)^2) - 1.114894058*exp(-11.22151103*(-0.5485 + 0.1*i1)^2)*exp(- + 12.7904179*(-0.4545 + 0.1*i2)^2)*exp(-12.6084759*(-0.8848 + 0.1*i3)^2)*exp( + -1.702145313*(-1.112 + 0.1*i4)^2)*exp(-0.086608811*(-1.515 + i5)^2)*exp(- + 0.048443694*(-3.101 + i6)^2)*exp(-0.511069048*(-4.333 + i7)^2) + 1.64288322 + *exp(-11.22151103*(-0.4636 + 0.1*i1)^2)*exp(-12.7904179*(-0.7939 + 0.1*i2)^ + 2)*exp(-12.6084759*(-0.7879 + 0.1*i3)^2)*exp(-1.702145313*(-1.492 + 0.1*i4) + ^2)*exp(-0.086608811*(-1.707 + i5)^2)*exp(-0.048443694*(-3.97 + i6)^2)*exp( + -0.511069048*(-4.03 + i7)^2) - 0.006707883*exp(-11.22151103*(-0.3455 + 0.1* + i1)^2)*exp(-12.7904179*(-0.5818 + 0.1*i2)^2)*exp(-12.6084759*(-0.7455 + 0.1 + *i3)^2)*exp(-1.702145313*(-0.7404 + 0.1*i4)^2)*exp(-0.086608811*(-1.687 + + i5)^2)*exp(-0.048443694*(-3.929 + i6)^2)*exp(-0.511069048*(-3.788 + i7)^2) + + 0.82994074*exp(-11.22151103*(-0.6 + 0.1*i1)^2)*exp(-12.7904179*(-0.7515 + + 0.1*i2)^2)*exp(-12.6084759*(-0.9455 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.8616 + 0.1*i4)^2)*exp(-0.086608811*(-1.384 + i5)^2)*exp(-0.048443694*(- + 3.596 + i6)^2)*exp(-0.511069048*(-2.848 + i7)^2) + 0.01099009*exp(- + 11.22151103*(-0.3273 + 0.1*i1)^2)*exp(-12.7904179*(-0.4 + 0.1*i2)^2)*exp(- + 12.6084759*(-0.897 + 0.1*i3)^2)*exp(-1.702145313*(-1.12 + 0.1*i4)^2)*exp(- + 0.086608811*(-1.404 + i5)^2)*exp(-0.048443694*(-3.525 + i6)^2)*exp(- + 0.511069048*(-4.182 + i7)^2) + 1.553861702*exp(-11.22151103*(-0.5212 + 0.1* + i1)^2)*exp(-12.7904179*(-0.497 + 0.1*i2)^2)*exp(-12.6084759*(-0.8909 + 0.1* + i3)^2)*exp(-1.702145313*(-1.185 + 0.1*i4)^2)*exp(-0.086608811*(-1.737 + i5) + ^2)*exp(-0.048443694*(-3.293 + i6)^2)*exp(-0.511069048*(-2.091 + i7)^2) - + 0.145493025*exp(-11.22151103*(-0.4303 + 0.1*i1)^2)*exp(-12.7904179*(-0.4606 + + 0.1*i2)^2)*exp(-12.6084759*(-0.6242 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.225 + 0.1*i4)^2)*exp(-0.086608811*(-1.727 + i5)^2)*exp(-0.048443694*(- + 3.96 + i6)^2)*exp(-0.511069048*(-2.424 + i7)^2) + 0.471923365*exp(- + 11.22151103*(-0.3121 + 0.1*i1)^2)*exp(-12.7904179*(-0.8909 + 0.1*i2)^2)* + exp(-12.6084759*(-0.903 + 0.1*i3)^2)*exp(-1.702145313*(-1.387 + 0.1*i4)^2)* + exp(-0.086608811*(-1.414 + i5)^2)*exp(-0.048443694*(-3.323 + i6)^2)*exp(- + 0.511069048*(-3.636 + i7)^2) - 1.806952114*exp(-11.22151103*(-0.3424 + 0.1* + i1)^2)*exp(-12.7904179*(-0.4485 + 0.1*i2)^2)*exp(-12.6084759*(-0.4182 + 0.1 + *i3)^2)*exp(-1.702145313*(-0.9747 + 0.1*i4)^2)*exp(-0.086608811*(-1.566 + + i5)^2)*exp(-0.048443694*(-3.657 + i6)^2)*exp(-0.511069048*(-3.879 + i7)^2) + + 1.100787606*exp(-11.22151103*(-0.497 + 0.1*i1)^2)*exp(-12.7904179*(- + 0.7697 + 0.1*i2)^2)*exp(-12.6084759*(-0.7939 + 0.1*i3)^2)*exp(-1.702145313* + (-1.274 + 0.1*i4)^2)*exp(-0.086608811*(-1.141 + i5)^2)*exp(-0.048443694*(-4 + + i6)^2)*exp(-0.511069048*(-2.515 + i7)^2) - 1.363721338*exp(-11.22151103* + (-0.4939 + 0.1*i1)^2)*exp(-12.7904179*(-0.5576 + 0.1*i2)^2)*exp(-12.6084759 + *(-0.4545 + 0.1*i3)^2)*exp(-1.702145313*(-1.177 + 0.1*i4)^2)*exp(- + 0.086608811*(-1.96 + i5)^2)*exp(-0.048443694*(-3.818 + i6)^2)*exp(- + 0.511069048*(-4 + i7)^2) - 5.463641495*exp(-11.22151103*(-0.5 + 0.1*i1)^2)* + exp(-12.7904179*(-0.9515 + 0.1*i2)^2)*exp(-12.6084759*(-0.4 + 0.1*i3)^2)* + exp(-1.702145313*(-1.088 + 0.1*i4)^2)*exp(-0.086608811*(-1.455 + i5)^2)* + exp(-0.048443694*(-3.242 + i6)^2)*exp(-0.511069048*(-2.788 + i7)^2) + + 0.112602614*exp(-11.22151103*(-0.4182 + 0.1*i1)^2)*exp(-12.7904179*(-0.9455 + + 0.1*i2)^2)*exp(-12.6084759*(-0.8364 + 0.1*i3)^2)*exp(-1.702145313*(- + 1.258 + 0.1*i4)^2)*exp(-0.086608811*(-1.929 + i5)^2)*exp(-0.048443694*(- + 3.465 + i6)^2)*exp(-0.511069048*(-4.606 + i7)^2) - 0.482993458*exp(- + 11.22151103*(-0.3636 + 0.1*i1)^2)*exp(-12.7904179*(-0.7818 + 0.1*i2)^2)* + exp(-12.6084759*(-1 + 0.1*i3)^2)*exp(-1.702145313*(-0.9909 + 0.1*i4)^2)* + exp(-0.086608811*(-1.535 + i5)^2)*exp(-0.048443694*(-3.768 + i6)^2)*exp(- + 0.511069048*(-4.667 + i7)^2) + 0.121128216*exp(-11.22151103*(-0.4091 + 0.1* + i1)^2)*exp(-12.7904179*(-0.7212 + 0.1*i2)^2)*exp(-12.6084759*(-0.9273 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.371 + 0.1*i4)^2)*exp(-0.086608811*(-1.04 + i5) + ^2)*exp(-0.048443694*(-3.747 + i6)^2)*exp(-0.511069048*(-4.152 + i7)^2) + + 2.17016837*exp(-11.22151103*(-0.4455 + 0.1*i1)^2)*exp(-12.7904179*(-0.4242 + + 0.1*i2)^2)*exp(-12.6084759*(-0.5879 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.9182 + 0.1*i4)^2)*exp(-0.086608811*(-1.626 + i5)^2)*exp(-0.048443694*(-3 + + i6)^2)*exp(-0.511069048*(-3.091 + i7)^2) + 1.076137312*exp(-11.22151103* + (-0.3667 + 0.1*i1)^2)*exp(-12.7904179*(-0.8424 + 0.1*i2)^2)*exp(-12.6084759 + *(-0.8242 + 0.1*i3)^2)*exp(-1.702145313*(-1.29 + 0.1*i4)^2)*exp(- + 0.086608811*(-2 + i5)^2)*exp(-0.048443694*(-3.485 + i6)^2)*exp(-0.511069048 + *(-2.485 + i7)^2) - 3.530521667*exp(-11.22151103*(-0.4 + 0.1*i1)^2)*exp(- + 12.7904179*(-0.6 + 0.1*i2)^2)*exp(-12.6084759*(-0.4364 + 0.1*i3)^2)*exp(- + 1.702145313*(-1.056 + 0.1*i4)^2)*exp(-0.086608811*(-1.091 + i5)^2)*exp(- + 0.048443694*(-3.202 + i6)^2)*exp(-0.511069048*(-2.606 + i7)^2) - + 0.006313209*exp(-11.22151103*(-0.5303 + 0.1*i1)^2)*exp(-12.7904179*(-0.8545 + + 0.1*i2)^2)*exp(-12.6084759*(-0.9212 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.8778 + 0.1*i4)^2)*exp(-0.086608811*(-1.616 + i5)^2)*exp(-0.048443694*(- + 3.232 + i6)^2)*exp(-0.511069048*(-4.727 + i7)^2) - 0.674964559*exp(- + 11.22151103*(-0.3879 + 0.1*i1)^2)*exp(-12.7904179*(-0.5515 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5576 + 0.1*i3)^2)*exp(-1.702145313*(-0.7808 + 0.1*i4)^2 + )*exp(-0.086608811*(-1.444 + i5)^2)*exp(-0.048443694*(-3.677 + i6)^2)*exp(- + 0.511069048*(-2.03 + i7)^2) - 0.677922174*exp(-11.22151103*(-0.4515 + 0.1* + i1)^2)*exp(-12.7904179*(-0.7273 + 0.1*i2)^2)*exp(-12.6084759*(-0.8727 + 0.1 + *i3)^2)*exp(-1.702145313*(-0.8131 + 0.1*i4)^2)*exp(-0.086608811*(-1.828 + + i5)^2)*exp(-0.048443694*(-3.717 + i6)^2)*exp(-0.511069048*(-2.061 + i7)^2) + + 2.081304258*exp(-11.22151103*(-0.4818 + 0.1*i1)^2)*exp(-12.7904179*(- + 0.4121 + 0.1*i2)^2)*exp(-12.6084759*(-0.5515 + 0.1*i3)^2)*exp(-1.702145313* + (-1.064 + 0.1*i4)^2)*exp(-0.086608811*(-1.202 + i5)^2)*exp(-0.048443694*(- + 3.404 + i6)^2)*exp(-0.511069048*(-4.788 + i7)^2) - 0.365017626*exp(- + 11.22151103*(-0.5515 + 0.1*i1)^2)*exp(-12.7904179*(-0.8182 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9636 + 0.1*i3)^2)*exp(-1.702145313*(-1.443 + 0.1*i4)^2) + *exp(-0.086608811*(-1.606 + i5)^2)*exp(-0.048443694*(-3.263 + i6)^2)*exp(- + 0.511069048*(-3.667 + i7)^2) - 0.430416522*exp(-11.22151103*(-0.4667 + 0.1* + i1)^2)*exp(-12.7904179*(-0.4727 + 0.1*i2)^2)*exp(-12.6084759*(-0.7818 + 0.1 + *i3)^2)*exp(-1.702145313*(-1.136 + 0.1*i4)^2)*exp(-0.086608811*(-1.545 + i5 + )^2)*exp(-0.048443694*(-3.99 + i6)^2)*exp(-0.511069048*(-4.758 + i7)^2) - + 2.722703255*exp(-11.22151103*(-0.5606 + 0.1*i1)^2)*exp(-12.7904179*(-0.7758 + + 0.1*i2)^2)*exp(-12.6084759*(-0.5273 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.9263 + 0.1*i4)^2)*exp(-0.086608811*(-1.576 + i5)^2)*exp(-0.048443694*(- + 3.919 + i6)^2)*exp(-0.511069048*(-2.394 + i7)^2) + 0.109354115*exp(- + 11.22151103*(-0.4333 + 0.1*i1)^2)*exp(-12.7904179*(-0.5636 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9818 + 0.1*i3)^2)*exp(-1.702145313*(-0.7081 + 0.1*i4)^2 + )*exp(-0.086608811*(-1.657 + i5)^2)*exp(-0.048443694*(-3.273 + i6)^2)*exp(- + 0.511069048*(-3.455 + i7)^2) + 4.951886392*exp(-11.22151103*(-0.5333 + 0.1* + i1)^2)*exp(-12.7904179*(-0.8303 + 0.1*i2)^2)*exp(-12.6084759*(-0.6061 + 0.1 + *i3)^2)*exp(-1.702145313*(-0.9424 + 0.1*i4)^2)*exp(-0.086608811*(-1 + i5)^2 + )*exp(-0.048443694*(-3.545 + i6)^2)*exp(-0.511069048*(-2.303 + i7)^2) + + 1.313468689*exp(-11.22151103*(-0.3788 + 0.1*i1)^2)*exp(-12.7904179*(-0.9152 + + 0.1*i2)^2)*exp(-12.6084759*(-0.7515 + 0.1*i3)^2)*exp(-1.702145313*(- + 0.8455 + 0.1*i4)^2)*exp(-0.086608811*(-1.212 + i5)^2)*exp(-0.048443694*(- + 3.394 + i6)^2)*exp(-0.511069048*(-4.879 + i7)^2) + 3.412666736*exp(- + 11.22151103*(-0.4909 + 0.1*i1)^2)*exp(-12.7904179*(-0.8727 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4424 + 0.1*i3)^2)*exp(-1.702145313*(-1.047 + 0.1*i4)^2) + *exp(-0.086608811*(-1.02 + i5)^2)*exp(-0.048443694*(-3.556 + i6)^2)*exp(- + 0.511069048*(-4.303 + i7)^2)) + x8 >= 1.416846263; + + -(0.114038859*exp(-8.428896813*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.697 + 0.1*i2)^2)*exp(-12.62180682*(-0.8061 + 0.1*i3)^2)*exp(-0.117916606* + (-0.9586 + 0.1*i4)^2)*exp(-1.214030093*(-1.758 + i5)^2)*exp(-0.646022545*(- + 3.141 + i6)^2)*exp(-0.25360421*(-4.424 + i7)^2) + 0.370053268*exp(- + 8.428896813*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(-0.9697 + 0.1*i2)^2)* + exp(-12.62180682*(-0.4909 + 0.1*i3)^2)*exp(-0.117916606*(-1.161 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.778 + i5)^2)*exp(-0.646022545*(-3.778 + i6)^2)*exp(- + 0.25360421*(-4.091 + i7)^2) + 0.016666831*exp(-8.428896813*(-0.503 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-12.62180682*(-0.4121 + 0.1 + *i3)^2)*exp(-0.117916606*(-1.419 + 0.1*i4)^2)*exp(-1.214030093*(-1.333 + i5 + )^2)*exp(-0.646022545*(-3.152 + i6)^2)*exp(-0.25360421*(-3.697 + i7)^2) - + 0.394282912*exp(-8.428896813*(-0.4606 + 0.1*i1)^2)*exp(-12.56111847*(-0.903 + + 0.1*i2)^2)*exp(-12.62180682*(-0.7576 + 0.1*i3)^2)*exp(-0.117916606*(- + 0.7727 + 0.1*i4)^2)*exp(-1.214030093*(-1.242 + i5)^2)*exp(-0.646022545*(- + 3.98 + i6)^2)*exp(-0.25360421*(-3.424 + i7)^2) + 0.825111582*exp(- + 8.428896813*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + 0.1*i2)^2)*exp(- + 12.62180682*(-0.8606 + 0.1*i3)^2)*exp(-0.117916606*(-1.153 + 0.1*i4)^2)* + exp(-1.214030093*(-1.556 + i5)^2)*exp(-0.646022545*(-3.939 + i6)^2)*exp(- + 0.25360421*(-2.818 + i7)^2) + 0.511877245*exp(-8.428896813*(-0.5879 + 0.1* + i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)*exp(-12.62180682*(-0.4788 + + 0.1*i3)^2)*exp(-0.117916606*(-1.039 + 0.1*i4)^2)*exp(-1.214030093*(-1.646 + + i5)^2)*exp(-0.646022545*(-3.222 + i6)^2)*exp(-0.25360421*(-4.636 + i7)^2 + ) - 1.020199821*exp(-8.428896813*(-0.4121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4424 + 0.1*i2)^2)*exp(-12.62180682*(-0.5939 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.46 + 0.1*i4)^2)*exp(-1.214030093*(-1.232 + i5)^2)*exp(-0.646022545*(- + 3.788 + i6)^2)*exp(-0.25360421*(-3.848 + i7)^2) - 0.484269454*exp(- + 8.428896813*(-0.5576 + 0.1*i1)^2)*exp(-12.56111847*(-0.8848 + 0.1*i2)^2)* + exp(-12.62180682*(-0.8121 + 0.1*i3)^2)*exp(-0.117916606*(-1.128 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.263 + i5)^2)*exp(-0.646022545*(-3.808 + i6)^2)*exp(- + 0.25360421*(-4.818 + i7)^2) + 0.269156374*exp(-8.428896813*(-0.4273 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4848 + 0.1*i2)^2)*exp(-12.62180682*(-0.9697 + + 0.1*i3)^2)*exp(-0.117916606*(-0.9667 + 0.1*i4)^2)*exp(-1.214030093*(-1.364 + + i5)^2)*exp(-0.646022545*(-3.869 + i6)^2)*exp(-0.25360421*(-2.667 + i7)^2 + ) + 0.8598526*exp(-8.428896813*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4061 + 0.1*i2)^2)*exp(-12.62180682*(-0.6303 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.427 + 0.1*i4)^2)*exp(-1.214030093*(-1.747 + i5)^2)*exp(-0.646022545*(- + 3.444 + i6)^2)*exp(-0.25360421*(-3.576 + i7)^2) + 0.186103886*exp(- + 8.428896813*(-0.5394 + 0.1*i1)^2)*exp(-12.56111847*(-0.5273 + 0.1*i2)^2)* + exp(-12.62180682*(-0.5636 + 0.1*i3)^2)*exp(-0.117916606*(-1.355 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.253 + i5)^2)*exp(-0.646022545*(-3.566 + i6)^2)*exp(- + 0.25360421*(-2.121 + i7)^2) - 0.95382376*exp(-8.428896813*(-0.5273 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.8121 + 0.1*i2)^2)*exp(-12.62180682*(-0.8424 + 0.1 + *i3)^2)*exp(-0.117916606*(-0.8535 + 0.1*i4)^2)*exp(-1.214030093*(-1.899 + + i5)^2)*exp(-0.646022545*(-3.889 + i6)^2)*exp(-0.25360421*(-4.061 + i7)^2) + - 0.556909213*exp(-8.428896813*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-12.62180682*(-0.9333 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.306 + 0.1*i4)^2)*exp(-1.214030093*(-1.273 + i5)^2)*exp(-0.646022545*(- + 3.707 + i6)^2)*exp(-0.25360421*(-3.485 + i7)^2) - 0.597492203*exp(- + 8.428896813*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(-0.6364 + 0.1*i2)^2)* + exp(-12.62180682*(-0.5758 + 0.1*i3)^2)*exp(-0.117916606*(-1.282 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.222 + i5)^2)*exp(-0.646022545*(-3.192 + i6)^2)*exp(- + 0.25360421*(-4.455 + i7)^2) - 2.63515035*exp(-8.428896813*(-0.4364 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.7394 + 0.1*i2)^2)*exp(-12.62180682*(-0.4485 + 0.1 + *i3)^2)*exp(-0.117916606*(-1.403 + 0.1*i4)^2)*exp(-1.214030093*(-1.465 + i5 + )^2)*exp(-0.646022545*(-3.687 + i6)^2)*exp(-0.25360421*(-4.939 + i7)^2) + + 1.406835705*exp(-8.428896813*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-12.62180682*(-0.7273 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.346 + 0.1*i4)^2)*exp(-1.214030093*(-1.01 + i5)^2)*exp(-0.646022545*(- + 3.333 + i6)^2)*exp(-0.25360421*(-4.364 + i7)^2) - 0.106121394*exp(- + 8.428896813*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(-0.7152 + 0.1*i2)^2)* + exp(-12.62180682*(-0.703 + 0.1*i3)^2)*exp(-0.117916606*(-1.209 + 0.1*i4)^2) + *exp(-1.214030093*(-1.354 + i5)^2)*exp(-0.646022545*(-3.01 + i6)^2)*exp(- + 0.25360421*(-2.758 + i7)^2) - 0.298204038*exp(-8.428896813*(-0.5152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)*exp(-12.62180682*(-0.503 + + 0.1*i3)^2)*exp(-0.117916606*(-0.7566 + 0.1*i4)^2)*exp(-1.214030093*(-1.424 + + i5)^2)*exp(-0.646022545*(-3.848 + i6)^2)*exp(-0.25360421*(-4.576 + i7)^2 + ) - 1.52727961*exp(-8.428896813*(-0.5758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5152 + 0.1*i2)^2)*exp(-12.62180682*(-0.4303 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.8697 + 0.1*i4)^2)*exp(-1.214030093*(-1.374 + i5)^2)*exp(-0.646022545*( + -3.414 + i6)^2)*exp(-0.25360421*(-3.061 + i7)^2) + 2.586913993*exp(- + 8.428896813*(-0.3939 + 0.1*i1)^2)*exp(-12.56111847*(-0.7091 + 0.1*i2)^2)* + exp(-12.62180682*(-0.4242 + 0.1*i3)^2)*exp(-0.117916606*(-0.8293 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.434 + i5)^2)*exp(-0.646022545*(-3.121 + i6)^2)*exp( + -0.25360421*(-4.394 + i7)^2) - 1.130231073*exp(-8.428896813*(-0.403 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5333 + 0.1*i2)^2)*exp(-12.62180682*(-0.5152 + + 0.1*i3)^2)*exp(-0.117916606*(-1.233 + 0.1*i4)^2)*exp(-1.214030093*(-1.889 + + i5)^2)*exp(-0.646022545*(-3.172 + i6)^2)*exp(-0.25360421*(-4.545 + i7)^2 + ) - 0.434133865*exp(-8.428896813*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-12.62180682*(-0.4606 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.144 + 0.1*i4)^2)*exp(-1.214030093*(-1.879 + i5)^2)*exp(-0.646022545*(- + 3.343 + i6)^2)*exp(-0.25360421*(-2.152 + i7)^2) - 1.057284932*exp(- + 8.428896813*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(-0.8242 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6545 + 0.1*i3)^2)*exp(-0.117916606*(-1.411 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.525 + i5)^2)*exp(-0.646022545*(-3.04 + i6)^2)*exp(- + 0.25360421*(-2.273 + i7)^2) - 0.201137814*exp(-8.428896813*(-0.4545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.503 + 0.1*i2)^2)*exp(-12.62180682*(-0.7152 + + 0.1*i3)^2)*exp(-0.117916606*(-0.797 + 0.1*i4)^2)*exp(-1.214030093*(-1.798 + + i5)^2)*exp(-0.646022545*(-3.424 + i6)^2)*exp(-0.25360421*(-4.97 + i7)^2) + - 0.41461859*exp(-8.428896813*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(-0.8 + + 0.1*i2)^2)*exp(-12.62180682*(-0.9394 + 0.1*i3)^2)*exp(-0.117916606*(- + 0.8212 + 0.1*i4)^2)*exp(-1.214030093*(-1.101 + i5)^2)*exp(-0.646022545*(- + 3.535 + i6)^2)*exp(-0.25360421*(-2.909 + i7)^2) - 1.140398506*exp(- + 8.428896813*(-0.5818 + 0.1*i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6364 + 0.1*i3)^2)*exp(-0.117916606*(-1.435 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.313 + i5)^2)*exp(-0.646022545*(-3.576 + i6)^2)*exp(- + 0.25360421*(-3.212 + i7)^2) - 0.692200956*exp(-8.428896813*(-0.4485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-12.62180682*(-0.6 + 0.1* + i3)^2)*exp(-0.117916606*(-0.9505 + 0.1*i4)^2)*exp(-1.214030093*(-1.909 + i5 + )^2)*exp(-0.646022545*(-3.051 + i6)^2)*exp(-0.25360421*(-3.97 + i7)^2) - + 0.414780362*exp(-8.428896813*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8788 + 0.1*i2)^2)*exp(-12.62180682*(-0.4727 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.7646 + 0.1*i4)^2)*exp(-1.214030093*(-1.293 + i5)^2)*exp(-0.646022545*( + -3.616 + i6)^2)*exp(-0.25360421*(-3.273 + i7)^2) + 0.237013991*exp(- + 8.428896813*(-0.3515 + 0.1*i1)^2)*exp(-12.56111847*(-0.9576 + 0.1*i2)^2)* + exp(-12.62180682*(-0.8182 + 0.1*i3)^2)*exp(-0.117916606*(-0.7485 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.768 + i5)^2)*exp(-0.646022545*(-3.505 + i6)^2)*exp( + -0.25360421*(-3.394 + i7)^2) - 0.154107864*exp(-8.428896813*(-0.4061 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6667 + 0.1*i2)^2)*exp(-12.62180682*(-0.9576 + + 0.1*i3)^2)*exp(-0.117916606*(-1.096 + 0.1*i4)^2)*exp(-1.214030093*(-1.131 + + i5)^2)*exp(-0.646022545*(-3.071 + i6)^2)*exp(-0.25360421*(-4.242 + i7)^2 + ) - 0.350335762*exp(-8.428896813*(-0.5788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6545 + 0.1*i2)^2)*exp(-12.62180682*(-0.7697 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.9101 + 0.1*i4)^2)*exp(-1.214030093*(-1.97 + i5)^2)*exp(-0.646022545*(- + 3.162 + i6)^2)*exp(-0.25360421*(-3.364 + i7)^2) + 0.079517011*exp(- + 8.428896813*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(-0.9818 + 0.1*i2)^2)* + exp(-12.62180682*(-0.9879 + 0.1*i3)^2)*exp(-0.117916606*(-1.193 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.586 + i5)^2)*exp(-0.646022545*(-3.798 + i6)^2)*exp(- + 0.25360421*(-3.03 + i7)^2) + 0.13574835*exp(-8.428896813*(-0.3182 + 0.1*i1) + ^2)*exp(-12.56111847*(-0.5697 + 0.1*i2)^2)*exp(-12.62180682*(-0.7091 + 0.1* + i3)^2)*exp(-0.117916606*(-1.217 + 0.1*i4)^2)*exp(-1.214030093*(-1.061 + i5) + ^2)*exp(-0.646022545*(-3.646 + i6)^2)*exp(-0.25360421*(-2.455 + i7)^2) - + 0.436626698*exp(-8.428896813*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-12.62180682*(-0.5818 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.468 + 0.1*i4)^2)*exp(-1.214030093*(-1.03 + i5)^2)*exp(-0.646022545*(- + 3.455 + i6)^2)*exp(-0.25360421*(-3.242 + i7)^2) - 0.228849667*exp(- + 8.428896813*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(-0.6303 + 0.1*i2)^2)* + exp(-12.62180682*(-0.5091 + 0.1*i3)^2)*exp(-0.117916606*(-1.266 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.303 + i5)^2)*exp(-0.646022545*(-3.899 + i6)^2)*exp(- + 0.25360421*(-3.909 + i7)^2) + 0.534788203*exp(-8.428896813*(-0.5939 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6727 + 0.1*i2)^2)*exp(-12.62180682*(-0.7758 + + 0.1*i3)^2)*exp(-0.117916606*(-1.249 + 0.1*i4)^2)*exp(-1.214030093*(-1.818 + + i5)^2)*exp(-0.646022545*(-3.586 + i6)^2)*exp(-0.25360421*(-4.848 + i7)^2 + ) - 1.502251742*exp(-8.428896813*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-12.62180682*(-0.5697 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.452 + 0.1*i4)^2)*exp(-1.214030093*(-1.949 + i5)^2)*exp(-0.646022545*(- + 3.253 + i6)^2)*exp(-0.25360421*(-3.606 + i7)^2) + 4.135938344*exp(- + 8.428896813*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(-0.9636 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6182 + 0.1*i3)^2)*exp(-0.117916606*(-0.7242 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.495 + i5)^2)*exp(-0.646022545*(-3.475 + i6)^2)*exp( + -0.25360421*(-3.818 + i7)^2) - 0.602595983*exp(-8.428896813*(-0.3364 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5091 + 0.1*i2)^2)*exp(-12.62180682*(-0.697 + + 0.1*i3)^2)*exp(-0.117916606*(-0.7323 + 0.1*i4)^2)*exp(-1.214030093*(-1.182 + + i5)^2)*exp(-0.646022545*(-3.313 + i6)^2)*exp(-0.25360421*(-3.727 + i7)^2 + ) - 0.554523842*exp(-8.428896813*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6061 + 0.1*i2)^2)*exp(-12.62180682*(-0.8485 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.476 + 0.1*i4)^2)*exp(-1.214030093*(-1.505 + i5)^2)*exp(-0.646022545*(- + 3.364 + i6)^2)*exp(-0.25360421*(-5 + i7)^2) + 1.199600302*exp(-8.428896813* + (-0.3697 + 0.1*i1)^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(- + 12.62180682*(-0.5455 + 0.1*i3)^2)*exp(-0.117916606*(-0.902 + 0.1*i4)^2)* + exp(-1.214030093*(-1.788 + i5)^2)*exp(-0.646022545*(-3.697 + i6)^2)*exp(- + 0.25360421*(-4.909 + i7)^2) + 0.752565519*exp(-8.428896813*(-0.5121 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5758 + 0.1*i2)^2)*exp(-12.62180682*(-0.9091 + + 0.1*i3)^2)*exp(-0.117916606*(-0.8051 + 0.1*i4)^2)*exp(-1.214030093*(-1.152 + + i5)^2)*exp(-0.646022545*(-3.667 + i6)^2)*exp(-0.25360421*(-4.485 + i7)^2 + ) - 0.145540769*exp(-8.428896813*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-12.62180682*(-0.9515 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.33 + 0.1*i4)^2)*exp(-1.214030093*(-1.162 + i5)^2)*exp(-0.646022545*(- + 3.354 + i6)^2)*exp(-0.25360421*(-2.182 + i7)^2) + 2.494155725*exp(- + 8.428896813*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(-0.6848 + 0.1*i2)^2)* + exp(-12.62180682*(-0.4848 + 0.1*i3)^2)*exp(-0.117916606*(-0.7 + 0.1*i4)^2)* + exp(-1.214030093*(-1.939 + i5)^2)*exp(-0.646022545*(-3.515 + i6)^2)*exp(- + 0.25360421*(-3.333 + i7)^2) + 0.039259967*exp(-8.428896813*(-0.3152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5879 + 0.1*i2)^2)*exp(-12.62180682*(-0.8667 + + 0.1*i3)^2)*exp(-0.117916606*(-1.031 + 0.1*i4)^2)*exp(-1.214030093*(-1.485 + + i5)^2)*exp(-0.646022545*(-3.182 + i6)^2)*exp(-0.25360421*(-2.242 + i7)^2 + ) + 0.719505008*exp(-8.428896813*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-12.62180682*(-0.4061 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.201 + 0.1*i4)^2)*exp(-1.214030093*(-1.283 + i5)^2)*exp(-0.646022545*(- + 3.949 + i6)^2)*exp(-0.25360421*(-3 + i7)^2) - 0.132949185*exp(-8.428896813* + (-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2)^2)*exp(- + 12.62180682*(-0.8788 + 0.1*i3)^2)*exp(-0.117916606*(-1.072 + 0.1*i4)^2)* + exp(-1.214030093*(-1.081 + i5)^2)*exp(-0.646022545*(-3.303 + i6)^2)*exp(- + 0.25360421*(-3.545 + i7)^2) + 7.67809711*exp(-8.428896813*(-0.4424 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-12.62180682*(-0.5333 + 0.1 + *i3)^2)*exp(-0.117916606*(-1.484 + 0.1*i4)^2)*exp(-1.214030093*(-1.677 + i5 + )^2)*exp(-0.646022545*(-3.737 + i6)^2)*exp(-0.25360421*(-2.333 + i7)^2) + + 0.554882554*exp(-8.428896813*(-0.397 + 0.1*i1)^2)*exp(-12.56111847*(-0.5939 + + 0.1*i2)^2)*exp(-12.62180682*(-0.8545 + 0.1*i3)^2)*exp(-0.117916606*(- + 1.363 + 0.1*i4)^2)*exp(-1.214030093*(-1.869 + i5)^2)*exp(-0.646022545*(- + 3.02 + i6)^2)*exp(-0.25360421*(-3.515 + i7)^2) + 0.989691092*exp(- + 8.428896813*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(-0.4788 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6121 + 0.1*i3)^2)*exp(-0.117916606*(-0.8939 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.051 + i5)^2)*exp(-0.646022545*(-3.879 + i6)^2)*exp( + -0.25360421*(-3.182 + i7)^2) - 0.723725642*exp(-8.428896813*(-0.3545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4364 + 0.1*i2)^2)*exp(-12.62180682*(-0.7333 + + 0.1*i3)^2)*exp(-0.117916606*(-0.9828 + 0.1*i4)^2)*exp(-1.214030093*(-1.99 + + i5)^2)*exp(-0.646022545*(-3.495 + i6)^2)*exp(-0.25360421*(-2.97 + i7)^2) + - 2.093116132*exp(-8.428896813*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-12.62180682*(-0.6727 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.7889 + 0.1*i4)^2)*exp(-1.214030093*(-1.121 + i5)^2)*exp(-0.646022545*( + -3.091 + i6)^2)*exp(-0.25360421*(-4.121 + i7)^2) + 0.385596845*exp(- + 8.428896813*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(-0.7879 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6909 + 0.1*i3)^2)*exp(-0.117916606*(-0.7162 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.475 + i5)^2)*exp(-0.646022545*(-3.131 + i6)^2)*exp( + -0.25360421*(-2.212 + i7)^2) - 0.453097165*exp(-8.428896813*(-0.4394 + 0.1* + i1)^2)*exp(-12.56111847*(-0.897 + 0.1*i2)^2)*exp(-12.62180682*(-0.9758 + + 0.1*i3)^2)*exp(-0.117916606*(-1.023 + 0.1*i4)^2)*exp(-1.214030093*(-1.667 + + i5)^2)*exp(-0.646022545*(-3.061 + i6)^2)*exp(-0.25360421*(-2.879 + i7)^2 + ) - 0.360680491*exp(-8.428896813*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5394 + 0.1*i2)^2)*exp(-12.62180682*(-0.9152 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.5 + 0.1*i4)^2)*exp(-1.214030093*(-1.596 + i5)^2)*exp(-0.646022545*(- + 3.636 + i6)^2)*exp(-0.25360421*(-2.727 + i7)^2) + 1.367716821*exp(- + 8.428896813*(-0.5545 + 0.1*i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)* + exp(-12.62180682*(-0.7212 + 0.1*i3)^2)*exp(-0.117916606*(-1.08 + 0.1*i4)^2) + *exp(-1.214030093*(-1.838 + i5)^2)*exp(-0.646022545*(-3.434 + i6)^2)*exp(- + 0.25360421*(-2.364 + i7)^2) - 3.268066693*exp(-8.428896813*(-0.3758 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8667 + 0.1*i2)^2)*exp(-12.62180682*(-0.5394 + + 0.1*i3)^2)*exp(-0.117916606*(-1.015 + 0.1*i4)^2)*exp(-1.214030093*(-1.919 + + i5)^2)*exp(-0.646022545*(-3.909 + i6)^2)*exp(-0.25360421*(-2.939 + i7)^2 + ) - 0.768720621*exp(-8.428896813*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-12.62180682*(-0.5212 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.9343 + 0.1*i4)^2)*exp(-1.214030093*(-1.808 + i5)^2)*exp(-0.646022545*( + -3.212 + i6)^2)*exp(-0.25360421*(-2.545 + i7)^2) - 1.68836172*exp(- + 8.428896813*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(-0.9333 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6485 + 0.1*i3)^2)*exp(-0.117916606*(-1.322 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.394 + i5)^2)*exp(-0.646022545*(-3.081 + i6)^2)*exp(- + 0.25360421*(-4.697 + i7)^2) + 0.322999043*exp(-8.428896813*(-0.4576 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5455 + 0.1*i2)^2)*exp(-12.62180682*(-0.9939 + + 0.1*i3)^2)*exp(-0.117916606*(-1.169 + 0.1*i4)^2)*exp(-1.214030093*(-1.98 + + i5)^2)*exp(-0.646022545*(-3.626 + i6)^2)*exp(-0.25360421*(-3.939 + i7)^2) + + 1.134878867*exp(-8.428896813*(-0.3242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9212 + 0.1*i2)^2)*exp(-12.62180682*(-0.4667 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.314 + 0.1*i4)^2)*exp(-1.214030093*(-1.697 + i5)^2)*exp(-0.646022545*(- + 3.374 + i6)^2)*exp(-0.25360421*(-3.758 + i7)^2) + 0.181158245*exp(- + 8.428896813*(-0.5697 + 0.1*i1)^2)*exp(-12.56111847*(-0.4182 + 0.1*i2)^2)* + exp(-12.62180682*(-0.7394 + 0.1*i3)^2)*exp(-0.117916606*(-0.8374 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.717 + i5)^2)*exp(-0.646022545*(-3.727 + i6)^2)*exp( + -0.25360421*(-3.303 + i7)^2) - 1.8518909*exp(-8.428896813*(-0.3727 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.9879 + 0.1*i2)^2)*exp(-12.62180682*(-0.6848 + 0.1 + *i3)^2)*exp(-0.117916606*(-1.104 + 0.1*i4)^2)*exp(-1.214030093*(-1.343 + i5 + )^2)*exp(-0.646022545*(-3.606 + i6)^2)*exp(-0.25360421*(-2 + i7)^2) + + 0.438520697*exp(-8.428896813*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4667 + 0.1*i2)^2)*exp(-12.62180682*(-0.8303 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.8859 + 0.1*i4)^2)*exp(-1.214030093*(-1.111 + i5)^2)*exp(-0.646022545*( + -3.283 + i6)^2)*exp(-0.25360421*(-2.576 + i7)^2) + 2.870958453*exp(- + 8.428896813*(-0.3485 + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6606 + 0.1*i3)^2)*exp(-0.117916606*(-0.999 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.172 + i5)^2)*exp(-0.646022545*(-3.03 + i6)^2)*exp(- + 0.25360421*(-3.152 + i7)^2) - 0.502754431*exp(-8.428896813*(-0.5848 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-12.62180682*(-0.8 + 0.1* + i3)^2)*exp(-0.117916606*(-1.298 + 0.1*i4)^2)*exp(-1.214030093*(-1.848 + i5) + ^2)*exp(-0.646022545*(-3.828 + i6)^2)*exp(-0.25360421*(-2.636 + i7)^2) - + 0.187092394*exp(-8.428896813*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5212 + 0.1*i2)^2)*exp(-12.62180682*(-0.497 + 0.1*i3)^2)*exp(-0.117916606* + (-1.395 + 0.1*i4)^2)*exp(-1.214030093*(-1.636 + i5)^2)*exp(-0.646022545*(- + 3.384 + i6)^2)*exp(-0.25360421*(-2.697 + i7)^2) + 1.163522009*exp(- + 8.428896813*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(-0.6242 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6788 + 0.1*i3)^2)*exp(-0.117916606*(-1.338 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.859 + i5)^2)*exp(-0.646022545*(-3.758 + i6)^2)*exp(- + 0.25360421*(-4.273 + i7)^2) + 0.685872322*exp(-8.428896813*(-0.5485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4545 + 0.1*i2)^2)*exp(-12.62180682*(-0.8848 + + 0.1*i3)^2)*exp(-0.117916606*(-1.112 + 0.1*i4)^2)*exp(-1.214030093*(-1.515 + + i5)^2)*exp(-0.646022545*(-3.101 + i6)^2)*exp(-0.25360421*(-4.333 + i7)^2 + ) - 0.329505822*exp(-8.428896813*(-0.4636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7939 + 0.1*i2)^2)*exp(-12.62180682*(-0.7879 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.492 + 0.1*i4)^2)*exp(-1.214030093*(-1.707 + i5)^2)*exp(-0.646022545*(- + 3.97 + i6)^2)*exp(-0.25360421*(-4.03 + i7)^2) - 0.598246768*exp(- + 8.428896813*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(-0.5818 + 0.1*i2)^2)* + exp(-12.62180682*(-0.7455 + 0.1*i3)^2)*exp(-0.117916606*(-0.7404 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.687 + i5)^2)*exp(-0.646022545*(-3.929 + i6)^2)*exp( + -0.25360421*(-3.788 + i7)^2) + 0.675014866*exp(-8.428896813*(-0.6 + 0.1*i1) + ^2)*exp(-12.56111847*(-0.7515 + 0.1*i2)^2)*exp(-12.62180682*(-0.9455 + 0.1* + i3)^2)*exp(-0.117916606*(-0.8616 + 0.1*i4)^2)*exp(-1.214030093*(-1.384 + i5 + )^2)*exp(-0.646022545*(-3.596 + i6)^2)*exp(-0.25360421*(-2.848 + i7)^2) - + 0.34002616*exp(-8.428896813*(-0.3273 + 0.1*i1)^2)*exp(-12.56111847*(-0.4 + + 0.1*i2)^2)*exp(-12.62180682*(-0.897 + 0.1*i3)^2)*exp(-0.117916606*(-1.12 + + 0.1*i4)^2)*exp(-1.214030093*(-1.404 + i5)^2)*exp(-0.646022545*(-3.525 + i6) + ^2)*exp(-0.25360421*(-4.182 + i7)^2) + 0.511532558*exp(-8.428896813*(- + 0.5212 + 0.1*i1)^2)*exp(-12.56111847*(-0.497 + 0.1*i2)^2)*exp(-12.62180682* + (-0.8909 + 0.1*i3)^2)*exp(-0.117916606*(-1.185 + 0.1*i4)^2)*exp(- + 1.214030093*(-1.737 + i5)^2)*exp(-0.646022545*(-3.293 + i6)^2)*exp(- + 0.25360421*(-2.091 + i7)^2) + 0.741326709*exp(-8.428896813*(-0.4303 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4606 + 0.1*i2)^2)*exp(-12.62180682*(-0.6242 + + 0.1*i3)^2)*exp(-0.117916606*(-1.225 + 0.1*i4)^2)*exp(-1.214030093*(-1.727 + + i5)^2)*exp(-0.646022545*(-3.96 + i6)^2)*exp(-0.25360421*(-2.424 + i7)^2) + + 0.332825689*exp(-8.428896813*(-0.3121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8909 + 0.1*i2)^2)*exp(-12.62180682*(-0.903 + 0.1*i3)^2)*exp(-0.117916606* + (-1.387 + 0.1*i4)^2)*exp(-1.214030093*(-1.414 + i5)^2)*exp(-0.646022545*(- + 3.323 + i6)^2)*exp(-0.25360421*(-3.636 + i7)^2) - 0.010747686*exp(- + 8.428896813*(-0.3424 + 0.1*i1)^2)*exp(-12.56111847*(-0.4485 + 0.1*i2)^2)* + exp(-12.62180682*(-0.4182 + 0.1*i3)^2)*exp(-0.117916606*(-0.9747 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.566 + i5)^2)*exp(-0.646022545*(-3.657 + i6)^2)*exp( + -0.25360421*(-3.879 + i7)^2) + 0.385903956*exp(-8.428896813*(-0.497 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7697 + 0.1*i2)^2)*exp(-12.62180682*(-0.7939 + + 0.1*i3)^2)*exp(-0.117916606*(-1.274 + 0.1*i4)^2)*exp(-1.214030093*(-1.141 + + i5)^2)*exp(-0.646022545*(-4 + i6)^2)*exp(-0.25360421*(-2.515 + i7)^2) - + 0.660862275*exp(-8.428896813*(-0.4939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5576 + 0.1*i2)^2)*exp(-12.62180682*(-0.4545 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.177 + 0.1*i4)^2)*exp(-1.214030093*(-1.96 + i5)^2)*exp(-0.646022545*(- + 3.818 + i6)^2)*exp(-0.25360421*(-4 + i7)^2) - 3.743372195*exp(-8.428896813* + (-0.5 + 0.1*i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2)*exp(-12.62180682* + (-0.4 + 0.1*i3)^2)*exp(-0.117916606*(-1.088 + 0.1*i4)^2)*exp(-1.214030093*( + -1.455 + i5)^2)*exp(-0.646022545*(-3.242 + i6)^2)*exp(-0.25360421*(-2.788 + + i7)^2) + 0.421914708*exp(-8.428896813*(-0.4182 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9455 + 0.1*i2)^2)*exp(-12.62180682*(-0.8364 + 0.1*i3)^2)* + exp(-0.117916606*(-1.258 + 0.1*i4)^2)*exp(-1.214030093*(-1.929 + i5)^2)* + exp(-0.646022545*(-3.465 + i6)^2)*exp(-0.25360421*(-4.606 + i7)^2) - + 0.04039678*exp(-8.428896813*(-0.3636 + 0.1*i1)^2)*exp(-12.56111847*(-0.7818 + + 0.1*i2)^2)*exp(-12.62180682*(-1 + 0.1*i3)^2)*exp(-0.117916606*(-0.9909 + + 0.1*i4)^2)*exp(-1.214030093*(-1.535 + i5)^2)*exp(-0.646022545*(-3.768 + + i6)^2)*exp(-0.25360421*(-4.667 + i7)^2) - 0.089488686*exp(-8.428896813*(- + 0.4091 + 0.1*i1)^2)*exp(-12.56111847*(-0.7212 + 0.1*i2)^2)*exp(-12.62180682 + *(-0.9273 + 0.1*i3)^2)*exp(-0.117916606*(-1.371 + 0.1*i4)^2)*exp(- + 1.214030093*(-1.04 + i5)^2)*exp(-0.646022545*(-3.747 + i6)^2)*exp(- + 0.25360421*(-4.152 + i7)^2) + 0.508958122*exp(-8.428896813*(-0.4455 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4242 + 0.1*i2)^2)*exp(-12.62180682*(-0.5879 + + 0.1*i3)^2)*exp(-0.117916606*(-0.9182 + 0.1*i4)^2)*exp(-1.214030093*(-1.626 + + i5)^2)*exp(-0.646022545*(-3 + i6)^2)*exp(-0.25360421*(-3.091 + i7)^2) + + 0.035935989*exp(-8.428896813*(-0.3667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8424 + 0.1*i2)^2)*exp(-12.62180682*(-0.8242 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.29 + 0.1*i4)^2)*exp(-1.214030093*(-2 + i5)^2)*exp(-0.646022545*(-3.485 + + i6)^2)*exp(-0.25360421*(-2.485 + i7)^2) + 1.423661529*exp(-8.428896813*( + -0.4 + 0.1*i1)^2)*exp(-12.56111847*(-0.6 + 0.1*i2)^2)*exp(-12.62180682*(- + 0.4364 + 0.1*i3)^2)*exp(-0.117916606*(-1.056 + 0.1*i4)^2)*exp(-1.214030093* + (-1.091 + i5)^2)*exp(-0.646022545*(-3.202 + i6)^2)*exp(-0.25360421*(-2.606 + + i7)^2) + 0.064364448*exp(-8.428896813*(-0.5303 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8545 + 0.1*i2)^2)*exp(-12.62180682*(-0.9212 + 0.1*i3)^2)* + exp(-0.117916606*(-0.8778 + 0.1*i4)^2)*exp(-1.214030093*(-1.616 + i5)^2)* + exp(-0.646022545*(-3.232 + i6)^2)*exp(-0.25360421*(-4.727 + i7)^2) - + 2.100817791*exp(-8.428896813*(-0.3879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5515 + 0.1*i2)^2)*exp(-12.62180682*(-0.5576 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.7808 + 0.1*i4)^2)*exp(-1.214030093*(-1.444 + i5)^2)*exp(-0.646022545*( + -3.677 + i6)^2)*exp(-0.25360421*(-2.03 + i7)^2) - 0.700367777*exp(- + 8.428896813*(-0.4515 + 0.1*i1)^2)*exp(-12.56111847*(-0.7273 + 0.1*i2)^2)* + exp(-12.62180682*(-0.8727 + 0.1*i3)^2)*exp(-0.117916606*(-0.8131 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1.828 + i5)^2)*exp(-0.646022545*(-3.717 + i6)^2)*exp( + -0.25360421*(-2.061 + i7)^2) + 0.935620528*exp(-8.428896813*(-0.4818 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4121 + 0.1*i2)^2)*exp(-12.62180682*(-0.5515 + + 0.1*i3)^2)*exp(-0.117916606*(-1.064 + 0.1*i4)^2)*exp(-1.214030093*(-1.202 + + i5)^2)*exp(-0.646022545*(-3.404 + i6)^2)*exp(-0.25360421*(-4.788 + i7)^2 + ) + 0.041479656*exp(-8.428896813*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-12.62180682*(-0.9636 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.443 + 0.1*i4)^2)*exp(-1.214030093*(-1.606 + i5)^2)*exp(-0.646022545*(- + 3.263 + i6)^2)*exp(-0.25360421*(-3.667 + i7)^2) + 0.084962814*exp(- + 8.428896813*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(-0.4727 + 0.1*i2)^2)* + exp(-12.62180682*(-0.7818 + 0.1*i3)^2)*exp(-0.117916606*(-1.136 + 0.1*i4)^2 + )*exp(-1.214030093*(-1.545 + i5)^2)*exp(-0.646022545*(-3.99 + i6)^2)*exp(- + 0.25360421*(-4.758 + i7)^2) - 1.487929616*exp(-8.428896813*(-0.5606 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7758 + 0.1*i2)^2)*exp(-12.62180682*(-0.5273 + + 0.1*i3)^2)*exp(-0.117916606*(-0.9263 + 0.1*i4)^2)*exp(-1.214030093*(-1.576 + + i5)^2)*exp(-0.646022545*(-3.919 + i6)^2)*exp(-0.25360421*(-2.394 + i7)^2 + ) - 0.787334248*exp(-8.428896813*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-12.62180682*(-0.9818 + 0.1*i3)^2)*exp(-0.117916606 + *(-0.7081 + 0.1*i4)^2)*exp(-1.214030093*(-1.657 + i5)^2)*exp(-0.646022545*( + -3.273 + i6)^2)*exp(-0.25360421*(-3.455 + i7)^2) - 1.751100349*exp(- + 8.428896813*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(-0.8303 + 0.1*i2)^2)* + exp(-12.62180682*(-0.6061 + 0.1*i3)^2)*exp(-0.117916606*(-0.9424 + 0.1*i4)^ + 2)*exp(-1.214030093*(-1 + i5)^2)*exp(-0.646022545*(-3.545 + i6)^2)*exp(- + 0.25360421*(-2.303 + i7)^2) - 0.186346081*exp(-8.428896813*(-0.3788 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9152 + 0.1*i2)^2)*exp(-12.62180682*(-0.7515 + + 0.1*i3)^2)*exp(-0.117916606*(-0.8455 + 0.1*i4)^2)*exp(-1.214030093*(-1.212 + + i5)^2)*exp(-0.646022545*(-3.394 + i6)^2)*exp(-0.25360421*(-4.879 + i7)^2 + ) + 1.478250398*exp(-8.428896813*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-12.62180682*(-0.4424 + 0.1*i3)^2)*exp(-0.117916606 + *(-1.047 + 0.1*i4)^2)*exp(-1.214030093*(-1.02 + i5)^2)*exp(-0.646022545*(- + 3.556 + i6)^2)*exp(-0.25360421*(-4.303 + i7)^2)) + x8 >= 1.931177919; + + -(1.211093534*exp(-14.37159477*(-0.5364 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.9697 + 0.1*i2)^2)*exp(-12.73459431*(-0.4909 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.161 + 0.1*i4)^2)*exp(-4.594680851*(-1.778 + i5)^2)*exp(-0.001038216*(- + 3.778 + i6)^2)*exp(-0.289328481*(-4.091 + i7)^2) - 0.036410482*exp(- + 14.37159477*(-0.303 + 0.1*i1)^2)*exp(-12.76008545*(-0.697 + 0.1*i2)^2)*exp( + -12.73459431*(-0.8061 + 0.1*i3)^2)*exp(-0.265810038*(-0.9586 + 0.1*i4)^2)* + exp(-4.594680851*(-1.758 + i5)^2)*exp(-0.001038216*(-3.141 + i6)^2)*exp(- + 0.289328481*(-4.424 + i7)^2) + 6.080269116*exp(-14.37159477*(-0.503 + 0.1* + i1)^2)*exp(-12.76008545*(-0.6182 + 0.1*i2)^2)*exp(-12.73459431*(-0.4121 + + 0.1*i3)^2)*exp(-0.265810038*(-1.419 + 0.1*i4)^2)*exp(-4.594680851*(-1.333 + + i5)^2)*exp(-0.001038216*(-3.152 + i6)^2)*exp(-0.289328481*(-3.697 + i7)^ + 2) - 2.475473022*exp(-14.37159477*(-0.4606 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.903 + 0.1*i2)^2)*exp(-12.73459431*(-0.7576 + 0.1*i3)^2)*exp(-0.265810038* + (-0.7727 + 0.1*i4)^2)*exp(-4.594680851*(-1.242 + i5)^2)*exp(-0.001038216*(- + 3.98 + i6)^2)*exp(-0.289328481*(-3.424 + i7)^2) - 0.365416226*exp(- + 14.37159477*(-0.3 + 0.1*i1)^2)*exp(-12.76008545*(-0.7636 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.8606 + 0.1*i3)^2)*exp(-0.265810038*(-1.153 + 0.1*i4)^2)* + exp(-4.594680851*(-1.556 + i5)^2)*exp(-0.001038216*(-3.939 + i6)^2)*exp(- + 0.289328481*(-2.818 + i7)^2) + 0.575672043*exp(-14.37159477*(-0.5879 + 0.1* + i1)^2)*exp(-12.76008545*(-0.703 + 0.1*i2)^2)*exp(-12.73459431*(-0.4788 + + 0.1*i3)^2)*exp(-0.265810038*(-1.039 + 0.1*i4)^2)*exp(-4.594680851*(-1.646 + + i5)^2)*exp(-0.001038216*(-3.222 + i6)^2)*exp(-0.289328481*(-4.636 + i7)^ + 2) - 0.910771555*exp(-14.37159477*(-0.4121 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.4424 + 0.1*i2)^2)*exp(-12.73459431*(-0.5939 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.46 + 0.1*i4)^2)*exp(-4.594680851*(-1.232 + i5)^2)*exp(-0.001038216*(- + 3.788 + i6)^2)*exp(-0.289328481*(-3.848 + i7)^2) - 0.266718348*exp(- + 14.37159477*(-0.5576 + 0.1*i1)^2)*exp(-12.76008545*(-0.8848 + 0.1*i2)^2)* + exp(-12.73459431*(-0.8121 + 0.1*i3)^2)*exp(-0.265810038*(-1.128 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.263 + i5)^2)*exp(-0.001038216*(-3.808 + i6)^2)*exp(- + 0.289328481*(-4.818 + i7)^2) - 0.845375418*exp(-14.37159477*(-0.4273 + 0.1* + i1)^2)*exp(-12.76008545*(-0.4848 + 0.1*i2)^2)*exp(-12.73459431*(-0.9697 + + 0.1*i3)^2)*exp(-0.265810038*(-0.9667 + 0.1*i4)^2)*exp(-4.594680851*(-1.364 + + i5)^2)*exp(-0.001038216*(-3.869 + i6)^2)*exp(-0.289328481*(-2.667 + i7)^ + 2) + 0.932218221*exp(-14.37159477*(-0.5455 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.4061 + 0.1*i2)^2)*exp(-12.73459431*(-0.6303 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.427 + 0.1*i4)^2)*exp(-4.594680851*(-1.747 + i5)^2)*exp(-0.001038216*(- + 3.444 + i6)^2)*exp(-0.289328481*(-3.576 + i7)^2) + 0.129627631*exp(- + 14.37159477*(-0.5394 + 0.1*i1)^2)*exp(-12.76008545*(-0.5273 + 0.1*i2)^2)* + exp(-12.73459431*(-0.5636 + 0.1*i3)^2)*exp(-0.265810038*(-1.355 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.253 + i5)^2)*exp(-0.001038216*(-3.566 + i6)^2)*exp(- + 0.289328481*(-2.121 + i7)^2) - 1.011455107*exp(-14.37159477*(-0.5273 + 0.1* + i1)^2)*exp(-12.76008545*(-0.8121 + 0.1*i2)^2)*exp(-12.73459431*(-0.8424 + + 0.1*i3)^2)*exp(-0.265810038*(-0.8535 + 0.1*i4)^2)*exp(-4.594680851*(-1.899 + + i5)^2)*exp(-0.001038216*(-3.889 + i6)^2)*exp(-0.289328481*(-4.061 + i7)^ + 2) - 0.343391696*exp(-14.37159477*(-0.5727 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.4909 + 0.1*i2)^2)*exp(-12.73459431*(-0.9333 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.306 + 0.1*i4)^2)*exp(-4.594680851*(-1.273 + i5)^2)*exp(-0.001038216*(- + 3.707 + i6)^2)*exp(-0.289328481*(-3.485 + i7)^2) + 0.407604134*exp(- + 14.37159477*(-0.3091 + 0.1*i1)^2)*exp(-12.76008545*(-0.6364 + 0.1*i2)^2)* + exp(-12.73459431*(-0.5758 + 0.1*i3)^2)*exp(-0.265810038*(-1.282 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.222 + i5)^2)*exp(-0.001038216*(-3.192 + i6)^2)*exp(- + 0.289328481*(-4.455 + i7)^2) - 0.694237886*exp(-14.37159477*(-0.4364 + 0.1* + i1)^2)*exp(-12.76008545*(-0.7394 + 0.1*i2)^2)*exp(-12.73459431*(-0.4485 + + 0.1*i3)^2)*exp(-0.265810038*(-1.403 + 0.1*i4)^2)*exp(-4.594680851*(-1.465 + + i5)^2)*exp(-0.001038216*(-3.687 + i6)^2)*exp(-0.289328481*(-4.939 + i7)^ + 2) - 0.085498171*exp(-14.37159477*(-0.5636 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.6485 + 0.1*i2)^2)*exp(-12.73459431*(-0.7273 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.346 + 0.1*i4)^2)*exp(-4.594680851*(-1.01 + i5)^2)*exp(-0.001038216*(- + 3.333 + i6)^2)*exp(-0.289328481*(-4.364 + i7)^2) - 2.172259686*exp(- + 14.37159477*(-0.597 + 0.1*i1)^2)*exp(-12.76008545*(-0.7152 + 0.1*i2)^2)* + exp(-12.73459431*(-0.703 + 0.1*i3)^2)*exp(-0.265810038*(-1.209 + 0.1*i4)^2) + *exp(-4.594680851*(-1.354 + i5)^2)*exp(-0.001038216*(-3.01 + i6)^2)*exp(- + 0.289328481*(-2.758 + i7)^2) + 0.014258832*exp(-14.37159477*(-0.5152 + 0.1* + i1)^2)*exp(-12.76008545*(-0.6606 + 0.1*i2)^2)*exp(-12.73459431*(-0.503 + + 0.1*i3)^2)*exp(-0.265810038*(-0.7566 + 0.1*i4)^2)*exp(-4.594680851*(-1.424 + + i5)^2)*exp(-0.001038216*(-3.848 + i6)^2)*exp(-0.289328481*(-4.576 + i7)^ + 2) - 1.782672028*exp(-14.37159477*(-0.5758 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.5152 + 0.1*i2)^2)*exp(-12.73459431*(-0.4303 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.8697 + 0.1*i4)^2)*exp(-4.594680851*(-1.374 + i5)^2)*exp(-0.001038216*( + -3.414 + i6)^2)*exp(-0.289328481*(-3.061 + i7)^2) - 2.433112712*exp(- + 14.37159477*(-0.3939 + 0.1*i1)^2)*exp(-12.76008545*(-0.7091 + 0.1*i2)^2)* + exp(-12.73459431*(-0.4242 + 0.1*i3)^2)*exp(-0.265810038*(-0.8293 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.434 + i5)^2)*exp(-0.001038216*(-3.121 + i6)^2)*exp( + -0.289328481*(-4.394 + i7)^2) + 0.944231702*exp(-14.37159477*(-0.403 + 0.1* + i1)^2)*exp(-12.76008545*(-0.5333 + 0.1*i2)^2)*exp(-12.73459431*(-0.5152 + + 0.1*i3)^2)*exp(-0.265810038*(-1.233 + 0.1*i4)^2)*exp(-4.594680851*(-1.889 + + i5)^2)*exp(-0.001038216*(-3.172 + i6)^2)*exp(-0.289328481*(-4.545 + i7)^ + 2) - 1.208099234*exp(-14.37159477*(-0.5061 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.6121 + 0.1*i2)^2)*exp(-12.73459431*(-0.4606 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.144 + 0.1*i4)^2)*exp(-4.594680851*(-1.879 + i5)^2)*exp(-0.001038216*(- + 3.343 + i6)^2)*exp(-0.289328481*(-2.152 + i7)^2) - 1.103960455*exp(- + 14.37159477*(-0.4152 + 0.1*i1)^2)*exp(-12.76008545*(-0.8242 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6545 + 0.1*i3)^2)*exp(-0.265810038*(-1.411 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.525 + i5)^2)*exp(-0.001038216*(-3.04 + i6)^2)*exp(- + 0.289328481*(-2.273 + i7)^2) - 0.864302185*exp(-14.37159477*(-0.4545 + 0.1* + i1)^2)*exp(-12.76008545*(-0.503 + 0.1*i2)^2)*exp(-12.73459431*(-0.7152 + + 0.1*i3)^2)*exp(-0.265810038*(-0.797 + 0.1*i4)^2)*exp(-4.594680851*(-1.798 + + i5)^2)*exp(-0.001038216*(-3.424 + i6)^2)*exp(-0.289328481*(-4.97 + i7)^2 + ) + 0.175887188*exp(-14.37159477*(-0.3606 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8 + 0.1*i2)^2)*exp(-12.73459431*(-0.9394 + 0.1*i3)^2)*exp(-0.265810038*(- + 0.8212 + 0.1*i4)^2)*exp(-4.594680851*(-1.101 + i5)^2)*exp(-0.001038216*(- + 3.535 + i6)^2)*exp(-0.289328481*(-2.909 + i7)^2) + 4.995147715*exp(- + 14.37159477*(-0.5818 + 0.1*i1)^2)*exp(-12.76008545*(-0.9394 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6364 + 0.1*i3)^2)*exp(-0.265810038*(-1.435 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.313 + i5)^2)*exp(-0.001038216*(-3.576 + i6)^2)*exp(- + 0.289328481*(-3.212 + i7)^2) + 0.505089916*exp(-14.37159477*(-0.4485 + 0.1* + i1)^2)*exp(-12.76008545*(-0.9273 + 0.1*i2)^2)*exp(-12.73459431*(-0.6 + 0.1* + i3)^2)*exp(-0.265810038*(-0.9505 + 0.1*i4)^2)*exp(-4.594680851*(-1.909 + i5 + )^2)*exp(-0.001038216*(-3.051 + i6)^2)*exp(-0.289328481*(-3.97 + i7)^2) + + 8.032641414*exp(-14.37159477*(-0.3394 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8788 + 0.1*i2)^2)*exp(-12.73459431*(-0.4727 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.7646 + 0.1*i4)^2)*exp(-4.594680851*(-1.293 + i5)^2)*exp(-0.001038216*( + -3.616 + i6)^2)*exp(-0.289328481*(-3.273 + i7)^2) + 2.385890599*exp(- + 14.37159477*(-0.3515 + 0.1*i1)^2)*exp(-12.76008545*(-0.9576 + 0.1*i2)^2)* + exp(-12.73459431*(-0.8182 + 0.1*i3)^2)*exp(-0.265810038*(-0.7485 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.768 + i5)^2)*exp(-0.001038216*(-3.505 + i6)^2)*exp( + -0.289328481*(-3.394 + i7)^2) + 0.625596913*exp(-14.37159477*(-0.4061 + 0.1 + *i1)^2)*exp(-12.76008545*(-0.6667 + 0.1*i2)^2)*exp(-12.73459431*(-0.9576 + + 0.1*i3)^2)*exp(-0.265810038*(-1.096 + 0.1*i4)^2)*exp(-4.594680851*(-1.131 + + i5)^2)*exp(-0.001038216*(-3.071 + i6)^2)*exp(-0.289328481*(-4.242 + i7)^ + 2) - 0.246854786*exp(-14.37159477*(-0.5788 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.6545 + 0.1*i2)^2)*exp(-12.73459431*(-0.7697 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.9101 + 0.1*i4)^2)*exp(-4.594680851*(-1.97 + i5)^2)*exp(-0.001038216*(- + 3.162 + i6)^2)*exp(-0.289328481*(-3.364 + i7)^2) - 0.329745441*exp(- + 14.37159477*(-0.4788 + 0.1*i1)^2)*exp(-12.76008545*(-0.9818 + 0.1*i2)^2)* + exp(-12.73459431*(-0.9879 + 0.1*i3)^2)*exp(-0.265810038*(-1.193 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.586 + i5)^2)*exp(-0.001038216*(-3.798 + i6)^2)*exp(- + 0.289328481*(-3.03 + i7)^2) - 0.676890385*exp(-14.37159477*(-0.3182 + 0.1* + i1)^2)*exp(-12.76008545*(-0.5697 + 0.1*i2)^2)*exp(-12.73459431*(-0.7091 + + 0.1*i3)^2)*exp(-0.265810038*(-1.217 + 0.1*i4)^2)*exp(-4.594680851*(-1.061 + + i5)^2)*exp(-0.001038216*(-3.646 + i6)^2)*exp(-0.289328481*(-2.455 + i7)^ + 2) - 2.606972707*exp(-14.37159477*(-0.3909 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8606 + 0.1*i2)^2)*exp(-12.73459431*(-0.5818 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.468 + 0.1*i4)^2)*exp(-4.594680851*(-1.03 + i5)^2)*exp(-0.001038216*(- + 3.455 + i6)^2)*exp(-0.289328481*(-3.242 + i7)^2) - 2.755901459*exp(- + 14.37159477*(-0.5909 + 0.1*i1)^2)*exp(-12.76008545*(-0.6303 + 0.1*i2)^2)* + exp(-12.73459431*(-0.5091 + 0.1*i3)^2)*exp(-0.265810038*(-1.266 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.303 + i5)^2)*exp(-0.001038216*(-3.899 + i6)^2)*exp(- + 0.289328481*(-3.909 + i7)^2) + 0.284465446*exp(-14.37159477*(-0.5939 + 0.1* + i1)^2)*exp(-12.76008545*(-0.6727 + 0.1*i2)^2)*exp(-12.73459431*(-0.7758 + + 0.1*i3)^2)*exp(-0.265810038*(-1.249 + 0.1*i4)^2)*exp(-4.594680851*(-1.818 + + i5)^2)*exp(-0.001038216*(-3.586 + i6)^2)*exp(-0.289328481*(-4.848 + i7)^ + 2) - 0.656769226*exp(-14.37159477*(-0.5242 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8061 + 0.1*i2)^2)*exp(-12.73459431*(-0.5697 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.452 + 0.1*i4)^2)*exp(-4.594680851*(-1.949 + i5)^2)*exp(-0.001038216*(- + 3.253 + i6)^2)*exp(-0.289328481*(-3.606 + i7)^2) - 2.731501292*exp(- + 14.37159477*(-0.5667 + 0.1*i1)^2)*exp(-12.76008545*(-0.9636 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6182 + 0.1*i3)^2)*exp(-0.265810038*(-0.7242 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.495 + i5)^2)*exp(-0.001038216*(-3.475 + i6)^2)*exp( + -0.289328481*(-3.818 + i7)^2) - 0.20776048*exp(-14.37159477*(-0.3364 + 0.1* + i1)^2)*exp(-12.76008545*(-0.5091 + 0.1*i2)^2)*exp(-12.73459431*(-0.697 + + 0.1*i3)^2)*exp(-0.265810038*(-0.7323 + 0.1*i4)^2)*exp(-4.594680851*(-1.182 + + i5)^2)*exp(-0.001038216*(-3.313 + i6)^2)*exp(-0.289328481*(-3.727 + i7)^ + 2) + 0.120136046*exp(-14.37159477*(-0.4212 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.6061 + 0.1*i2)^2)*exp(-12.73459431*(-0.8485 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.476 + 0.1*i4)^2)*exp(-4.594680851*(-1.505 + i5)^2)*exp(-0.001038216*(- + 3.364 + i6)^2)*exp(-0.289328481*(-5 + i7)^2) + 2.40424213*exp(-14.37159477* + (-0.3697 + 0.1*i1)^2)*exp(-12.76008545*(-0.8485 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.5455 + 0.1*i3)^2)*exp(-0.265810038*(-0.902 + 0.1*i4)^2)* + exp(-4.594680851*(-1.788 + i5)^2)*exp(-0.001038216*(-3.697 + i6)^2)*exp(- + 0.289328481*(-4.909 + i7)^2) - 0.110980249*exp(-14.37159477*(-0.5121 + 0.1* + i1)^2)*exp(-12.76008545*(-0.5758 + 0.1*i2)^2)*exp(-12.73459431*(-0.9091 + + 0.1*i3)^2)*exp(-0.265810038*(-0.8051 + 0.1*i4)^2)*exp(-4.594680851*(-1.152 + + i5)^2)*exp(-0.001038216*(-3.667 + i6)^2)*exp(-0.289328481*(-4.485 + i7)^ + 2) - 1.51057955*exp(-14.37159477*(-0.4697 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.7455 + 0.1*i2)^2)*exp(-12.73459431*(-0.9515 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.33 + 0.1*i4)^2)*exp(-4.594680851*(-1.162 + i5)^2)*exp(-0.001038216*(- + 3.354 + i6)^2)*exp(-0.289328481*(-2.182 + i7)^2) + 5.101645306*exp(- + 14.37159477*(-0.4758 + 0.1*i1)^2)*exp(-12.76008545*(-0.6848 + 0.1*i2)^2)* + exp(-12.73459431*(-0.4848 + 0.1*i3)^2)*exp(-0.265810038*(-0.7 + 0.1*i4)^2)* + exp(-4.594680851*(-1.939 + i5)^2)*exp(-0.001038216*(-3.515 + i6)^2)*exp(- + 0.289328481*(-3.333 + i7)^2) + 1.141386031*exp(-14.37159477*(-0.3152 + 0.1* + i1)^2)*exp(-12.76008545*(-0.5879 + 0.1*i2)^2)*exp(-12.73459431*(-0.8667 + + 0.1*i3)^2)*exp(-0.265810038*(-1.031 + 0.1*i4)^2)*exp(-4.594680851*(-1.485 + + i5)^2)*exp(-0.001038216*(-3.182 + i6)^2)*exp(-0.289328481*(-2.242 + i7)^ + 2) - 6.274697586*exp(-14.37159477*(-0.3818 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.7333 + 0.1*i2)^2)*exp(-12.73459431*(-0.4061 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.201 + 0.1*i4)^2)*exp(-4.594680851*(-1.283 + i5)^2)*exp(-0.001038216*(- + 3.949 + i6)^2)*exp(-0.289328481*(-3 + i7)^2) + 0.768239324*exp(-14.37159477 + *(-0.5182 + 0.1*i1)^2)*exp(-12.76008545*(-0.9939 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.8788 + 0.1*i3)^2)*exp(-0.265810038*(-1.072 + 0.1*i4)^2)* + exp(-4.594680851*(-1.081 + i5)^2)*exp(-0.001038216*(-3.303 + i6)^2)*exp(- + 0.289328481*(-3.545 + i7)^2) + 5.895060842*exp(-14.37159477*(-0.4424 + 0.1* + i1)^2)*exp(-12.76008545*(-0.8364 + 0.1*i2)^2)*exp(-12.73459431*(-0.5333 + + 0.1*i3)^2)*exp(-0.265810038*(-1.484 + 0.1*i4)^2)*exp(-4.594680851*(-1.677 + + i5)^2)*exp(-0.001038216*(-3.737 + i6)^2)*exp(-0.289328481*(-2.333 + i7)^ + 2) + 2.410316946*exp(-14.37159477*(-0.397 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.5939 + 0.1*i2)^2)*exp(-12.73459431*(-0.8545 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.363 + 0.1*i4)^2)*exp(-4.594680851*(-1.869 + i5)^2)*exp(-0.001038216*(- + 3.02 + i6)^2)*exp(-0.289328481*(-3.515 + i7)^2) - 0.79811321*exp(- + 14.37159477*(-0.4879 + 0.1*i1)^2)*exp(-12.76008545*(-0.4788 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6121 + 0.1*i3)^2)*exp(-0.265810038*(-0.8939 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.051 + i5)^2)*exp(-0.001038216*(-3.879 + i6)^2)*exp( + -0.289328481*(-3.182 + i7)^2) - 1.112544324*exp(-14.37159477*(-0.3545 + 0.1 + *i1)^2)*exp(-12.76008545*(-0.4364 + 0.1*i2)^2)*exp(-12.73459431*(-0.7333 + + 0.1*i3)^2)*exp(-0.265810038*(-0.9828 + 0.1*i4)^2)*exp(-4.594680851*(-1.99 + + i5)^2)*exp(-0.001038216*(-3.495 + i6)^2)*exp(-0.289328481*(-2.97 + i7)^2 + ) + 0.417907119*exp(-14.37159477*(-0.5424 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.6909 + 0.1*i2)^2)*exp(-12.73459431*(-0.6727 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.7889 + 0.1*i4)^2)*exp(-4.594680851*(-1.121 + i5)^2)*exp(-0.001038216*( + -3.091 + i6)^2)*exp(-0.289328481*(-4.121 + i7)^2) + 0.817475964*exp(- + 14.37159477*(-0.4848 + 0.1*i1)^2)*exp(-12.76008545*(-0.7879 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6909 + 0.1*i3)^2)*exp(-0.265810038*(-0.7162 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.475 + i5)^2)*exp(-0.001038216*(-3.131 + i6)^2)*exp( + -0.289328481*(-2.212 + i7)^2) - 0.497855754*exp(-14.37159477*(-0.4394 + 0.1 + *i1)^2)*exp(-12.76008545*(-0.897 + 0.1*i2)^2)*exp(-12.73459431*(-0.9758 + + 0.1*i3)^2)*exp(-0.265810038*(-1.023 + 0.1*i4)^2)*exp(-4.594680851*(-1.667 + + i5)^2)*exp(-0.001038216*(-3.061 + i6)^2)*exp(-0.289328481*(-2.879 + i7)^ + 2) - 0.63845003*exp(-14.37159477*(-0.3848 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.5394 + 0.1*i2)^2)*exp(-12.73459431*(-0.9152 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.5 + 0.1*i4)^2)*exp(-4.594680851*(-1.596 + i5)^2)*exp(-0.001038216*(- + 3.636 + i6)^2)*exp(-0.289328481*(-2.727 + i7)^2) + 2.549607862*exp(- + 14.37159477*(-0.5545 + 0.1*i1)^2)*exp(-12.76008545*(-0.9758 + 0.1*i2)^2)* + exp(-12.73459431*(-0.7212 + 0.1*i3)^2)*exp(-0.265810038*(-1.08 + 0.1*i4)^2) + *exp(-4.594680851*(-1.838 + i5)^2)*exp(-0.001038216*(-3.434 + i6)^2)*exp(- + 0.289328481*(-2.364 + i7)^2) - 4.098838028*exp(-14.37159477*(-0.3758 + 0.1* + i1)^2)*exp(-12.76008545*(-0.8667 + 0.1*i2)^2)*exp(-12.73459431*(-0.5394 + + 0.1*i3)^2)*exp(-0.265810038*(-1.015 + 0.1*i4)^2)*exp(-4.594680851*(-1.919 + + i5)^2)*exp(-0.001038216*(-3.909 + i6)^2)*exp(-0.289328481*(-2.939 + i7)^ + 2) - 0.972569284*exp(-14.37159477*(-0.3212 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.7576 + 0.1*i2)^2)*exp(-12.73459431*(-0.5212 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.9343 + 0.1*i4)^2)*exp(-4.594680851*(-1.808 + i5)^2)*exp(-0.001038216*( + -3.212 + i6)^2)*exp(-0.289328481*(-2.545 + i7)^2) + 0.189126708*exp(- + 14.37159477*(-0.4727 + 0.1*i1)^2)*exp(-12.76008545*(-0.9333 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6485 + 0.1*i3)^2)*exp(-0.265810038*(-1.322 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.394 + i5)^2)*exp(-0.001038216*(-3.081 + i6)^2)*exp(- + 0.289328481*(-4.697 + i7)^2) - 1.018605875*exp(-14.37159477*(-0.4576 + 0.1* + i1)^2)*exp(-12.76008545*(-0.5455 + 0.1*i2)^2)*exp(-12.73459431*(-0.9939 + + 0.1*i3)^2)*exp(-0.265810038*(-1.169 + 0.1*i4)^2)*exp(-4.594680851*(-1.98 + + i5)^2)*exp(-0.001038216*(-3.626 + i6)^2)*exp(-0.289328481*(-3.939 + i7)^2) + - 1.069006391*exp(-14.37159477*(-0.3242 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.9212 + 0.1*i2)^2)*exp(-12.73459431*(-0.4667 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.314 + 0.1*i4)^2)*exp(-4.594680851*(-1.697 + i5)^2)*exp(-0.001038216*(- + 3.374 + i6)^2)*exp(-0.289328481*(-3.758 + i7)^2) - 0.277737513*exp(- + 14.37159477*(-0.5697 + 0.1*i1)^2)*exp(-12.76008545*(-0.4182 + 0.1*i2)^2)* + exp(-12.73459431*(-0.7394 + 0.1*i3)^2)*exp(-0.265810038*(-0.8374 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.717 + i5)^2)*exp(-0.001038216*(-3.727 + i6)^2)*exp( + -0.289328481*(-3.303 + i7)^2) - 3.748287267*exp(-14.37159477*(-0.3727 + 0.1 + *i1)^2)*exp(-12.76008545*(-0.9879 + 0.1*i2)^2)*exp(-12.73459431*(-0.6848 + + 0.1*i3)^2)*exp(-0.265810038*(-1.104 + 0.1*i4)^2)*exp(-4.594680851*(-1.343 + + i5)^2)*exp(-0.001038216*(-3.606 + i6)^2)*exp(-0.289328481*(-2 + i7)^2) + + 0.925993829*exp(-14.37159477*(-0.5091 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.4667 + 0.1*i2)^2)*exp(-12.73459431*(-0.8303 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.8859 + 0.1*i4)^2)*exp(-4.594680851*(-1.111 + i5)^2)*exp(-0.001038216*( + -3.283 + i6)^2)*exp(-0.289328481*(-2.576 + i7)^2) + 2.611056955*exp(- + 14.37159477*(-0.3485 + 0.1*i1)^2)*exp(-12.76008545*(-0.9091 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6606 + 0.1*i3)^2)*exp(-0.265810038*(-0.999 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.172 + i5)^2)*exp(-0.001038216*(-3.03 + i6)^2)*exp(- + 0.289328481*(-3.152 + i7)^2) - 1.115352454*exp(-14.37159477*(-0.5848 + 0.1* + i1)^2)*exp(-12.76008545*(-0.6788 + 0.1*i2)^2)*exp(-12.73459431*(-0.8 + 0.1* + i3)^2)*exp(-0.265810038*(-1.298 + 0.1*i4)^2)*exp(-4.594680851*(-1.848 + i5) + ^2)*exp(-0.001038216*(-3.828 + i6)^2)*exp(-0.289328481*(-2.636 + i7)^2) + + 1.876817137*exp(-14.37159477*(-0.3303 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.5212 + 0.1*i2)^2)*exp(-12.73459431*(-0.497 + 0.1*i3)^2)*exp(-0.265810038* + (-1.395 + 0.1*i4)^2)*exp(-4.594680851*(-1.636 + i5)^2)*exp(-0.001038216*(- + 3.384 + i6)^2)*exp(-0.289328481*(-2.697 + i7)^2) - 0.210344608*exp(- + 14.37159477*(-0.3061 + 0.1*i1)^2)*exp(-12.76008545*(-0.6242 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6788 + 0.1*i3)^2)*exp(-0.265810038*(-1.338 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.859 + i5)^2)*exp(-0.001038216*(-3.758 + i6)^2)*exp(- + 0.289328481*(-4.273 + i7)^2) + 1.039193141*exp(-14.37159477*(-0.5485 + 0.1* + i1)^2)*exp(-12.76008545*(-0.4545 + 0.1*i2)^2)*exp(-12.73459431*(-0.8848 + + 0.1*i3)^2)*exp(-0.265810038*(-1.112 + 0.1*i4)^2)*exp(-4.594680851*(-1.515 + + i5)^2)*exp(-0.001038216*(-3.101 + i6)^2)*exp(-0.289328481*(-4.333 + i7)^ + 2) - 1.629074688*exp(-14.37159477*(-0.4636 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.7939 + 0.1*i2)^2)*exp(-12.73459431*(-0.7879 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.492 + 0.1*i4)^2)*exp(-4.594680851*(-1.707 + i5)^2)*exp(-0.001038216*(- + 3.97 + i6)^2)*exp(-0.289328481*(-4.03 + i7)^2) - 0.735564596*exp(- + 14.37159477*(-0.3455 + 0.1*i1)^2)*exp(-12.76008545*(-0.5818 + 0.1*i2)^2)* + exp(-12.73459431*(-0.7455 + 0.1*i3)^2)*exp(-0.265810038*(-0.7404 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.687 + i5)^2)*exp(-0.001038216*(-3.929 + i6)^2)*exp( + -0.289328481*(-3.788 + i7)^2) - 0.058352547*exp(-14.37159477*(-0.6 + 0.1*i1 + )^2)*exp(-12.76008545*(-0.7515 + 0.1*i2)^2)*exp(-12.73459431*(-0.9455 + 0.1 + *i3)^2)*exp(-0.265810038*(-0.8616 + 0.1*i4)^2)*exp(-4.594680851*(-1.384 + + i5)^2)*exp(-0.001038216*(-3.596 + i6)^2)*exp(-0.289328481*(-2.848 + i7)^2) + - 0.227105249*exp(-14.37159477*(-0.3273 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.4 + 0.1*i2)^2)*exp(-12.73459431*(-0.897 + 0.1*i3)^2)*exp(-0.265810038*(- + 1.12 + 0.1*i4)^2)*exp(-4.594680851*(-1.404 + i5)^2)*exp(-0.001038216*(- + 3.525 + i6)^2)*exp(-0.289328481*(-4.182 + i7)^2) + 1.214452319*exp(- + 14.37159477*(-0.5212 + 0.1*i1)^2)*exp(-12.76008545*(-0.497 + 0.1*i2)^2)* + exp(-12.73459431*(-0.8909 + 0.1*i3)^2)*exp(-0.265810038*(-1.185 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.737 + i5)^2)*exp(-0.001038216*(-3.293 + i6)^2)*exp(- + 0.289328481*(-2.091 + i7)^2) - 1.309533886*exp(-14.37159477*(-0.4303 + 0.1* + i1)^2)*exp(-12.76008545*(-0.4606 + 0.1*i2)^2)*exp(-12.73459431*(-0.6242 + + 0.1*i3)^2)*exp(-0.265810038*(-1.225 + 0.1*i4)^2)*exp(-4.594680851*(-1.727 + + i5)^2)*exp(-0.001038216*(-3.96 + i6)^2)*exp(-0.289328481*(-2.424 + i7)^2 + ) + 0.987611409*exp(-14.37159477*(-0.3121 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8909 + 0.1*i2)^2)*exp(-12.73459431*(-0.903 + 0.1*i3)^2)*exp(-0.265810038* + (-1.387 + 0.1*i4)^2)*exp(-4.594680851*(-1.414 + i5)^2)*exp(-0.001038216*(- + 3.323 + i6)^2)*exp(-0.289328481*(-3.636 + i7)^2) - 0.985391267*exp(- + 14.37159477*(-0.3424 + 0.1*i1)^2)*exp(-12.76008545*(-0.4485 + 0.1*i2)^2)* + exp(-12.73459431*(-0.4182 + 0.1*i3)^2)*exp(-0.265810038*(-0.9747 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.566 + i5)^2)*exp(-0.001038216*(-3.657 + i6)^2)*exp( + -0.289328481*(-3.879 + i7)^2) + 3.407102515*exp(-14.37159477*(-0.497 + 0.1* + i1)^2)*exp(-12.76008545*(-0.7697 + 0.1*i2)^2)*exp(-12.73459431*(-0.7939 + + 0.1*i3)^2)*exp(-0.265810038*(-1.274 + 0.1*i4)^2)*exp(-4.594680851*(-1.141 + + i5)^2)*exp(-0.001038216*(-4 + i6)^2)*exp(-0.289328481*(-2.515 + i7)^2) + - 3.230493986*exp(-14.37159477*(-0.4939 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.5576 + 0.1*i2)^2)*exp(-12.73459431*(-0.4545 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.177 + 0.1*i4)^2)*exp(-4.594680851*(-1.96 + i5)^2)*exp(-0.001038216*(- + 3.818 + i6)^2)*exp(-0.289328481*(-4 + i7)^2) - 4.42148982*exp(-14.37159477* + (-0.5 + 0.1*i1)^2)*exp(-12.76008545*(-0.9515 + 0.1*i2)^2)*exp(-12.73459431* + (-0.4 + 0.1*i3)^2)*exp(-0.265810038*(-1.088 + 0.1*i4)^2)*exp(-4.594680851*( + -1.455 + i5)^2)*exp(-0.001038216*(-3.242 + i6)^2)*exp(-0.289328481*(-2.788 + + i7)^2) - 0.01702795*exp(-14.37159477*(-0.4182 + 0.1*i1)^2)*exp(- + 12.76008545*(-0.9455 + 0.1*i2)^2)*exp(-12.73459431*(-0.8364 + 0.1*i3)^2)* + exp(-0.265810038*(-1.258 + 0.1*i4)^2)*exp(-4.594680851*(-1.929 + i5)^2)* + exp(-0.001038216*(-3.465 + i6)^2)*exp(-0.289328481*(-4.606 + i7)^2) - + 0.614615681*exp(-14.37159477*(-0.3636 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.7818 + 0.1*i2)^2)*exp(-12.73459431*(-1 + 0.1*i3)^2)*exp(-0.265810038*(- + 0.9909 + 0.1*i4)^2)*exp(-4.594680851*(-1.535 + i5)^2)*exp(-0.001038216*(- + 3.768 + i6)^2)*exp(-0.289328481*(-4.667 + i7)^2) - 0.917326769*exp(- + 14.37159477*(-0.4091 + 0.1*i1)^2)*exp(-12.76008545*(-0.7212 + 0.1*i2)^2)* + exp(-12.73459431*(-0.9273 + 0.1*i3)^2)*exp(-0.265810038*(-1.371 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.04 + i5)^2)*exp(-0.001038216*(-3.747 + i6)^2)*exp(- + 0.289328481*(-4.152 + i7)^2) + 0.93769136*exp(-14.37159477*(-0.4455 + 0.1* + i1)^2)*exp(-12.76008545*(-0.4242 + 0.1*i2)^2)*exp(-12.73459431*(-0.5879 + + 0.1*i3)^2)*exp(-0.265810038*(-0.9182 + 0.1*i4)^2)*exp(-4.594680851*(-1.626 + + i5)^2)*exp(-0.001038216*(-3 + i6)^2)*exp(-0.289328481*(-3.091 + i7)^2) + + 0.620764766*exp(-14.37159477*(-0.3667 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8424 + 0.1*i2)^2)*exp(-12.73459431*(-0.8242 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.29 + 0.1*i4)^2)*exp(-4.594680851*(-2 + i5)^2)*exp(-0.001038216*(-3.485 + + i6)^2)*exp(-0.289328481*(-2.485 + i7)^2) + 3.866609597*exp(-14.37159477* + (-0.4 + 0.1*i1)^2)*exp(-12.76008545*(-0.6 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.4364 + 0.1*i3)^2)*exp(-0.265810038*(-1.056 + 0.1*i4)^2)*exp(-4.594680851* + (-1.091 + i5)^2)*exp(-0.001038216*(-3.202 + i6)^2)*exp(-0.289328481*(-2.606 + + i7)^2) + 0.505109609*exp(-14.37159477*(-0.5303 + 0.1*i1)^2)*exp(- + 12.76008545*(-0.8545 + 0.1*i2)^2)*exp(-12.73459431*(-0.9212 + 0.1*i3)^2)* + exp(-0.265810038*(-0.8778 + 0.1*i4)^2)*exp(-4.594680851*(-1.616 + i5)^2)* + exp(-0.001038216*(-3.232 + i6)^2)*exp(-0.289328481*(-4.727 + i7)^2) - + 1.743676977*exp(-14.37159477*(-0.3879 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.5515 + 0.1*i2)^2)*exp(-12.73459431*(-0.5576 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.7808 + 0.1*i4)^2)*exp(-4.594680851*(-1.444 + i5)^2)*exp(-0.001038216*( + -3.677 + i6)^2)*exp(-0.289328481*(-2.03 + i7)^2) - 1.423366967*exp(- + 14.37159477*(-0.4515 + 0.1*i1)^2)*exp(-12.76008545*(-0.7273 + 0.1*i2)^2)* + exp(-12.73459431*(-0.8727 + 0.1*i3)^2)*exp(-0.265810038*(-0.8131 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1.828 + i5)^2)*exp(-0.001038216*(-3.717 + i6)^2)*exp( + -0.289328481*(-2.061 + i7)^2) + 0.225984054*exp(-14.37159477*(-0.4818 + 0.1 + *i1)^2)*exp(-12.76008545*(-0.4121 + 0.1*i2)^2)*exp(-12.73459431*(-0.5515 + + 0.1*i3)^2)*exp(-0.265810038*(-1.064 + 0.1*i4)^2)*exp(-4.594680851*(-1.202 + + i5)^2)*exp(-0.001038216*(-3.404 + i6)^2)*exp(-0.289328481*(-4.788 + i7)^ + 2) + 0.734509715*exp(-14.37159477*(-0.5515 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8182 + 0.1*i2)^2)*exp(-12.73459431*(-0.9636 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.443 + 0.1*i4)^2)*exp(-4.594680851*(-1.606 + i5)^2)*exp(-0.001038216*(- + 3.263 + i6)^2)*exp(-0.289328481*(-3.667 + i7)^2) - 0.038126681*exp(- + 14.37159477*(-0.4667 + 0.1*i1)^2)*exp(-12.76008545*(-0.4727 + 0.1*i2)^2)* + exp(-12.73459431*(-0.7818 + 0.1*i3)^2)*exp(-0.265810038*(-1.136 + 0.1*i4)^2 + )*exp(-4.594680851*(-1.545 + i5)^2)*exp(-0.001038216*(-3.99 + i6)^2)*exp(- + 0.289328481*(-4.758 + i7)^2) + 0.951017807*exp(-14.37159477*(-0.5606 + 0.1* + i1)^2)*exp(-12.76008545*(-0.7758 + 0.1*i2)^2)*exp(-12.73459431*(-0.5273 + + 0.1*i3)^2)*exp(-0.265810038*(-0.9263 + 0.1*i4)^2)*exp(-4.594680851*(-1.576 + + i5)^2)*exp(-0.001038216*(-3.919 + i6)^2)*exp(-0.289328481*(-2.394 + i7)^ + 2) - 0.267556876*exp(-14.37159477*(-0.4333 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.5636 + 0.1*i2)^2)*exp(-12.73459431*(-0.9818 + 0.1*i3)^2)*exp(-0.265810038 + *(-0.7081 + 0.1*i4)^2)*exp(-4.594680851*(-1.657 + i5)^2)*exp(-0.001038216*( + -3.273 + i6)^2)*exp(-0.289328481*(-3.455 + i7)^2) - 2.770726962*exp(- + 14.37159477*(-0.5333 + 0.1*i1)^2)*exp(-12.76008545*(-0.8303 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6061 + 0.1*i3)^2)*exp(-0.265810038*(-0.9424 + 0.1*i4)^ + 2)*exp(-4.594680851*(-1 + i5)^2)*exp(-0.001038216*(-3.545 + i6)^2)*exp(- + 0.289328481*(-2.303 + i7)^2) - 0.565058406*exp(-14.37159477*(-0.3788 + 0.1* + i1)^2)*exp(-12.76008545*(-0.9152 + 0.1*i2)^2)*exp(-12.73459431*(-0.7515 + + 0.1*i3)^2)*exp(-0.265810038*(-0.8455 + 0.1*i4)^2)*exp(-4.594680851*(-1.212 + + i5)^2)*exp(-0.001038216*(-3.394 + i6)^2)*exp(-0.289328481*(-4.879 + i7)^ + 2) + 2.201248524*exp(-14.37159477*(-0.4909 + 0.1*i1)^2)*exp(-12.76008545*(- + 0.8727 + 0.1*i2)^2)*exp(-12.73459431*(-0.4424 + 0.1*i3)^2)*exp(-0.265810038 + *(-1.047 + 0.1*i4)^2)*exp(-4.594680851*(-1.02 + i5)^2)*exp(-0.001038216*(- + 3.556 + i6)^2)*exp(-0.289328481*(-4.303 + i7)^2)) + x8 >= 2.60954143; + + -(9.568268777*exp(-7.548371836*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9697 + 0.1*i2)^2)*exp(-5.654220591*(-0.4909 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.161 + 0.1*i4)^2)*exp(-1.029488546*(-1.778 + i5)^2)*exp(-0.284850668*(- + 3.778 + i6)^2)*exp(-0.290177865*(-4.091 + i7)^2) - 1.630958417*exp(- + 7.548371836*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(-0.697 + 0.1*i2)^2)*exp( + -5.654220591*(-0.8061 + 0.1*i3)^2)*exp(-0.827338698*(-0.9586 + 0.1*i4)^2)* + exp(-1.029488546*(-1.758 + i5)^2)*exp(-0.284850668*(-3.141 + i6)^2)*exp(- + 0.290177865*(-4.424 + i7)^2) + 3.764105663*exp(-7.548371836*(-0.503 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-5.654220591*(-0.4121 + + 0.1*i3)^2)*exp(-0.827338698*(-1.419 + 0.1*i4)^2)*exp(-1.029488546*(-1.333 + + i5)^2)*exp(-0.284850668*(-3.152 + i6)^2)*exp(-0.290177865*(-3.697 + i7)^ + 2) + 1.218097363*exp(-7.548371836*(-0.4606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.903 + 0.1*i2)^2)*exp(-5.654220591*(-0.7576 + 0.1*i3)^2)*exp(-0.827338698* + (-0.7727 + 0.1*i4)^2)*exp(-1.029488546*(-1.242 + i5)^2)*exp(-0.284850668*(- + 3.98 + i6)^2)*exp(-0.290177865*(-3.424 + i7)^2) + 0.104490281*exp(- + 7.548371836*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + 0.1*i2)^2)*exp(- + 5.654220591*(-0.8606 + 0.1*i3)^2)*exp(-0.827338698*(-1.153 + 0.1*i4)^2)* + exp(-1.029488546*(-1.556 + i5)^2)*exp(-0.284850668*(-3.939 + i6)^2)*exp(- + 0.290177865*(-2.818 + i7)^2) + 0.818342242*exp(-7.548371836*(-0.5879 + 0.1* + i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)*exp(-5.654220591*(-0.4788 + + 0.1*i3)^2)*exp(-0.827338698*(-1.039 + 0.1*i4)^2)*exp(-1.029488546*(-1.646 + + i5)^2)*exp(-0.284850668*(-3.222 + i6)^2)*exp(-0.290177865*(-4.636 + i7)^ + 2) - 2.121739198*exp(-7.548371836*(-0.4121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4424 + 0.1*i2)^2)*exp(-5.654220591*(-0.5939 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.46 + 0.1*i4)^2)*exp(-1.029488546*(-1.232 + i5)^2)*exp(-0.284850668*(- + 3.788 + i6)^2)*exp(-0.290177865*(-3.848 + i7)^2) - 1.91055239*exp(- + 7.548371836*(-0.5576 + 0.1*i1)^2)*exp(-12.56111847*(-0.8848 + 0.1*i2)^2)* + exp(-5.654220591*(-0.8121 + 0.1*i3)^2)*exp(-0.827338698*(-1.128 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.263 + i5)^2)*exp(-0.284850668*(-3.808 + i6)^2)*exp(- + 0.290177865*(-4.818 + i7)^2) + 0.451316581*exp(-7.548371836*(-0.4273 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4848 + 0.1*i2)^2)*exp(-5.654220591*(-0.9697 + + 0.1*i3)^2)*exp(-0.827338698*(-0.9667 + 0.1*i4)^2)*exp(-1.029488546*(-1.364 + + i5)^2)*exp(-0.284850668*(-3.869 + i6)^2)*exp(-0.290177865*(-2.667 + i7)^ + 2) + 0.22208011*exp(-7.548371836*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4061 + 0.1*i2)^2)*exp(-5.654220591*(-0.6303 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.427 + 0.1*i4)^2)*exp(-1.029488546*(-1.747 + i5)^2)*exp(-0.284850668*(- + 3.444 + i6)^2)*exp(-0.290177865*(-3.576 + i7)^2) - 1.326710123*exp(- + 7.548371836*(-0.5394 + 0.1*i1)^2)*exp(-12.56111847*(-0.5273 + 0.1*i2)^2)* + exp(-5.654220591*(-0.5636 + 0.1*i3)^2)*exp(-0.827338698*(-1.355 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.253 + i5)^2)*exp(-0.284850668*(-3.566 + i6)^2)*exp(- + 0.290177865*(-2.121 + i7)^2) - 2.79476731*exp(-7.548371836*(-0.5273 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8121 + 0.1*i2)^2)*exp(-5.654220591*(-0.8424 + + 0.1*i3)^2)*exp(-0.827338698*(-0.8535 + 0.1*i4)^2)*exp(-1.029488546*(-1.899 + + i5)^2)*exp(-0.284850668*(-3.889 + i6)^2)*exp(-0.290177865*(-4.061 + i7)^ + 2) - 0.825260841*exp(-7.548371836*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-5.654220591*(-0.9333 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.306 + 0.1*i4)^2)*exp(-1.029488546*(-1.273 + i5)^2)*exp(-0.284850668*(- + 3.707 + i6)^2)*exp(-0.290177865*(-3.485 + i7)^2) + 1.193339021*exp(- + 7.548371836*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(-0.6364 + 0.1*i2)^2)* + exp(-5.654220591*(-0.5758 + 0.1*i3)^2)*exp(-0.827338698*(-1.282 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.222 + i5)^2)*exp(-0.284850668*(-3.192 + i6)^2)*exp(- + 0.290177865*(-4.455 + i7)^2) - 1.185299921*exp(-7.548371836*(-0.4364 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7394 + 0.1*i2)^2)*exp(-5.654220591*(-0.4485 + + 0.1*i3)^2)*exp(-0.827338698*(-1.403 + 0.1*i4)^2)*exp(-1.029488546*(-1.465 + + i5)^2)*exp(-0.284850668*(-3.687 + i6)^2)*exp(-0.290177865*(-4.939 + i7)^ + 2) + 1.122903834*exp(-7.548371836*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-5.654220591*(-0.7273 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.346 + 0.1*i4)^2)*exp(-1.029488546*(-1.01 + i5)^2)*exp(-0.284850668*(- + 3.333 + i6)^2)*exp(-0.290177865*(-4.364 + i7)^2) - 1.760071877*exp(- + 7.548371836*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(-0.7152 + 0.1*i2)^2)* + exp(-5.654220591*(-0.703 + 0.1*i3)^2)*exp(-0.827338698*(-1.209 + 0.1*i4)^2) + *exp(-1.029488546*(-1.354 + i5)^2)*exp(-0.284850668*(-3.01 + i6)^2)*exp(- + 0.290177865*(-2.758 + i7)^2) - 0.634278443*exp(-7.548371836*(-0.5152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)*exp(-5.654220591*(-0.503 + + 0.1*i3)^2)*exp(-0.827338698*(-0.7566 + 0.1*i4)^2)*exp(-1.029488546*(-1.424 + + i5)^2)*exp(-0.284850668*(-3.848 + i6)^2)*exp(-0.290177865*(-4.576 + i7)^ + 2) - 3.551263223*exp(-7.548371836*(-0.5758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5152 + 0.1*i2)^2)*exp(-5.654220591*(-0.4303 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.8697 + 0.1*i4)^2)*exp(-1.029488546*(-1.374 + i5)^2)*exp(-0.284850668*( + -3.414 + i6)^2)*exp(-0.290177865*(-3.061 + i7)^2) - 1.535910101*exp(- + 7.548371836*(-0.3939 + 0.1*i1)^2)*exp(-12.56111847*(-0.7091 + 0.1*i2)^2)* + exp(-5.654220591*(-0.4242 + 0.1*i3)^2)*exp(-0.827338698*(-0.8293 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.434 + i5)^2)*exp(-0.284850668*(-3.121 + i6)^2)*exp( + -0.290177865*(-4.394 + i7)^2) - 0.671210385*exp(-7.548371836*(-0.403 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5333 + 0.1*i2)^2)*exp(-5.654220591*(-0.5152 + + 0.1*i3)^2)*exp(-0.827338698*(-1.233 + 0.1*i4)^2)*exp(-1.029488546*(-1.889 + + i5)^2)*exp(-0.284850668*(-3.172 + i6)^2)*exp(-0.290177865*(-4.545 + i7)^ + 2) - 1.249905671*exp(-7.548371836*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-5.654220591*(-0.4606 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.144 + 0.1*i4)^2)*exp(-1.029488546*(-1.879 + i5)^2)*exp(-0.284850668*(- + 3.343 + i6)^2)*exp(-0.290177865*(-2.152 + i7)^2) - 4.243931734*exp(- + 7.548371836*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(-0.8242 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6545 + 0.1*i3)^2)*exp(-0.827338698*(-1.411 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.525 + i5)^2)*exp(-0.284850668*(-3.04 + i6)^2)*exp(- + 0.290177865*(-2.273 + i7)^2) - 1.282375132*exp(-7.548371836*(-0.4545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.503 + 0.1*i2)^2)*exp(-5.654220591*(-0.7152 + + 0.1*i3)^2)*exp(-0.827338698*(-0.797 + 0.1*i4)^2)*exp(-1.029488546*(-1.798 + + i5)^2)*exp(-0.284850668*(-3.424 + i6)^2)*exp(-0.290177865*(-4.97 + i7)^2 + ) - 1.589816347*exp(-7.548371836*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8 + 0.1*i2)^2)*exp(-5.654220591*(-0.9394 + 0.1*i3)^2)*exp(-0.827338698*(- + 0.8212 + 0.1*i4)^2)*exp(-1.029488546*(-1.101 + i5)^2)*exp(-0.284850668*(- + 3.535 + i6)^2)*exp(-0.290177865*(-2.909 + i7)^2) + 5.333050306*exp(- + 7.548371836*(-0.5818 + 0.1*i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6364 + 0.1*i3)^2)*exp(-0.827338698*(-1.435 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.313 + i5)^2)*exp(-0.284850668*(-3.576 + i6)^2)*exp(- + 0.290177865*(-3.212 + i7)^2) + 3.391520169*exp(-7.548371836*(-0.4485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-5.654220591*(-0.6 + 0.1* + i3)^2)*exp(-0.827338698*(-0.9505 + 0.1*i4)^2)*exp(-1.029488546*(-1.909 + i5 + )^2)*exp(-0.284850668*(-3.051 + i6)^2)*exp(-0.290177865*(-3.97 + i7)^2) + + 8.969345509*exp(-7.548371836*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8788 + 0.1*i2)^2)*exp(-5.654220591*(-0.4727 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.7646 + 0.1*i4)^2)*exp(-1.029488546*(-1.293 + i5)^2)*exp(-0.284850668*( + -3.616 + i6)^2)*exp(-0.290177865*(-3.273 + i7)^2) + 3.080617208*exp(- + 7.548371836*(-0.3515 + 0.1*i1)^2)*exp(-12.56111847*(-0.9576 + 0.1*i2)^2)* + exp(-5.654220591*(-0.8182 + 0.1*i3)^2)*exp(-0.827338698*(-0.7485 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.768 + i5)^2)*exp(-0.284850668*(-3.505 + i6)^2)*exp( + -0.290177865*(-3.394 + i7)^2) - 0.306240059*exp(-7.548371836*(-0.4061 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6667 + 0.1*i2)^2)*exp(-5.654220591*(-0.9576 + + 0.1*i3)^2)*exp(-0.827338698*(-1.096 + 0.1*i4)^2)*exp(-1.029488546*(-1.131 + + i5)^2)*exp(-0.284850668*(-3.071 + i6)^2)*exp(-0.290177865*(-4.242 + i7)^ + 2) - 1.348595688*exp(-7.548371836*(-0.5788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6545 + 0.1*i2)^2)*exp(-5.654220591*(-0.7697 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.9101 + 0.1*i4)^2)*exp(-1.029488546*(-1.97 + i5)^2)*exp(-0.284850668*(- + 3.162 + i6)^2)*exp(-0.290177865*(-3.364 + i7)^2) - 1.793276883*exp(- + 7.548371836*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(-0.9818 + 0.1*i2)^2)* + exp(-5.654220591*(-0.9879 + 0.1*i3)^2)*exp(-0.827338698*(-1.193 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.586 + i5)^2)*exp(-0.284850668*(-3.798 + i6)^2)*exp(- + 0.290177865*(-3.03 + i7)^2) - 0.336118515*exp(-7.548371836*(-0.3182 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5697 + 0.1*i2)^2)*exp(-5.654220591*(-0.7091 + + 0.1*i3)^2)*exp(-0.827338698*(-1.217 + 0.1*i4)^2)*exp(-1.029488546*(-1.061 + + i5)^2)*exp(-0.284850668*(-3.646 + i6)^2)*exp(-0.290177865*(-2.455 + i7)^ + 2) - 1.388218447*exp(-7.548371836*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-5.654220591*(-0.5818 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.468 + 0.1*i4)^2)*exp(-1.029488546*(-1.03 + i5)^2)*exp(-0.284850668*(- + 3.455 + i6)^2)*exp(-0.290177865*(-3.242 + i7)^2) - 1.428414607*exp(- + 7.548371836*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(-0.6303 + 0.1*i2)^2)* + exp(-5.654220591*(-0.5091 + 0.1*i3)^2)*exp(-0.827338698*(-1.266 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.303 + i5)^2)*exp(-0.284850668*(-3.899 + i6)^2)*exp(- + 0.290177865*(-3.909 + i7)^2) + 2.064405023*exp(-7.548371836*(-0.5939 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6727 + 0.1*i2)^2)*exp(-5.654220591*(-0.7758 + + 0.1*i3)^2)*exp(-0.827338698*(-1.249 + 0.1*i4)^2)*exp(-1.029488546*(-1.818 + + i5)^2)*exp(-0.284850668*(-3.586 + i6)^2)*exp(-0.290177865*(-4.848 + i7)^ + 2) - 4.657773408*exp(-7.548371836*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-5.654220591*(-0.5697 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.452 + 0.1*i4)^2)*exp(-1.029488546*(-1.949 + i5)^2)*exp(-0.284850668*(- + 3.253 + i6)^2)*exp(-0.290177865*(-3.606 + i7)^2) - 8.143922856*exp(- + 7.548371836*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(-0.9636 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6182 + 0.1*i3)^2)*exp(-0.827338698*(-0.7242 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.495 + i5)^2)*exp(-0.284850668*(-3.475 + i6)^2)*exp( + -0.290177865*(-3.818 + i7)^2) - 2.323435594*exp(-7.548371836*(-0.3364 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.5091 + 0.1*i2)^2)*exp(-5.654220591*(-0.697 + + 0.1*i3)^2)*exp(-0.827338698*(-0.7323 + 0.1*i4)^2)*exp(-1.029488546*(-1.182 + + i5)^2)*exp(-0.284850668*(-3.313 + i6)^2)*exp(-0.290177865*(-3.727 + i7)^ + 2) - 1.270485427*exp(-7.548371836*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6061 + 0.1*i2)^2)*exp(-5.654220591*(-0.8485 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.476 + 0.1*i4)^2)*exp(-1.029488546*(-1.505 + i5)^2)*exp(-0.284850668*(- + 3.364 + i6)^2)*exp(-0.290177865*(-5 + i7)^2) + 0.118168629*exp(-7.548371836 + *(-0.3697 + 0.1*i1)^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(- + 5.654220591*(-0.5455 + 0.1*i3)^2)*exp(-0.827338698*(-0.902 + 0.1*i4)^2)* + exp(-1.029488546*(-1.788 + i5)^2)*exp(-0.284850668*(-3.697 + i6)^2)*exp(- + 0.290177865*(-4.909 + i7)^2) + 0.923010443*exp(-7.548371836*(-0.5121 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5758 + 0.1*i2)^2)*exp(-5.654220591*(-0.9091 + + 0.1*i3)^2)*exp(-0.827338698*(-0.8051 + 0.1*i4)^2)*exp(-1.029488546*(-1.152 + + i5)^2)*exp(-0.284850668*(-3.667 + i6)^2)*exp(-0.290177865*(-4.485 + i7)^ + 2) + 0.894322891*exp(-7.548371836*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-5.654220591*(-0.9515 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.33 + 0.1*i4)^2)*exp(-1.029488546*(-1.162 + i5)^2)*exp(-0.284850668*(- + 3.354 + i6)^2)*exp(-0.290177865*(-2.182 + i7)^2) + 3.777668515*exp(- + 7.548371836*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(-0.6848 + 0.1*i2)^2)* + exp(-5.654220591*(-0.4848 + 0.1*i3)^2)*exp(-0.827338698*(-0.7 + 0.1*i4)^2)* + exp(-1.029488546*(-1.939 + i5)^2)*exp(-0.284850668*(-3.515 + i6)^2)*exp(- + 0.290177865*(-3.333 + i7)^2) + 1.604131639*exp(-7.548371836*(-0.3152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5879 + 0.1*i2)^2)*exp(-5.654220591*(-0.8667 + + 0.1*i3)^2)*exp(-0.827338698*(-1.031 + 0.1*i4)^2)*exp(-1.029488546*(-1.485 + + i5)^2)*exp(-0.284850668*(-3.182 + i6)^2)*exp(-0.290177865*(-2.242 + i7)^ + 2) - 7.366900828*exp(-7.548371836*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-5.654220591*(-0.4061 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.201 + 0.1*i4)^2)*exp(-1.029488546*(-1.283 + i5)^2)*exp(-0.284850668*(- + 3.949 + i6)^2)*exp(-0.290177865*(-3 + i7)^2) + 2.038937128*exp(-7.548371836 + *(-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2)^2)*exp(- + 5.654220591*(-0.8788 + 0.1*i3)^2)*exp(-0.827338698*(-1.072 + 0.1*i4)^2)* + exp(-1.029488546*(-1.081 + i5)^2)*exp(-0.284850668*(-3.303 + i6)^2)*exp(- + 0.290177865*(-3.545 + i7)^2) + 7.732345402*exp(-7.548371836*(-0.4424 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-5.654220591*(-0.5333 + + 0.1*i3)^2)*exp(-0.827338698*(-1.484 + 0.1*i4)^2)*exp(-1.029488546*(-1.677 + + i5)^2)*exp(-0.284850668*(-3.737 + i6)^2)*exp(-0.290177865*(-2.333 + i7)^ + 2) + 1.633393622*exp(-7.548371836*(-0.397 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5939 + 0.1*i2)^2)*exp(-5.654220591*(-0.8545 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.363 + 0.1*i4)^2)*exp(-1.029488546*(-1.869 + i5)^2)*exp(-0.284850668*(- + 3.02 + i6)^2)*exp(-0.290177865*(-3.515 + i7)^2) + 2.045185861*exp(- + 7.548371836*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(-0.4788 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6121 + 0.1*i3)^2)*exp(-0.827338698*(-0.8939 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.051 + i5)^2)*exp(-0.284850668*(-3.879 + i6)^2)*exp( + -0.290177865*(-3.182 + i7)^2) - 2.50747172*exp(-7.548371836*(-0.3545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4364 + 0.1*i2)^2)*exp(-5.654220591*(-0.7333 + + 0.1*i3)^2)*exp(-0.827338698*(-0.9828 + 0.1*i4)^2)*exp(-1.029488546*(-1.99 + + i5)^2)*exp(-0.284850668*(-3.495 + i6)^2)*exp(-0.290177865*(-2.97 + i7)^2 + ) - 1.472812961*exp(-7.548371836*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-5.654220591*(-0.6727 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.7889 + 0.1*i4)^2)*exp(-1.029488546*(-1.121 + i5)^2)*exp(-0.284850668*( + -3.091 + i6)^2)*exp(-0.290177865*(-4.121 + i7)^2) + 5.151322311*exp(- + 7.548371836*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(-0.7879 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6909 + 0.1*i3)^2)*exp(-0.827338698*(-0.7162 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.475 + i5)^2)*exp(-0.284850668*(-3.131 + i6)^2)*exp( + -0.290177865*(-2.212 + i7)^2) - 2.012033697*exp(-7.548371836*(-0.4394 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.897 + 0.1*i2)^2)*exp(-5.654220591*(-0.9758 + + 0.1*i3)^2)*exp(-0.827338698*(-1.023 + 0.1*i4)^2)*exp(-1.029488546*(-1.667 + + i5)^2)*exp(-0.284850668*(-3.061 + i6)^2)*exp(-0.290177865*(-2.879 + i7)^ + 2) - 1.823219046*exp(-7.548371836*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5394 + 0.1*i2)^2)*exp(-5.654220591*(-0.9152 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.5 + 0.1*i4)^2)*exp(-1.029488546*(-1.596 + i5)^2)*exp(-0.284850668*(- + 3.636 + i6)^2)*exp(-0.290177865*(-2.727 + i7)^2) + 3.395899636*exp(- + 7.548371836*(-0.5545 + 0.1*i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)* + exp(-5.654220591*(-0.7212 + 0.1*i3)^2)*exp(-0.827338698*(-1.08 + 0.1*i4)^2) + *exp(-1.029488546*(-1.838 + i5)^2)*exp(-0.284850668*(-3.434 + i6)^2)*exp(- + 0.290177865*(-2.364 + i7)^2) - 7.194386126*exp(-7.548371836*(-0.3758 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8667 + 0.1*i2)^2)*exp(-5.654220591*(-0.5394 + + 0.1*i3)^2)*exp(-0.827338698*(-1.015 + 0.1*i4)^2)*exp(-1.029488546*(-1.919 + + i5)^2)*exp(-0.284850668*(-3.909 + i6)^2)*exp(-0.290177865*(-2.939 + i7)^ + 2) + 4.063917878*exp(-7.548371836*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-5.654220591*(-0.5212 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.9343 + 0.1*i4)^2)*exp(-1.029488546*(-1.808 + i5)^2)*exp(-0.284850668*( + -3.212 + i6)^2)*exp(-0.290177865*(-2.545 + i7)^2) - 1.832807649*exp(- + 7.548371836*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(-0.9333 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6485 + 0.1*i3)^2)*exp(-0.827338698*(-1.322 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.394 + i5)^2)*exp(-0.284850668*(-3.081 + i6)^2)*exp(- + 0.290177865*(-4.697 + i7)^2) - 0.606230026*exp(-7.548371836*(-0.4576 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5455 + 0.1*i2)^2)*exp(-5.654220591*(-0.9939 + + 0.1*i3)^2)*exp(-0.827338698*(-1.169 + 0.1*i4)^2)*exp(-1.029488546*(-1.98 + + i5)^2)*exp(-0.284850668*(-3.626 + i6)^2)*exp(-0.290177865*(-3.939 + i7)^2) + - 3.450631553*exp(-7.548371836*(-0.3242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9212 + 0.1*i2)^2)*exp(-5.654220591*(-0.4667 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.314 + 0.1*i4)^2)*exp(-1.029488546*(-1.697 + i5)^2)*exp(-0.284850668*(- + 3.374 + i6)^2)*exp(-0.290177865*(-3.758 + i7)^2) + 1.96594983*exp(- + 7.548371836*(-0.5697 + 0.1*i1)^2)*exp(-12.56111847*(-0.4182 + 0.1*i2)^2)* + exp(-5.654220591*(-0.7394 + 0.1*i3)^2)*exp(-0.827338698*(-0.8374 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.717 + i5)^2)*exp(-0.284850668*(-3.727 + i6)^2)*exp( + -0.290177865*(-3.303 + i7)^2) - 4.822390496*exp(-7.548371836*(-0.3727 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9879 + 0.1*i2)^2)*exp(-5.654220591*(-0.6848 + + 0.1*i3)^2)*exp(-0.827338698*(-1.104 + 0.1*i4)^2)*exp(-1.029488546*(-1.343 + + i5)^2)*exp(-0.284850668*(-3.606 + i6)^2)*exp(-0.290177865*(-2 + i7)^2) + - 1.153453711*exp(-7.548371836*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4667 + 0.1*i2)^2)*exp(-5.654220591*(-0.8303 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.8859 + 0.1*i4)^2)*exp(-1.029488546*(-1.111 + i5)^2)*exp(-0.284850668*( + -3.283 + i6)^2)*exp(-0.290177865*(-2.576 + i7)^2) + 2.618112294*exp(- + 7.548371836*(-0.3485 + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6606 + 0.1*i3)^2)*exp(-0.827338698*(-0.999 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.172 + i5)^2)*exp(-0.284850668*(-3.03 + i6)^2)*exp(- + 0.290177865*(-3.152 + i7)^2) - 2.880022775*exp(-7.548371836*(-0.5848 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-5.654220591*(-0.8 + 0.1* + i3)^2)*exp(-0.827338698*(-1.298 + 0.1*i4)^2)*exp(-1.029488546*(-1.848 + i5) + ^2)*exp(-0.284850668*(-3.828 + i6)^2)*exp(-0.290177865*(-2.636 + i7)^2) - + 0.586302482*exp(-7.548371836*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5212 + 0.1*i2)^2)*exp(-5.654220591*(-0.497 + 0.1*i3)^2)*exp(-0.827338698* + (-1.395 + 0.1*i4)^2)*exp(-1.029488546*(-1.636 + i5)^2)*exp(-0.284850668*(- + 3.384 + i6)^2)*exp(-0.290177865*(-2.697 + i7)^2) + 3.498251744*exp(- + 7.548371836*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(-0.6242 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6788 + 0.1*i3)^2)*exp(-0.827338698*(-1.338 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.859 + i5)^2)*exp(-0.284850668*(-3.758 + i6)^2)*exp(- + 0.290177865*(-4.273 + i7)^2) + 0.702466629*exp(-7.548371836*(-0.5485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4545 + 0.1*i2)^2)*exp(-5.654220591*(-0.8848 + + 0.1*i3)^2)*exp(-0.827338698*(-1.112 + 0.1*i4)^2)*exp(-1.029488546*(-1.515 + + i5)^2)*exp(-0.284850668*(-3.101 + i6)^2)*exp(-0.290177865*(-4.333 + i7)^ + 2) - 1.046312294*exp(-7.548371836*(-0.4636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7939 + 0.1*i2)^2)*exp(-5.654220591*(-0.7879 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.492 + 0.1*i4)^2)*exp(-1.029488546*(-1.707 + i5)^2)*exp(-0.284850668*(- + 3.97 + i6)^2)*exp(-0.290177865*(-4.03 + i7)^2) - 0.097871509*exp(- + 7.548371836*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(-0.5818 + 0.1*i2)^2)* + exp(-5.654220591*(-0.7455 + 0.1*i3)^2)*exp(-0.827338698*(-0.7404 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.687 + i5)^2)*exp(-0.284850668*(-3.929 + i6)^2)*exp( + -0.290177865*(-3.788 + i7)^2) + 1.159435552*exp(-7.548371836*(-0.6 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.7515 + 0.1*i2)^2)*exp(-5.654220591*(-0.9455 + 0.1 + *i3)^2)*exp(-0.827338698*(-0.8616 + 0.1*i4)^2)*exp(-1.029488546*(-1.384 + + i5)^2)*exp(-0.284850668*(-3.596 + i6)^2)*exp(-0.290177865*(-2.848 + i7)^2) + + 0.936791782*exp(-7.548371836*(-0.3273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4 + 0.1*i2)^2)*exp(-5.654220591*(-0.897 + 0.1*i3)^2)*exp(-0.827338698*(- + 1.12 + 0.1*i4)^2)*exp(-1.029488546*(-1.404 + i5)^2)*exp(-0.284850668*(- + 3.525 + i6)^2)*exp(-0.290177865*(-4.182 + i7)^2) + 2.418349563*exp(- + 7.548371836*(-0.5212 + 0.1*i1)^2)*exp(-12.56111847*(-0.497 + 0.1*i2)^2)* + exp(-5.654220591*(-0.8909 + 0.1*i3)^2)*exp(-0.827338698*(-1.185 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.737 + i5)^2)*exp(-0.284850668*(-3.293 + i6)^2)*exp(- + 0.290177865*(-2.091 + i7)^2) + 2.59797239*exp(-7.548371836*(-0.4303 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4606 + 0.1*i2)^2)*exp(-5.654220591*(-0.6242 + + 0.1*i3)^2)*exp(-0.827338698*(-1.225 + 0.1*i4)^2)*exp(-1.029488546*(-1.727 + + i5)^2)*exp(-0.284850668*(-3.96 + i6)^2)*exp(-0.290177865*(-2.424 + i7)^2 + ) + 0.505192982*exp(-7.548371836*(-0.3121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8909 + 0.1*i2)^2)*exp(-5.654220591*(-0.903 + 0.1*i3)^2)*exp(-0.827338698* + (-1.387 + 0.1*i4)^2)*exp(-1.029488546*(-1.414 + i5)^2)*exp(-0.284850668*(- + 3.323 + i6)^2)*exp(-0.290177865*(-3.636 + i7)^2) + 0.647778099*exp(- + 7.548371836*(-0.3424 + 0.1*i1)^2)*exp(-12.56111847*(-0.4485 + 0.1*i2)^2)* + exp(-5.654220591*(-0.4182 + 0.1*i3)^2)*exp(-0.827338698*(-0.9747 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.566 + i5)^2)*exp(-0.284850668*(-3.657 + i6)^2)*exp( + -0.290177865*(-3.879 + i7)^2) + 3.874786651*exp(-7.548371836*(-0.497 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7697 + 0.1*i2)^2)*exp(-5.654220591*(-0.7939 + + 0.1*i3)^2)*exp(-0.827338698*(-1.274 + 0.1*i4)^2)*exp(-1.029488546*(-1.141 + + i5)^2)*exp(-0.284850668*(-4 + i6)^2)*exp(-0.290177865*(-2.515 + i7)^2) + + 0.077972187*exp(-7.548371836*(-0.4939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5576 + 0.1*i2)^2)*exp(-5.654220591*(-0.4545 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.177 + 0.1*i4)^2)*exp(-1.029488546*(-1.96 + i5)^2)*exp(-0.284850668*(- + 3.818 + i6)^2)*exp(-0.290177865*(-4 + i7)^2) - 7.381896962*exp(-7.548371836 + *(-0.5 + 0.1*i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2)*exp(-5.654220591 + *(-0.4 + 0.1*i3)^2)*exp(-0.827338698*(-1.088 + 0.1*i4)^2)*exp(-1.029488546* + (-1.455 + i5)^2)*exp(-0.284850668*(-3.242 + i6)^2)*exp(-0.290177865*(-2.788 + + i7)^2) - 0.290480606*exp(-7.548371836*(-0.4182 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9455 + 0.1*i2)^2)*exp(-5.654220591*(-0.8364 + 0.1*i3)^2)* + exp(-0.827338698*(-1.258 + 0.1*i4)^2)*exp(-1.029488546*(-1.929 + i5)^2)* + exp(-0.284850668*(-3.465 + i6)^2)*exp(-0.290177865*(-4.606 + i7)^2) + + 0.954463035*exp(-7.548371836*(-0.3636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7818 + 0.1*i2)^2)*exp(-5.654220591*(-1 + 0.1*i3)^2)*exp(-0.827338698*(- + 0.9909 + 0.1*i4)^2)*exp(-1.029488546*(-1.535 + i5)^2)*exp(-0.284850668*(- + 3.768 + i6)^2)*exp(-0.290177865*(-4.667 + i7)^2) - 0.674406175*exp(- + 7.548371836*(-0.4091 + 0.1*i1)^2)*exp(-12.56111847*(-0.7212 + 0.1*i2)^2)* + exp(-5.654220591*(-0.9273 + 0.1*i3)^2)*exp(-0.827338698*(-1.371 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.04 + i5)^2)*exp(-0.284850668*(-3.747 + i6)^2)*exp(- + 0.290177865*(-4.152 + i7)^2) - 0.796374035*exp(-7.548371836*(-0.4455 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4242 + 0.1*i2)^2)*exp(-5.654220591*(-0.5879 + + 0.1*i3)^2)*exp(-0.827338698*(-0.9182 + 0.1*i4)^2)*exp(-1.029488546*(-1.626 + + i5)^2)*exp(-0.284850668*(-3 + i6)^2)*exp(-0.290177865*(-3.091 + i7)^2) + + 3.347419424*exp(-7.548371836*(-0.3667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8424 + 0.1*i2)^2)*exp(-5.654220591*(-0.8242 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.29 + 0.1*i4)^2)*exp(-1.029488546*(-2 + i5)^2)*exp(-0.284850668*(-3.485 + + i6)^2)*exp(-0.290177865*(-2.485 + i7)^2) + 8.07794794*exp(-7.548371836*( + -0.4 + 0.1*i1)^2)*exp(-12.56111847*(-0.6 + 0.1*i2)^2)*exp(-5.654220591*(- + 0.4364 + 0.1*i3)^2)*exp(-0.827338698*(-1.056 + 0.1*i4)^2)*exp(-1.029488546* + (-1.091 + i5)^2)*exp(-0.284850668*(-3.202 + i6)^2)*exp(-0.290177865*(-2.606 + + i7)^2) + 1.861270283*exp(-7.548371836*(-0.5303 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8545 + 0.1*i2)^2)*exp(-5.654220591*(-0.9212 + 0.1*i3)^2)* + exp(-0.827338698*(-0.8778 + 0.1*i4)^2)*exp(-1.029488546*(-1.616 + i5)^2)* + exp(-0.284850668*(-3.232 + i6)^2)*exp(-0.290177865*(-4.727 + i7)^2) - + 5.220184382*exp(-7.548371836*(-0.3879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5515 + 0.1*i2)^2)*exp(-5.654220591*(-0.5576 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.7808 + 0.1*i4)^2)*exp(-1.029488546*(-1.444 + i5)^2)*exp(-0.284850668*( + -3.677 + i6)^2)*exp(-0.290177865*(-2.03 + i7)^2) - 5.078492981*exp(- + 7.548371836*(-0.4515 + 0.1*i1)^2)*exp(-12.56111847*(-0.7273 + 0.1*i2)^2)* + exp(-5.654220591*(-0.8727 + 0.1*i3)^2)*exp(-0.827338698*(-0.8131 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1.828 + i5)^2)*exp(-0.284850668*(-3.717 + i6)^2)*exp( + -0.290177865*(-2.061 + i7)^2) + 0.082352889*exp(-7.548371836*(-0.4818 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.4121 + 0.1*i2)^2)*exp(-5.654220591*(-0.5515 + + 0.1*i3)^2)*exp(-0.827338698*(-1.064 + 0.1*i4)^2)*exp(-1.029488546*(-1.202 + + i5)^2)*exp(-0.284850668*(-3.404 + i6)^2)*exp(-0.290177865*(-4.788 + i7)^ + 2) + 0.249164565*exp(-7.548371836*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-5.654220591*(-0.9636 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.443 + 0.1*i4)^2)*exp(-1.029488546*(-1.606 + i5)^2)*exp(-0.284850668*(- + 3.263 + i6)^2)*exp(-0.290177865*(-3.667 + i7)^2) - 0.400213592*exp(- + 7.548371836*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(-0.4727 + 0.1*i2)^2)* + exp(-5.654220591*(-0.7818 + 0.1*i3)^2)*exp(-0.827338698*(-1.136 + 0.1*i4)^2 + )*exp(-1.029488546*(-1.545 + i5)^2)*exp(-0.284850668*(-3.99 + i6)^2)*exp(- + 0.290177865*(-4.758 + i7)^2) + 7.614070895*exp(-7.548371836*(-0.5606 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7758 + 0.1*i2)^2)*exp(-5.654220591*(-0.5273 + + 0.1*i3)^2)*exp(-0.827338698*(-0.9263 + 0.1*i4)^2)*exp(-1.029488546*(-1.576 + + i5)^2)*exp(-0.284850668*(-3.919 + i6)^2)*exp(-0.290177865*(-2.394 + i7)^ + 2) + 0.0411404*exp(-7.548371836*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-5.654220591*(-0.9818 + 0.1*i3)^2)*exp(-0.827338698 + *(-0.7081 + 0.1*i4)^2)*exp(-1.029488546*(-1.657 + i5)^2)*exp(-0.284850668*( + -3.273 + i6)^2)*exp(-0.290177865*(-3.455 + i7)^2) - 10.24537789*exp(- + 7.548371836*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(-0.8303 + 0.1*i2)^2)* + exp(-5.654220591*(-0.6061 + 0.1*i3)^2)*exp(-0.827338698*(-0.9424 + 0.1*i4)^ + 2)*exp(-1.029488546*(-1 + i5)^2)*exp(-0.284850668*(-3.545 + i6)^2)*exp(- + 0.290177865*(-2.303 + i7)^2) - 0.644210455*exp(-7.548371836*(-0.3788 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9152 + 0.1*i2)^2)*exp(-5.654220591*(-0.7515 + + 0.1*i3)^2)*exp(-0.827338698*(-0.8455 + 0.1*i4)^2)*exp(-1.029488546*(-1.212 + + i5)^2)*exp(-0.284850668*(-3.394 + i6)^2)*exp(-0.290177865*(-4.879 + i7)^ + 2) + 2.983941366*exp(-7.548371836*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-5.654220591*(-0.4424 + 0.1*i3)^2)*exp(-0.827338698 + *(-1.047 + 0.1*i4)^2)*exp(-1.029488546*(-1.02 + i5)^2)*exp(-0.284850668*(- + 3.556 + i6)^2)*exp(-0.290177865*(-4.303 + i7)^2)) + x8 >= 3.405252789; + + -(1.593810563*exp(-8.531896964*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.697 + 0.1*i2)^2)*exp(-5.230851813*(-0.8061 + 0.1*i3)^2)*exp(-0.173624533* + (-0.9586 + 0.1*i4)^2)*exp(-0.757951055*(-1.758 + i5)^2)*exp(-4.042100548*(- + 3.141 + i6)^2)*exp(-0.234741313*(-4.424 + i7)^2) + 4.943500386*exp(- + 8.531896964*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(-0.9697 + 0.1*i2)^2)* + exp(-5.230851813*(-0.4909 + 0.1*i3)^2)*exp(-0.173624533*(-1.161 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.778 + i5)^2)*exp(-4.042100548*(-3.778 + i6)^2)*exp(- + 0.234741313*(-4.091 + i7)^2) + 1.51779433*exp(-8.531896964*(-0.503 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-5.230851813*(-0.4121 + 0.1 + *i3)^2)*exp(-0.173624533*(-1.419 + 0.1*i4)^2)*exp(-0.757951055*(-1.333 + i5 + )^2)*exp(-4.042100548*(-3.152 + i6)^2)*exp(-0.234741313*(-3.697 + i7)^2) + + 3.368485121*exp(-8.531896964*(-0.4606 + 0.1*i1)^2)*exp(-12.56111847*(-0.903 + + 0.1*i2)^2)*exp(-5.230851813*(-0.7576 + 0.1*i3)^2)*exp(-0.173624533*(- + 0.7727 + 0.1*i4)^2)*exp(-0.757951055*(-1.242 + i5)^2)*exp(-4.042100548*(- + 3.98 + i6)^2)*exp(-0.234741313*(-3.424 + i7)^2) + 4.653395446*exp(- + 8.531896964*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + 0.1*i2)^2)*exp(- + 5.230851813*(-0.8606 + 0.1*i3)^2)*exp(-0.173624533*(-1.153 + 0.1*i4)^2)* + exp(-0.757951055*(-1.556 + i5)^2)*exp(-4.042100548*(-3.939 + i6)^2)*exp(- + 0.234741313*(-2.818 + i7)^2) + 1.540530036*exp(-8.531896964*(-0.5879 + 0.1* + i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)*exp(-5.230851813*(-0.4788 + + 0.1*i3)^2)*exp(-0.173624533*(-1.039 + 0.1*i4)^2)*exp(-0.757951055*(-1.646 + + i5)^2)*exp(-4.042100548*(-3.222 + i6)^2)*exp(-0.234741313*(-4.636 + i7)^ + 2) - 0.000561618*exp(-8.531896964*(-0.4121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4424 + 0.1*i2)^2)*exp(-5.230851813*(-0.5939 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.46 + 0.1*i4)^2)*exp(-0.757951055*(-1.232 + i5)^2)*exp(-4.042100548*(- + 3.788 + i6)^2)*exp(-0.234741313*(-3.848 + i7)^2) - 2.433815803*exp(- + 8.531896964*(-0.5576 + 0.1*i1)^2)*exp(-12.56111847*(-0.8848 + 0.1*i2)^2)* + exp(-5.230851813*(-0.8121 + 0.1*i3)^2)*exp(-0.173624533*(-1.128 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.263 + i5)^2)*exp(-4.042100548*(-3.808 + i6)^2)*exp(- + 0.234741313*(-4.818 + i7)^2) - 0.14403823*exp(-8.531896964*(-0.4273 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4848 + 0.1*i2)^2)*exp(-5.230851813*(-0.9697 + + 0.1*i3)^2)*exp(-0.173624533*(-0.9667 + 0.1*i4)^2)*exp(-0.757951055*(-1.364 + + i5)^2)*exp(-4.042100548*(-3.869 + i6)^2)*exp(-0.234741313*(-2.667 + i7)^ + 2) + 1.654248782*exp(-8.531896964*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4061 + 0.1*i2)^2)*exp(-5.230851813*(-0.6303 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.427 + 0.1*i4)^2)*exp(-0.757951055*(-1.747 + i5)^2)*exp(-4.042100548*(- + 3.444 + i6)^2)*exp(-0.234741313*(-3.576 + i7)^2) + 0.204844406*exp(- + 8.531896964*(-0.5394 + 0.1*i1)^2)*exp(-12.56111847*(-0.5273 + 0.1*i2)^2)* + exp(-5.230851813*(-0.5636 + 0.1*i3)^2)*exp(-0.173624533*(-1.355 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.253 + i5)^2)*exp(-4.042100548*(-3.566 + i6)^2)*exp(- + 0.234741313*(-2.121 + i7)^2) - 3.248189186*exp(-8.531896964*(-0.5273 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8121 + 0.1*i2)^2)*exp(-5.230851813*(-0.8424 + + 0.1*i3)^2)*exp(-0.173624533*(-0.8535 + 0.1*i4)^2)*exp(-0.757951055*(-1.899 + + i5)^2)*exp(-4.042100548*(-3.889 + i6)^2)*exp(-0.234741313*(-4.061 + i7)^ + 2) + 0.032603598*exp(-8.531896964*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-5.230851813*(-0.9333 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.306 + 0.1*i4)^2)*exp(-0.757951055*(-1.273 + i5)^2)*exp(-4.042100548*(- + 3.707 + i6)^2)*exp(-0.234741313*(-3.485 + i7)^2) - 2.058206338*exp(- + 8.531896964*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(-0.6364 + 0.1*i2)^2)* + exp(-5.230851813*(-0.5758 + 0.1*i3)^2)*exp(-0.173624533*(-1.282 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.222 + i5)^2)*exp(-4.042100548*(-3.192 + i6)^2)*exp(- + 0.234741313*(-4.455 + i7)^2) - 4.057688326*exp(-8.531896964*(-0.4364 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7394 + 0.1*i2)^2)*exp(-5.230851813*(-0.4485 + + 0.1*i3)^2)*exp(-0.173624533*(-1.403 + 0.1*i4)^2)*exp(-0.757951055*(-1.465 + + i5)^2)*exp(-4.042100548*(-3.687 + i6)^2)*exp(-0.234741313*(-4.939 + i7)^ + 2) + 2.833512453*exp(-8.531896964*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-5.230851813*(-0.7273 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.346 + 0.1*i4)^2)*exp(-0.757951055*(-1.01 + i5)^2)*exp(-4.042100548*(- + 3.333 + i6)^2)*exp(-0.234741313*(-4.364 + i7)^2) - 1.955590053*exp(- + 8.531896964*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(-0.7152 + 0.1*i2)^2)* + exp(-5.230851813*(-0.703 + 0.1*i3)^2)*exp(-0.173624533*(-1.209 + 0.1*i4)^2) + *exp(-0.757951055*(-1.354 + i5)^2)*exp(-4.042100548*(-3.01 + i6)^2)*exp(- + 0.234741313*(-2.758 + i7)^2) + 3.10986816*exp(-8.531896964*(-0.5152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)*exp(-5.230851813*(-0.503 + + 0.1*i3)^2)*exp(-0.173624533*(-0.7566 + 0.1*i4)^2)*exp(-0.757951055*(-1.424 + + i5)^2)*exp(-4.042100548*(-3.848 + i6)^2)*exp(-0.234741313*(-4.576 + i7)^ + 2) - 3.137008733*exp(-8.531896964*(-0.5758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5152 + 0.1*i2)^2)*exp(-5.230851813*(-0.4303 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.8697 + 0.1*i4)^2)*exp(-0.757951055*(-1.374 + i5)^2)*exp(-4.042100548*( + -3.414 + i6)^2)*exp(-0.234741313*(-3.061 + i7)^2) + 4.721510586*exp(- + 8.531896964*(-0.3939 + 0.1*i1)^2)*exp(-12.56111847*(-0.7091 + 0.1*i2)^2)* + exp(-5.230851813*(-0.4242 + 0.1*i3)^2)*exp(-0.173624533*(-0.8293 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.434 + i5)^2)*exp(-4.042100548*(-3.121 + i6)^2)*exp( + -0.234741313*(-4.394 + i7)^2) - 0.480447532*exp(-8.531896964*(-0.403 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5333 + 0.1*i2)^2)*exp(-5.230851813*(-0.5152 + + 0.1*i3)^2)*exp(-0.173624533*(-1.233 + 0.1*i4)^2)*exp(-0.757951055*(-1.889 + + i5)^2)*exp(-4.042100548*(-3.172 + i6)^2)*exp(-0.234741313*(-4.545 + i7)^ + 2) + 2.865331041*exp(-8.531896964*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-5.230851813*(-0.4606 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.144 + 0.1*i4)^2)*exp(-0.757951055*(-1.879 + i5)^2)*exp(-4.042100548*(- + 3.343 + i6)^2)*exp(-0.234741313*(-2.152 + i7)^2) - 4.460951627*exp(- + 8.531896964*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(-0.8242 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6545 + 0.1*i3)^2)*exp(-0.173624533*(-1.411 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.525 + i5)^2)*exp(-4.042100548*(-3.04 + i6)^2)*exp(- + 0.234741313*(-2.273 + i7)^2) - 2.831638019*exp(-8.531896964*(-0.4545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.503 + 0.1*i2)^2)*exp(-5.230851813*(-0.7152 + + 0.1*i3)^2)*exp(-0.173624533*(-0.797 + 0.1*i4)^2)*exp(-0.757951055*(-1.798 + + i5)^2)*exp(-4.042100548*(-3.424 + i6)^2)*exp(-0.234741313*(-4.97 + i7)^2 + ) + 1.944970926*exp(-8.531896964*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8 + 0.1*i2)^2)*exp(-5.230851813*(-0.9394 + 0.1*i3)^2)*exp(-0.173624533*(- + 0.8212 + 0.1*i4)^2)*exp(-0.757951055*(-1.101 + i5)^2)*exp(-4.042100548*(- + 3.535 + i6)^2)*exp(-0.234741313*(-2.909 + i7)^2) + 5.693404913*exp(- + 8.531896964*(-0.5818 + 0.1*i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6364 + 0.1*i3)^2)*exp(-0.173624533*(-1.435 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.313 + i5)^2)*exp(-4.042100548*(-3.576 + i6)^2)*exp(- + 0.234741313*(-3.212 + i7)^2) + 1.038182052*exp(-8.531896964*(-0.4485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-5.230851813*(-0.6 + 0.1* + i3)^2)*exp(-0.173624533*(-0.9505 + 0.1*i4)^2)*exp(-0.757951055*(-1.909 + i5 + )^2)*exp(-4.042100548*(-3.051 + i6)^2)*exp(-0.234741313*(-3.97 + i7)^2) + + 0.765602116*exp(-8.531896964*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8788 + 0.1*i2)^2)*exp(-5.230851813*(-0.4727 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.7646 + 0.1*i4)^2)*exp(-0.757951055*(-1.293 + i5)^2)*exp(-4.042100548*( + -3.616 + i6)^2)*exp(-0.234741313*(-3.273 + i7)^2) + 5.394785192*exp(- + 8.531896964*(-0.3515 + 0.1*i1)^2)*exp(-12.56111847*(-0.9576 + 0.1*i2)^2)* + exp(-5.230851813*(-0.8182 + 0.1*i3)^2)*exp(-0.173624533*(-0.7485 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.768 + i5)^2)*exp(-4.042100548*(-3.505 + i6)^2)*exp( + -0.234741313*(-3.394 + i7)^2) + 0.201907216*exp(-8.531896964*(-0.4061 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6667 + 0.1*i2)^2)*exp(-5.230851813*(-0.9576 + + 0.1*i3)^2)*exp(-0.173624533*(-1.096 + 0.1*i4)^2)*exp(-0.757951055*(-1.131 + + i5)^2)*exp(-4.042100548*(-3.071 + i6)^2)*exp(-0.234741313*(-4.242 + i7)^ + 2) - 2.373295421*exp(-8.531896964*(-0.5788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6545 + 0.1*i2)^2)*exp(-5.230851813*(-0.7697 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.9101 + 0.1*i4)^2)*exp(-0.757951055*(-1.97 + i5)^2)*exp(-4.042100548*(- + 3.162 + i6)^2)*exp(-0.234741313*(-3.364 + i7)^2) - 0.321161852*exp(- + 8.531896964*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(-0.9818 + 0.1*i2)^2)* + exp(-5.230851813*(-0.9879 + 0.1*i3)^2)*exp(-0.173624533*(-1.193 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.586 + i5)^2)*exp(-4.042100548*(-3.798 + i6)^2)*exp(- + 0.234741313*(-3.03 + i7)^2) + 1.692461364*exp(-8.531896964*(-0.3182 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5697 + 0.1*i2)^2)*exp(-5.230851813*(-0.7091 + + 0.1*i3)^2)*exp(-0.173624533*(-1.217 + 0.1*i4)^2)*exp(-0.757951055*(-1.061 + + i5)^2)*exp(-4.042100548*(-3.646 + i6)^2)*exp(-0.234741313*(-2.455 + i7)^ + 2) + 0.011707344*exp(-8.531896964*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-5.230851813*(-0.5818 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.468 + 0.1*i4)^2)*exp(-0.757951055*(-1.03 + i5)^2)*exp(-4.042100548*(- + 3.455 + i6)^2)*exp(-0.234741313*(-3.242 + i7)^2) - 3.803775284*exp(- + 8.531896964*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(-0.6303 + 0.1*i2)^2)* + exp(-5.230851813*(-0.5091 + 0.1*i3)^2)*exp(-0.173624533*(-1.266 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.303 + i5)^2)*exp(-4.042100548*(-3.899 + i6)^2)*exp(- + 0.234741313*(-3.909 + i7)^2) + 1.371592201*exp(-8.531896964*(-0.5939 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6727 + 0.1*i2)^2)*exp(-5.230851813*(-0.7758 + + 0.1*i3)^2)*exp(-0.173624533*(-1.249 + 0.1*i4)^2)*exp(-0.757951055*(-1.818 + + i5)^2)*exp(-4.042100548*(-3.586 + i6)^2)*exp(-0.234741313*(-4.848 + i7)^ + 2) - 3.340609352*exp(-8.531896964*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-5.230851813*(-0.5697 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.452 + 0.1*i4)^2)*exp(-0.757951055*(-1.949 + i5)^2)*exp(-4.042100548*(- + 3.253 + i6)^2)*exp(-0.234741313*(-3.606 + i7)^2) - 3.801499221*exp(- + 8.531896964*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(-0.9636 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6182 + 0.1*i3)^2)*exp(-0.173624533*(-0.7242 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.495 + i5)^2)*exp(-4.042100548*(-3.475 + i6)^2)*exp( + -0.234741313*(-3.818 + i7)^2) - 1.346352079*exp(-8.531896964*(-0.3364 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.5091 + 0.1*i2)^2)*exp(-5.230851813*(-0.697 + + 0.1*i3)^2)*exp(-0.173624533*(-0.7323 + 0.1*i4)^2)*exp(-0.757951055*(-1.182 + + i5)^2)*exp(-4.042100548*(-3.313 + i6)^2)*exp(-0.234741313*(-3.727 + i7)^ + 2) - 0.173819748*exp(-8.531896964*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6061 + 0.1*i2)^2)*exp(-5.230851813*(-0.8485 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.476 + 0.1*i4)^2)*exp(-0.757951055*(-1.505 + i5)^2)*exp(-4.042100548*(- + 3.364 + i6)^2)*exp(-0.234741313*(-5 + i7)^2) - 0.783437214*exp(-8.531896964 + *(-0.3697 + 0.1*i1)^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(- + 5.230851813*(-0.5455 + 0.1*i3)^2)*exp(-0.173624533*(-0.902 + 0.1*i4)^2)* + exp(-0.757951055*(-1.788 + i5)^2)*exp(-4.042100548*(-3.697 + i6)^2)*exp(- + 0.234741313*(-4.909 + i7)^2) + 0.509010733*exp(-8.531896964*(-0.5121 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5758 + 0.1*i2)^2)*exp(-5.230851813*(-0.9091 + + 0.1*i3)^2)*exp(-0.173624533*(-0.8051 + 0.1*i4)^2)*exp(-0.757951055*(-1.152 + + i5)^2)*exp(-4.042100548*(-3.667 + i6)^2)*exp(-0.234741313*(-4.485 + i7)^ + 2) + 0.023531208*exp(-8.531896964*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-5.230851813*(-0.9515 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.33 + 0.1*i4)^2)*exp(-0.757951055*(-1.162 + i5)^2)*exp(-4.042100548*(- + 3.354 + i6)^2)*exp(-0.234741313*(-2.182 + i7)^2) + 1.131381742*exp(- + 8.531896964*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(-0.6848 + 0.1*i2)^2)* + exp(-5.230851813*(-0.4848 + 0.1*i3)^2)*exp(-0.173624533*(-0.7 + 0.1*i4)^2)* + exp(-0.757951055*(-1.939 + i5)^2)*exp(-4.042100548*(-3.515 + i6)^2)*exp(- + 0.234741313*(-3.333 + i7)^2) - 1.158530665*exp(-8.531896964*(-0.3152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5879 + 0.1*i2)^2)*exp(-5.230851813*(-0.8667 + + 0.1*i3)^2)*exp(-0.173624533*(-1.031 + 0.1*i4)^2)*exp(-0.757951055*(-1.485 + + i5)^2)*exp(-4.042100548*(-3.182 + i6)^2)*exp(-0.234741313*(-2.242 + i7)^ + 2) + 4.189277072*exp(-8.531896964*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-5.230851813*(-0.4061 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.201 + 0.1*i4)^2)*exp(-0.757951055*(-1.283 + i5)^2)*exp(-4.042100548*(- + 3.949 + i6)^2)*exp(-0.234741313*(-3 + i7)^2) + 1.632556092*exp(-8.531896964 + *(-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2)^2)*exp(- + 5.230851813*(-0.8788 + 0.1*i3)^2)*exp(-0.173624533*(-1.072 + 0.1*i4)^2)* + exp(-0.757951055*(-1.081 + i5)^2)*exp(-4.042100548*(-3.303 + i6)^2)*exp(- + 0.234741313*(-3.545 + i7)^2) + 2.441413*exp(-8.531896964*(-0.4424 + 0.1*i1) + ^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-5.230851813*(-0.5333 + 0.1* + i3)^2)*exp(-0.173624533*(-1.484 + 0.1*i4)^2)*exp(-0.757951055*(-1.677 + i5) + ^2)*exp(-4.042100548*(-3.737 + i6)^2)*exp(-0.234741313*(-2.333 + i7)^2) + + 1.991512287*exp(-8.531896964*(-0.397 + 0.1*i1)^2)*exp(-12.56111847*(-0.5939 + + 0.1*i2)^2)*exp(-5.230851813*(-0.8545 + 0.1*i3)^2)*exp(-0.173624533*(- + 1.363 + 0.1*i4)^2)*exp(-0.757951055*(-1.869 + i5)^2)*exp(-4.042100548*(- + 3.02 + i6)^2)*exp(-0.234741313*(-3.515 + i7)^2) - 0.164915437*exp(- + 8.531896964*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(-0.4788 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6121 + 0.1*i3)^2)*exp(-0.173624533*(-0.8939 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.051 + i5)^2)*exp(-4.042100548*(-3.879 + i6)^2)*exp( + -0.234741313*(-3.182 + i7)^2) - 2.081465152*exp(-8.531896964*(-0.3545 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.4364 + 0.1*i2)^2)*exp(-5.230851813*(-0.7333 + + 0.1*i3)^2)*exp(-0.173624533*(-0.9828 + 0.1*i4)^2)*exp(-0.757951055*(-1.99 + + i5)^2)*exp(-4.042100548*(-3.495 + i6)^2)*exp(-0.234741313*(-2.97 + i7)^2 + ) - 4.084980058*exp(-8.531896964*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-5.230851813*(-0.6727 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.7889 + 0.1*i4)^2)*exp(-0.757951055*(-1.121 + i5)^2)*exp(-4.042100548*( + -3.091 + i6)^2)*exp(-0.234741313*(-4.121 + i7)^2) + 9.946553594*exp(- + 8.531896964*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(-0.7879 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6909 + 0.1*i3)^2)*exp(-0.173624533*(-0.7162 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.475 + i5)^2)*exp(-4.042100548*(-3.131 + i6)^2)*exp( + -0.234741313*(-2.212 + i7)^2) - 0.695596536*exp(-8.531896964*(-0.4394 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.897 + 0.1*i2)^2)*exp(-5.230851813*(-0.9758 + + 0.1*i3)^2)*exp(-0.173624533*(-1.023 + 0.1*i4)^2)*exp(-0.757951055*(-1.667 + + i5)^2)*exp(-4.042100548*(-3.061 + i6)^2)*exp(-0.234741313*(-2.879 + i7)^ + 2) + 0.658462811*exp(-8.531896964*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5394 + 0.1*i2)^2)*exp(-5.230851813*(-0.9152 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.5 + 0.1*i4)^2)*exp(-0.757951055*(-1.596 + i5)^2)*exp(-4.042100548*(- + 3.636 + i6)^2)*exp(-0.234741313*(-2.727 + i7)^2) + 1.620386102*exp(- + 8.531896964*(-0.5545 + 0.1*i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)* + exp(-5.230851813*(-0.7212 + 0.1*i3)^2)*exp(-0.173624533*(-1.08 + 0.1*i4)^2) + *exp(-0.757951055*(-1.838 + i5)^2)*exp(-4.042100548*(-3.434 + i6)^2)*exp(- + 0.234741313*(-2.364 + i7)^2) - 9.128087703*exp(-8.531896964*(-0.3758 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8667 + 0.1*i2)^2)*exp(-5.230851813*(-0.5394 + + 0.1*i3)^2)*exp(-0.173624533*(-1.015 + 0.1*i4)^2)*exp(-0.757951055*(-1.919 + + i5)^2)*exp(-4.042100548*(-3.909 + i6)^2)*exp(-0.234741313*(-2.939 + i7)^ + 2) - 2.052791586*exp(-8.531896964*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-5.230851813*(-0.5212 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.9343 + 0.1*i4)^2)*exp(-0.757951055*(-1.808 + i5)^2)*exp(-4.042100548*( + -3.212 + i6)^2)*exp(-0.234741313*(-2.545 + i7)^2) + 0.129363334*exp(- + 8.531896964*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(-0.9333 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6485 + 0.1*i3)^2)*exp(-0.173624533*(-1.322 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.394 + i5)^2)*exp(-4.042100548*(-3.081 + i6)^2)*exp(- + 0.234741313*(-4.697 + i7)^2) - 0.168463431*exp(-8.531896964*(-0.4576 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5455 + 0.1*i2)^2)*exp(-5.230851813*(-0.9939 + + 0.1*i3)^2)*exp(-0.173624533*(-1.169 + 0.1*i4)^2)*exp(-0.757951055*(-1.98 + + i5)^2)*exp(-4.042100548*(-3.626 + i6)^2)*exp(-0.234741313*(-3.939 + i7)^2) + + 1.422275736*exp(-8.531896964*(-0.3242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9212 + 0.1*i2)^2)*exp(-5.230851813*(-0.4667 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.314 + 0.1*i4)^2)*exp(-0.757951055*(-1.697 + i5)^2)*exp(-4.042100548*(- + 3.374 + i6)^2)*exp(-0.234741313*(-3.758 + i7)^2) + 1.055588314*exp(- + 8.531896964*(-0.5697 + 0.1*i1)^2)*exp(-12.56111847*(-0.4182 + 0.1*i2)^2)* + exp(-5.230851813*(-0.7394 + 0.1*i3)^2)*exp(-0.173624533*(-0.8374 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.717 + i5)^2)*exp(-4.042100548*(-3.727 + i6)^2)*exp( + -0.234741313*(-3.303 + i7)^2) - 5.354846974*exp(-8.531896964*(-0.3727 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9879 + 0.1*i2)^2)*exp(-5.230851813*(-0.6848 + + 0.1*i3)^2)*exp(-0.173624533*(-1.104 + 0.1*i4)^2)*exp(-0.757951055*(-1.343 + + i5)^2)*exp(-4.042100548*(-3.606 + i6)^2)*exp(-0.234741313*(-2 + i7)^2) + - 0.574798015*exp(-8.531896964*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4667 + 0.1*i2)^2)*exp(-5.230851813*(-0.8303 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.8859 + 0.1*i4)^2)*exp(-0.757951055*(-1.111 + i5)^2)*exp(-4.042100548*( + -3.283 + i6)^2)*exp(-0.234741313*(-2.576 + i7)^2) + 1.791864422*exp(- + 8.531896964*(-0.3485 + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6606 + 0.1*i3)^2)*exp(-0.173624533*(-0.999 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.172 + i5)^2)*exp(-4.042100548*(-3.03 + i6)^2)*exp(- + 0.234741313*(-3.152 + i7)^2) - 0.820489426*exp(-8.531896964*(-0.5848 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-5.230851813*(-0.8 + 0.1* + i3)^2)*exp(-0.173624533*(-1.298 + 0.1*i4)^2)*exp(-0.757951055*(-1.848 + i5) + ^2)*exp(-4.042100548*(-3.828 + i6)^2)*exp(-0.234741313*(-2.636 + i7)^2) + + 1.721131953*exp(-8.531896964*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5212 + 0.1*i2)^2)*exp(-5.230851813*(-0.497 + 0.1*i3)^2)*exp(-0.173624533* + (-1.395 + 0.1*i4)^2)*exp(-0.757951055*(-1.636 + i5)^2)*exp(-4.042100548*(- + 3.384 + i6)^2)*exp(-0.234741313*(-2.697 + i7)^2) + 4.177228588*exp(- + 8.531896964*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(-0.6242 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6788 + 0.1*i3)^2)*exp(-0.173624533*(-1.338 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.859 + i5)^2)*exp(-4.042100548*(-3.758 + i6)^2)*exp(- + 0.234741313*(-4.273 + i7)^2) + 1.375649347*exp(-8.531896964*(-0.5485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4545 + 0.1*i2)^2)*exp(-5.230851813*(-0.8848 + + 0.1*i3)^2)*exp(-0.173624533*(-1.112 + 0.1*i4)^2)*exp(-0.757951055*(-1.515 + + i5)^2)*exp(-4.042100548*(-3.101 + i6)^2)*exp(-0.234741313*(-4.333 + i7)^ + 2) + 1.593698572*exp(-8.531896964*(-0.4636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7939 + 0.1*i2)^2)*exp(-5.230851813*(-0.7879 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.492 + 0.1*i4)^2)*exp(-0.757951055*(-1.707 + i5)^2)*exp(-4.042100548*(- + 3.97 + i6)^2)*exp(-0.234741313*(-4.03 + i7)^2) - 4.084445788*exp(- + 8.531896964*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(-0.5818 + 0.1*i2)^2)* + exp(-5.230851813*(-0.7455 + 0.1*i3)^2)*exp(-0.173624533*(-0.7404 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.687 + i5)^2)*exp(-4.042100548*(-3.929 + i6)^2)*exp( + -0.234741313*(-3.788 + i7)^2) + 0.119606267*exp(-8.531896964*(-0.6 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.7515 + 0.1*i2)^2)*exp(-5.230851813*(-0.9455 + 0.1 + *i3)^2)*exp(-0.173624533*(-0.8616 + 0.1*i4)^2)*exp(-0.757951055*(-1.384 + + i5)^2)*exp(-4.042100548*(-3.596 + i6)^2)*exp(-0.234741313*(-2.848 + i7)^2) + + 0.899427653*exp(-8.531896964*(-0.3273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4 + 0.1*i2)^2)*exp(-5.230851813*(-0.897 + 0.1*i3)^2)*exp(-0.173624533*(- + 1.12 + 0.1*i4)^2)*exp(-0.757951055*(-1.404 + i5)^2)*exp(-4.042100548*(- + 3.525 + i6)^2)*exp(-0.234741313*(-4.182 + i7)^2) + 0.343240949*exp(- + 8.531896964*(-0.5212 + 0.1*i1)^2)*exp(-12.56111847*(-0.497 + 0.1*i2)^2)* + exp(-5.230851813*(-0.8909 + 0.1*i3)^2)*exp(-0.173624533*(-1.185 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.737 + i5)^2)*exp(-4.042100548*(-3.293 + i6)^2)*exp(- + 0.234741313*(-2.091 + i7)^2) - 0.575241898*exp(-8.531896964*(-0.4303 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4606 + 0.1*i2)^2)*exp(-5.230851813*(-0.6242 + + 0.1*i3)^2)*exp(-0.173624533*(-1.225 + 0.1*i4)^2)*exp(-0.757951055*(-1.727 + + i5)^2)*exp(-4.042100548*(-3.96 + i6)^2)*exp(-0.234741313*(-2.424 + i7)^2 + ) - 5.361483287*exp(-8.531896964*(-0.3121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8909 + 0.1*i2)^2)*exp(-5.230851813*(-0.903 + 0.1*i3)^2)*exp(-0.173624533* + (-1.387 + 0.1*i4)^2)*exp(-0.757951055*(-1.414 + i5)^2)*exp(-4.042100548*(- + 3.323 + i6)^2)*exp(-0.234741313*(-3.636 + i7)^2) - 0.118746238*exp(- + 8.531896964*(-0.3424 + 0.1*i1)^2)*exp(-12.56111847*(-0.4485 + 0.1*i2)^2)* + exp(-5.230851813*(-0.4182 + 0.1*i3)^2)*exp(-0.173624533*(-0.9747 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.566 + i5)^2)*exp(-4.042100548*(-3.657 + i6)^2)*exp( + -0.234741313*(-3.879 + i7)^2) - 3.151280436*exp(-8.531896964*(-0.497 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7697 + 0.1*i2)^2)*exp(-5.230851813*(-0.7939 + + 0.1*i3)^2)*exp(-0.173624533*(-1.274 + 0.1*i4)^2)*exp(-0.757951055*(-1.141 + + i5)^2)*exp(-4.042100548*(-4 + i6)^2)*exp(-0.234741313*(-2.515 + i7)^2) + + 0.445487143*exp(-8.531896964*(-0.4939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5576 + 0.1*i2)^2)*exp(-5.230851813*(-0.4545 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.177 + 0.1*i4)^2)*exp(-0.757951055*(-1.96 + i5)^2)*exp(-4.042100548*(- + 3.818 + i6)^2)*exp(-0.234741313*(-4 + i7)^2) - 2.184647857*exp(-8.531896964 + *(-0.5 + 0.1*i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2)*exp(-5.230851813 + *(-0.4 + 0.1*i3)^2)*exp(-0.173624533*(-1.088 + 0.1*i4)^2)*exp(-0.757951055* + (-1.455 + i5)^2)*exp(-4.042100548*(-3.242 + i6)^2)*exp(-0.234741313*(-2.788 + + i7)^2) + 0.003179867*exp(-8.531896964*(-0.4182 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9455 + 0.1*i2)^2)*exp(-5.230851813*(-0.8364 + 0.1*i3)^2)* + exp(-0.173624533*(-1.258 + 0.1*i4)^2)*exp(-0.757951055*(-1.929 + i5)^2)* + exp(-4.042100548*(-3.465 + i6)^2)*exp(-0.234741313*(-4.606 + i7)^2) - + 0.535864234*exp(-8.531896964*(-0.3636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7818 + 0.1*i2)^2)*exp(-5.230851813*(-1 + 0.1*i3)^2)*exp(-0.173624533*(- + 0.9909 + 0.1*i4)^2)*exp(-0.757951055*(-1.535 + i5)^2)*exp(-4.042100548*(- + 3.768 + i6)^2)*exp(-0.234741313*(-4.667 + i7)^2) - 1.366840173*exp(- + 8.531896964*(-0.4091 + 0.1*i1)^2)*exp(-12.56111847*(-0.7212 + 0.1*i2)^2)* + exp(-5.230851813*(-0.9273 + 0.1*i3)^2)*exp(-0.173624533*(-1.371 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.04 + i5)^2)*exp(-4.042100548*(-3.747 + i6)^2)*exp(- + 0.234741313*(-4.152 + i7)^2) - 2.617981061*exp(-8.531896964*(-0.4455 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4242 + 0.1*i2)^2)*exp(-5.230851813*(-0.5879 + + 0.1*i3)^2)*exp(-0.173624533*(-0.9182 + 0.1*i4)^2)*exp(-0.757951055*(-1.626 + + i5)^2)*exp(-4.042100548*(-3 + i6)^2)*exp(-0.234741313*(-3.091 + i7)^2) + + 3.337928586*exp(-8.531896964*(-0.3667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8424 + 0.1*i2)^2)*exp(-5.230851813*(-0.8242 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.29 + 0.1*i4)^2)*exp(-0.757951055*(-2 + i5)^2)*exp(-4.042100548*(-3.485 + + i6)^2)*exp(-0.234741313*(-2.485 + i7)^2) + 2.861989715*exp(-8.531896964* + (-0.4 + 0.1*i1)^2)*exp(-12.56111847*(-0.6 + 0.1*i2)^2)*exp(-5.230851813*(- + 0.4364 + 0.1*i3)^2)*exp(-0.173624533*(-1.056 + 0.1*i4)^2)*exp(-0.757951055* + (-1.091 + i5)^2)*exp(-4.042100548*(-3.202 + i6)^2)*exp(-0.234741313*(-2.606 + + i7)^2) - 0.905617534*exp(-8.531896964*(-0.5303 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8545 + 0.1*i2)^2)*exp(-5.230851813*(-0.9212 + 0.1*i3)^2)* + exp(-0.173624533*(-0.8778 + 0.1*i4)^2)*exp(-0.757951055*(-1.616 + i5)^2)* + exp(-4.042100548*(-3.232 + i6)^2)*exp(-0.234741313*(-4.727 + i7)^2) - + 2.799439652*exp(-8.531896964*(-0.3879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5515 + 0.1*i2)^2)*exp(-5.230851813*(-0.5576 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.7808 + 0.1*i4)^2)*exp(-0.757951055*(-1.444 + i5)^2)*exp(-4.042100548*( + -3.677 + i6)^2)*exp(-0.234741313*(-2.03 + i7)^2) - 3.499260428*exp(- + 8.531896964*(-0.4515 + 0.1*i1)^2)*exp(-12.56111847*(-0.7273 + 0.1*i2)^2)* + exp(-5.230851813*(-0.8727 + 0.1*i3)^2)*exp(-0.173624533*(-0.8131 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1.828 + i5)^2)*exp(-4.042100548*(-3.717 + i6)^2)*exp( + -0.234741313*(-2.061 + i7)^2) - 0.364003958*exp(-8.531896964*(-0.4818 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.4121 + 0.1*i2)^2)*exp(-5.230851813*(-0.5515 + + 0.1*i3)^2)*exp(-0.173624533*(-1.064 + 0.1*i4)^2)*exp(-0.757951055*(-1.202 + + i5)^2)*exp(-4.042100548*(-3.404 + i6)^2)*exp(-0.234741313*(-4.788 + i7)^ + 2) + 0.035061649*exp(-8.531896964*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-5.230851813*(-0.9636 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.443 + 0.1*i4)^2)*exp(-0.757951055*(-1.606 + i5)^2)*exp(-4.042100548*(- + 3.263 + i6)^2)*exp(-0.234741313*(-3.667 + i7)^2) - 0.407128861*exp(- + 8.531896964*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(-0.4727 + 0.1*i2)^2)* + exp(-5.230851813*(-0.7818 + 0.1*i3)^2)*exp(-0.173624533*(-1.136 + 0.1*i4)^2 + )*exp(-0.757951055*(-1.545 + i5)^2)*exp(-4.042100548*(-3.99 + i6)^2)*exp(- + 0.234741313*(-4.758 + i7)^2) + 7.319762919*exp(-8.531896964*(-0.5606 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7758 + 0.1*i2)^2)*exp(-5.230851813*(-0.5273 + + 0.1*i3)^2)*exp(-0.173624533*(-0.9263 + 0.1*i4)^2)*exp(-0.757951055*(-1.576 + + i5)^2)*exp(-4.042100548*(-3.919 + i6)^2)*exp(-0.234741313*(-2.394 + i7)^ + 2) - 1.742597374*exp(-8.531896964*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-5.230851813*(-0.9818 + 0.1*i3)^2)*exp(-0.173624533 + *(-0.7081 + 0.1*i4)^2)*exp(-0.757951055*(-1.657 + i5)^2)*exp(-4.042100548*( + -3.273 + i6)^2)*exp(-0.234741313*(-3.455 + i7)^2) - 9.382757666*exp(- + 8.531896964*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(-0.8303 + 0.1*i2)^2)* + exp(-5.230851813*(-0.6061 + 0.1*i3)^2)*exp(-0.173624533*(-0.9424 + 0.1*i4)^ + 2)*exp(-0.757951055*(-1 + i5)^2)*exp(-4.042100548*(-3.545 + i6)^2)*exp(- + 0.234741313*(-2.303 + i7)^2) + 1.519469284*exp(-8.531896964*(-0.3788 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9152 + 0.1*i2)^2)*exp(-5.230851813*(-0.7515 + + 0.1*i3)^2)*exp(-0.173624533*(-0.8455 + 0.1*i4)^2)*exp(-0.757951055*(-1.212 + + i5)^2)*exp(-4.042100548*(-3.394 + i6)^2)*exp(-0.234741313*(-4.879 + i7)^ + 2) + 0.684299893*exp(-8.531896964*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-5.230851813*(-0.4424 + 0.1*i3)^2)*exp(-0.173624533 + *(-1.047 + 0.1*i4)^2)*exp(-0.757951055*(-1.02 + i5)^2)*exp(-4.042100548*(- + 3.556 + i6)^2)*exp(-0.234741313*(-4.303 + i7)^2)) + x8 >= 4.238695319; + + -(-2.656084231*exp(-44.17360697*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.697 + 0.1*i2)^2)*exp(-12.16588682*(-0.8061 + 0.1*i3)^2)*exp(-0.410518593* + (-0.9586 + 0.1*i4)^2)*exp(-1.961388714*(-1.758 + i5)^2)*exp(-0.83932597*(- + 3.141 + i6)^2)*exp(-0.511069048*(-4.424 + i7)^2) - 0.435868053*exp(- + 44.17360697*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(-0.9697 + 0.1*i2)^2)* + exp(-12.16588682*(-0.4909 + 0.1*i3)^2)*exp(-0.410518593*(-1.161 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.778 + i5)^2)*exp(-0.83932597*(-3.778 + i6)^2)*exp(- + 0.511069048*(-4.091 + i7)^2) - 2.170120307*exp(-44.17360697*(-0.503 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-12.16588682*(-0.4121 + + 0.1*i3)^2)*exp(-0.410518593*(-1.419 + 0.1*i4)^2)*exp(-1.961388714*(-1.333 + + i5)^2)*exp(-0.83932597*(-3.152 + i6)^2)*exp(-0.511069048*(-3.697 + i7)^2 + ) + 4.113946463*exp(-44.17360697*(-0.4606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.903 + 0.1*i2)^2)*exp(-12.16588682*(-0.7576 + 0.1*i3)^2)*exp(-0.410518593* + (-0.7727 + 0.1*i4)^2)*exp(-1.961388714*(-1.242 + i5)^2)*exp(-0.83932597*(- + 3.98 + i6)^2)*exp(-0.511069048*(-3.424 + i7)^2) - 5.149821506*exp(- + 44.17360697*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + 0.1*i2)^2)*exp(- + 12.16588682*(-0.8606 + 0.1*i3)^2)*exp(-0.410518593*(-1.153 + 0.1*i4)^2)* + exp(-1.961388714*(-1.556 + i5)^2)*exp(-0.83932597*(-3.939 + i6)^2)*exp(- + 0.511069048*(-2.818 + i7)^2) + 2.460365827*exp(-44.17360697*(-0.5879 + 0.1* + i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)*exp(-12.16588682*(-0.4788 + + 0.1*i3)^2)*exp(-0.410518593*(-1.039 + 0.1*i4)^2)*exp(-1.961388714*(-1.646 + + i5)^2)*exp(-0.83932597*(-3.222 + i6)^2)*exp(-0.511069048*(-4.636 + i7)^2 + ) - 0.277091293*exp(-44.17360697*(-0.4121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4424 + 0.1*i2)^2)*exp(-12.16588682*(-0.5939 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.46 + 0.1*i4)^2)*exp(-1.961388714*(-1.232 + i5)^2)*exp(-0.83932597*(- + 3.788 + i6)^2)*exp(-0.511069048*(-3.848 + i7)^2) + 1.709093937*exp(- + 44.17360697*(-0.5576 + 0.1*i1)^2)*exp(-12.56111847*(-0.8848 + 0.1*i2)^2)* + exp(-12.16588682*(-0.8121 + 0.1*i3)^2)*exp(-0.410518593*(-1.128 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.263 + i5)^2)*exp(-0.83932597*(-3.808 + i6)^2)*exp(- + 0.511069048*(-4.818 + i7)^2) - 5.532171469*exp(-44.17360697*(-0.4273 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4848 + 0.1*i2)^2)*exp(-12.16588682*(-0.9697 + + 0.1*i3)^2)*exp(-0.410518593*(-0.9667 + 0.1*i4)^2)*exp(-1.961388714*(-1.364 + + i5)^2)*exp(-0.83932597*(-3.869 + i6)^2)*exp(-0.511069048*(-2.667 + i7)^2 + ) - 7.456263098*exp(-44.17360697*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4061 + 0.1*i2)^2)*exp(-12.16588682*(-0.6303 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.427 + 0.1*i4)^2)*exp(-1.961388714*(-1.747 + i5)^2)*exp(-0.83932597*(- + 3.444 + i6)^2)*exp(-0.511069048*(-3.576 + i7)^2) - 2.315111799*exp(- + 44.17360697*(-0.5394 + 0.1*i1)^2)*exp(-12.56111847*(-0.5273 + 0.1*i2)^2)* + exp(-12.16588682*(-0.5636 + 0.1*i3)^2)*exp(-0.410518593*(-1.355 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.253 + i5)^2)*exp(-0.83932597*(-3.566 + i6)^2)*exp(- + 0.511069048*(-2.121 + i7)^2) - 2.971197787*exp(-44.17360697*(-0.5273 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8121 + 0.1*i2)^2)*exp(-12.16588682*(-0.8424 + + 0.1*i3)^2)*exp(-0.410518593*(-0.8535 + 0.1*i4)^2)*exp(-1.961388714*(-1.899 + + i5)^2)*exp(-0.83932597*(-3.889 + i6)^2)*exp(-0.511069048*(-4.061 + i7)^2 + ) - 5.621684845*exp(-44.17360697*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-12.16588682*(-0.9333 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.306 + 0.1*i4)^2)*exp(-1.961388714*(-1.273 + i5)^2)*exp(-0.83932597*(- + 3.707 + i6)^2)*exp(-0.511069048*(-3.485 + i7)^2) - 0.806717765*exp(- + 44.17360697*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(-0.6364 + 0.1*i2)^2)* + exp(-12.16588682*(-0.5758 + 0.1*i3)^2)*exp(-0.410518593*(-1.282 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.222 + i5)^2)*exp(-0.83932597*(-3.192 + i6)^2)*exp(- + 0.511069048*(-4.455 + i7)^2) + 3.826836284*exp(-44.17360697*(-0.4364 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7394 + 0.1*i2)^2)*exp(-12.16588682*(-0.4485 + + 0.1*i3)^2)*exp(-0.410518593*(-1.403 + 0.1*i4)^2)*exp(-1.961388714*(-1.465 + + i5)^2)*exp(-0.83932597*(-3.687 + i6)^2)*exp(-0.511069048*(-4.939 + i7)^2 + ) + 1.298763652*exp(-44.17360697*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-12.16588682*(-0.7273 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.346 + 0.1*i4)^2)*exp(-1.961388714*(-1.01 + i5)^2)*exp(-0.83932597*(- + 3.333 + i6)^2)*exp(-0.511069048*(-4.364 + i7)^2) + 3.106679051*exp(- + 44.17360697*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(-0.7152 + 0.1*i2)^2)* + exp(-12.16588682*(-0.703 + 0.1*i3)^2)*exp(-0.410518593*(-1.209 + 0.1*i4)^2) + *exp(-1.961388714*(-1.354 + i5)^2)*exp(-0.83932597*(-3.01 + i6)^2)*exp(- + 0.511069048*(-2.758 + i7)^2) - 1.447889242*exp(-44.17360697*(-0.5152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)*exp(-12.16588682*(-0.503 + + 0.1*i3)^2)*exp(-0.410518593*(-0.7566 + 0.1*i4)^2)*exp(-1.961388714*(-1.424 + + i5)^2)*exp(-0.83932597*(-3.848 + i6)^2)*exp(-0.511069048*(-4.576 + i7)^2 + ) + 1.041465905*exp(-44.17360697*(-0.5758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5152 + 0.1*i2)^2)*exp(-12.16588682*(-0.4303 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.8697 + 0.1*i4)^2)*exp(-1.961388714*(-1.374 + i5)^2)*exp(-0.83932597*(- + 3.414 + i6)^2)*exp(-0.511069048*(-3.061 + i7)^2) + 0.57676004*exp(- + 44.17360697*(-0.3939 + 0.1*i1)^2)*exp(-12.56111847*(-0.7091 + 0.1*i2)^2)* + exp(-12.16588682*(-0.4242 + 0.1*i3)^2)*exp(-0.410518593*(-0.8293 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.434 + i5)^2)*exp(-0.83932597*(-3.121 + i6)^2)*exp(- + 0.511069048*(-4.394 + i7)^2) - 2.491136463*exp(-44.17360697*(-0.403 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5333 + 0.1*i2)^2)*exp(-12.16588682*(-0.5152 + + 0.1*i3)^2)*exp(-0.410518593*(-1.233 + 0.1*i4)^2)*exp(-1.961388714*(-1.889 + + i5)^2)*exp(-0.83932597*(-3.172 + i6)^2)*exp(-0.511069048*(-4.545 + i7)^2 + ) + 10.33814515*exp(-44.17360697*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-12.16588682*(-0.4606 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.144 + 0.1*i4)^2)*exp(-1.961388714*(-1.879 + i5)^2)*exp(-0.83932597*(- + 3.343 + i6)^2)*exp(-0.511069048*(-2.152 + i7)^2) + 5.391326305*exp(- + 44.17360697*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(-0.8242 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6545 + 0.1*i3)^2)*exp(-0.410518593*(-1.411 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.525 + i5)^2)*exp(-0.83932597*(-3.04 + i6)^2)*exp(- + 0.511069048*(-2.273 + i7)^2) + 1.058406055*exp(-44.17360697*(-0.4545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.503 + 0.1*i2)^2)*exp(-12.16588682*(-0.7152 + + 0.1*i3)^2)*exp(-0.410518593*(-0.797 + 0.1*i4)^2)*exp(-1.961388714*(-1.798 + + i5)^2)*exp(-0.83932597*(-3.424 + i6)^2)*exp(-0.511069048*(-4.97 + i7)^2) + + 0.937488467*exp(-44.17360697*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8 + 0.1*i2)^2)*exp(-12.16588682*(-0.9394 + 0.1*i3)^2)*exp(-0.410518593*(- + 0.8212 + 0.1*i4)^2)*exp(-1.961388714*(-1.101 + i5)^2)*exp(-0.83932597*(- + 3.535 + i6)^2)*exp(-0.511069048*(-2.909 + i7)^2) - 1.432336545*exp(- + 44.17360697*(-0.5818 + 0.1*i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6364 + 0.1*i3)^2)*exp(-0.410518593*(-1.435 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.313 + i5)^2)*exp(-0.83932597*(-3.576 + i6)^2)*exp(- + 0.511069048*(-3.212 + i7)^2) + 12.77460556*exp(-44.17360697*(-0.4485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-12.16588682*(-0.6 + 0.1* + i3)^2)*exp(-0.410518593*(-0.9505 + 0.1*i4)^2)*exp(-1.961388714*(-1.909 + i5 + )^2)*exp(-0.83932597*(-3.051 + i6)^2)*exp(-0.511069048*(-3.97 + i7)^2) - + 11.06895312*exp(-44.17360697*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8788 + 0.1*i2)^2)*exp(-12.16588682*(-0.4727 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.7646 + 0.1*i4)^2)*exp(-1.961388714*(-1.293 + i5)^2)*exp(-0.83932597*(- + 3.616 + i6)^2)*exp(-0.511069048*(-3.273 + i7)^2) - 6.777378805*exp(- + 44.17360697*(-0.3515 + 0.1*i1)^2)*exp(-12.56111847*(-0.9576 + 0.1*i2)^2)* + exp(-12.16588682*(-0.8182 + 0.1*i3)^2)*exp(-0.410518593*(-0.7485 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.768 + i5)^2)*exp(-0.83932597*(-3.505 + i6)^2)*exp(- + 0.511069048*(-3.394 + i7)^2) - 4.072005386*exp(-44.17360697*(-0.4061 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6667 + 0.1*i2)^2)*exp(-12.16588682*(-0.9576 + + 0.1*i3)^2)*exp(-0.410518593*(-1.096 + 0.1*i4)^2)*exp(-1.961388714*(-1.131 + + i5)^2)*exp(-0.83932597*(-3.071 + i6)^2)*exp(-0.511069048*(-4.242 + i7)^2 + ) + 0.669000431*exp(-44.17360697*(-0.5788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6545 + 0.1*i2)^2)*exp(-12.16588682*(-0.7697 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.9101 + 0.1*i4)^2)*exp(-1.961388714*(-1.97 + i5)^2)*exp(-0.83932597*(- + 3.162 + i6)^2)*exp(-0.511069048*(-3.364 + i7)^2) - 4.576479217*exp(- + 44.17360697*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(-0.9818 + 0.1*i2)^2)* + exp(-12.16588682*(-0.9879 + 0.1*i3)^2)*exp(-0.410518593*(-1.193 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.586 + i5)^2)*exp(-0.83932597*(-3.798 + i6)^2)*exp(- + 0.511069048*(-3.03 + i7)^2) - 0.401491627*exp(-44.17360697*(-0.3182 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5697 + 0.1*i2)^2)*exp(-12.16588682*(-0.7091 + + 0.1*i3)^2)*exp(-0.410518593*(-1.217 + 0.1*i4)^2)*exp(-1.961388714*(-1.061 + + i5)^2)*exp(-0.83932597*(-3.646 + i6)^2)*exp(-0.511069048*(-2.455 + i7)^2 + ) + 3.903370216*exp(-44.17360697*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-12.16588682*(-0.5818 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.468 + 0.1*i4)^2)*exp(-1.961388714*(-1.03 + i5)^2)*exp(-0.83932597*(- + 3.455 + i6)^2)*exp(-0.511069048*(-3.242 + i7)^2) - 0.897928522*exp(- + 44.17360697*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(-0.6303 + 0.1*i2)^2)* + exp(-12.16588682*(-0.5091 + 0.1*i3)^2)*exp(-0.410518593*(-1.266 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.303 + i5)^2)*exp(-0.83932597*(-3.899 + i6)^2)*exp(- + 0.511069048*(-3.909 + i7)^2) - 1.243470318*exp(-44.17360697*(-0.5939 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6727 + 0.1*i2)^2)*exp(-12.16588682*(-0.7758 + + 0.1*i3)^2)*exp(-0.410518593*(-1.249 + 0.1*i4)^2)*exp(-1.961388714*(-1.818 + + i5)^2)*exp(-0.83932597*(-3.586 + i6)^2)*exp(-0.511069048*(-4.848 + i7)^2 + ) - 7.572383285*exp(-44.17360697*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-12.16588682*(-0.5697 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.452 + 0.1*i4)^2)*exp(-1.961388714*(-1.949 + i5)^2)*exp(-0.83932597*(- + 3.253 + i6)^2)*exp(-0.511069048*(-3.606 + i7)^2) + 5.855463607*exp(- + 44.17360697*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(-0.9636 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6182 + 0.1*i3)^2)*exp(-0.410518593*(-0.7242 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.495 + i5)^2)*exp(-0.83932597*(-3.475 + i6)^2)*exp(- + 0.511069048*(-3.818 + i7)^2) + 0.235023154*exp(-44.17360697*(-0.3364 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5091 + 0.1*i2)^2)*exp(-12.16588682*(-0.697 + + 0.1*i3)^2)*exp(-0.410518593*(-0.7323 + 0.1*i4)^2)*exp(-1.961388714*(-1.182 + + i5)^2)*exp(-0.83932597*(-3.313 + i6)^2)*exp(-0.511069048*(-3.727 + i7)^2 + ) - 0.90459177*exp(-44.17360697*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6061 + 0.1*i2)^2)*exp(-12.16588682*(-0.8485 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.476 + 0.1*i4)^2)*exp(-1.961388714*(-1.505 + i5)^2)*exp(-0.83932597*(- + 3.364 + i6)^2)*exp(-0.511069048*(-5 + i7)^2) + 1.649122879*exp(-44.17360697 + *(-0.3697 + 0.1*i1)^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(- + 12.16588682*(-0.5455 + 0.1*i3)^2)*exp(-0.410518593*(-0.902 + 0.1*i4)^2)* + exp(-1.961388714*(-1.788 + i5)^2)*exp(-0.83932597*(-3.697 + i6)^2)*exp(- + 0.511069048*(-4.909 + i7)^2) + 3.602883838*exp(-44.17360697*(-0.5121 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5758 + 0.1*i2)^2)*exp(-12.16588682*(-0.9091 + + 0.1*i3)^2)*exp(-0.410518593*(-0.8051 + 0.1*i4)^2)*exp(-1.961388714*(-1.152 + + i5)^2)*exp(-0.83932597*(-3.667 + i6)^2)*exp(-0.511069048*(-4.485 + i7)^2 + ) + 1.67057185*exp(-44.17360697*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-12.16588682*(-0.9515 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.33 + 0.1*i4)^2)*exp(-1.961388714*(-1.162 + i5)^2)*exp(-0.83932597*(- + 3.354 + i6)^2)*exp(-0.511069048*(-2.182 + i7)^2) - 11.31132838*exp(- + 44.17360697*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(-0.6848 + 0.1*i2)^2)* + exp(-12.16588682*(-0.4848 + 0.1*i3)^2)*exp(-0.410518593*(-0.7 + 0.1*i4)^2)* + exp(-1.961388714*(-1.939 + i5)^2)*exp(-0.83932597*(-3.515 + i6)^2)*exp(- + 0.511069048*(-3.333 + i7)^2) + 1.772039034*exp(-44.17360697*(-0.3152 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5879 + 0.1*i2)^2)*exp(-12.16588682*(-0.8667 + + 0.1*i3)^2)*exp(-0.410518593*(-1.031 + 0.1*i4)^2)*exp(-1.961388714*(-1.485 + + i5)^2)*exp(-0.83932597*(-3.182 + i6)^2)*exp(-0.511069048*(-2.242 + i7)^2 + ) + 8.857390835*exp(-44.17360697*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-12.16588682*(-0.4061 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.201 + 0.1*i4)^2)*exp(-1.961388714*(-1.283 + i5)^2)*exp(-0.83932597*(- + 3.949 + i6)^2)*exp(-0.511069048*(-3 + i7)^2) - 4.880005036*exp(-44.17360697 + *(-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2)^2)*exp(- + 12.16588682*(-0.8788 + 0.1*i3)^2)*exp(-0.410518593*(-1.072 + 0.1*i4)^2)* + exp(-1.961388714*(-1.081 + i5)^2)*exp(-0.83932597*(-3.303 + i6)^2)*exp(- + 0.511069048*(-3.545 + i7)^2) - 17.64359895*exp(-44.17360697*(-0.4424 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-12.16588682*(-0.5333 + + 0.1*i3)^2)*exp(-0.410518593*(-1.484 + 0.1*i4)^2)*exp(-1.961388714*(-1.677 + + i5)^2)*exp(-0.83932597*(-3.737 + i6)^2)*exp(-0.511069048*(-2.333 + i7)^2 + ) + 0.849325198*exp(-44.17360697*(-0.397 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5939 + 0.1*i2)^2)*exp(-12.16588682*(-0.8545 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.363 + 0.1*i4)^2)*exp(-1.961388714*(-1.869 + i5)^2)*exp(-0.83932597*(- + 3.02 + i6)^2)*exp(-0.511069048*(-3.515 + i7)^2) - 2.383414455*exp(- + 44.17360697*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(-0.4788 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6121 + 0.1*i3)^2)*exp(-0.410518593*(-0.8939 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.051 + i5)^2)*exp(-0.83932597*(-3.879 + i6)^2)*exp(- + 0.511069048*(-3.182 + i7)^2) - 0.598388777*exp(-44.17360697*(-0.3545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4364 + 0.1*i2)^2)*exp(-12.16588682*(-0.7333 + + 0.1*i3)^2)*exp(-0.410518593*(-0.9828 + 0.1*i4)^2)*exp(-1.961388714*(-1.99 + + i5)^2)*exp(-0.83932597*(-3.495 + i6)^2)*exp(-0.511069048*(-2.97 + i7)^2) + - 5.440625219*exp(-44.17360697*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-12.16588682*(-0.6727 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.7889 + 0.1*i4)^2)*exp(-1.961388714*(-1.121 + i5)^2)*exp(-0.83932597*(- + 3.091 + i6)^2)*exp(-0.511069048*(-4.121 + i7)^2) + 4.977473314*exp(- + 44.17360697*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(-0.7879 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6909 + 0.1*i3)^2)*exp(-0.410518593*(-0.7162 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.475 + i5)^2)*exp(-0.83932597*(-3.131 + i6)^2)*exp(- + 0.511069048*(-2.212 + i7)^2) + 6.092674793*exp(-44.17360697*(-0.4394 + 0.1* + i1)^2)*exp(-12.56111847*(-0.897 + 0.1*i2)^2)*exp(-12.16588682*(-0.9758 + + 0.1*i3)^2)*exp(-0.410518593*(-1.023 + 0.1*i4)^2)*exp(-1.961388714*(-1.667 + + i5)^2)*exp(-0.83932597*(-3.061 + i6)^2)*exp(-0.511069048*(-2.879 + i7)^2 + ) + 3.808650882*exp(-44.17360697*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5394 + 0.1*i2)^2)*exp(-12.16588682*(-0.9152 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.5 + 0.1*i4)^2)*exp(-1.961388714*(-1.596 + i5)^2)*exp(-0.83932597*(- + 3.636 + i6)^2)*exp(-0.511069048*(-2.727 + i7)^2) + 0.851026247*exp(- + 44.17360697*(-0.5545 + 0.1*i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)* + exp(-12.16588682*(-0.7212 + 0.1*i3)^2)*exp(-0.410518593*(-1.08 + 0.1*i4)^2) + *exp(-1.961388714*(-1.838 + i5)^2)*exp(-0.83932597*(-3.434 + i6)^2)*exp(- + 0.511069048*(-2.364 + i7)^2) + 10.36834191*exp(-44.17360697*(-0.3758 + 0.1* + i1)^2)*exp(-12.56111847*(-0.8667 + 0.1*i2)^2)*exp(-12.16588682*(-0.5394 + + 0.1*i3)^2)*exp(-0.410518593*(-1.015 + 0.1*i4)^2)*exp(-1.961388714*(-1.919 + + i5)^2)*exp(-0.83932597*(-3.909 + i6)^2)*exp(-0.511069048*(-2.939 + i7)^2 + ) + 22.55293841*exp(-44.17360697*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-12.16588682*(-0.5212 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.9343 + 0.1*i4)^2)*exp(-1.961388714*(-1.808 + i5)^2)*exp(-0.83932597*(- + 3.212 + i6)^2)*exp(-0.511069048*(-2.545 + i7)^2) - 3.472047623*exp(- + 44.17360697*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(-0.9333 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6485 + 0.1*i3)^2)*exp(-0.410518593*(-1.322 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.394 + i5)^2)*exp(-0.83932597*(-3.081 + i6)^2)*exp(- + 0.511069048*(-4.697 + i7)^2) - 1.134449846*exp(-44.17360697*(-0.4576 + 0.1* + i1)^2)*exp(-12.56111847*(-0.5455 + 0.1*i2)^2)*exp(-12.16588682*(-0.9939 + + 0.1*i3)^2)*exp(-0.410518593*(-1.169 + 0.1*i4)^2)*exp(-1.961388714*(-1.98 + + i5)^2)*exp(-0.83932597*(-3.626 + i6)^2)*exp(-0.511069048*(-3.939 + i7)^2) + + 2.383708357*exp(-44.17360697*(-0.3242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9212 + 0.1*i2)^2)*exp(-12.16588682*(-0.4667 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.314 + 0.1*i4)^2)*exp(-1.961388714*(-1.697 + i5)^2)*exp(-0.83932597*(- + 3.374 + i6)^2)*exp(-0.511069048*(-3.758 + i7)^2) + 11.88741132*exp(- + 44.17360697*(-0.5697 + 0.1*i1)^2)*exp(-12.56111847*(-0.4182 + 0.1*i2)^2)* + exp(-12.16588682*(-0.7394 + 0.1*i3)^2)*exp(-0.410518593*(-0.8374 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.717 + i5)^2)*exp(-0.83932597*(-3.727 + i6)^2)*exp(- + 0.511069048*(-3.303 + i7)^2) + 0.939332244*exp(-44.17360697*(-0.3727 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9879 + 0.1*i2)^2)*exp(-12.16588682*(-0.6848 + + 0.1*i3)^2)*exp(-0.410518593*(-1.104 + 0.1*i4)^2)*exp(-1.961388714*(-1.343 + + i5)^2)*exp(-0.83932597*(-3.606 + i6)^2)*exp(-0.511069048*(-2 + i7)^2) + + 7.054261266*exp(-44.17360697*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4667 + 0.1*i2)^2)*exp(-12.16588682*(-0.8303 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.8859 + 0.1*i4)^2)*exp(-1.961388714*(-1.111 + i5)^2)*exp(-0.83932597*(- + 3.283 + i6)^2)*exp(-0.511069048*(-2.576 + i7)^2) - 8.195555149*exp(- + 44.17360697*(-0.3485 + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6606 + 0.1*i3)^2)*exp(-0.410518593*(-0.999 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.172 + i5)^2)*exp(-0.83932597*(-3.03 + i6)^2)*exp(- + 0.511069048*(-3.152 + i7)^2) - 0.20131355*exp(-44.17360697*(-0.5848 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-12.16588682*(-0.8 + 0.1* + i3)^2)*exp(-0.410518593*(-1.298 + 0.1*i4)^2)*exp(-1.961388714*(-1.848 + i5) + ^2)*exp(-0.83932597*(-3.828 + i6)^2)*exp(-0.511069048*(-2.636 + i7)^2) - + 7.287116753*exp(-44.17360697*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5212 + 0.1*i2)^2)*exp(-12.16588682*(-0.497 + 0.1*i3)^2)*exp(-0.410518593* + (-1.395 + 0.1*i4)^2)*exp(-1.961388714*(-1.636 + i5)^2)*exp(-0.83932597*(- + 3.384 + i6)^2)*exp(-0.511069048*(-2.697 + i7)^2) - 0.397358242*exp(- + 44.17360697*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(-0.6242 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6788 + 0.1*i3)^2)*exp(-0.410518593*(-1.338 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.859 + i5)^2)*exp(-0.83932597*(-3.758 + i6)^2)*exp(- + 0.511069048*(-4.273 + i7)^2) - 2.110511291*exp(-44.17360697*(-0.5485 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4545 + 0.1*i2)^2)*exp(-12.16588682*(-0.8848 + + 0.1*i3)^2)*exp(-0.410518593*(-1.112 + 0.1*i4)^2)*exp(-1.961388714*(-1.515 + + i5)^2)*exp(-0.83932597*(-3.101 + i6)^2)*exp(-0.511069048*(-4.333 + i7)^2 + ) + 1.878218463*exp(-44.17360697*(-0.4636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7939 + 0.1*i2)^2)*exp(-12.16588682*(-0.7879 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.492 + 0.1*i4)^2)*exp(-1.961388714*(-1.707 + i5)^2)*exp(-0.83932597*(- + 3.97 + i6)^2)*exp(-0.511069048*(-4.03 + i7)^2) - 1.872225499*exp(- + 44.17360697*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(-0.5818 + 0.1*i2)^2)* + exp(-12.16588682*(-0.7455 + 0.1*i3)^2)*exp(-0.410518593*(-0.7404 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.687 + i5)^2)*exp(-0.83932597*(-3.929 + i6)^2)*exp(- + 0.511069048*(-3.788 + i7)^2) + 0.060475669*exp(-44.17360697*(-0.6 + 0.1*i1) + ^2)*exp(-12.56111847*(-0.7515 + 0.1*i2)^2)*exp(-12.16588682*(-0.9455 + 0.1* + i3)^2)*exp(-0.410518593*(-0.8616 + 0.1*i4)^2)*exp(-1.961388714*(-1.384 + i5 + )^2)*exp(-0.83932597*(-3.596 + i6)^2)*exp(-0.511069048*(-2.848 + i7)^2) + + 1.001793111*exp(-44.17360697*(-0.3273 + 0.1*i1)^2)*exp(-12.56111847*(-0.4 + + 0.1*i2)^2)*exp(-12.16588682*(-0.897 + 0.1*i3)^2)*exp(-0.410518593*(-1.12 + + 0.1*i4)^2)*exp(-1.961388714*(-1.404 + i5)^2)*exp(-0.83932597*(-3.525 + + i6)^2)*exp(-0.511069048*(-4.182 + i7)^2) - 5.413330587*exp(-44.17360697*(- + 0.5212 + 0.1*i1)^2)*exp(-12.56111847*(-0.497 + 0.1*i2)^2)*exp(-12.16588682* + (-0.8909 + 0.1*i3)^2)*exp(-0.410518593*(-1.185 + 0.1*i4)^2)*exp(- + 1.961388714*(-1.737 + i5)^2)*exp(-0.83932597*(-3.293 + i6)^2)*exp(- + 0.511069048*(-2.091 + i7)^2) + 0.507765189*exp(-44.17360697*(-0.4303 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4606 + 0.1*i2)^2)*exp(-12.16588682*(-0.6242 + + 0.1*i3)^2)*exp(-0.410518593*(-1.225 + 0.1*i4)^2)*exp(-1.961388714*(-1.727 + + i5)^2)*exp(-0.83932597*(-3.96 + i6)^2)*exp(-0.511069048*(-2.424 + i7)^2) + + 1.232852514*exp(-44.17360697*(-0.3121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8909 + 0.1*i2)^2)*exp(-12.16588682*(-0.903 + 0.1*i3)^2)*exp(-0.410518593* + (-1.387 + 0.1*i4)^2)*exp(-1.961388714*(-1.414 + i5)^2)*exp(-0.83932597*(- + 3.323 + i6)^2)*exp(-0.511069048*(-3.636 + i7)^2) - 1.783646847*exp(- + 44.17360697*(-0.3424 + 0.1*i1)^2)*exp(-12.56111847*(-0.4485 + 0.1*i2)^2)* + exp(-12.16588682*(-0.4182 + 0.1*i3)^2)*exp(-0.410518593*(-0.9747 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.566 + i5)^2)*exp(-0.83932597*(-3.657 + i6)^2)*exp(- + 0.511069048*(-3.879 + i7)^2) - 4.071413468*exp(-44.17360697*(-0.497 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7697 + 0.1*i2)^2)*exp(-12.16588682*(-0.7939 + + 0.1*i3)^2)*exp(-0.410518593*(-1.274 + 0.1*i4)^2)*exp(-1.961388714*(-1.141 + + i5)^2)*exp(-0.83932597*(-4 + i6)^2)*exp(-0.511069048*(-2.515 + i7)^2) + + 3.845880111*exp(-44.17360697*(-0.4939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5576 + 0.1*i2)^2)*exp(-12.16588682*(-0.4545 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.177 + 0.1*i4)^2)*exp(-1.961388714*(-1.96 + i5)^2)*exp(-0.83932597*(- + 3.818 + i6)^2)*exp(-0.511069048*(-4 + i7)^2) - 2.405021885*exp(-44.17360697 + *(-0.5 + 0.1*i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2)*exp(-12.16588682 + *(-0.4 + 0.1*i3)^2)*exp(-0.410518593*(-1.088 + 0.1*i4)^2)*exp(-1.961388714* + (-1.455 + i5)^2)*exp(-0.83932597*(-3.242 + i6)^2)*exp(-0.511069048*(-2.788 + + i7)^2) - 1.931732989*exp(-44.17360697*(-0.4182 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9455 + 0.1*i2)^2)*exp(-12.16588682*(-0.8364 + 0.1*i3)^2)* + exp(-0.410518593*(-1.258 + 0.1*i4)^2)*exp(-1.961388714*(-1.929 + i5)^2)* + exp(-0.83932597*(-3.465 + i6)^2)*exp(-0.511069048*(-4.606 + i7)^2) + + 1.47669157*exp(-44.17360697*(-0.3636 + 0.1*i1)^2)*exp(-12.56111847*(-0.7818 + + 0.1*i2)^2)*exp(-12.16588682*(-1 + 0.1*i3)^2)*exp(-0.410518593*(-0.9909 + + 0.1*i4)^2)*exp(-1.961388714*(-1.535 + i5)^2)*exp(-0.83932597*(-3.768 + + i6)^2)*exp(-0.511069048*(-4.667 + i7)^2) - 0.355186678*exp(-44.17360697*(- + 0.4091 + 0.1*i1)^2)*exp(-12.56111847*(-0.7212 + 0.1*i2)^2)*exp(-12.16588682 + *(-0.9273 + 0.1*i3)^2)*exp(-0.410518593*(-1.371 + 0.1*i4)^2)*exp(- + 1.961388714*(-1.04 + i5)^2)*exp(-0.83932597*(-3.747 + i6)^2)*exp(- + 0.511069048*(-4.152 + i7)^2) + 0.031087087*exp(-44.17360697*(-0.4455 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4242 + 0.1*i2)^2)*exp(-12.16588682*(-0.5879 + + 0.1*i3)^2)*exp(-0.410518593*(-0.9182 + 0.1*i4)^2)*exp(-1.961388714*(-1.626 + + i5)^2)*exp(-0.83932597*(-3 + i6)^2)*exp(-0.511069048*(-3.091 + i7)^2) - + 2.827424248*exp(-44.17360697*(-0.3667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8424 + 0.1*i2)^2)*exp(-12.16588682*(-0.8242 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.29 + 0.1*i4)^2)*exp(-1.961388714*(-2 + i5)^2)*exp(-0.83932597*(-3.485 + + i6)^2)*exp(-0.511069048*(-2.485 + i7)^2) + 2.401661339*exp(-44.17360697* + (-0.4 + 0.1*i1)^2)*exp(-12.56111847*(-0.6 + 0.1*i2)^2)*exp(-12.16588682*(- + 0.4364 + 0.1*i3)^2)*exp(-0.410518593*(-1.056 + 0.1*i4)^2)*exp(-1.961388714* + (-1.091 + i5)^2)*exp(-0.83932597*(-3.202 + i6)^2)*exp(-0.511069048*(-2.606 + + i7)^2) - 1.435946257*exp(-44.17360697*(-0.5303 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8545 + 0.1*i2)^2)*exp(-12.16588682*(-0.9212 + 0.1*i3)^2)* + exp(-0.410518593*(-0.8778 + 0.1*i4)^2)*exp(-1.961388714*(-1.616 + i5)^2)* + exp(-0.83932597*(-3.232 + i6)^2)*exp(-0.511069048*(-4.727 + i7)^2) - + 3.293301547*exp(-44.17360697*(-0.3879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5515 + 0.1*i2)^2)*exp(-12.16588682*(-0.5576 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.7808 + 0.1*i4)^2)*exp(-1.961388714*(-1.444 + i5)^2)*exp(-0.83932597*(- + 3.677 + i6)^2)*exp(-0.511069048*(-2.03 + i7)^2) + 0.818317436*exp(- + 44.17360697*(-0.4515 + 0.1*i1)^2)*exp(-12.56111847*(-0.7273 + 0.1*i2)^2)* + exp(-12.16588682*(-0.8727 + 0.1*i3)^2)*exp(-0.410518593*(-0.8131 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1.828 + i5)^2)*exp(-0.83932597*(-3.717 + i6)^2)*exp(- + 0.511069048*(-2.061 + i7)^2) + 2.10338037*exp(-44.17360697*(-0.4818 + 0.1* + i1)^2)*exp(-12.56111847*(-0.4121 + 0.1*i2)^2)*exp(-12.16588682*(-0.5515 + + 0.1*i3)^2)*exp(-0.410518593*(-1.064 + 0.1*i4)^2)*exp(-1.961388714*(-1.202 + + i5)^2)*exp(-0.83932597*(-3.404 + i6)^2)*exp(-0.511069048*(-4.788 + i7)^2 + ) + 0.006645558*exp(-44.17360697*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-12.16588682*(-0.9636 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.443 + 0.1*i4)^2)*exp(-1.961388714*(-1.606 + i5)^2)*exp(-0.83932597*(- + 3.263 + i6)^2)*exp(-0.511069048*(-3.667 + i7)^2) + 0.5944572*exp(- + 44.17360697*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(-0.4727 + 0.1*i2)^2)* + exp(-12.16588682*(-0.7818 + 0.1*i3)^2)*exp(-0.410518593*(-1.136 + 0.1*i4)^2 + )*exp(-1.961388714*(-1.545 + i5)^2)*exp(-0.83932597*(-3.99 + i6)^2)*exp(- + 0.511069048*(-4.758 + i7)^2) + 0.821285682*exp(-44.17360697*(-0.5606 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7758 + 0.1*i2)^2)*exp(-12.16588682*(-0.5273 + + 0.1*i3)^2)*exp(-0.410518593*(-0.9263 + 0.1*i4)^2)*exp(-1.961388714*(-1.576 + + i5)^2)*exp(-0.83932597*(-3.919 + i6)^2)*exp(-0.511069048*(-2.394 + i7)^2 + ) + 0.212521878*exp(-44.17360697*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-12.16588682*(-0.9818 + 0.1*i3)^2)*exp(-0.410518593 + *(-0.7081 + 0.1*i4)^2)*exp(-1.961388714*(-1.657 + i5)^2)*exp(-0.83932597*(- + 3.273 + i6)^2)*exp(-0.511069048*(-3.455 + i7)^2) - 1.494604243*exp(- + 44.17360697*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(-0.8303 + 0.1*i2)^2)* + exp(-12.16588682*(-0.6061 + 0.1*i3)^2)*exp(-0.410518593*(-0.9424 + 0.1*i4)^ + 2)*exp(-1.961388714*(-1 + i5)^2)*exp(-0.83932597*(-3.545 + i6)^2)*exp(- + 0.511069048*(-2.303 + i7)^2) + 4.310802849*exp(-44.17360697*(-0.3788 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9152 + 0.1*i2)^2)*exp(-12.16588682*(-0.7515 + + 0.1*i3)^2)*exp(-0.410518593*(-0.8455 + 0.1*i4)^2)*exp(-1.961388714*(-1.212 + + i5)^2)*exp(-0.83932597*(-3.394 + i6)^2)*exp(-0.511069048*(-4.879 + i7)^2 + ) + 0.299995466*exp(-44.17360697*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-12.16588682*(-0.4424 + 0.1*i3)^2)*exp(-0.410518593 + *(-1.047 + 0.1*i4)^2)*exp(-1.961388714*(-1.02 + i5)^2)*exp(-0.83932597*(- + 3.556 + i6)^2)*exp(-0.511069048*(-4.303 + i7)^2)) + x8 >= 6.326087; + + -(0.646078605*exp(-46.35341989*(-0.5364 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9697 + 0.1*i2)^2)*exp(-7.456331527*(-0.4909 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.161 + 0.1*i4)^2)*exp(-0.623174158*(-1.778 + i5)^2)*exp(-0.495169956*(- + 3.778 + i6)^2)*exp(-0.457707049*(-4.091 + i7)^2) - 5.347086472*exp(- + 46.35341989*(-0.303 + 0.1*i1)^2)*exp(-12.6084759*(-0.697 + 0.1*i2)^2)*exp(- + 7.456331527*(-0.8061 + 0.1*i3)^2)*exp(-0.252756858*(-0.9586 + 0.1*i4)^2)* + exp(-0.623174158*(-1.758 + i5)^2)*exp(-0.495169956*(-3.141 + i6)^2)*exp(- + 0.457707049*(-4.424 + i7)^2) + 7.789488979*exp(-46.35341989*(-0.503 + 0.1* + i1)^2)*exp(-12.6084759*(-0.6182 + 0.1*i2)^2)*exp(-7.456331527*(-0.4121 + + 0.1*i3)^2)*exp(-0.252756858*(-1.419 + 0.1*i4)^2)*exp(-0.623174158*(-1.333 + + i5)^2)*exp(-0.495169956*(-3.152 + i6)^2)*exp(-0.457707049*(-3.697 + i7)^ + 2) + 9.070790798*exp(-46.35341989*(-0.4606 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.903 + 0.1*i2)^2)*exp(-7.456331527*(-0.7576 + 0.1*i3)^2)*exp(-0.252756858* + (-0.7727 + 0.1*i4)^2)*exp(-0.623174158*(-1.242 + i5)^2)*exp(-0.495169956*(- + 3.98 + i6)^2)*exp(-0.457707049*(-3.424 + i7)^2) - 9.266760078*exp(- + 46.35341989*(-0.3 + 0.1*i1)^2)*exp(-12.6084759*(-0.7636 + 0.1*i2)^2)*exp(- + 7.456331527*(-0.8606 + 0.1*i3)^2)*exp(-0.252756858*(-1.153 + 0.1*i4)^2)* + exp(-0.623174158*(-1.556 + i5)^2)*exp(-0.495169956*(-3.939 + i6)^2)*exp(- + 0.457707049*(-2.818 + i7)^2) + 3.980322904*exp(-46.35341989*(-0.5879 + 0.1* + i1)^2)*exp(-12.6084759*(-0.703 + 0.1*i2)^2)*exp(-7.456331527*(-0.4788 + 0.1 + *i3)^2)*exp(-0.252756858*(-1.039 + 0.1*i4)^2)*exp(-0.623174158*(-1.646 + i5 + )^2)*exp(-0.495169956*(-3.222 + i6)^2)*exp(-0.457707049*(-4.636 + i7)^2) - + 0.630018016*exp(-46.35341989*(-0.4121 + 0.1*i1)^2)*exp(-12.6084759*(-0.4424 + + 0.1*i2)^2)*exp(-7.456331527*(-0.5939 + 0.1*i3)^2)*exp(-0.252756858*(- + 1.46 + 0.1*i4)^2)*exp(-0.623174158*(-1.232 + i5)^2)*exp(-0.495169956*(- + 3.788 + i6)^2)*exp(-0.457707049*(-3.848 + i7)^2) + 7.205927512*exp(- + 46.35341989*(-0.5576 + 0.1*i1)^2)*exp(-12.6084759*(-0.8848 + 0.1*i2)^2)* + exp(-7.456331527*(-0.8121 + 0.1*i3)^2)*exp(-0.252756858*(-1.128 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.263 + i5)^2)*exp(-0.495169956*(-3.808 + i6)^2)*exp(- + 0.457707049*(-4.818 + i7)^2) - 7.647155806*exp(-46.35341989*(-0.4273 + 0.1* + i1)^2)*exp(-12.6084759*(-0.4848 + 0.1*i2)^2)*exp(-7.456331527*(-0.9697 + + 0.1*i3)^2)*exp(-0.252756858*(-0.9667 + 0.1*i4)^2)*exp(-0.623174158*(-1.364 + + i5)^2)*exp(-0.495169956*(-3.869 + i6)^2)*exp(-0.457707049*(-2.667 + i7)^ + 2) - 9.446073381*exp(-46.35341989*(-0.5455 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4061 + 0.1*i2)^2)*exp(-7.456331527*(-0.6303 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.427 + 0.1*i4)^2)*exp(-0.623174158*(-1.747 + i5)^2)*exp(-0.495169956*(- + 3.444 + i6)^2)*exp(-0.457707049*(-3.576 + i7)^2) - 1.97683266*exp(- + 46.35341989*(-0.5394 + 0.1*i1)^2)*exp(-12.6084759*(-0.5273 + 0.1*i2)^2)* + exp(-7.456331527*(-0.5636 + 0.1*i3)^2)*exp(-0.252756858*(-1.355 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.253 + i5)^2)*exp(-0.495169956*(-3.566 + i6)^2)*exp(- + 0.457707049*(-2.121 + i7)^2) - 3.116228726*exp(-46.35341989*(-0.5273 + 0.1* + i1)^2)*exp(-12.6084759*(-0.8121 + 0.1*i2)^2)*exp(-7.456331527*(-0.8424 + + 0.1*i3)^2)*exp(-0.252756858*(-0.8535 + 0.1*i4)^2)*exp(-0.623174158*(-1.899 + + i5)^2)*exp(-0.495169956*(-3.889 + i6)^2)*exp(-0.457707049*(-4.061 + i7)^ + 2) - 5.764009942*exp(-46.35341989*(-0.5727 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4909 + 0.1*i2)^2)*exp(-7.456331527*(-0.9333 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.306 + 0.1*i4)^2)*exp(-0.623174158*(-1.273 + i5)^2)*exp(-0.495169956*(- + 3.707 + i6)^2)*exp(-0.457707049*(-3.485 + i7)^2) + 5.413086517*exp(- + 46.35341989*(-0.3091 + 0.1*i1)^2)*exp(-12.6084759*(-0.6364 + 0.1*i2)^2)* + exp(-7.456331527*(-0.5758 + 0.1*i3)^2)*exp(-0.252756858*(-1.282 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.222 + i5)^2)*exp(-0.495169956*(-3.192 + i6)^2)*exp(- + 0.457707049*(-4.455 + i7)^2) + 6.439645442*exp(-46.35341989*(-0.4364 + 0.1* + i1)^2)*exp(-12.6084759*(-0.7394 + 0.1*i2)^2)*exp(-7.456331527*(-0.4485 + + 0.1*i3)^2)*exp(-0.252756858*(-1.403 + 0.1*i4)^2)*exp(-0.623174158*(-1.465 + + i5)^2)*exp(-0.495169956*(-3.687 + i6)^2)*exp(-0.457707049*(-4.939 + i7)^ + 2) + 1.907724085*exp(-46.35341989*(-0.5636 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6485 + 0.1*i2)^2)*exp(-7.456331527*(-0.7273 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.346 + 0.1*i4)^2)*exp(-0.623174158*(-1.01 + i5)^2)*exp(-0.495169956*(- + 3.333 + i6)^2)*exp(-0.457707049*(-4.364 + i7)^2) + 3.705768469*exp(- + 46.35341989*(-0.597 + 0.1*i1)^2)*exp(-12.6084759*(-0.7152 + 0.1*i2)^2)*exp( + -7.456331527*(-0.703 + 0.1*i3)^2)*exp(-0.252756858*(-1.209 + 0.1*i4)^2)* + exp(-0.623174158*(-1.354 + i5)^2)*exp(-0.495169956*(-3.01 + i6)^2)*exp(- + 0.457707049*(-2.758 + i7)^2) + 1.079611586*exp(-46.35341989*(-0.5152 + 0.1* + i1)^2)*exp(-12.6084759*(-0.6606 + 0.1*i2)^2)*exp(-7.456331527*(-0.503 + 0.1 + *i3)^2)*exp(-0.252756858*(-0.7566 + 0.1*i4)^2)*exp(-0.623174158*(-1.424 + + i5)^2)*exp(-0.495169956*(-3.848 + i6)^2)*exp(-0.457707049*(-4.576 + i7)^2) + - 6.576381508*exp(-46.35341989*(-0.5758 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5152 + 0.1*i2)^2)*exp(-7.456331527*(-0.4303 + 0.1*i3)^2)*exp(-0.252756858 + *(-0.8697 + 0.1*i4)^2)*exp(-0.623174158*(-1.374 + i5)^2)*exp(-0.495169956*( + -3.414 + i6)^2)*exp(-0.457707049*(-3.061 + i7)^2) - 10.99100222*exp(- + 46.35341989*(-0.3939 + 0.1*i1)^2)*exp(-12.6084759*(-0.7091 + 0.1*i2)^2)* + exp(-7.456331527*(-0.4242 + 0.1*i3)^2)*exp(-0.252756858*(-0.8293 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.434 + i5)^2)*exp(-0.495169956*(-3.121 + i6)^2)*exp( + -0.457707049*(-4.394 + i7)^2) - 1.810598441*exp(-46.35341989*(-0.403 + 0.1* + i1)^2)*exp(-12.6084759*(-0.5333 + 0.1*i2)^2)*exp(-7.456331527*(-0.5152 + + 0.1*i3)^2)*exp(-0.252756858*(-1.233 + 0.1*i4)^2)*exp(-0.623174158*(-1.889 + + i5)^2)*exp(-0.495169956*(-3.172 + i6)^2)*exp(-0.457707049*(-4.545 + i7)^ + 2) + 13.27175096*exp(-46.35341989*(-0.5061 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6121 + 0.1*i2)^2)*exp(-7.456331527*(-0.4606 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.144 + 0.1*i4)^2)*exp(-0.623174158*(-1.879 + i5)^2)*exp(-0.495169956*(- + 3.343 + i6)^2)*exp(-0.457707049*(-2.152 + i7)^2) + 3.791205556*exp(- + 46.35341989*(-0.4152 + 0.1*i1)^2)*exp(-12.6084759*(-0.8242 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6545 + 0.1*i3)^2)*exp(-0.252756858*(-1.411 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.525 + i5)^2)*exp(-0.495169956*(-3.04 + i6)^2)*exp(- + 0.457707049*(-2.273 + i7)^2) - 0.377369782*exp(-46.35341989*(-0.4545 + 0.1* + i1)^2)*exp(-12.6084759*(-0.503 + 0.1*i2)^2)*exp(-7.456331527*(-0.7152 + 0.1 + *i3)^2)*exp(-0.252756858*(-0.797 + 0.1*i4)^2)*exp(-0.623174158*(-1.798 + i5 + )^2)*exp(-0.495169956*(-3.424 + i6)^2)*exp(-0.457707049*(-4.97 + i7)^2) - + 1.299935856*exp(-46.35341989*(-0.3606 + 0.1*i1)^2)*exp(-12.6084759*(-0.8 + + 0.1*i2)^2)*exp(-7.456331527*(-0.9394 + 0.1*i3)^2)*exp(-0.252756858*(-0.8212 + + 0.1*i4)^2)*exp(-0.623174158*(-1.101 + i5)^2)*exp(-0.495169956*(-3.535 + + i6)^2)*exp(-0.457707049*(-2.909 + i7)^2) + 9.576812829*exp(-46.35341989*(- + 0.5818 + 0.1*i1)^2)*exp(-12.6084759*(-0.9394 + 0.1*i2)^2)*exp(-7.456331527* + (-0.6364 + 0.1*i3)^2)*exp(-0.252756858*(-1.435 + 0.1*i4)^2)*exp(- + 0.623174158*(-1.313 + i5)^2)*exp(-0.495169956*(-3.576 + i6)^2)*exp(- + 0.457707049*(-3.212 + i7)^2) + 23.5699624*exp(-46.35341989*(-0.4485 + 0.1* + i1)^2)*exp(-12.6084759*(-0.9273 + 0.1*i2)^2)*exp(-7.456331527*(-0.6 + 0.1* + i3)^2)*exp(-0.252756858*(-0.9505 + 0.1*i4)^2)*exp(-0.623174158*(-1.909 + i5 + )^2)*exp(-0.495169956*(-3.051 + i6)^2)*exp(-0.457707049*(-3.97 + i7)^2) - + 20.05688476*exp(-46.35341989*(-0.3394 + 0.1*i1)^2)*exp(-12.6084759*(-0.8788 + + 0.1*i2)^2)*exp(-7.456331527*(-0.4727 + 0.1*i3)^2)*exp(-0.252756858*(- + 0.7646 + 0.1*i4)^2)*exp(-0.623174158*(-1.293 + i5)^2)*exp(-0.495169956*(- + 3.616 + i6)^2)*exp(-0.457707049*(-3.273 + i7)^2) - 7.179651064*exp(- + 46.35341989*(-0.3515 + 0.1*i1)^2)*exp(-12.6084759*(-0.9576 + 0.1*i2)^2)* + exp(-7.456331527*(-0.8182 + 0.1*i3)^2)*exp(-0.252756858*(-0.7485 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.768 + i5)^2)*exp(-0.495169956*(-3.505 + i6)^2)*exp( + -0.457707049*(-3.394 + i7)^2) - 7.482742329*exp(-46.35341989*(-0.4061 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.6667 + 0.1*i2)^2)*exp(-7.456331527*(-0.9576 + + 0.1*i3)^2)*exp(-0.252756858*(-1.096 + 0.1*i4)^2)*exp(-0.623174158*(-1.131 + + i5)^2)*exp(-0.495169956*(-3.071 + i6)^2)*exp(-0.457707049*(-4.242 + i7)^ + 2) + 4.97609891*exp(-46.35341989*(-0.5788 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6545 + 0.1*i2)^2)*exp(-7.456331527*(-0.7697 + 0.1*i3)^2)*exp(-0.252756858 + *(-0.9101 + 0.1*i4)^2)*exp(-0.623174158*(-1.97 + i5)^2)*exp(-0.495169956*(- + 3.162 + i6)^2)*exp(-0.457707049*(-3.364 + i7)^2) - 5.159199232*exp(- + 46.35341989*(-0.4788 + 0.1*i1)^2)*exp(-12.6084759*(-0.9818 + 0.1*i2)^2)* + exp(-7.456331527*(-0.9879 + 0.1*i3)^2)*exp(-0.252756858*(-1.193 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.586 + i5)^2)*exp(-0.495169956*(-3.798 + i6)^2)*exp(- + 0.457707049*(-3.03 + i7)^2) - 3.5757776*exp(-46.35341989*(-0.3182 + 0.1*i1) + ^2)*exp(-12.6084759*(-0.5697 + 0.1*i2)^2)*exp(-7.456331527*(-0.7091 + 0.1* + i3)^2)*exp(-0.252756858*(-1.217 + 0.1*i4)^2)*exp(-0.623174158*(-1.061 + i5) + ^2)*exp(-0.495169956*(-3.646 + i6)^2)*exp(-0.457707049*(-2.455 + i7)^2) + + 7.566776547*exp(-46.35341989*(-0.3909 + 0.1*i1)^2)*exp(-12.6084759*(-0.8606 + + 0.1*i2)^2)*exp(-7.456331527*(-0.5818 + 0.1*i3)^2)*exp(-0.252756858*(- + 1.468 + 0.1*i4)^2)*exp(-0.623174158*(-1.03 + i5)^2)*exp(-0.495169956*(- + 3.455 + i6)^2)*exp(-0.457707049*(-3.242 + i7)^2) - 0.590224898*exp(- + 46.35341989*(-0.5909 + 0.1*i1)^2)*exp(-12.6084759*(-0.6303 + 0.1*i2)^2)* + exp(-7.456331527*(-0.5091 + 0.1*i3)^2)*exp(-0.252756858*(-1.266 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.303 + i5)^2)*exp(-0.495169956*(-3.899 + i6)^2)*exp(- + 0.457707049*(-3.909 + i7)^2) - 3.443104017*exp(-46.35341989*(-0.5939 + 0.1* + i1)^2)*exp(-12.6084759*(-0.6727 + 0.1*i2)^2)*exp(-7.456331527*(-0.7758 + + 0.1*i3)^2)*exp(-0.252756858*(-1.249 + 0.1*i4)^2)*exp(-0.623174158*(-1.818 + + i5)^2)*exp(-0.495169956*(-3.586 + i6)^2)*exp(-0.457707049*(-4.848 + i7)^ + 2) - 11.11497474*exp(-46.35341989*(-0.5242 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8061 + 0.1*i2)^2)*exp(-7.456331527*(-0.5697 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.452 + 0.1*i4)^2)*exp(-0.623174158*(-1.949 + i5)^2)*exp(-0.495169956*(- + 3.253 + i6)^2)*exp(-0.457707049*(-3.606 + i7)^2) - 2.725326198*exp(- + 46.35341989*(-0.5667 + 0.1*i1)^2)*exp(-12.6084759*(-0.9636 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6182 + 0.1*i3)^2)*exp(-0.252756858*(-0.7242 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.495 + i5)^2)*exp(-0.495169956*(-3.475 + i6)^2)*exp( + -0.457707049*(-3.818 + i7)^2) + 1.555478095*exp(-46.35341989*(-0.3364 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.5091 + 0.1*i2)^2)*exp(-7.456331527*(-0.697 + + 0.1*i3)^2)*exp(-0.252756858*(-0.7323 + 0.1*i4)^2)*exp(-0.623174158*(-1.182 + + i5)^2)*exp(-0.495169956*(-3.313 + i6)^2)*exp(-0.457707049*(-3.727 + i7)^ + 2) + 0.408230957*exp(-46.35341989*(-0.4212 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6061 + 0.1*i2)^2)*exp(-7.456331527*(-0.8485 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.476 + 0.1*i4)^2)*exp(-0.623174158*(-1.505 + i5)^2)*exp(-0.495169956*(- + 3.364 + i6)^2)*exp(-0.457707049*(-5 + i7)^2) + 7.588350688*exp(-46.35341989 + *(-0.3697 + 0.1*i1)^2)*exp(-12.6084759*(-0.8485 + 0.1*i2)^2)*exp(- + 7.456331527*(-0.5455 + 0.1*i3)^2)*exp(-0.252756858*(-0.902 + 0.1*i4)^2)* + exp(-0.623174158*(-1.788 + i5)^2)*exp(-0.495169956*(-3.697 + i6)^2)*exp(- + 0.457707049*(-4.909 + i7)^2) + 4.670239852*exp(-46.35341989*(-0.5121 + 0.1* + i1)^2)*exp(-12.6084759*(-0.5758 + 0.1*i2)^2)*exp(-7.456331527*(-0.9091 + + 0.1*i3)^2)*exp(-0.252756858*(-0.8051 + 0.1*i4)^2)*exp(-0.623174158*(-1.152 + + i5)^2)*exp(-0.495169956*(-3.667 + i6)^2)*exp(-0.457707049*(-4.485 + i7)^ + 2) + 3.729384788*exp(-46.35341989*(-0.4697 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7455 + 0.1*i2)^2)*exp(-7.456331527*(-0.9515 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.33 + 0.1*i4)^2)*exp(-0.623174158*(-1.162 + i5)^2)*exp(-0.495169956*(- + 3.354 + i6)^2)*exp(-0.457707049*(-2.182 + i7)^2) - 16.68800116*exp(- + 46.35341989*(-0.4758 + 0.1*i1)^2)*exp(-12.6084759*(-0.6848 + 0.1*i2)^2)* + exp(-7.456331527*(-0.4848 + 0.1*i3)^2)*exp(-0.252756858*(-0.7 + 0.1*i4)^2)* + exp(-0.623174158*(-1.939 + i5)^2)*exp(-0.495169956*(-3.515 + i6)^2)*exp(- + 0.457707049*(-3.333 + i7)^2) + 5.557860641*exp(-46.35341989*(-0.3152 + 0.1* + i1)^2)*exp(-12.6084759*(-0.5879 + 0.1*i2)^2)*exp(-7.456331527*(-0.8667 + + 0.1*i3)^2)*exp(-0.252756858*(-1.031 + 0.1*i4)^2)*exp(-0.623174158*(-1.485 + + i5)^2)*exp(-0.495169956*(-3.182 + i6)^2)*exp(-0.457707049*(-2.242 + i7)^ + 2) + 16.11932901*exp(-46.35341989*(-0.3818 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7333 + 0.1*i2)^2)*exp(-7.456331527*(-0.4061 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.201 + 0.1*i4)^2)*exp(-0.623174158*(-1.283 + i5)^2)*exp(-0.495169956*(- + 3.949 + i6)^2)*exp(-0.457707049*(-3 + i7)^2) - 8.406830544*exp(-46.35341989 + *(-0.5182 + 0.1*i1)^2)*exp(-12.6084759*(-0.9939 + 0.1*i2)^2)*exp(- + 7.456331527*(-0.8788 + 0.1*i3)^2)*exp(-0.252756858*(-1.072 + 0.1*i4)^2)* + exp(-0.623174158*(-1.081 + i5)^2)*exp(-0.495169956*(-3.303 + i6)^2)*exp(- + 0.457707049*(-3.545 + i7)^2) - 27.88833461*exp(-46.35341989*(-0.4424 + 0.1* + i1)^2)*exp(-12.6084759*(-0.8364 + 0.1*i2)^2)*exp(-7.456331527*(-0.5333 + + 0.1*i3)^2)*exp(-0.252756858*(-1.484 + 0.1*i4)^2)*exp(-0.623174158*(-1.677 + + i5)^2)*exp(-0.495169956*(-3.737 + i6)^2)*exp(-0.457707049*(-2.333 + i7)^ + 2) + 1.487438699*exp(-46.35341989*(-0.397 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5939 + 0.1*i2)^2)*exp(-7.456331527*(-0.8545 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.363 + 0.1*i4)^2)*exp(-0.623174158*(-1.869 + i5)^2)*exp(-0.495169956*(- + 3.02 + i6)^2)*exp(-0.457707049*(-3.515 + i7)^2) - 0.89980188*exp(- + 46.35341989*(-0.4879 + 0.1*i1)^2)*exp(-12.6084759*(-0.4788 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6121 + 0.1*i3)^2)*exp(-0.252756858*(-0.8939 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.051 + i5)^2)*exp(-0.495169956*(-3.879 + i6)^2)*exp( + -0.457707049*(-3.182 + i7)^2) - 0.512300989*exp(-46.35341989*(-0.3545 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.4364 + 0.1*i2)^2)*exp(-7.456331527*(-0.7333 + + 0.1*i3)^2)*exp(-0.252756858*(-0.9828 + 0.1*i4)^2)*exp(-0.623174158*(-1.99 + + i5)^2)*exp(-0.495169956*(-3.495 + i6)^2)*exp(-0.457707049*(-2.97 + i7)^2 + ) - 7.912272303*exp(-46.35341989*(-0.5424 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6909 + 0.1*i2)^2)*exp(-7.456331527*(-0.6727 + 0.1*i3)^2)*exp(-0.252756858 + *(-0.7889 + 0.1*i4)^2)*exp(-0.623174158*(-1.121 + i5)^2)*exp(-0.495169956*( + -3.091 + i6)^2)*exp(-0.457707049*(-4.121 + i7)^2) + 15.2686743*exp(- + 46.35341989*(-0.4848 + 0.1*i1)^2)*exp(-12.6084759*(-0.7879 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6909 + 0.1*i3)^2)*exp(-0.252756858*(-0.7162 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.475 + i5)^2)*exp(-0.495169956*(-3.131 + i6)^2)*exp( + -0.457707049*(-2.212 + i7)^2) + 11.35502589*exp(-46.35341989*(-0.4394 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.897 + 0.1*i2)^2)*exp(-7.456331527*(-0.9758 + + 0.1*i3)^2)*exp(-0.252756858*(-1.023 + 0.1*i4)^2)*exp(-0.623174158*(-1.667 + + i5)^2)*exp(-0.495169956*(-3.061 + i6)^2)*exp(-0.457707049*(-2.879 + i7)^ + 2) + 7.398747471*exp(-46.35341989*(-0.3848 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5394 + 0.1*i2)^2)*exp(-7.456331527*(-0.9152 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.5 + 0.1*i4)^2)*exp(-0.623174158*(-1.596 + i5)^2)*exp(-0.495169956*(- + 3.636 + i6)^2)*exp(-0.457707049*(-2.727 + i7)^2) - 3.804570857*exp(- + 46.35341989*(-0.5545 + 0.1*i1)^2)*exp(-12.6084759*(-0.9758 + 0.1*i2)^2)* + exp(-7.456331527*(-0.7212 + 0.1*i3)^2)*exp(-0.252756858*(-1.08 + 0.1*i4)^2) + *exp(-0.623174158*(-1.838 + i5)^2)*exp(-0.495169956*(-3.434 + i6)^2)*exp(- + 0.457707049*(-2.364 + i7)^2) + 16.8435737*exp(-46.35341989*(-0.3758 + 0.1* + i1)^2)*exp(-12.6084759*(-0.8667 + 0.1*i2)^2)*exp(-7.456331527*(-0.5394 + + 0.1*i3)^2)*exp(-0.252756858*(-1.015 + 0.1*i4)^2)*exp(-0.623174158*(-1.919 + + i5)^2)*exp(-0.495169956*(-3.909 + i6)^2)*exp(-0.457707049*(-2.939 + i7)^ + 2) + 39.17066911*exp(-46.35341989*(-0.3212 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7576 + 0.1*i2)^2)*exp(-7.456331527*(-0.5212 + 0.1*i3)^2)*exp(-0.252756858 + *(-0.9343 + 0.1*i4)^2)*exp(-0.623174158*(-1.808 + i5)^2)*exp(-0.495169956*( + -3.212 + i6)^2)*exp(-0.457707049*(-2.545 + i7)^2) - 5.281356284*exp(- + 46.35341989*(-0.4727 + 0.1*i1)^2)*exp(-12.6084759*(-0.9333 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6485 + 0.1*i3)^2)*exp(-0.252756858*(-1.322 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.394 + i5)^2)*exp(-0.495169956*(-3.081 + i6)^2)*exp(- + 0.457707049*(-4.697 + i7)^2) + 0.054611785*exp(-46.35341989*(-0.4576 + 0.1* + i1)^2)*exp(-12.6084759*(-0.5455 + 0.1*i2)^2)*exp(-7.456331527*(-0.9939 + + 0.1*i3)^2)*exp(-0.252756858*(-1.169 + 0.1*i4)^2)*exp(-0.623174158*(-1.98 + + i5)^2)*exp(-0.495169956*(-3.626 + i6)^2)*exp(-0.457707049*(-3.939 + i7)^2) + - 4.259990014*exp(-46.35341989*(-0.3242 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9212 + 0.1*i2)^2)*exp(-7.456331527*(-0.4667 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.314 + 0.1*i4)^2)*exp(-0.623174158*(-1.697 + i5)^2)*exp(-0.495169956*(- + 3.374 + i6)^2)*exp(-0.457707049*(-3.758 + i7)^2) + 13.55118725*exp(- + 46.35341989*(-0.5697 + 0.1*i1)^2)*exp(-12.6084759*(-0.4182 + 0.1*i2)^2)* + exp(-7.456331527*(-0.7394 + 0.1*i3)^2)*exp(-0.252756858*(-0.8374 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.717 + i5)^2)*exp(-0.495169956*(-3.727 + i6)^2)*exp( + -0.457707049*(-3.303 + i7)^2) + 5.906997534*exp(-46.35341989*(-0.3727 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.9879 + 0.1*i2)^2)*exp(-7.456331527*(-0.6848 + + 0.1*i3)^2)*exp(-0.252756858*(-1.104 + 0.1*i4)^2)*exp(-0.623174158*(-1.343 + + i5)^2)*exp(-0.495169956*(-3.606 + i6)^2)*exp(-0.457707049*(-2 + i7)^2) + + 6.033174058*exp(-46.35341989*(-0.5091 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4667 + 0.1*i2)^2)*exp(-7.456331527*(-0.8303 + 0.1*i3)^2)*exp(-0.252756858 + *(-0.8859 + 0.1*i4)^2)*exp(-0.623174158*(-1.111 + i5)^2)*exp(-0.495169956*( + -3.283 + i6)^2)*exp(-0.457707049*(-2.576 + i7)^2) - 15.96784219*exp(- + 46.35341989*(-0.3485 + 0.1*i1)^2)*exp(-12.6084759*(-0.9091 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6606 + 0.1*i3)^2)*exp(-0.252756858*(-0.999 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.172 + i5)^2)*exp(-0.495169956*(-3.03 + i6)^2)*exp(- + 0.457707049*(-3.152 + i7)^2) - 1.429348471*exp(-46.35341989*(-0.5848 + 0.1* + i1)^2)*exp(-12.6084759*(-0.6788 + 0.1*i2)^2)*exp(-7.456331527*(-0.8 + 0.1* + i3)^2)*exp(-0.252756858*(-1.298 + 0.1*i4)^2)*exp(-0.623174158*(-1.848 + i5) + ^2)*exp(-0.495169956*(-3.828 + i6)^2)*exp(-0.457707049*(-2.636 + i7)^2) - + 11.86481953*exp(-46.35341989*(-0.3303 + 0.1*i1)^2)*exp(-12.6084759*(-0.5212 + + 0.1*i2)^2)*exp(-7.456331527*(-0.497 + 0.1*i3)^2)*exp(-0.252756858*(- + 1.395 + 0.1*i4)^2)*exp(-0.623174158*(-1.636 + i5)^2)*exp(-0.495169956*(- + 3.384 + i6)^2)*exp(-0.457707049*(-2.697 + i7)^2) - 1.877131849*exp(- + 46.35341989*(-0.3061 + 0.1*i1)^2)*exp(-12.6084759*(-0.6242 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6788 + 0.1*i3)^2)*exp(-0.252756858*(-1.338 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.859 + i5)^2)*exp(-0.495169956*(-3.758 + i6)^2)*exp(- + 0.457707049*(-4.273 + i7)^2) - 1.759253654*exp(-46.35341989*(-0.5485 + 0.1* + i1)^2)*exp(-12.6084759*(-0.4545 + 0.1*i2)^2)*exp(-7.456331527*(-0.8848 + + 0.1*i3)^2)*exp(-0.252756858*(-1.112 + 0.1*i4)^2)*exp(-0.623174158*(-1.515 + + i5)^2)*exp(-0.495169956*(-3.101 + i6)^2)*exp(-0.457707049*(-4.333 + i7)^ + 2) - 0.329695085*exp(-46.35341989*(-0.4636 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7939 + 0.1*i2)^2)*exp(-7.456331527*(-0.7879 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.492 + 0.1*i4)^2)*exp(-0.623174158*(-1.707 + i5)^2)*exp(-0.495169956*(- + 3.97 + i6)^2)*exp(-0.457707049*(-4.03 + i7)^2) - 2.607082343*exp(- + 46.35341989*(-0.3455 + 0.1*i1)^2)*exp(-12.6084759*(-0.5818 + 0.1*i2)^2)* + exp(-7.456331527*(-0.7455 + 0.1*i3)^2)*exp(-0.252756858*(-0.7404 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.687 + i5)^2)*exp(-0.495169956*(-3.929 + i6)^2)*exp( + -0.457707049*(-3.788 + i7)^2) - 0.418225067*exp(-46.35341989*(-0.6 + 0.1*i1 + )^2)*exp(-12.6084759*(-0.7515 + 0.1*i2)^2)*exp(-7.456331527*(-0.9455 + 0.1* + i3)^2)*exp(-0.252756858*(-0.8616 + 0.1*i4)^2)*exp(-0.623174158*(-1.384 + i5 + )^2)*exp(-0.495169956*(-3.596 + i6)^2)*exp(-0.457707049*(-2.848 + i7)^2) + + 1.340583435*exp(-46.35341989*(-0.3273 + 0.1*i1)^2)*exp(-12.6084759*(-0.4 + + 0.1*i2)^2)*exp(-7.456331527*(-0.897 + 0.1*i3)^2)*exp(-0.252756858*(-1.12 + + 0.1*i4)^2)*exp(-0.623174158*(-1.404 + i5)^2)*exp(-0.495169956*(-3.525 + i6) + ^2)*exp(-0.457707049*(-4.182 + i7)^2) - 9.262131592*exp(-46.35341989*(- + 0.5212 + 0.1*i1)^2)*exp(-12.6084759*(-0.497 + 0.1*i2)^2)*exp(-7.456331527*( + -0.8909 + 0.1*i3)^2)*exp(-0.252756858*(-1.185 + 0.1*i4)^2)*exp(-0.623174158 + *(-1.737 + i5)^2)*exp(-0.495169956*(-3.293 + i6)^2)*exp(-0.457707049*(- + 2.091 + i7)^2) + 2.556679249*exp(-46.35341989*(-0.4303 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.4606 + 0.1*i2)^2)*exp(-7.456331527*(-0.6242 + 0.1*i3)^2)* + exp(-0.252756858*(-1.225 + 0.1*i4)^2)*exp(-0.623174158*(-1.727 + i5)^2)* + exp(-0.495169956*(-3.96 + i6)^2)*exp(-0.457707049*(-2.424 + i7)^2) + + 8.045356542*exp(-46.35341989*(-0.3121 + 0.1*i1)^2)*exp(-12.6084759*(-0.8909 + + 0.1*i2)^2)*exp(-7.456331527*(-0.903 + 0.1*i3)^2)*exp(-0.252756858*(- + 1.387 + 0.1*i4)^2)*exp(-0.623174158*(-1.414 + i5)^2)*exp(-0.495169956*(- + 3.323 + i6)^2)*exp(-0.457707049*(-3.636 + i7)^2) - 0.570943199*exp(- + 46.35341989*(-0.3424 + 0.1*i1)^2)*exp(-12.6084759*(-0.4485 + 0.1*i2)^2)* + exp(-7.456331527*(-0.4182 + 0.1*i3)^2)*exp(-0.252756858*(-0.9747 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.566 + i5)^2)*exp(-0.495169956*(-3.657 + i6)^2)*exp( + -0.457707049*(-3.879 + i7)^2) - 6.09000209*exp(-46.35341989*(-0.497 + 0.1* + i1)^2)*exp(-12.6084759*(-0.7697 + 0.1*i2)^2)*exp(-7.456331527*(-0.7939 + + 0.1*i3)^2)*exp(-0.252756858*(-1.274 + 0.1*i4)^2)*exp(-0.623174158*(-1.141 + + i5)^2)*exp(-0.495169956*(-4 + i6)^2)*exp(-0.457707049*(-2.515 + i7)^2) + + 4.348617612*exp(-46.35341989*(-0.4939 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5576 + 0.1*i2)^2)*exp(-7.456331527*(-0.4545 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.177 + 0.1*i4)^2)*exp(-0.623174158*(-1.96 + i5)^2)*exp(-0.495169956*(- + 3.818 + i6)^2)*exp(-0.457707049*(-4 + i7)^2) - 1.900133697*exp(-46.35341989 + *(-0.5 + 0.1*i1)^2)*exp(-12.6084759*(-0.9515 + 0.1*i2)^2)*exp(-7.456331527* + (-0.4 + 0.1*i3)^2)*exp(-0.252756858*(-1.088 + 0.1*i4)^2)*exp(-0.623174158*( + -1.455 + i5)^2)*exp(-0.495169956*(-3.242 + i6)^2)*exp(-0.457707049*(-2.788 + + i7)^2) - 8.434403963*exp(-46.35341989*(-0.4182 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.9455 + 0.1*i2)^2)*exp(-7.456331527*(-0.8364 + 0.1*i3)^2)* + exp(-0.252756858*(-1.258 + 0.1*i4)^2)*exp(-0.623174158*(-1.929 + i5)^2)* + exp(-0.495169956*(-3.465 + i6)^2)*exp(-0.457707049*(-4.606 + i7)^2) + + 2.969430623*exp(-46.35341989*(-0.3636 + 0.1*i1)^2)*exp(-12.6084759*(-0.7818 + + 0.1*i2)^2)*exp(-7.456331527*(-1 + 0.1*i3)^2)*exp(-0.252756858*(-0.9909 + + 0.1*i4)^2)*exp(-0.623174158*(-1.535 + i5)^2)*exp(-0.495169956*(-3.768 + + i6)^2)*exp(-0.457707049*(-4.667 + i7)^2) + 1.576468049*exp(-46.35341989*(- + 0.4091 + 0.1*i1)^2)*exp(-12.6084759*(-0.7212 + 0.1*i2)^2)*exp(-7.456331527* + (-0.9273 + 0.1*i3)^2)*exp(-0.252756858*(-1.371 + 0.1*i4)^2)*exp(- + 0.623174158*(-1.04 + i5)^2)*exp(-0.495169956*(-3.747 + i6)^2)*exp(- + 0.457707049*(-4.152 + i7)^2) + 2.625628675*exp(-46.35341989*(-0.4455 + 0.1* + i1)^2)*exp(-12.6084759*(-0.4242 + 0.1*i2)^2)*exp(-7.456331527*(-0.5879 + + 0.1*i3)^2)*exp(-0.252756858*(-0.9182 + 0.1*i4)^2)*exp(-0.623174158*(-1.626 + + i5)^2)*exp(-0.495169956*(-3 + i6)^2)*exp(-0.457707049*(-3.091 + i7)^2) + - 12.27170246*exp(-46.35341989*(-0.3667 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8424 + 0.1*i2)^2)*exp(-7.456331527*(-0.8242 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.29 + 0.1*i4)^2)*exp(-0.623174158*(-2 + i5)^2)*exp(-0.495169956*(-3.485 + + i6)^2)*exp(-0.457707049*(-2.485 + i7)^2) - 6.575555582*exp(-46.35341989* + (-0.4 + 0.1*i1)^2)*exp(-12.6084759*(-0.6 + 0.1*i2)^2)*exp(-7.456331527*(- + 0.4364 + 0.1*i3)^2)*exp(-0.252756858*(-1.056 + 0.1*i4)^2)*exp(-0.623174158* + (-1.091 + i5)^2)*exp(-0.495169956*(-3.202 + i6)^2)*exp(-0.457707049*(-2.606 + + i7)^2) - 1.004736916*exp(-46.35341989*(-0.5303 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.8545 + 0.1*i2)^2)*exp(-7.456331527*(-0.9212 + 0.1*i3)^2)* + exp(-0.252756858*(-0.8778 + 0.1*i4)^2)*exp(-0.623174158*(-1.616 + i5)^2)* + exp(-0.495169956*(-3.232 + i6)^2)*exp(-0.457707049*(-4.727 + i7)^2) - + 4.533577554*exp(-46.35341989*(-0.3879 + 0.1*i1)^2)*exp(-12.6084759*(-0.5515 + + 0.1*i2)^2)*exp(-7.456331527*(-0.5576 + 0.1*i3)^2)*exp(-0.252756858*(- + 0.7808 + 0.1*i4)^2)*exp(-0.623174158*(-1.444 + i5)^2)*exp(-0.495169956*(- + 3.677 + i6)^2)*exp(-0.457707049*(-2.03 + i7)^2) + 0.365687528*exp(- + 46.35341989*(-0.4515 + 0.1*i1)^2)*exp(-12.6084759*(-0.7273 + 0.1*i2)^2)* + exp(-7.456331527*(-0.8727 + 0.1*i3)^2)*exp(-0.252756858*(-0.8131 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1.828 + i5)^2)*exp(-0.495169956*(-3.717 + i6)^2)*exp( + -0.457707049*(-2.061 + i7)^2) + 0.60902123*exp(-46.35341989*(-0.4818 + 0.1* + i1)^2)*exp(-12.6084759*(-0.4121 + 0.1*i2)^2)*exp(-7.456331527*(-0.5515 + + 0.1*i3)^2)*exp(-0.252756858*(-1.064 + 0.1*i4)^2)*exp(-0.623174158*(-1.202 + + i5)^2)*exp(-0.495169956*(-3.404 + i6)^2)*exp(-0.457707049*(-4.788 + i7)^ + 2) - 2.190099379*exp(-46.35341989*(-0.5515 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8182 + 0.1*i2)^2)*exp(-7.456331527*(-0.9636 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.443 + 0.1*i4)^2)*exp(-0.623174158*(-1.606 + i5)^2)*exp(-0.495169956*(- + 3.263 + i6)^2)*exp(-0.457707049*(-3.667 + i7)^2) - 0.474406032*exp(- + 46.35341989*(-0.4667 + 0.1*i1)^2)*exp(-12.6084759*(-0.4727 + 0.1*i2)^2)* + exp(-7.456331527*(-0.7818 + 0.1*i3)^2)*exp(-0.252756858*(-1.136 + 0.1*i4)^2 + )*exp(-0.623174158*(-1.545 + i5)^2)*exp(-0.495169956*(-3.99 + i6)^2)*exp(- + 0.457707049*(-4.758 + i7)^2) + 4.481965083*exp(-46.35341989*(-0.5606 + 0.1* + i1)^2)*exp(-12.6084759*(-0.7758 + 0.1*i2)^2)*exp(-7.456331527*(-0.5273 + + 0.1*i3)^2)*exp(-0.252756858*(-0.9263 + 0.1*i4)^2)*exp(-0.623174158*(-1.576 + + i5)^2)*exp(-0.495169956*(-3.919 + i6)^2)*exp(-0.457707049*(-2.394 + i7)^ + 2) + 0.294362562*exp(-46.35341989*(-0.4333 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5636 + 0.1*i2)^2)*exp(-7.456331527*(-0.9818 + 0.1*i3)^2)*exp(-0.252756858 + *(-0.7081 + 0.1*i4)^2)*exp(-0.623174158*(-1.657 + i5)^2)*exp(-0.495169956*( + -3.273 + i6)^2)*exp(-0.457707049*(-3.455 + i7)^2) - 7.219557171*exp(- + 46.35341989*(-0.5333 + 0.1*i1)^2)*exp(-12.6084759*(-0.8303 + 0.1*i2)^2)* + exp(-7.456331527*(-0.6061 + 0.1*i3)^2)*exp(-0.252756858*(-0.9424 + 0.1*i4)^ + 2)*exp(-0.623174158*(-1 + i5)^2)*exp(-0.495169956*(-3.545 + i6)^2)*exp(- + 0.457707049*(-2.303 + i7)^2) + 4.80537241*exp(-46.35341989*(-0.3788 + 0.1* + i1)^2)*exp(-12.6084759*(-0.9152 + 0.1*i2)^2)*exp(-7.456331527*(-0.7515 + + 0.1*i3)^2)*exp(-0.252756858*(-0.8455 + 0.1*i4)^2)*exp(-0.623174158*(-1.212 + + i5)^2)*exp(-0.495169956*(-3.394 + i6)^2)*exp(-0.457707049*(-4.879 + i7)^ + 2) - 2.697754732*exp(-46.35341989*(-0.4909 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8727 + 0.1*i2)^2)*exp(-7.456331527*(-0.4424 + 0.1*i3)^2)*exp(-0.252756858 + *(-1.047 + 0.1*i4)^2)*exp(-0.623174158*(-1.02 + i5)^2)*exp(-0.495169956*(- + 3.556 + i6)^2)*exp(-0.457707049*(-4.303 + i7)^2)) + x8 >= 7.692803431; + + -(-3.424193125*exp(-15.85747033*(-0.303 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.697 + 0.1*i2)^2)*exp(-7.929573944*(-0.8061 + 0.1*i3)^2)*exp(-0.168479633* + (-0.9586 + 0.1*i4)^2)*exp(-0.46217188*(-1.758 + i5)^2)*exp(-0.946832753*(- + 3.141 + i6)^2)*exp(-0.511148681*(-4.424 + i7)^2) - 1.785464393*exp(- + 15.85747033*(-0.5364 + 0.1*i1)^2)*exp(-12.6065466*(-0.9697 + 0.1*i2)^2)* + exp(-7.929573944*(-0.4909 + 0.1*i3)^2)*exp(-0.168479633*(-1.161 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.778 + i5)^2)*exp(-0.946832753*(-3.778 + i6)^2)*exp(- + 0.511148681*(-4.091 + i7)^2) + 7.661064609*exp(-15.85747033*(-0.503 + 0.1* + i1)^2)*exp(-12.6065466*(-0.6182 + 0.1*i2)^2)*exp(-7.929573944*(-0.4121 + + 0.1*i3)^2)*exp(-0.168479633*(-1.419 + 0.1*i4)^2)*exp(-0.46217188*(-1.333 + + i5)^2)*exp(-0.946832753*(-3.152 + i6)^2)*exp(-0.511148681*(-3.697 + i7)^2) + + 6.931441742*exp(-15.85747033*(-0.4606 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.903 + 0.1*i2)^2)*exp(-7.929573944*(-0.7576 + 0.1*i3)^2)*exp(-0.168479633* + (-0.7727 + 0.1*i4)^2)*exp(-0.46217188*(-1.242 + i5)^2)*exp(-0.946832753*(- + 3.98 + i6)^2)*exp(-0.511148681*(-3.424 + i7)^2) + 0.815526648*exp(- + 15.85747033*(-0.3 + 0.1*i1)^2)*exp(-12.6065466*(-0.7636 + 0.1*i2)^2)*exp(- + 7.929573944*(-0.8606 + 0.1*i3)^2)*exp(-0.168479633*(-1.153 + 0.1*i4)^2)* + exp(-0.46217188*(-1.556 + i5)^2)*exp(-0.946832753*(-3.939 + i6)^2)*exp(- + 0.511148681*(-2.818 + i7)^2) + 3.172803756*exp(-15.85747033*(-0.5879 + 0.1* + i1)^2)*exp(-12.6065466*(-0.703 + 0.1*i2)^2)*exp(-7.929573944*(-0.4788 + 0.1 + *i3)^2)*exp(-0.168479633*(-1.039 + 0.1*i4)^2)*exp(-0.46217188*(-1.646 + i5) + ^2)*exp(-0.946832753*(-3.222 + i6)^2)*exp(-0.511148681*(-4.636 + i7)^2) + + 3.745587522*exp(-15.85747033*(-0.4121 + 0.1*i1)^2)*exp(-12.6065466*(-0.4424 + + 0.1*i2)^2)*exp(-7.929573944*(-0.5939 + 0.1*i3)^2)*exp(-0.168479633*(- + 1.46 + 0.1*i4)^2)*exp(-0.46217188*(-1.232 + i5)^2)*exp(-0.946832753*(-3.788 + + i6)^2)*exp(-0.511148681*(-3.848 + i7)^2) + 1.765365346*exp(-15.85747033* + (-0.5576 + 0.1*i1)^2)*exp(-12.6065466*(-0.8848 + 0.1*i2)^2)*exp(- + 7.929573944*(-0.8121 + 0.1*i3)^2)*exp(-0.168479633*(-1.128 + 0.1*i4)^2)* + exp(-0.46217188*(-1.263 + i5)^2)*exp(-0.946832753*(-3.808 + i6)^2)*exp(- + 0.511148681*(-4.818 + i7)^2) - 10.37548325*exp(-15.85747033*(-0.4273 + 0.1* + i1)^2)*exp(-12.6065466*(-0.4848 + 0.1*i2)^2)*exp(-7.929573944*(-0.9697 + + 0.1*i3)^2)*exp(-0.168479633*(-0.9667 + 0.1*i4)^2)*exp(-0.46217188*(-1.364 + + i5)^2)*exp(-0.946832753*(-3.869 + i6)^2)*exp(-0.511148681*(-2.667 + i7)^ + 2) - 12.52664738*exp(-15.85747033*(-0.5455 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.4061 + 0.1*i2)^2)*exp(-7.929573944*(-0.6303 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.427 + 0.1*i4)^2)*exp(-0.46217188*(-1.747 + i5)^2)*exp(-0.946832753*(- + 3.444 + i6)^2)*exp(-0.511148681*(-3.576 + i7)^2) + 11.3602042*exp(- + 15.85747033*(-0.5394 + 0.1*i1)^2)*exp(-12.6065466*(-0.5273 + 0.1*i2)^2)* + exp(-7.929573944*(-0.5636 + 0.1*i3)^2)*exp(-0.168479633*(-1.355 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.253 + i5)^2)*exp(-0.946832753*(-3.566 + i6)^2)*exp(- + 0.511148681*(-2.121 + i7)^2) - 3.080012933*exp(-15.85747033*(-0.5273 + 0.1* + i1)^2)*exp(-12.6065466*(-0.8121 + 0.1*i2)^2)*exp(-7.929573944*(-0.8424 + + 0.1*i3)^2)*exp(-0.168479633*(-0.8535 + 0.1*i4)^2)*exp(-0.46217188*(-1.899 + + i5)^2)*exp(-0.946832753*(-3.889 + i6)^2)*exp(-0.511148681*(-4.061 + i7)^ + 2) - 1.101835601*exp(-15.85747033*(-0.5727 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.4909 + 0.1*i2)^2)*exp(-7.929573944*(-0.9333 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.306 + 0.1*i4)^2)*exp(-0.46217188*(-1.273 + i5)^2)*exp(-0.946832753*(- + 3.707 + i6)^2)*exp(-0.511148681*(-3.485 + i7)^2) + 5.024919383*exp(- + 15.85747033*(-0.3091 + 0.1*i1)^2)*exp(-12.6065466*(-0.6364 + 0.1*i2)^2)* + exp(-7.929573944*(-0.5758 + 0.1*i3)^2)*exp(-0.168479633*(-1.282 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.222 + i5)^2)*exp(-0.946832753*(-3.192 + i6)^2)*exp(- + 0.511148681*(-4.455 + i7)^2) - 4.916459794*exp(-15.85747033*(-0.4364 + 0.1* + i1)^2)*exp(-12.6065466*(-0.7394 + 0.1*i2)^2)*exp(-7.929573944*(-0.4485 + + 0.1*i3)^2)*exp(-0.168479633*(-1.403 + 0.1*i4)^2)*exp(-0.46217188*(-1.465 + + i5)^2)*exp(-0.946832753*(-3.687 + i6)^2)*exp(-0.511148681*(-4.939 + i7)^2) + + 4.623261391*exp(-15.85747033*(-0.5636 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.6485 + 0.1*i2)^2)*exp(-7.929573944*(-0.7273 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.346 + 0.1*i4)^2)*exp(-0.46217188*(-1.01 + i5)^2)*exp(-0.946832753*(- + 3.333 + i6)^2)*exp(-0.511148681*(-4.364 + i7)^2) + 2.428515929*exp(- + 15.85747033*(-0.597 + 0.1*i1)^2)*exp(-12.6065466*(-0.7152 + 0.1*i2)^2)*exp( + -7.929573944*(-0.703 + 0.1*i3)^2)*exp(-0.168479633*(-1.209 + 0.1*i4)^2)* + exp(-0.46217188*(-1.354 + i5)^2)*exp(-0.946832753*(-3.01 + i6)^2)*exp(- + 0.511148681*(-2.758 + i7)^2) - 5.103601005*exp(-15.85747033*(-0.5152 + 0.1* + i1)^2)*exp(-12.6065466*(-0.6606 + 0.1*i2)^2)*exp(-7.929573944*(-0.503 + 0.1 + *i3)^2)*exp(-0.168479633*(-0.7566 + 0.1*i4)^2)*exp(-0.46217188*(-1.424 + i5 + )^2)*exp(-0.946832753*(-3.848 + i6)^2)*exp(-0.511148681*(-4.576 + i7)^2) - + 2.529086953*exp(-15.85747033*(-0.5758 + 0.1*i1)^2)*exp(-12.6065466*(-0.5152 + + 0.1*i2)^2)*exp(-7.929573944*(-0.4303 + 0.1*i3)^2)*exp(-0.168479633*(- + 0.8697 + 0.1*i4)^2)*exp(-0.46217188*(-1.374 + i5)^2)*exp(-0.946832753*(- + 3.414 + i6)^2)*exp(-0.511148681*(-3.061 + i7)^2) + 1.736981798*exp(- + 15.85747033*(-0.3939 + 0.1*i1)^2)*exp(-12.6065466*(-0.7091 + 0.1*i2)^2)* + exp(-7.929573944*(-0.4242 + 0.1*i3)^2)*exp(-0.168479633*(-0.8293 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.434 + i5)^2)*exp(-0.946832753*(-3.121 + i6)^2)*exp(- + 0.511148681*(-4.394 + i7)^2) - 6.695718932*exp(-15.85747033*(-0.403 + 0.1* + i1)^2)*exp(-12.6065466*(-0.5333 + 0.1*i2)^2)*exp(-7.929573944*(-0.5152 + + 0.1*i3)^2)*exp(-0.168479633*(-1.233 + 0.1*i4)^2)*exp(-0.46217188*(-1.889 + + i5)^2)*exp(-0.946832753*(-3.172 + i6)^2)*exp(-0.511148681*(-4.545 + i7)^2) + - 6.442510258*exp(-15.85747033*(-0.5061 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.6121 + 0.1*i2)^2)*exp(-7.929573944*(-0.4606 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.144 + 0.1*i4)^2)*exp(-0.46217188*(-1.879 + i5)^2)*exp(-0.946832753*(- + 3.343 + i6)^2)*exp(-0.511148681*(-2.152 + i7)^2) - 16.83726667*exp(- + 15.85747033*(-0.4152 + 0.1*i1)^2)*exp(-12.6065466*(-0.8242 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6545 + 0.1*i3)^2)*exp(-0.168479633*(-1.411 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.525 + i5)^2)*exp(-0.946832753*(-3.04 + i6)^2)*exp(- + 0.511148681*(-2.273 + i7)^2) + 1.171625031*exp(-15.85747033*(-0.4545 + 0.1* + i1)^2)*exp(-12.6065466*(-0.503 + 0.1*i2)^2)*exp(-7.929573944*(-0.7152 + 0.1 + *i3)^2)*exp(-0.168479633*(-0.797 + 0.1*i4)^2)*exp(-0.46217188*(-1.798 + i5) + ^2)*exp(-0.946832753*(-3.424 + i6)^2)*exp(-0.511148681*(-4.97 + i7)^2) - + 8.735198963*exp(-15.85747033*(-0.3606 + 0.1*i1)^2)*exp(-12.6065466*(-0.8 + + 0.1*i2)^2)*exp(-7.929573944*(-0.9394 + 0.1*i3)^2)*exp(-0.168479633*(-0.8212 + + 0.1*i4)^2)*exp(-0.46217188*(-1.101 + i5)^2)*exp(-0.946832753*(-3.535 + + i6)^2)*exp(-0.511148681*(-2.909 + i7)^2) + 16.55663718*exp(-15.85747033*(- + 0.5818 + 0.1*i1)^2)*exp(-12.6065466*(-0.9394 + 0.1*i2)^2)*exp(-7.929573944* + (-0.6364 + 0.1*i3)^2)*exp(-0.168479633*(-1.435 + 0.1*i4)^2)*exp(-0.46217188 + *(-1.313 + i5)^2)*exp(-0.946832753*(-3.576 + i6)^2)*exp(-0.511148681*(- + 3.212 + i7)^2) + 1.506395914*exp(-15.85747033*(-0.4485 + 0.1*i1)^2)*exp(- + 12.6065466*(-0.9273 + 0.1*i2)^2)*exp(-7.929573944*(-0.6 + 0.1*i3)^2)*exp(- + 0.168479633*(-0.9505 + 0.1*i4)^2)*exp(-0.46217188*(-1.909 + i5)^2)*exp(- + 0.946832753*(-3.051 + i6)^2)*exp(-0.511148681*(-3.97 + i7)^2) + 13.85107508 + *exp(-15.85747033*(-0.3394 + 0.1*i1)^2)*exp(-12.6065466*(-0.8788 + 0.1*i2)^ + 2)*exp(-7.929573944*(-0.4727 + 0.1*i3)^2)*exp(-0.168479633*(-0.7646 + 0.1* + i4)^2)*exp(-0.46217188*(-1.293 + i5)^2)*exp(-0.946832753*(-3.616 + i6)^2)* + exp(-0.511148681*(-3.273 + i7)^2) + 7.022397528*exp(-15.85747033*(-0.3515 + + 0.1*i1)^2)*exp(-12.6065466*(-0.9576 + 0.1*i2)^2)*exp(-7.929573944*(- + 0.8182 + 0.1*i3)^2)*exp(-0.168479633*(-0.7485 + 0.1*i4)^2)*exp(-0.46217188* + (-1.768 + i5)^2)*exp(-0.946832753*(-3.505 + i6)^2)*exp(-0.511148681*(-3.394 + + i7)^2) - 3.13339492*exp(-15.85747033*(-0.4061 + 0.1*i1)^2)*exp(- + 12.6065466*(-0.6667 + 0.1*i2)^2)*exp(-7.929573944*(-0.9576 + 0.1*i3)^2)* + exp(-0.168479633*(-1.096 + 0.1*i4)^2)*exp(-0.46217188*(-1.131 + i5)^2)*exp( + -0.946832753*(-3.071 + i6)^2)*exp(-0.511148681*(-4.242 + i7)^2) + + 8.945579288*exp(-15.85747033*(-0.5788 + 0.1*i1)^2)*exp(-12.6065466*(-0.6545 + + 0.1*i2)^2)*exp(-7.929573944*(-0.7697 + 0.1*i3)^2)*exp(-0.168479633*(- + 0.9101 + 0.1*i4)^2)*exp(-0.46217188*(-1.97 + i5)^2)*exp(-0.946832753*(- + 3.162 + i6)^2)*exp(-0.511148681*(-3.364 + i7)^2) - 4.800940251*exp(- + 15.85747033*(-0.4788 + 0.1*i1)^2)*exp(-12.6065466*(-0.9818 + 0.1*i2)^2)* + exp(-7.929573944*(-0.9879 + 0.1*i3)^2)*exp(-0.168479633*(-1.193 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.586 + i5)^2)*exp(-0.946832753*(-3.798 + i6)^2)*exp(- + 0.511148681*(-3.03 + i7)^2) - 7.093308367*exp(-15.85747033*(-0.3182 + 0.1* + i1)^2)*exp(-12.6065466*(-0.5697 + 0.1*i2)^2)*exp(-7.929573944*(-0.7091 + + 0.1*i3)^2)*exp(-0.168479633*(-1.217 + 0.1*i4)^2)*exp(-0.46217188*(-1.061 + + i5)^2)*exp(-0.946832753*(-3.646 + i6)^2)*exp(-0.511148681*(-2.455 + i7)^2) + + 6.200119981*exp(-15.85747033*(-0.3909 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.8606 + 0.1*i2)^2)*exp(-7.929573944*(-0.5818 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.468 + 0.1*i4)^2)*exp(-0.46217188*(-1.03 + i5)^2)*exp(-0.946832753*(- + 3.455 + i6)^2)*exp(-0.511148681*(-3.242 + i7)^2) - 0.675439441*exp(- + 15.85747033*(-0.5909 + 0.1*i1)^2)*exp(-12.6065466*(-0.6303 + 0.1*i2)^2)* + exp(-7.929573944*(-0.5091 + 0.1*i3)^2)*exp(-0.168479633*(-1.266 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.303 + i5)^2)*exp(-0.946832753*(-3.899 + i6)^2)*exp(- + 0.511148681*(-3.909 + i7)^2) - 2.458208732*exp(-15.85747033*(-0.5939 + 0.1* + i1)^2)*exp(-12.6065466*(-0.6727 + 0.1*i2)^2)*exp(-7.929573944*(-0.7758 + + 0.1*i3)^2)*exp(-0.168479633*(-1.249 + 0.1*i4)^2)*exp(-0.46217188*(-1.818 + + i5)^2)*exp(-0.946832753*(-3.586 + i6)^2)*exp(-0.511148681*(-4.848 + i7)^2) + - 2.302564825*exp(-15.85747033*(-0.5242 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.8061 + 0.1*i2)^2)*exp(-7.929573944*(-0.5697 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.452 + 0.1*i4)^2)*exp(-0.46217188*(-1.949 + i5)^2)*exp(-0.946832753*(- + 3.253 + i6)^2)*exp(-0.511148681*(-3.606 + i7)^2) - 8.906634233*exp(- + 15.85747033*(-0.5667 + 0.1*i1)^2)*exp(-12.6065466*(-0.9636 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6182 + 0.1*i3)^2)*exp(-0.168479633*(-0.7242 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.495 + i5)^2)*exp(-0.946832753*(-3.475 + i6)^2)*exp(- + 0.511148681*(-3.818 + i7)^2) - 6.182748824*exp(-15.85747033*(-0.3364 + 0.1* + i1)^2)*exp(-12.6065466*(-0.5091 + 0.1*i2)^2)*exp(-7.929573944*(-0.697 + 0.1 + *i3)^2)*exp(-0.168479633*(-0.7323 + 0.1*i4)^2)*exp(-0.46217188*(-1.182 + i5 + )^2)*exp(-0.946832753*(-3.313 + i6)^2)*exp(-0.511148681*(-3.727 + i7)^2) + + 1.760080219*exp(-15.85747033*(-0.4212 + 0.1*i1)^2)*exp(-12.6065466*(-0.6061 + + 0.1*i2)^2)*exp(-7.929573944*(-0.8485 + 0.1*i3)^2)*exp(-0.168479633*(- + 1.476 + 0.1*i4)^2)*exp(-0.46217188*(-1.505 + i5)^2)*exp(-0.946832753*(- + 3.364 + i6)^2)*exp(-0.511148681*(-5 + i7)^2) + 13.97713028*exp(-15.85747033 + *(-0.3697 + 0.1*i1)^2)*exp(-12.6065466*(-0.8485 + 0.1*i2)^2)*exp(- + 7.929573944*(-0.5455 + 0.1*i3)^2)*exp(-0.168479633*(-0.902 + 0.1*i4)^2)* + exp(-0.46217188*(-1.788 + i5)^2)*exp(-0.946832753*(-3.697 + i6)^2)*exp(- + 0.511148681*(-4.909 + i7)^2) + 2.462379985*exp(-15.85747033*(-0.5121 + 0.1* + i1)^2)*exp(-12.6065466*(-0.5758 + 0.1*i2)^2)*exp(-7.929573944*(-0.9091 + + 0.1*i3)^2)*exp(-0.168479633*(-0.8051 + 0.1*i4)^2)*exp(-0.46217188*(-1.152 + + i5)^2)*exp(-0.946832753*(-3.667 + i6)^2)*exp(-0.511148681*(-4.485 + i7)^ + 2) + 10.07472846*exp(-15.85747033*(-0.4697 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.7455 + 0.1*i2)^2)*exp(-7.929573944*(-0.9515 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.33 + 0.1*i4)^2)*exp(-0.46217188*(-1.162 + i5)^2)*exp(-0.946832753*(- + 3.354 + i6)^2)*exp(-0.511148681*(-2.182 + i7)^2) - 15.83252047*exp(- + 15.85747033*(-0.4758 + 0.1*i1)^2)*exp(-12.6065466*(-0.6848 + 0.1*i2)^2)* + exp(-7.929573944*(-0.4848 + 0.1*i3)^2)*exp(-0.168479633*(-0.7 + 0.1*i4)^2)* + exp(-0.46217188*(-1.939 + i5)^2)*exp(-0.946832753*(-3.515 + i6)^2)*exp(- + 0.511148681*(-3.333 + i7)^2) + 5.430369375*exp(-15.85747033*(-0.3152 + 0.1* + i1)^2)*exp(-12.6065466*(-0.5879 + 0.1*i2)^2)*exp(-7.929573944*(-0.8667 + + 0.1*i3)^2)*exp(-0.168479633*(-1.031 + 0.1*i4)^2)*exp(-0.46217188*(-1.485 + + i5)^2)*exp(-0.946832753*(-3.182 + i6)^2)*exp(-0.511148681*(-2.242 + i7)^2) + - 7.531348778*exp(-15.85747033*(-0.3818 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.7333 + 0.1*i2)^2)*exp(-7.929573944*(-0.4061 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.201 + 0.1*i4)^2)*exp(-0.46217188*(-1.283 + i5)^2)*exp(-0.946832753*(- + 3.949 + i6)^2)*exp(-0.511148681*(-3 + i7)^2) - 6.407668787*exp(-15.85747033 + *(-0.5182 + 0.1*i1)^2)*exp(-12.6065466*(-0.9939 + 0.1*i2)^2)*exp(- + 7.929573944*(-0.8788 + 0.1*i3)^2)*exp(-0.168479633*(-1.072 + 0.1*i4)^2)* + exp(-0.46217188*(-1.081 + i5)^2)*exp(-0.946832753*(-3.303 + i6)^2)*exp(- + 0.511148681*(-3.545 + i7)^2) + 0.311668809*exp(-15.85747033*(-0.4424 + 0.1* + i1)^2)*exp(-12.6065466*(-0.8364 + 0.1*i2)^2)*exp(-7.929573944*(-0.5333 + + 0.1*i3)^2)*exp(-0.168479633*(-1.484 + 0.1*i4)^2)*exp(-0.46217188*(-1.677 + + i5)^2)*exp(-0.946832753*(-3.737 + i6)^2)*exp(-0.511148681*(-2.333 + i7)^2) + - 4.78733617*exp(-15.85747033*(-0.397 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.5939 + 0.1*i2)^2)*exp(-7.929573944*(-0.8545 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.363 + 0.1*i4)^2)*exp(-0.46217188*(-1.869 + i5)^2)*exp(-0.946832753*(- + 3.02 + i6)^2)*exp(-0.511148681*(-3.515 + i7)^2) + 0.847871778*exp(- + 15.85747033*(-0.4879 + 0.1*i1)^2)*exp(-12.6065466*(-0.4788 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6121 + 0.1*i3)^2)*exp(-0.168479633*(-0.8939 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.051 + i5)^2)*exp(-0.946832753*(-3.879 + i6)^2)*exp(- + 0.511148681*(-3.182 + i7)^2) + 3.810544058*exp(-15.85747033*(-0.3545 + 0.1* + i1)^2)*exp(-12.6065466*(-0.4364 + 0.1*i2)^2)*exp(-7.929573944*(-0.7333 + + 0.1*i3)^2)*exp(-0.168479633*(-0.9828 + 0.1*i4)^2)*exp(-0.46217188*(-1.99 + + i5)^2)*exp(-0.946832753*(-3.495 + i6)^2)*exp(-0.511148681*(-2.97 + i7)^2) + - 13.10865911*exp(-15.85747033*(-0.5424 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.6909 + 0.1*i2)^2)*exp(-7.929573944*(-0.6727 + 0.1*i3)^2)*exp(-0.168479633 + *(-0.7889 + 0.1*i4)^2)*exp(-0.46217188*(-1.121 + i5)^2)*exp(-0.946832753*(- + 3.091 + i6)^2)*exp(-0.511148681*(-4.121 + i7)^2) + 13.38072908*exp(- + 15.85747033*(-0.4848 + 0.1*i1)^2)*exp(-12.6065466*(-0.7879 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6909 + 0.1*i3)^2)*exp(-0.168479633*(-0.7162 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.475 + i5)^2)*exp(-0.946832753*(-3.131 + i6)^2)*exp(- + 0.511148681*(-2.212 + i7)^2) + 16.99453053*exp(-15.85747033*(-0.4394 + 0.1* + i1)^2)*exp(-12.6065466*(-0.897 + 0.1*i2)^2)*exp(-7.929573944*(-0.9758 + 0.1 + *i3)^2)*exp(-0.168479633*(-1.023 + 0.1*i4)^2)*exp(-0.46217188*(-1.667 + i5) + ^2)*exp(-0.946832753*(-3.061 + i6)^2)*exp(-0.511148681*(-2.879 + i7)^2) + + 9.788368556*exp(-15.85747033*(-0.3848 + 0.1*i1)^2)*exp(-12.6065466*(-0.5394 + + 0.1*i2)^2)*exp(-7.929573944*(-0.9152 + 0.1*i3)^2)*exp(-0.168479633*(-1.5 + + 0.1*i4)^2)*exp(-0.46217188*(-1.596 + i5)^2)*exp(-0.946832753*(-3.636 + + i6)^2)*exp(-0.511148681*(-2.727 + i7)^2) + 3.482694993*exp(-15.85747033*(- + 0.5545 + 0.1*i1)^2)*exp(-12.6065466*(-0.9758 + 0.1*i2)^2)*exp(-7.929573944* + (-0.7212 + 0.1*i3)^2)*exp(-0.168479633*(-1.08 + 0.1*i4)^2)*exp(-0.46217188* + (-1.838 + i5)^2)*exp(-0.946832753*(-3.434 + i6)^2)*exp(-0.511148681*(-2.364 + + i7)^2) - 8.028202976*exp(-15.85747033*(-0.3758 + 0.1*i1)^2)*exp(- + 12.6065466*(-0.8667 + 0.1*i2)^2)*exp(-7.929573944*(-0.5394 + 0.1*i3)^2)* + exp(-0.168479633*(-1.015 + 0.1*i4)^2)*exp(-0.46217188*(-1.919 + i5)^2)*exp( + -0.946832753*(-3.909 + i6)^2)*exp(-0.511148681*(-2.939 + i7)^2) + + 57.86904965*exp(-15.85747033*(-0.3212 + 0.1*i1)^2)*exp(-12.6065466*(-0.7576 + + 0.1*i2)^2)*exp(-7.929573944*(-0.5212 + 0.1*i3)^2)*exp(-0.168479633*(- + 0.9343 + 0.1*i4)^2)*exp(-0.46217188*(-1.808 + i5)^2)*exp(-0.946832753*(- + 3.212 + i6)^2)*exp(-0.511148681*(-2.545 + i7)^2) + 5.739879658*exp(- + 15.85747033*(-0.4727 + 0.1*i1)^2)*exp(-12.6065466*(-0.9333 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6485 + 0.1*i3)^2)*exp(-0.168479633*(-1.322 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.394 + i5)^2)*exp(-0.946832753*(-3.081 + i6)^2)*exp(- + 0.511148681*(-4.697 + i7)^2) - 7.279919191*exp(-15.85747033*(-0.4576 + 0.1* + i1)^2)*exp(-12.6065466*(-0.5455 + 0.1*i2)^2)*exp(-7.929573944*(-0.9939 + + 0.1*i3)^2)*exp(-0.168479633*(-1.169 + 0.1*i4)^2)*exp(-0.46217188*(-1.98 + + i5)^2)*exp(-0.946832753*(-3.626 + i6)^2)*exp(-0.511148681*(-3.939 + i7)^2) + - 20.73462214*exp(-15.85747033*(-0.3242 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.9212 + 0.1*i2)^2)*exp(-7.929573944*(-0.4667 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.314 + 0.1*i4)^2)*exp(-0.46217188*(-1.697 + i5)^2)*exp(-0.946832753*(- + 3.374 + i6)^2)*exp(-0.511148681*(-3.758 + i7)^2) + 5.128127534*exp(- + 15.85747033*(-0.5697 + 0.1*i1)^2)*exp(-12.6065466*(-0.4182 + 0.1*i2)^2)* + exp(-7.929573944*(-0.7394 + 0.1*i3)^2)*exp(-0.168479633*(-0.8374 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.717 + i5)^2)*exp(-0.946832753*(-3.727 + i6)^2)*exp(- + 0.511148681*(-3.303 + i7)^2) - 2.171318123*exp(-15.85747033*(-0.3727 + 0.1* + i1)^2)*exp(-12.6065466*(-0.9879 + 0.1*i2)^2)*exp(-7.929573944*(-0.6848 + + 0.1*i3)^2)*exp(-0.168479633*(-1.104 + 0.1*i4)^2)*exp(-0.46217188*(-1.343 + + i5)^2)*exp(-0.946832753*(-3.606 + i6)^2)*exp(-0.511148681*(-2 + i7)^2) + + 3.537028602*exp(-15.85747033*(-0.5091 + 0.1*i1)^2)*exp(-12.6065466*(-0.4667 + + 0.1*i2)^2)*exp(-7.929573944*(-0.8303 + 0.1*i3)^2)*exp(-0.168479633*(- + 0.8859 + 0.1*i4)^2)*exp(-0.46217188*(-1.111 + i5)^2)*exp(-0.946832753*(- + 3.283 + i6)^2)*exp(-0.511148681*(-2.576 + i7)^2) - 12.61890395*exp(- + 15.85747033*(-0.3485 + 0.1*i1)^2)*exp(-12.6065466*(-0.9091 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6606 + 0.1*i3)^2)*exp(-0.168479633*(-0.999 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.172 + i5)^2)*exp(-0.946832753*(-3.03 + i6)^2)*exp(- + 0.511148681*(-3.152 + i7)^2) - 4.593058964*exp(-15.85747033*(-0.5848 + 0.1* + i1)^2)*exp(-12.6065466*(-0.6788 + 0.1*i2)^2)*exp(-7.929573944*(-0.8 + 0.1* + i3)^2)*exp(-0.168479633*(-1.298 + 0.1*i4)^2)*exp(-0.46217188*(-1.848 + i5)^ + 2)*exp(-0.946832753*(-3.828 + i6)^2)*exp(-0.511148681*(-2.636 + i7)^2) - + 10.68510576*exp(-15.85747033*(-0.3303 + 0.1*i1)^2)*exp(-12.6065466*(-0.5212 + + 0.1*i2)^2)*exp(-7.929573944*(-0.497 + 0.1*i3)^2)*exp(-0.168479633*(- + 1.395 + 0.1*i4)^2)*exp(-0.46217188*(-1.636 + i5)^2)*exp(-0.946832753*(- + 3.384 + i6)^2)*exp(-0.511148681*(-2.697 + i7)^2) + 0.919823782*exp(- + 15.85747033*(-0.3061 + 0.1*i1)^2)*exp(-12.6065466*(-0.6242 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6788 + 0.1*i3)^2)*exp(-0.168479633*(-1.338 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.859 + i5)^2)*exp(-0.946832753*(-3.758 + i6)^2)*exp(- + 0.511148681*(-4.273 + i7)^2) - 0.913189742*exp(-15.85747033*(-0.5485 + 0.1* + i1)^2)*exp(-12.6065466*(-0.4545 + 0.1*i2)^2)*exp(-7.929573944*(-0.8848 + + 0.1*i3)^2)*exp(-0.168479633*(-1.112 + 0.1*i4)^2)*exp(-0.46217188*(-1.515 + + i5)^2)*exp(-0.946832753*(-3.101 + i6)^2)*exp(-0.511148681*(-4.333 + i7)^2) + + 2.207763621*exp(-15.85747033*(-0.4636 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.7939 + 0.1*i2)^2)*exp(-7.929573944*(-0.7879 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.492 + 0.1*i4)^2)*exp(-0.46217188*(-1.707 + i5)^2)*exp(-0.946832753*(- + 3.97 + i6)^2)*exp(-0.511148681*(-4.03 + i7)^2) - 3.508652311*exp(- + 15.85747033*(-0.3455 + 0.1*i1)^2)*exp(-12.6065466*(-0.5818 + 0.1*i2)^2)* + exp(-7.929573944*(-0.7455 + 0.1*i3)^2)*exp(-0.168479633*(-0.7404 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.687 + i5)^2)*exp(-0.946832753*(-3.929 + i6)^2)*exp(- + 0.511148681*(-3.788 + i7)^2) - 2.930837194*exp(-15.85747033*(-0.6 + 0.1*i1) + ^2)*exp(-12.6065466*(-0.7515 + 0.1*i2)^2)*exp(-7.929573944*(-0.9455 + 0.1* + i3)^2)*exp(-0.168479633*(-0.8616 + 0.1*i4)^2)*exp(-0.46217188*(-1.384 + i5) + ^2)*exp(-0.946832753*(-3.596 + i6)^2)*exp(-0.511148681*(-2.848 + i7)^2) + + 1.627811224*exp(-15.85747033*(-0.3273 + 0.1*i1)^2)*exp(-12.6065466*(-0.4 + + 0.1*i2)^2)*exp(-7.929573944*(-0.897 + 0.1*i3)^2)*exp(-0.168479633*(-1.12 + + 0.1*i4)^2)*exp(-0.46217188*(-1.404 + i5)^2)*exp(-0.946832753*(-3.525 + i6)^ + 2)*exp(-0.511148681*(-4.182 + i7)^2) - 12.83161856*exp(-15.85747033*(- + 0.5212 + 0.1*i1)^2)*exp(-12.6065466*(-0.497 + 0.1*i2)^2)*exp(-7.929573944*( + -0.8909 + 0.1*i3)^2)*exp(-0.168479633*(-1.185 + 0.1*i4)^2)*exp(-0.46217188* + (-1.737 + i5)^2)*exp(-0.946832753*(-3.293 + i6)^2)*exp(-0.511148681*(-2.091 + + i7)^2) - 2.187717013*exp(-15.85747033*(-0.4303 + 0.1*i1)^2)*exp(- + 12.6065466*(-0.4606 + 0.1*i2)^2)*exp(-7.929573944*(-0.6242 + 0.1*i3)^2)* + exp(-0.168479633*(-1.225 + 0.1*i4)^2)*exp(-0.46217188*(-1.727 + i5)^2)*exp( + -0.946832753*(-3.96 + i6)^2)*exp(-0.511148681*(-2.424 + i7)^2) + + 1.128728489*exp(-15.85747033*(-0.3121 + 0.1*i1)^2)*exp(-12.6065466*(-0.8909 + + 0.1*i2)^2)*exp(-7.929573944*(-0.903 + 0.1*i3)^2)*exp(-0.168479633*(- + 1.387 + 0.1*i4)^2)*exp(-0.46217188*(-1.414 + i5)^2)*exp(-0.946832753*(- + 3.323 + i6)^2)*exp(-0.511148681*(-3.636 + i7)^2) - 1.473628434*exp(- + 15.85747033*(-0.3424 + 0.1*i1)^2)*exp(-12.6065466*(-0.4485 + 0.1*i2)^2)* + exp(-7.929573944*(-0.4182 + 0.1*i3)^2)*exp(-0.168479633*(-0.9747 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.566 + i5)^2)*exp(-0.946832753*(-3.657 + i6)^2)*exp(- + 0.511148681*(-3.879 + i7)^2) - 4.581723195*exp(-15.85747033*(-0.497 + 0.1* + i1)^2)*exp(-12.6065466*(-0.7697 + 0.1*i2)^2)*exp(-7.929573944*(-0.7939 + + 0.1*i3)^2)*exp(-0.168479633*(-1.274 + 0.1*i4)^2)*exp(-0.46217188*(-1.141 + + i5)^2)*exp(-0.946832753*(-4 + i6)^2)*exp(-0.511148681*(-2.515 + i7)^2) + + 11.75698085*exp(-15.85747033*(-0.4939 + 0.1*i1)^2)*exp(-12.6065466*(-0.5576 + + 0.1*i2)^2)*exp(-7.929573944*(-0.4545 + 0.1*i3)^2)*exp(-0.168479633*(- + 1.177 + 0.1*i4)^2)*exp(-0.46217188*(-1.96 + i5)^2)*exp(-0.946832753*(-3.818 + + i6)^2)*exp(-0.511148681*(-4 + i7)^2) - 7.317908746*exp(-15.85747033*(- + 0.5 + 0.1*i1)^2)*exp(-12.6065466*(-0.9515 + 0.1*i2)^2)*exp(-7.929573944*(- + 0.4 + 0.1*i3)^2)*exp(-0.168479633*(-1.088 + 0.1*i4)^2)*exp(-0.46217188*(- + 1.455 + i5)^2)*exp(-0.946832753*(-3.242 + i6)^2)*exp(-0.511148681*(-2.788 + + i7)^2) + 0.182819539*exp(-15.85747033*(-0.4182 + 0.1*i1)^2)*exp(- + 12.6065466*(-0.9455 + 0.1*i2)^2)*exp(-7.929573944*(-0.8364 + 0.1*i3)^2)* + exp(-0.168479633*(-1.258 + 0.1*i4)^2)*exp(-0.46217188*(-1.929 + i5)^2)*exp( + -0.946832753*(-3.465 + i6)^2)*exp(-0.511148681*(-4.606 + i7)^2) - + 0.623103774*exp(-15.85747033*(-0.3636 + 0.1*i1)^2)*exp(-12.6065466*(-0.7818 + + 0.1*i2)^2)*exp(-7.929573944*(-1 + 0.1*i3)^2)*exp(-0.168479633*(-0.9909 + + 0.1*i4)^2)*exp(-0.46217188*(-1.535 + i5)^2)*exp(-0.946832753*(-3.768 + + i6)^2)*exp(-0.511148681*(-4.667 + i7)^2) + 5.094223263*exp(-15.85747033*(- + 0.4091 + 0.1*i1)^2)*exp(-12.6065466*(-0.7212 + 0.1*i2)^2)*exp(-7.929573944* + (-0.9273 + 0.1*i3)^2)*exp(-0.168479633*(-1.371 + 0.1*i4)^2)*exp(-0.46217188 + *(-1.04 + i5)^2)*exp(-0.946832753*(-3.747 + i6)^2)*exp(-0.511148681*(-4.152 + + i7)^2) + 9.713590703*exp(-15.85747033*(-0.4455 + 0.1*i1)^2)*exp(- + 12.6065466*(-0.4242 + 0.1*i2)^2)*exp(-7.929573944*(-0.5879 + 0.1*i3)^2)* + exp(-0.168479633*(-0.9182 + 0.1*i4)^2)*exp(-0.46217188*(-1.626 + i5)^2)* + exp(-0.946832753*(-3 + i6)^2)*exp(-0.511148681*(-3.091 + i7)^2) - + 22.76846846*exp(-15.85747033*(-0.3667 + 0.1*i1)^2)*exp(-12.6065466*(-0.8424 + + 0.1*i2)^2)*exp(-7.929573944*(-0.8242 + 0.1*i3)^2)*exp(-0.168479633*(- + 1.29 + 0.1*i4)^2)*exp(-0.46217188*(-2 + i5)^2)*exp(-0.946832753*(-3.485 + + i6)^2)*exp(-0.511148681*(-2.485 + i7)^2) - 14.20018332*exp(-15.85747033*(- + 0.4 + 0.1*i1)^2)*exp(-12.6065466*(-0.6 + 0.1*i2)^2)*exp(-7.929573944*(- + 0.4364 + 0.1*i3)^2)*exp(-0.168479633*(-1.056 + 0.1*i4)^2)*exp(-0.46217188*( + -1.091 + i5)^2)*exp(-0.946832753*(-3.202 + i6)^2)*exp(-0.511148681*(-2.606 + + i7)^2) + 1.513015459*exp(-15.85747033*(-0.5303 + 0.1*i1)^2)*exp(- + 12.6065466*(-0.8545 + 0.1*i2)^2)*exp(-7.929573944*(-0.9212 + 0.1*i3)^2)* + exp(-0.168479633*(-0.8778 + 0.1*i4)^2)*exp(-0.46217188*(-1.616 + i5)^2)* + exp(-0.946832753*(-3.232 + i6)^2)*exp(-0.511148681*(-4.727 + i7)^2) + + 3.249624585*exp(-15.85747033*(-0.3879 + 0.1*i1)^2)*exp(-12.6065466*(-0.5515 + + 0.1*i2)^2)*exp(-7.929573944*(-0.5576 + 0.1*i3)^2)*exp(-0.168479633*(- + 0.7808 + 0.1*i4)^2)*exp(-0.46217188*(-1.444 + i5)^2)*exp(-0.946832753*(- + 3.677 + i6)^2)*exp(-0.511148681*(-2.03 + i7)^2) + 7.814631589*exp(- + 15.85747033*(-0.4515 + 0.1*i1)^2)*exp(-12.6065466*(-0.7273 + 0.1*i2)^2)* + exp(-7.929573944*(-0.8727 + 0.1*i3)^2)*exp(-0.168479633*(-0.8131 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1.828 + i5)^2)*exp(-0.946832753*(-3.717 + i6)^2)*exp(- + 0.511148681*(-2.061 + i7)^2) + 0.799020203*exp(-15.85747033*(-0.4818 + 0.1* + i1)^2)*exp(-12.6065466*(-0.4121 + 0.1*i2)^2)*exp(-7.929573944*(-0.5515 + + 0.1*i3)^2)*exp(-0.168479633*(-1.064 + 0.1*i4)^2)*exp(-0.46217188*(-1.202 + + i5)^2)*exp(-0.946832753*(-3.404 + i6)^2)*exp(-0.511148681*(-4.788 + i7)^2) + - 8.79222172*exp(-15.85747033*(-0.5515 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.8182 + 0.1*i2)^2)*exp(-7.929573944*(-0.9636 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.443 + 0.1*i4)^2)*exp(-0.46217188*(-1.606 + i5)^2)*exp(-0.946832753*(- + 3.263 + i6)^2)*exp(-0.511148681*(-3.667 + i7)^2) - 0.178499939*exp(- + 15.85747033*(-0.4667 + 0.1*i1)^2)*exp(-12.6065466*(-0.4727 + 0.1*i2)^2)* + exp(-7.929573944*(-0.7818 + 0.1*i3)^2)*exp(-0.168479633*(-1.136 + 0.1*i4)^2 + )*exp(-0.46217188*(-1.545 + i5)^2)*exp(-0.946832753*(-3.99 + i6)^2)*exp(- + 0.511148681*(-4.758 + i7)^2) + 7.1299881*exp(-15.85747033*(-0.5606 + 0.1*i1 + )^2)*exp(-12.6065466*(-0.7758 + 0.1*i2)^2)*exp(-7.929573944*(-0.5273 + 0.1* + i3)^2)*exp(-0.168479633*(-0.9263 + 0.1*i4)^2)*exp(-0.46217188*(-1.576 + i5) + ^2)*exp(-0.946832753*(-3.919 + i6)^2)*exp(-0.511148681*(-2.394 + i7)^2) + + 9.141919932*exp(-15.85747033*(-0.4333 + 0.1*i1)^2)*exp(-12.6065466*(-0.5636 + + 0.1*i2)^2)*exp(-7.929573944*(-0.9818 + 0.1*i3)^2)*exp(-0.168479633*(- + 0.7081 + 0.1*i4)^2)*exp(-0.46217188*(-1.657 + i5)^2)*exp(-0.946832753*(- + 3.273 + i6)^2)*exp(-0.511148681*(-3.455 + i7)^2) - 14.3515893*exp(- + 15.85747033*(-0.5333 + 0.1*i1)^2)*exp(-12.6065466*(-0.8303 + 0.1*i2)^2)* + exp(-7.929573944*(-0.6061 + 0.1*i3)^2)*exp(-0.168479633*(-0.9424 + 0.1*i4)^ + 2)*exp(-0.46217188*(-1 + i5)^2)*exp(-0.946832753*(-3.545 + i6)^2)*exp(- + 0.511148681*(-2.303 + i7)^2) - 4.186729794*exp(-15.85747033*(-0.3788 + 0.1* + i1)^2)*exp(-12.6065466*(-0.9152 + 0.1*i2)^2)*exp(-7.929573944*(-0.7515 + + 0.1*i3)^2)*exp(-0.168479633*(-0.8455 + 0.1*i4)^2)*exp(-0.46217188*(-1.212 + + i5)^2)*exp(-0.946832753*(-3.394 + i6)^2)*exp(-0.511148681*(-4.879 + i7)^ + 2) + 12.33682955*exp(-15.85747033*(-0.4909 + 0.1*i1)^2)*exp(-12.6065466*(- + 0.8727 + 0.1*i2)^2)*exp(-7.929573944*(-0.4424 + 0.1*i3)^2)*exp(-0.168479633 + *(-1.047 + 0.1*i4)^2)*exp(-0.46217188*(-1.02 + i5)^2)*exp(-0.946832753*(- + 3.556 + i6)^2)*exp(-0.511148681*(-4.303 + i7)^2)) + x8 >= 9.695900938; + + -(1.549238813*exp(-9.786276081*(-0.5364 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9697 + 0.1*i2)^2)*exp(-3.098426426*(-0.4909 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.161 + 0.1*i4)^2)*exp(-1.815130968*(-1.778 + i5)^2)*exp(- + 1.978689622*(-3.778 + i6)^2)*exp(-0.51006809*(-4.091 + i7)^2) - + 2.397663462*exp(-9.786276081*(-0.303 + 0.1*i1)^2)*exp(-12.73459431*(-0.697 + + 0.1*i2)^2)*exp(-3.098426426*(-0.8061 + 0.1*i3)^2)*exp(-1.234116106*(- + 0.9586 + 0.1*i4)^2)*exp(-1.815130968*(-1.758 + i5)^2)*exp(-1.978689622*(- + 3.141 + i6)^2)*exp(-0.51006809*(-4.424 + i7)^2) + 3.188045673*exp(- + 9.786276081*(-0.503 + 0.1*i1)^2)*exp(-12.73459431*(-0.6182 + 0.1*i2)^2)* + exp(-3.098426426*(-0.4121 + 0.1*i3)^2)*exp(-1.234116106*(-1.419 + 0.1*i4)^ + 2)*exp(-1.815130968*(-1.333 + i5)^2)*exp(-1.978689622*(-3.152 + i6)^2)* + exp(-0.51006809*(-3.697 + i7)^2) + 5.76067355*exp(-9.786276081*(-0.4606 + + 0.1*i1)^2)*exp(-12.73459431*(-0.903 + 0.1*i2)^2)*exp(-3.098426426*(-0.7576 + + 0.1*i3)^2)*exp(-1.234116106*(-0.7727 + 0.1*i4)^2)*exp(-1.815130968*(- + 1.242 + i5)^2)*exp(-1.978689622*(-3.98 + i6)^2)*exp(-0.51006809*(-3.424 + + i7)^2) - 2.187414546*exp(-9.786276081*(-0.3 + 0.1*i1)^2)*exp(-12.73459431* + (-0.7636 + 0.1*i2)^2)*exp(-3.098426426*(-0.8606 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.153 + 0.1*i4)^2)*exp(-1.815130968*(-1.556 + i5)^2)*exp(- + 1.978689622*(-3.939 + i6)^2)*exp(-0.51006809*(-2.818 + i7)^2) + + 7.187557862*exp(-9.786276081*(-0.5879 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.703 + 0.1*i2)^2)*exp(-3.098426426*(-0.4788 + 0.1*i3)^2)*exp(-1.234116106 + *(-1.039 + 0.1*i4)^2)*exp(-1.815130968*(-1.646 + i5)^2)*exp(-1.978689622*( + -3.222 + i6)^2)*exp(-0.51006809*(-4.636 + i7)^2) - 2.907572978*exp(- + 9.786276081*(-0.4121 + 0.1*i1)^2)*exp(-12.73459431*(-0.4424 + 0.1*i2)^2)* + exp(-3.098426426*(-0.5939 + 0.1*i3)^2)*exp(-1.234116106*(-1.46 + 0.1*i4)^2 + )*exp(-1.815130968*(-1.232 + i5)^2)*exp(-1.978689622*(-3.788 + i6)^2)*exp( + -0.51006809*(-3.848 + i7)^2) - 1.500388744*exp(-9.786276081*(-0.5576 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.8848 + 0.1*i2)^2)*exp(-3.098426426*(-0.8121 + + 0.1*i3)^2)*exp(-1.234116106*(-1.128 + 0.1*i4)^2)*exp(-1.815130968*(- + 1.263 + i5)^2)*exp(-1.978689622*(-3.808 + i6)^2)*exp(-0.51006809*(-4.818 + + i7)^2) - 8.618618558*exp(-9.786276081*(-0.4273 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.4848 + 0.1*i2)^2)*exp(-3.098426426*(-0.9697 + 0.1*i3)^2)* + exp(-1.234116106*(-0.9667 + 0.1*i4)^2)*exp(-1.815130968*(-1.364 + i5)^2)* + exp(-1.978689622*(-3.869 + i6)^2)*exp(-0.51006809*(-2.667 + i7)^2) - + 2.286283894*exp(-9.786276081*(-0.5455 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4061 + 0.1*i2)^2)*exp(-3.098426426*(-0.6303 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.427 + 0.1*i4)^2)*exp(-1.815130968*(-1.747 + i5)^2)*exp(- + 1.978689622*(-3.444 + i6)^2)*exp(-0.51006809*(-3.576 + i7)^2) + + 5.670861124*exp(-9.786276081*(-0.5394 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5273 + 0.1*i2)^2)*exp(-3.098426426*(-0.5636 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.355 + 0.1*i4)^2)*exp(-1.815130968*(-1.253 + i5)^2)*exp(- + 1.978689622*(-3.566 + i6)^2)*exp(-0.51006809*(-2.121 + i7)^2) - + 3.016968351*exp(-9.786276081*(-0.5273 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.8121 + 0.1*i2)^2)*exp(-3.098426426*(-0.8424 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.8535 + 0.1*i4)^2)*exp(-1.815130968*(-1.899 + i5)^2)*exp(- + 1.978689622*(-3.889 + i6)^2)*exp(-0.51006809*(-4.061 + i7)^2) + + 1.452821388*exp(-9.786276081*(-0.5727 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4909 + 0.1*i2)^2)*exp(-3.098426426*(-0.9333 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.306 + 0.1*i4)^2)*exp(-1.815130968*(-1.273 + i5)^2)*exp(- + 1.978689622*(-3.707 + i6)^2)*exp(-0.51006809*(-3.485 + i7)^2) + 6.30518963 + *exp(-9.786276081*(-0.3091 + 0.1*i1)^2)*exp(-12.73459431*(-0.6364 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.5758 + 0.1*i3)^2)*exp(-1.234116106*(-1.282 + 0.1 + *i4)^2)*exp(-1.815130968*(-1.222 + i5)^2)*exp(-1.978689622*(-3.192 + i6)^2 + )*exp(-0.51006809*(-4.455 + i7)^2) + 3.8645146*exp(-9.786276081*(-0.4364 + + 0.1*i1)^2)*exp(-12.73459431*(-0.7394 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.4485 + 0.1*i3)^2)*exp(-1.234116106*(-1.403 + 0.1*i4)^2)*exp(-1.815130968 + *(-1.465 + i5)^2)*exp(-1.978689622*(-3.687 + i6)^2)*exp(-0.51006809*(- + 4.939 + i7)^2) - 3.043509175*exp(-9.786276081*(-0.5636 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.6485 + 0.1*i2)^2)*exp(-3.098426426*(-0.7273 + 0.1*i3)^2)* + exp(-1.234116106*(-1.346 + 0.1*i4)^2)*exp(-1.815130968*(-1.01 + i5)^2)* + exp(-1.978689622*(-3.333 + i6)^2)*exp(-0.51006809*(-4.364 + i7)^2) + + 5.694143531*exp(-9.786276081*(-0.597 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.7152 + 0.1*i2)^2)*exp(-3.098426426*(-0.703 + 0.1*i3)^2)*exp(-1.234116106 + *(-1.209 + 0.1*i4)^2)*exp(-1.815130968*(-1.354 + i5)^2)*exp(-1.978689622*( + -3.01 + i6)^2)*exp(-0.51006809*(-2.758 + i7)^2) + 1.399933352*exp(- + 9.786276081*(-0.5152 + 0.1*i1)^2)*exp(-12.73459431*(-0.6606 + 0.1*i2)^2)* + exp(-3.098426426*(-0.503 + 0.1*i3)^2)*exp(-1.234116106*(-0.7566 + 0.1*i4)^ + 2)*exp(-1.815130968*(-1.424 + i5)^2)*exp(-1.978689622*(-3.848 + i6)^2)* + exp(-0.51006809*(-4.576 + i7)^2) - 3.901053391*exp(-9.786276081*(-0.5758 + + 0.1*i1)^2)*exp(-12.73459431*(-0.5152 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.4303 + 0.1*i3)^2)*exp(-1.234116106*(-0.8697 + 0.1*i4)^2)*exp(- + 1.815130968*(-1.374 + i5)^2)*exp(-1.978689622*(-3.414 + i6)^2)*exp(- + 0.51006809*(-3.061 + i7)^2) - 5.743212719*exp(-9.786276081*(-0.3939 + 0.1* + i1)^2)*exp(-12.73459431*(-0.7091 + 0.1*i2)^2)*exp(-3.098426426*(-0.4242 + + 0.1*i3)^2)*exp(-1.234116106*(-0.8293 + 0.1*i4)^2)*exp(-1.815130968*(-1.434 + + i5)^2)*exp(-1.978689622*(-3.121 + i6)^2)*exp(-0.51006809*(-4.394 + i7)^ + 2) - 1.319178962*exp(-9.786276081*(-0.403 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5333 + 0.1*i2)^2)*exp(-3.098426426*(-0.5152 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.233 + 0.1*i4)^2)*exp(-1.815130968*(-1.889 + i5)^2)*exp(- + 1.978689622*(-3.172 + i6)^2)*exp(-0.51006809*(-4.545 + i7)^2) - + 13.10518982*exp(-9.786276081*(-0.5061 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6121 + 0.1*i2)^2)*exp(-3.098426426*(-0.4606 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.144 + 0.1*i4)^2)*exp(-1.815130968*(-1.879 + i5)^2)*exp(- + 1.978689622*(-3.343 + i6)^2)*exp(-0.51006809*(-2.152 + i7)^2) - + 12.29752158*exp(-9.786276081*(-0.4152 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.8242 + 0.1*i2)^2)*exp(-3.098426426*(-0.6545 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.411 + 0.1*i4)^2)*exp(-1.815130968*(-1.525 + i5)^2)*exp(- + 1.978689622*(-3.04 + i6)^2)*exp(-0.51006809*(-2.273 + i7)^2) - 1.61765489* + exp(-9.786276081*(-0.4545 + 0.1*i1)^2)*exp(-12.73459431*(-0.503 + 0.1*i2)^ + 2)*exp(-3.098426426*(-0.7152 + 0.1*i3)^2)*exp(-1.234116106*(-0.797 + 0.1* + i4)^2)*exp(-1.815130968*(-1.798 + i5)^2)*exp(-1.978689622*(-3.424 + i6)^2) + *exp(-0.51006809*(-4.97 + i7)^2) - 1.950603908*exp(-9.786276081*(-0.3606 + + 0.1*i1)^2)*exp(-12.73459431*(-0.8 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.9394 + 0.1*i3)^2)*exp(-1.234116106*(-0.8212 + 0.1*i4)^2)*exp(- + 1.815130968*(-1.101 + i5)^2)*exp(-1.978689622*(-3.535 + i6)^2)*exp(- + 0.51006809*(-2.909 + i7)^2) + 1.734453686*exp(-9.786276081*(-0.5818 + 0.1* + i1)^2)*exp(-12.73459431*(-0.9394 + 0.1*i2)^2)*exp(-3.098426426*(-0.6364 + + 0.1*i3)^2)*exp(-1.234116106*(-1.435 + 0.1*i4)^2)*exp(-1.815130968*(-1.313 + + i5)^2)*exp(-1.978689622*(-3.576 + i6)^2)*exp(-0.51006809*(-3.212 + i7)^ + 2) + 0.146827064*exp(-9.786276081*(-0.4485 + 0.1*i1)^2)*exp(-12.73459431*( + -0.9273 + 0.1*i2)^2)*exp(-3.098426426*(-0.6 + 0.1*i3)^2)*exp(-1.234116106* + (-0.9505 + 0.1*i4)^2)*exp(-1.815130968*(-1.909 + i5)^2)*exp(-1.978689622*( + -3.051 + i6)^2)*exp(-0.51006809*(-3.97 + i7)^2) - 2.857891084*exp(- + 9.786276081*(-0.3394 + 0.1*i1)^2)*exp(-12.73459431*(-0.8788 + 0.1*i2)^2)* + exp(-3.098426426*(-0.4727 + 0.1*i3)^2)*exp(-1.234116106*(-0.7646 + 0.1*i4) + ^2)*exp(-1.815130968*(-1.293 + i5)^2)*exp(-1.978689622*(-3.616 + i6)^2)* + exp(-0.51006809*(-3.273 + i7)^2) - 0.097079365*exp(-9.786276081*(-0.3515 + + 0.1*i1)^2)*exp(-12.73459431*(-0.9576 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.8182 + 0.1*i3)^2)*exp(-1.234116106*(-0.7485 + 0.1*i4)^2)*exp(- + 1.815130968*(-1.768 + i5)^2)*exp(-1.978689622*(-3.505 + i6)^2)*exp(- + 0.51006809*(-3.394 + i7)^2) - 2.49195391*exp(-9.786276081*(-0.4061 + 0.1* + i1)^2)*exp(-12.73459431*(-0.6667 + 0.1*i2)^2)*exp(-3.098426426*(-0.9576 + + 0.1*i3)^2)*exp(-1.234116106*(-1.096 + 0.1*i4)^2)*exp(-1.815130968*(-1.131 + + i5)^2)*exp(-1.978689622*(-3.071 + i6)^2)*exp(-0.51006809*(-4.242 + i7)^ + 2) + 1.988530342*exp(-9.786276081*(-0.5788 + 0.1*i1)^2)*exp(-12.73459431*( + -0.6545 + 0.1*i2)^2)*exp(-3.098426426*(-0.7697 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.9101 + 0.1*i4)^2)*exp(-1.815130968*(-1.97 + i5)^2)*exp(- + 1.978689622*(-3.162 + i6)^2)*exp(-0.51006809*(-3.364 + i7)^2) + + 1.598084981*exp(-9.786276081*(-0.4788 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9818 + 0.1*i2)^2)*exp(-3.098426426*(-0.9879 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.193 + 0.1*i4)^2)*exp(-1.815130968*(-1.586 + i5)^2)*exp(- + 1.978689622*(-3.798 + i6)^2)*exp(-0.51006809*(-3.03 + i7)^2) - 2.582866554 + *exp(-9.786276081*(-0.3182 + 0.1*i1)^2)*exp(-12.73459431*(-0.5697 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.7091 + 0.1*i3)^2)*exp(-1.234116106*(-1.217 + 0.1 + *i4)^2)*exp(-1.815130968*(-1.061 + i5)^2)*exp(-1.978689622*(-3.646 + i6)^2 + )*exp(-0.51006809*(-2.455 + i7)^2) + 6.49025603*exp(-9.786276081*(-0.3909 + + 0.1*i1)^2)*exp(-12.73459431*(-0.8606 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.5818 + 0.1*i3)^2)*exp(-1.234116106*(-1.468 + 0.1*i4)^2)*exp(-1.815130968 + *(-1.03 + i5)^2)*exp(-1.978689622*(-3.455 + i6)^2)*exp(-0.51006809*(-3.242 + + i7)^2) - 1.680351239*exp(-9.786276081*(-0.5909 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.6303 + 0.1*i2)^2)*exp(-3.098426426*(-0.5091 + 0.1*i3)^2)* + exp(-1.234116106*(-1.266 + 0.1*i4)^2)*exp(-1.815130968*(-1.303 + i5)^2)* + exp(-1.978689622*(-3.899 + i6)^2)*exp(-0.51006809*(-3.909 + i7)^2) - + 2.709321916*exp(-9.786276081*(-0.5939 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6727 + 0.1*i2)^2)*exp(-3.098426426*(-0.7758 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.249 + 0.1*i4)^2)*exp(-1.815130968*(-1.818 + i5)^2)*exp(- + 1.978689622*(-3.586 + i6)^2)*exp(-0.51006809*(-4.848 + i7)^2) - + 1.259652921*exp(-9.786276081*(-0.5242 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.8061 + 0.1*i2)^2)*exp(-3.098426426*(-0.5697 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.452 + 0.1*i4)^2)*exp(-1.815130968*(-1.949 + i5)^2)*exp(- + 1.978689622*(-3.253 + i6)^2)*exp(-0.51006809*(-3.606 + i7)^2) + + 9.819742852*exp(-9.786276081*(-0.5667 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9636 + 0.1*i2)^2)*exp(-3.098426426*(-0.6182 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.7242 + 0.1*i4)^2)*exp(-1.815130968*(-1.495 + i5)^2)*exp(- + 1.978689622*(-3.475 + i6)^2)*exp(-0.51006809*(-3.818 + i7)^2) - + 4.917012492*exp(-9.786276081*(-0.3364 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5091 + 0.1*i2)^2)*exp(-3.098426426*(-0.697 + 0.1*i3)^2)*exp(-1.234116106 + *(-0.7323 + 0.1*i4)^2)*exp(-1.815130968*(-1.182 + i5)^2)*exp(-1.978689622* + (-3.313 + i6)^2)*exp(-0.51006809*(-3.727 + i7)^2) + 0.076063917*exp(- + 9.786276081*(-0.4212 + 0.1*i1)^2)*exp(-12.73459431*(-0.6061 + 0.1*i2)^2)* + exp(-3.098426426*(-0.8485 + 0.1*i3)^2)*exp(-1.234116106*(-1.476 + 0.1*i4)^ + 2)*exp(-1.815130968*(-1.505 + i5)^2)*exp(-1.978689622*(-3.364 + i6)^2)* + exp(-0.51006809*(-5 + i7)^2) + 6.18308518*exp(-9.786276081*(-0.3697 + 0.1* + i1)^2)*exp(-12.73459431*(-0.8485 + 0.1*i2)^2)*exp(-3.098426426*(-0.5455 + + 0.1*i3)^2)*exp(-1.234116106*(-0.902 + 0.1*i4)^2)*exp(-1.815130968*(-1.788 + + i5)^2)*exp(-1.978689622*(-3.697 + i6)^2)*exp(-0.51006809*(-4.909 + i7)^ + 2) + 2.52131178*exp(-9.786276081*(-0.5121 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5758 + 0.1*i2)^2)*exp(-3.098426426*(-0.9091 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.8051 + 0.1*i4)^2)*exp(-1.815130968*(-1.152 + i5)^2)*exp(- + 1.978689622*(-3.667 + i6)^2)*exp(-0.51006809*(-4.485 + i7)^2) + 11.8671491 + *exp(-9.786276081*(-0.4697 + 0.1*i1)^2)*exp(-12.73459431*(-0.7455 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.9515 + 0.1*i3)^2)*exp(-1.234116106*(-1.33 + 0.1* + i4)^2)*exp(-1.815130968*(-1.162 + i5)^2)*exp(-1.978689622*(-3.354 + i6)^2) + *exp(-0.51006809*(-2.182 + i7)^2) - 9.551923824*exp(-9.786276081*(-0.4758 + + 0.1*i1)^2)*exp(-12.73459431*(-0.6848 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.4848 + 0.1*i3)^2)*exp(-1.234116106*(-0.7 + 0.1*i4)^2)*exp(-1.815130968*( + -1.939 + i5)^2)*exp(-1.978689622*(-3.515 + i6)^2)*exp(-0.51006809*(-3.333 + + i7)^2) + 4.679126288*exp(-9.786276081*(-0.3152 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.5879 + 0.1*i2)^2)*exp(-3.098426426*(-0.8667 + 0.1*i3)^2)* + exp(-1.234116106*(-1.031 + 0.1*i4)^2)*exp(-1.815130968*(-1.485 + i5)^2)* + exp(-1.978689622*(-3.182 + i6)^2)*exp(-0.51006809*(-2.242 + i7)^2) + + 10.6114926*exp(-9.786276081*(-0.3818 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.7333 + 0.1*i2)^2)*exp(-3.098426426*(-0.4061 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.201 + 0.1*i4)^2)*exp(-1.815130968*(-1.283 + i5)^2)*exp(- + 1.978689622*(-3.949 + i6)^2)*exp(-0.51006809*(-3 + i7)^2) - 3.68323955* + exp(-9.786276081*(-0.5182 + 0.1*i1)^2)*exp(-12.73459431*(-0.9939 + 0.1*i2) + ^2)*exp(-3.098426426*(-0.8788 + 0.1*i3)^2)*exp(-1.234116106*(-1.072 + 0.1* + i4)^2)*exp(-1.815130968*(-1.081 + i5)^2)*exp(-1.978689622*(-3.303 + i6)^2) + *exp(-0.51006809*(-3.545 + i7)^2) + 9.006364668*exp(-9.786276081*(-0.4424 + + 0.1*i1)^2)*exp(-12.73459431*(-0.8364 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.5333 + 0.1*i3)^2)*exp(-1.234116106*(-1.484 + 0.1*i4)^2)*exp(-1.815130968 + *(-1.677 + i5)^2)*exp(-1.978689622*(-3.737 + i6)^2)*exp(-0.51006809*(- + 2.333 + i7)^2) - 4.30346761*exp(-9.786276081*(-0.397 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.5939 + 0.1*i2)^2)*exp(-3.098426426*(-0.8545 + 0.1*i3)^2)* + exp(-1.234116106*(-1.363 + 0.1*i4)^2)*exp(-1.815130968*(-1.869 + i5)^2)* + exp(-1.978689622*(-3.02 + i6)^2)*exp(-0.51006809*(-3.515 + i7)^2) + + 0.195650957*exp(-9.786276081*(-0.4879 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4788 + 0.1*i2)^2)*exp(-3.098426426*(-0.6121 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.8939 + 0.1*i4)^2)*exp(-1.815130968*(-1.051 + i5)^2)*exp(- + 1.978689622*(-3.879 + i6)^2)*exp(-0.51006809*(-3.182 + i7)^2) + + 5.615690522*exp(-9.786276081*(-0.3545 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4364 + 0.1*i2)^2)*exp(-3.098426426*(-0.7333 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.9828 + 0.1*i4)^2)*exp(-1.815130968*(-1.99 + i5)^2)*exp(- + 1.978689622*(-3.495 + i6)^2)*exp(-0.51006809*(-2.97 + i7)^2) - 2.409662273 + *exp(-9.786276081*(-0.5424 + 0.1*i1)^2)*exp(-12.73459431*(-0.6909 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.6727 + 0.1*i3)^2)*exp(-1.234116106*(-0.7889 + + 0.1*i4)^2)*exp(-1.815130968*(-1.121 + i5)^2)*exp(-1.978689622*(-3.091 + i6 + )^2)*exp(-0.51006809*(-4.121 + i7)^2) - 3.5333939*exp(-9.786276081*(- + 0.4848 + 0.1*i1)^2)*exp(-12.73459431*(-0.7879 + 0.1*i2)^2)*exp(- + 3.098426426*(-0.6909 + 0.1*i3)^2)*exp(-1.234116106*(-0.7162 + 0.1*i4)^2)* + exp(-1.815130968*(-1.475 + i5)^2)*exp(-1.978689622*(-3.131 + i6)^2)*exp(- + 0.51006809*(-2.212 + i7)^2) + 1.566836874*exp(-9.786276081*(-0.4394 + 0.1* + i1)^2)*exp(-12.73459431*(-0.897 + 0.1*i2)^2)*exp(-3.098426426*(-0.9758 + + 0.1*i3)^2)*exp(-1.234116106*(-1.023 + 0.1*i4)^2)*exp(-1.815130968*(-1.667 + + i5)^2)*exp(-1.978689622*(-3.061 + i6)^2)*exp(-0.51006809*(-2.879 + i7)^ + 2) + 4.137441676*exp(-9.786276081*(-0.3848 + 0.1*i1)^2)*exp(-12.73459431*( + -0.5394 + 0.1*i2)^2)*exp(-3.098426426*(-0.9152 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.5 + 0.1*i4)^2)*exp(-1.815130968*(-1.596 + i5)^2)*exp(- + 1.978689622*(-3.636 + i6)^2)*exp(-0.51006809*(-2.727 + i7)^2) + 4.05207785 + *exp(-9.786276081*(-0.5545 + 0.1*i1)^2)*exp(-12.73459431*(-0.9758 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.7212 + 0.1*i3)^2)*exp(-1.234116106*(-1.08 + 0.1* + i4)^2)*exp(-1.815130968*(-1.838 + i5)^2)*exp(-1.978689622*(-3.434 + i6)^2) + *exp(-0.51006809*(-2.364 + i7)^2) - 11.11774239*exp(-9.786276081*(-0.3758 + + 0.1*i1)^2)*exp(-12.73459431*(-0.8667 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.5394 + 0.1*i3)^2)*exp(-1.234116106*(-1.015 + 0.1*i4)^2)*exp(-1.815130968 + *(-1.919 + i5)^2)*exp(-1.978689622*(-3.909 + i6)^2)*exp(-0.51006809*(- + 2.939 + i7)^2) + 43.40531949*exp(-9.786276081*(-0.3212 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.7576 + 0.1*i2)^2)*exp(-3.098426426*(-0.5212 + 0.1*i3)^2)* + exp(-1.234116106*(-0.9343 + 0.1*i4)^2)*exp(-1.815130968*(-1.808 + i5)^2)* + exp(-1.978689622*(-3.212 + i6)^2)*exp(-0.51006809*(-2.545 + i7)^2) + + 3.954211135*exp(-9.786276081*(-0.4727 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9333 + 0.1*i2)^2)*exp(-3.098426426*(-0.6485 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.322 + 0.1*i4)^2)*exp(-1.815130968*(-1.394 + i5)^2)*exp(- + 1.978689622*(-3.081 + i6)^2)*exp(-0.51006809*(-4.697 + i7)^2) - + 2.972235855*exp(-9.786276081*(-0.4576 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5455 + 0.1*i2)^2)*exp(-3.098426426*(-0.9939 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.169 + 0.1*i4)^2)*exp(-1.815130968*(-1.98 + i5)^2)*exp(- + 1.978689622*(-3.626 + i6)^2)*exp(-0.51006809*(-3.939 + i7)^2) - + 5.833788915*exp(-9.786276081*(-0.3242 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9212 + 0.1*i2)^2)*exp(-3.098426426*(-0.4667 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.314 + 0.1*i4)^2)*exp(-1.815130968*(-1.697 + i5)^2)*exp(- + 1.978689622*(-3.374 + i6)^2)*exp(-0.51006809*(-3.758 + i7)^2) - + 1.393472047*exp(-9.786276081*(-0.5697 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4182 + 0.1*i2)^2)*exp(-3.098426426*(-0.7394 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.8374 + 0.1*i4)^2)*exp(-1.815130968*(-1.717 + i5)^2)*exp(- + 1.978689622*(-3.727 + i6)^2)*exp(-0.51006809*(-3.303 + i7)^2) - + 9.239690922*exp(-9.786276081*(-0.3727 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9879 + 0.1*i2)^2)*exp(-3.098426426*(-0.6848 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.104 + 0.1*i4)^2)*exp(-1.815130968*(-1.343 + i5)^2)*exp(- + 1.978689622*(-3.606 + i6)^2)*exp(-0.51006809*(-2 + i7)^2) + 4.774329286* + exp(-9.786276081*(-0.5091 + 0.1*i1)^2)*exp(-12.73459431*(-0.4667 + 0.1*i2) + ^2)*exp(-3.098426426*(-0.8303 + 0.1*i3)^2)*exp(-1.234116106*(-0.8859 + 0.1 + *i4)^2)*exp(-1.815130968*(-1.111 + i5)^2)*exp(-1.978689622*(-3.283 + i6)^2 + )*exp(-0.51006809*(-2.576 + i7)^2) - 2.906229815*exp(-9.786276081*(-0.3485 + + 0.1*i1)^2)*exp(-12.73459431*(-0.9091 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.6606 + 0.1*i3)^2)*exp(-1.234116106*(-0.999 + 0.1*i4)^2)*exp(-1.815130968 + *(-1.172 + i5)^2)*exp(-1.978689622*(-3.03 + i6)^2)*exp(-0.51006809*(-3.152 + + i7)^2) - 0.760228034*exp(-9.786276081*(-0.5848 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.6788 + 0.1*i2)^2)*exp(-3.098426426*(-0.8 + 0.1*i3)^2)*exp( + -1.234116106*(-1.298 + 0.1*i4)^2)*exp(-1.815130968*(-1.848 + i5)^2)*exp(- + 1.978689622*(-3.828 + i6)^2)*exp(-0.51006809*(-2.636 + i7)^2) - + 7.999582543*exp(-9.786276081*(-0.3303 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5212 + 0.1*i2)^2)*exp(-3.098426426*(-0.497 + 0.1*i3)^2)*exp(-1.234116106 + *(-1.395 + 0.1*i4)^2)*exp(-1.815130968*(-1.636 + i5)^2)*exp(-1.978689622*( + -3.384 + i6)^2)*exp(-0.51006809*(-2.697 + i7)^2) + 0.345988867*exp(- + 9.786276081*(-0.3061 + 0.1*i1)^2)*exp(-12.73459431*(-0.6242 + 0.1*i2)^2)* + exp(-3.098426426*(-0.6788 + 0.1*i3)^2)*exp(-1.234116106*(-1.338 + 0.1*i4)^ + 2)*exp(-1.815130968*(-1.859 + i5)^2)*exp(-1.978689622*(-3.758 + i6)^2)* + exp(-0.51006809*(-4.273 + i7)^2) - 2.107235876*exp(-9.786276081*(-0.5485 + + 0.1*i1)^2)*exp(-12.73459431*(-0.4545 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.8848 + 0.1*i3)^2)*exp(-1.234116106*(-1.112 + 0.1*i4)^2)*exp(-1.815130968 + *(-1.515 + i5)^2)*exp(-1.978689622*(-3.101 + i6)^2)*exp(-0.51006809*(- + 4.333 + i7)^2) + 1.850441007*exp(-9.786276081*(-0.4636 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.7939 + 0.1*i2)^2)*exp(-3.098426426*(-0.7879 + 0.1*i3)^2)* + exp(-1.234116106*(-1.492 + 0.1*i4)^2)*exp(-1.815130968*(-1.707 + i5)^2)* + exp(-1.978689622*(-3.97 + i6)^2)*exp(-0.51006809*(-4.03 + i7)^2) - + 2.636306594*exp(-9.786276081*(-0.3455 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5818 + 0.1*i2)^2)*exp(-3.098426426*(-0.7455 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.7404 + 0.1*i4)^2)*exp(-1.815130968*(-1.687 + i5)^2)*exp(- + 1.978689622*(-3.929 + i6)^2)*exp(-0.51006809*(-3.788 + i7)^2) - 4.52267013 + *exp(-9.786276081*(-0.6 + 0.1*i1)^2)*exp(-12.73459431*(-0.7515 + 0.1*i2)^2 + )*exp(-3.098426426*(-0.9455 + 0.1*i3)^2)*exp(-1.234116106*(-0.8616 + 0.1* + i4)^2)*exp(-1.815130968*(-1.384 + i5)^2)*exp(-1.978689622*(-3.596 + i6)^2) + *exp(-0.51006809*(-2.848 + i7)^2) + 2.990769634*exp(-9.786276081*(-0.3273 + + 0.1*i1)^2)*exp(-12.73459431*(-0.4 + 0.1*i2)^2)*exp(-3.098426426*(-0.897 + + 0.1*i3)^2)*exp(-1.234116106*(-1.12 + 0.1*i4)^2)*exp(-1.815130968*(- + 1.404 + i5)^2)*exp(-1.978689622*(-3.525 + i6)^2)*exp(-0.51006809*(-4.182 + + i7)^2) - 3.525617756*exp(-9.786276081*(-0.5212 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.497 + 0.1*i2)^2)*exp(-3.098426426*(-0.8909 + 0.1*i3)^2)* + exp(-1.234116106*(-1.185 + 0.1*i4)^2)*exp(-1.815130968*(-1.737 + i5)^2)* + exp(-1.978689622*(-3.293 + i6)^2)*exp(-0.51006809*(-2.091 + i7)^2) - + 0.679639301*exp(-9.786276081*(-0.4303 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4606 + 0.1*i2)^2)*exp(-3.098426426*(-0.6242 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.225 + 0.1*i4)^2)*exp(-1.815130968*(-1.727 + i5)^2)*exp(- + 1.978689622*(-3.96 + i6)^2)*exp(-0.51006809*(-2.424 + i7)^2) - 0.700935857 + *exp(-9.786276081*(-0.3121 + 0.1*i1)^2)*exp(-12.73459431*(-0.8909 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.903 + 0.1*i3)^2)*exp(-1.234116106*(-1.387 + 0.1* + i4)^2)*exp(-1.815130968*(-1.414 + i5)^2)*exp(-1.978689622*(-3.323 + i6)^2) + *exp(-0.51006809*(-3.636 + i7)^2) - 0.552640044*exp(-9.786276081*(-0.3424 + + 0.1*i1)^2)*exp(-12.73459431*(-0.4485 + 0.1*i2)^2)*exp(-3.098426426*(- + 0.4182 + 0.1*i3)^2)*exp(-1.234116106*(-0.9747 + 0.1*i4)^2)*exp(- + 1.815130968*(-1.566 + i5)^2)*exp(-1.978689622*(-3.657 + i6)^2)*exp(- + 0.51006809*(-3.879 + i7)^2) - 12.34860785*exp(-9.786276081*(-0.497 + 0.1* + i1)^2)*exp(-12.73459431*(-0.7697 + 0.1*i2)^2)*exp(-3.098426426*(-0.7939 + + 0.1*i3)^2)*exp(-1.234116106*(-1.274 + 0.1*i4)^2)*exp(-1.815130968*(-1.141 + + i5)^2)*exp(-1.978689622*(-4 + i6)^2)*exp(-0.51006809*(-2.515 + i7)^2) + + 5.220918883*exp(-9.786276081*(-0.4939 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5576 + 0.1*i2)^2)*exp(-3.098426426*(-0.4545 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.177 + 0.1*i4)^2)*exp(-1.815130968*(-1.96 + i5)^2)*exp(- + 1.978689622*(-3.818 + i6)^2)*exp(-0.51006809*(-4 + i7)^2) - 7.491278205* + exp(-9.786276081*(-0.5 + 0.1*i1)^2)*exp(-12.73459431*(-0.9515 + 0.1*i2)^2) + *exp(-3.098426426*(-0.4 + 0.1*i3)^2)*exp(-1.234116106*(-1.088 + 0.1*i4)^2) + *exp(-1.815130968*(-1.455 + i5)^2)*exp(-1.978689622*(-3.242 + i6)^2)*exp(- + 0.51006809*(-2.788 + i7)^2) + 3.582386742*exp(-9.786276081*(-0.4182 + 0.1* + i1)^2)*exp(-12.73459431*(-0.9455 + 0.1*i2)^2)*exp(-3.098426426*(-0.8364 + + 0.1*i3)^2)*exp(-1.234116106*(-1.258 + 0.1*i4)^2)*exp(-1.815130968*(-1.929 + + i5)^2)*exp(-1.978689622*(-3.465 + i6)^2)*exp(-0.51006809*(-4.606 + i7)^ + 2) - 0.505602665*exp(-9.786276081*(-0.3636 + 0.1*i1)^2)*exp(-12.73459431*( + -0.7818 + 0.1*i2)^2)*exp(-3.098426426*(-1 + 0.1*i3)^2)*exp(-1.234116106*(- + 0.9909 + 0.1*i4)^2)*exp(-1.815130968*(-1.535 + i5)^2)*exp(-1.978689622*(- + 3.768 + i6)^2)*exp(-0.51006809*(-4.667 + i7)^2) - 0.523727474*exp(- + 9.786276081*(-0.4091 + 0.1*i1)^2)*exp(-12.73459431*(-0.7212 + 0.1*i2)^2)* + exp(-3.098426426*(-0.9273 + 0.1*i3)^2)*exp(-1.234116106*(-1.371 + 0.1*i4)^ + 2)*exp(-1.815130968*(-1.04 + i5)^2)*exp(-1.978689622*(-3.747 + i6)^2)*exp( + -0.51006809*(-4.152 + i7)^2) + 3.29989854*exp(-9.786276081*(-0.4455 + 0.1* + i1)^2)*exp(-12.73459431*(-0.4242 + 0.1*i2)^2)*exp(-3.098426426*(-0.5879 + + 0.1*i3)^2)*exp(-1.234116106*(-0.9182 + 0.1*i4)^2)*exp(-1.815130968*(-1.626 + + i5)^2)*exp(-1.978689622*(-3 + i6)^2)*exp(-0.51006809*(-3.091 + i7)^2) + - 10.80247891*exp(-9.786276081*(-0.3667 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.8424 + 0.1*i2)^2)*exp(-3.098426426*(-0.8242 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.29 + 0.1*i4)^2)*exp(-1.815130968*(-2 + i5)^2)*exp(- + 1.978689622*(-3.485 + i6)^2)*exp(-0.51006809*(-2.485 + i7)^2) - + 7.379132704*exp(-9.786276081*(-0.4 + 0.1*i1)^2)*exp(-12.73459431*(-0.6 + + 0.1*i2)^2)*exp(-3.098426426*(-0.4364 + 0.1*i3)^2)*exp(-1.234116106*(-1.056 + + 0.1*i4)^2)*exp(-1.815130968*(-1.091 + i5)^2)*exp(-1.978689622*(-3.202 + + i6)^2)*exp(-0.51006809*(-2.606 + i7)^2) - 7.182292941*exp(-9.786276081* + (-0.5303 + 0.1*i1)^2)*exp(-12.73459431*(-0.8545 + 0.1*i2)^2)*exp(- + 3.098426426*(-0.9212 + 0.1*i3)^2)*exp(-1.234116106*(-0.8778 + 0.1*i4)^2)* + exp(-1.815130968*(-1.616 + i5)^2)*exp(-1.978689622*(-3.232 + i6)^2)*exp(- + 0.51006809*(-4.727 + i7)^2) + 3.286380697*exp(-9.786276081*(-0.3879 + 0.1* + i1)^2)*exp(-12.73459431*(-0.5515 + 0.1*i2)^2)*exp(-3.098426426*(-0.5576 + + 0.1*i3)^2)*exp(-1.234116106*(-0.7808 + 0.1*i4)^2)*exp(-1.815130968*(-1.444 + + i5)^2)*exp(-1.978689622*(-3.677 + i6)^2)*exp(-0.51006809*(-2.03 + i7)^2 + ) + 3.375186394*exp(-9.786276081*(-0.4515 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.7273 + 0.1*i2)^2)*exp(-3.098426426*(-0.8727 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.8131 + 0.1*i4)^2)*exp(-1.815130968*(-1.828 + i5)^2)*exp(- + 1.978689622*(-3.717 + i6)^2)*exp(-0.51006809*(-2.061 + i7)^2) + + 0.024562605*exp(-9.786276081*(-0.4818 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4121 + 0.1*i2)^2)*exp(-3.098426426*(-0.5515 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.064 + 0.1*i4)^2)*exp(-1.815130968*(-1.202 + i5)^2)*exp(- + 1.978689622*(-3.404 + i6)^2)*exp(-0.51006809*(-4.788 + i7)^2) - + 4.203673437*exp(-9.786276081*(-0.5515 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.8182 + 0.1*i2)^2)*exp(-3.098426426*(-0.9636 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.443 + 0.1*i4)^2)*exp(-1.815130968*(-1.606 + i5)^2)*exp(- + 1.978689622*(-3.263 + i6)^2)*exp(-0.51006809*(-3.667 + i7)^2) + + 0.399195266*exp(-9.786276081*(-0.4667 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4727 + 0.1*i2)^2)*exp(-3.098426426*(-0.7818 + 0.1*i3)^2)*exp(- + 1.234116106*(-1.136 + 0.1*i4)^2)*exp(-1.815130968*(-1.545 + i5)^2)*exp(- + 1.978689622*(-3.99 + i6)^2)*exp(-0.51006809*(-4.758 + i7)^2) + 6.464111194 + *exp(-9.786276081*(-0.5606 + 0.1*i1)^2)*exp(-12.73459431*(-0.7758 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.5273 + 0.1*i3)^2)*exp(-1.234116106*(-0.9263 + + 0.1*i4)^2)*exp(-1.815130968*(-1.576 + i5)^2)*exp(-1.978689622*(-3.919 + i6 + )^2)*exp(-0.51006809*(-2.394 + i7)^2) + 4.322527654*exp(-9.786276081*(- + 0.4333 + 0.1*i1)^2)*exp(-12.73459431*(-0.5636 + 0.1*i2)^2)*exp(- + 3.098426426*(-0.9818 + 0.1*i3)^2)*exp(-1.234116106*(-0.7081 + 0.1*i4)^2)* + exp(-1.815130968*(-1.657 + i5)^2)*exp(-1.978689622*(-3.273 + i6)^2)*exp(- + 0.51006809*(-3.455 + i7)^2) - 0.25697393*exp(-9.786276081*(-0.5333 + 0.1* + i1)^2)*exp(-12.73459431*(-0.8303 + 0.1*i2)^2)*exp(-3.098426426*(-0.6061 + + 0.1*i3)^2)*exp(-1.234116106*(-0.9424 + 0.1*i4)^2)*exp(-1.815130968*(-1 + + i5)^2)*exp(-1.978689622*(-3.545 + i6)^2)*exp(-0.51006809*(-2.303 + i7)^2) + + 5.512793849*exp(-9.786276081*(-0.3788 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9152 + 0.1*i2)^2)*exp(-3.098426426*(-0.7515 + 0.1*i3)^2)*exp(- + 1.234116106*(-0.8455 + 0.1*i4)^2)*exp(-1.815130968*(-1.212 + i5)^2)*exp(- + 1.978689622*(-3.394 + i6)^2)*exp(-0.51006809*(-4.879 + i7)^2) - 1.55975132 + *exp(-9.786276081*(-0.4909 + 0.1*i1)^2)*exp(-12.73459431*(-0.8727 + 0.1*i2 + )^2)*exp(-3.098426426*(-0.4424 + 0.1*i3)^2)*exp(-1.234116106*(-1.047 + 0.1 + *i4)^2)*exp(-1.815130968*(-1.02 + i5)^2)*exp(-1.978689622*(-3.556 + i6)^2) + *exp(-0.51006809*(-4.303 + i7)^2)) + x8 >= 11.01694324; + +-(-3.119526778*exp(-8.863295372*(-0.303 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.697 + 0.1*i2)^2)*exp(-1.950763773*(-0.8061 + 0.1*i3)^2)*exp(-1.358511991 + *(-0.9586 + 0.1*i4)^2)*exp(-1.30355952*(-1.758 + i5)^2)*exp(-1.120822279*( + -3.141 + i6)^2)*exp(-0.504487328*(-4.424 + i7)^2) - 0.830386148*exp(- + 8.863295372*(-0.5364 + 0.1*i1)^2)*exp(-11.95674384*(-0.9697 + 0.1*i2)^2)* + exp(-1.950763773*(-0.4909 + 0.1*i3)^2)*exp(-1.358511991*(-1.161 + 0.1*i4)^ + 2)*exp(-1.30355952*(-1.778 + i5)^2)*exp(-1.120822279*(-3.778 + i6)^2)*exp( + -0.504487328*(-4.091 + i7)^2) + 0.910788986*exp(-8.863295372*(-0.503 + 0.1 + *i1)^2)*exp(-11.95674384*(-0.6182 + 0.1*i2)^2)*exp(-1.950763773*(-0.4121 + + 0.1*i3)^2)*exp(-1.358511991*(-1.419 + 0.1*i4)^2)*exp(-1.30355952*(- + 1.333 + i5)^2)*exp(-1.120822279*(-3.152 + i6)^2)*exp(-0.504487328*(-3.697 + + i7)^2) + 10.36492003*exp(-8.863295372*(-0.4606 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.903 + 0.1*i2)^2)*exp(-1.950763773*(-0.7576 + 0.1*i3)^2)* + exp(-1.358511991*(-0.7727 + 0.1*i4)^2)*exp(-1.30355952*(-1.242 + i5)^2)* + exp(-1.120822279*(-3.98 + i6)^2)*exp(-0.504487328*(-3.424 + i7)^2) - + 2.287464449*exp(-8.863295372*(-0.3 + 0.1*i1)^2)*exp(-11.95674384*(-0.7636 + + 0.1*i2)^2)*exp(-1.950763773*(-0.8606 + 0.1*i3)^2)*exp(-1.358511991*(- + 1.153 + 0.1*i4)^2)*exp(-1.30355952*(-1.556 + i5)^2)*exp(-1.120822279*(- + 3.939 + i6)^2)*exp(-0.504487328*(-2.818 + i7)^2) + 12.49960868*exp(- + 8.863295372*(-0.5879 + 0.1*i1)^2)*exp(-11.95674384*(-0.703 + 0.1*i2)^2)* + exp(-1.950763773*(-0.4788 + 0.1*i3)^2)*exp(-1.358511991*(-1.039 + 0.1*i4)^ + 2)*exp(-1.30355952*(-1.646 + i5)^2)*exp(-1.120822279*(-3.222 + i6)^2)*exp( + -0.504487328*(-4.636 + i7)^2) - 3.556994818*exp(-8.863295372*(-0.4121 + + 0.1*i1)^2)*exp(-11.95674384*(-0.4424 + 0.1*i2)^2)*exp(-1.950763773*(- + 0.5939 + 0.1*i3)^2)*exp(-1.358511991*(-1.46 + 0.1*i4)^2)*exp(-1.30355952*( + -1.232 + i5)^2)*exp(-1.120822279*(-3.788 + i6)^2)*exp(-0.504487328*(-3.848 + + i7)^2) + 1.765488067*exp(-8.863295372*(-0.5576 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.8848 + 0.1*i2)^2)*exp(-1.950763773*(-0.8121 + 0.1*i3)^2)* + exp(-1.358511991*(-1.128 + 0.1*i4)^2)*exp(-1.30355952*(-1.263 + i5)^2)* + exp(-1.120822279*(-3.808 + i6)^2)*exp(-0.504487328*(-4.818 + i7)^2) - + 14.02373943*exp(-8.863295372*(-0.4273 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4848 + 0.1*i2)^2)*exp(-1.950763773*(-0.9697 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9667 + 0.1*i4)^2)*exp(-1.30355952*(-1.364 + i5)^2)*exp(- + 1.120822279*(-3.869 + i6)^2)*exp(-0.504487328*(-2.667 + i7)^2) - + 3.029847429*exp(-8.863295372*(-0.5455 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4061 + 0.1*i2)^2)*exp(-1.950763773*(-0.6303 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.427 + 0.1*i4)^2)*exp(-1.30355952*(-1.747 + i5)^2)*exp(- + 1.120822279*(-3.444 + i6)^2)*exp(-0.504487328*(-3.576 + i7)^2) + + 6.241863545*exp(-8.863295372*(-0.5394 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5273 + 0.1*i2)^2)*exp(-1.950763773*(-0.5636 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.355 + 0.1*i4)^2)*exp(-1.30355952*(-1.253 + i5)^2)*exp(- + 1.120822279*(-3.566 + i6)^2)*exp(-0.504487328*(-2.121 + i7)^2) - + 5.159017386*exp(-8.863295372*(-0.5273 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8121 + 0.1*i2)^2)*exp(-1.950763773*(-0.8424 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.8535 + 0.1*i4)^2)*exp(-1.30355952*(-1.899 + i5)^2)*exp(- + 1.120822279*(-3.889 + i6)^2)*exp(-0.504487328*(-4.061 + i7)^2) + + 0.503404025*exp(-8.863295372*(-0.5727 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4909 + 0.1*i2)^2)*exp(-1.950763773*(-0.9333 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.306 + 0.1*i4)^2)*exp(-1.30355952*(-1.273 + i5)^2)*exp(- + 1.120822279*(-3.707 + i6)^2)*exp(-0.504487328*(-3.485 + i7)^2) + + 9.799005157*exp(-8.863295372*(-0.3091 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6364 + 0.1*i2)^2)*exp(-1.950763773*(-0.5758 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.282 + 0.1*i4)^2)*exp(-1.30355952*(-1.222 + i5)^2)*exp(- + 1.120822279*(-3.192 + i6)^2)*exp(-0.504487328*(-4.455 + i7)^2) + + 0.44594663*exp(-8.863295372*(-0.4364 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7394 + 0.1*i2)^2)*exp(-1.950763773*(-0.4485 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.403 + 0.1*i4)^2)*exp(-1.30355952*(-1.465 + i5)^2)*exp(- + 1.120822279*(-3.687 + i6)^2)*exp(-0.504487328*(-4.939 + i7)^2) - + 4.305006889*exp(-8.863295372*(-0.5636 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6485 + 0.1*i2)^2)*exp(-1.950763773*(-0.7273 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.346 + 0.1*i4)^2)*exp(-1.30355952*(-1.01 + i5)^2)*exp(- + 1.120822279*(-3.333 + i6)^2)*exp(-0.504487328*(-4.364 + i7)^2) + + 11.44770971*exp(-8.863295372*(-0.597 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7152 + 0.1*i2)^2)*exp(-1.950763773*(-0.703 + 0.1*i3)^2)*exp(-1.358511991 + *(-1.209 + 0.1*i4)^2)*exp(-1.30355952*(-1.354 + i5)^2)*exp(-1.120822279*(- + 3.01 + i6)^2)*exp(-0.504487328*(-2.758 + i7)^2) + 3.849540211*exp(- + 8.863295372*(-0.5152 + 0.1*i1)^2)*exp(-11.95674384*(-0.6606 + 0.1*i2)^2)* + exp(-1.950763773*(-0.503 + 0.1*i3)^2)*exp(-1.358511991*(-0.7566 + 0.1*i4)^ + 2)*exp(-1.30355952*(-1.424 + i5)^2)*exp(-1.120822279*(-3.848 + i6)^2)*exp( + -0.504487328*(-4.576 + i7)^2) - 7.057833794*exp(-8.863295372*(-0.5758 + + 0.1*i1)^2)*exp(-11.95674384*(-0.5152 + 0.1*i2)^2)*exp(-1.950763773*(- + 0.4303 + 0.1*i3)^2)*exp(-1.358511991*(-0.8697 + 0.1*i4)^2)*exp(-1.30355952 + *(-1.374 + i5)^2)*exp(-1.120822279*(-3.414 + i6)^2)*exp(-0.504487328*(- + 3.061 + i7)^2) - 5.509272951*exp(-8.863295372*(-0.3939 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.7091 + 0.1*i2)^2)*exp(-1.950763773*(-0.4242 + 0.1*i3)^2)* + exp(-1.358511991*(-0.8293 + 0.1*i4)^2)*exp(-1.30355952*(-1.434 + i5)^2)* + exp(-1.120822279*(-3.121 + i6)^2)*exp(-0.504487328*(-4.394 + i7)^2) - + 1.59080698*exp(-8.863295372*(-0.403 + 0.1*i1)^2)*exp(-11.95674384*(-0.5333 + + 0.1*i2)^2)*exp(-1.950763773*(-0.5152 + 0.1*i3)^2)*exp(-1.358511991*(- + 1.233 + 0.1*i4)^2)*exp(-1.30355952*(-1.889 + i5)^2)*exp(-1.120822279*(- + 3.172 + i6)^2)*exp(-0.504487328*(-4.545 + i7)^2) - 10.51423955*exp(- + 8.863295372*(-0.5061 + 0.1*i1)^2)*exp(-11.95674384*(-0.6121 + 0.1*i2)^2)* + exp(-1.950763773*(-0.4606 + 0.1*i3)^2)*exp(-1.358511991*(-1.144 + 0.1*i4)^ + 2)*exp(-1.30355952*(-1.879 + i5)^2)*exp(-1.120822279*(-3.343 + i6)^2)*exp( + -0.504487328*(-2.152 + i7)^2) - 14.56297373*exp(-8.863295372*(-0.4152 + + 0.1*i1)^2)*exp(-11.95674384*(-0.8242 + 0.1*i2)^2)*exp(-1.950763773*(- + 0.6545 + 0.1*i3)^2)*exp(-1.358511991*(-1.411 + 0.1*i4)^2)*exp(-1.30355952* + (-1.525 + i5)^2)*exp(-1.120822279*(-3.04 + i6)^2)*exp(-0.504487328*(-2.273 + + i7)^2) - 4.159032546*exp(-8.863295372*(-0.4545 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.503 + 0.1*i2)^2)*exp(-1.950763773*(-0.7152 + 0.1*i3)^2)* + exp(-1.358511991*(-0.797 + 0.1*i4)^2)*exp(-1.30355952*(-1.798 + i5)^2)* + exp(-1.120822279*(-3.424 + i6)^2)*exp(-0.504487328*(-4.97 + i7)^2) + + 3.033682454*exp(-8.863295372*(-0.3606 + 0.1*i1)^2)*exp(-11.95674384*(-0.8 + + 0.1*i2)^2)*exp(-1.950763773*(-0.9394 + 0.1*i3)^2)*exp(-1.358511991*(- + 0.8212 + 0.1*i4)^2)*exp(-1.30355952*(-1.101 + i5)^2)*exp(-1.120822279*(- + 3.535 + i6)^2)*exp(-0.504487328*(-2.909 + i7)^2) + 3.125291117*exp(- + 8.863295372*(-0.5818 + 0.1*i1)^2)*exp(-11.95674384*(-0.9394 + 0.1*i2)^2)* + exp(-1.950763773*(-0.6364 + 0.1*i3)^2)*exp(-1.358511991*(-1.435 + 0.1*i4)^ + 2)*exp(-1.30355952*(-1.313 + i5)^2)*exp(-1.120822279*(-3.576 + i6)^2)*exp( + -0.504487328*(-3.212 + i7)^2) + 2.236524677*exp(-8.863295372*(-0.4485 + + 0.1*i1)^2)*exp(-11.95674384*(-0.9273 + 0.1*i2)^2)*exp(-1.950763773*(-0.6 + + 0.1*i3)^2)*exp(-1.358511991*(-0.9505 + 0.1*i4)^2)*exp(-1.30355952*(- + 1.909 + i5)^2)*exp(-1.120822279*(-3.051 + i6)^2)*exp(-0.504487328*(-3.97 + + i7)^2) - 1.845856375*exp(-8.863295372*(-0.3394 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.8788 + 0.1*i2)^2)*exp(-1.950763773*(-0.4727 + 0.1*i3)^2)* + exp(-1.358511991*(-0.7646 + 0.1*i4)^2)*exp(-1.30355952*(-1.293 + i5)^2)* + exp(-1.120822279*(-3.616 + i6)^2)*exp(-0.504487328*(-3.273 + i7)^2) + + 2.410130377*exp(-8.863295372*(-0.3515 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.9576 + 0.1*i2)^2)*exp(-1.950763773*(-0.8182 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7485 + 0.1*i4)^2)*exp(-1.30355952*(-1.768 + i5)^2)*exp(- + 1.120822279*(-3.505 + i6)^2)*exp(-0.504487328*(-3.394 + i7)^2) - + 3.836702082*exp(-8.863295372*(-0.4061 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6667 + 0.1*i2)^2)*exp(-1.950763773*(-0.9576 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.096 + 0.1*i4)^2)*exp(-1.30355952*(-1.131 + i5)^2)*exp(- + 1.120822279*(-3.071 + i6)^2)*exp(-0.504487328*(-4.242 + i7)^2) - + 2.482482475*exp(-8.863295372*(-0.5788 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6545 + 0.1*i2)^2)*exp(-1.950763773*(-0.7697 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9101 + 0.1*i4)^2)*exp(-1.30355952*(-1.97 + i5)^2)*exp(- + 1.120822279*(-3.162 + i6)^2)*exp(-0.504487328*(-3.364 + i7)^2) + + 1.988551665*exp(-8.863295372*(-0.4788 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.9818 + 0.1*i2)^2)*exp(-1.950763773*(-0.9879 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.193 + 0.1*i4)^2)*exp(-1.30355952*(-1.586 + i5)^2)*exp(- + 1.120822279*(-3.798 + i6)^2)*exp(-0.504487328*(-3.03 + i7)^2) + + 0.000145003*exp(-8.863295372*(-0.3182 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5697 + 0.1*i2)^2)*exp(-1.950763773*(-0.7091 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.217 + 0.1*i4)^2)*exp(-1.30355952*(-1.061 + i5)^2)*exp(- + 1.120822279*(-3.646 + i6)^2)*exp(-0.504487328*(-2.455 + i7)^2) + + 13.8824123*exp(-8.863295372*(-0.3909 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8606 + 0.1*i2)^2)*exp(-1.950763773*(-0.5818 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.468 + 0.1*i4)^2)*exp(-1.30355952*(-1.03 + i5)^2)*exp(- + 1.120822279*(-3.455 + i6)^2)*exp(-0.504487328*(-3.242 + i7)^2) + + 4.045397939*exp(-8.863295372*(-0.5909 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6303 + 0.1*i2)^2)*exp(-1.950763773*(-0.5091 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.266 + 0.1*i4)^2)*exp(-1.30355952*(-1.303 + i5)^2)*exp(- + 1.120822279*(-3.899 + i6)^2)*exp(-0.504487328*(-3.909 + i7)^2) - + 4.895071326*exp(-8.863295372*(-0.5939 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6727 + 0.1*i2)^2)*exp(-1.950763773*(-0.7758 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.249 + 0.1*i4)^2)*exp(-1.30355952*(-1.818 + i5)^2)*exp(- + 1.120822279*(-3.586 + i6)^2)*exp(-0.504487328*(-4.848 + i7)^2) - + 0.762788142*exp(-8.863295372*(-0.5242 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8061 + 0.1*i2)^2)*exp(-1.950763773*(-0.5697 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.452 + 0.1*i4)^2)*exp(-1.30355952*(-1.949 + i5)^2)*exp(- + 1.120822279*(-3.253 + i6)^2)*exp(-0.504487328*(-3.606 + i7)^2) + + 2.733733144*exp(-8.863295372*(-0.5667 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.9636 + 0.1*i2)^2)*exp(-1.950763773*(-0.6182 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7242 + 0.1*i4)^2)*exp(-1.30355952*(-1.495 + i5)^2)*exp(- + 1.120822279*(-3.475 + i6)^2)*exp(-0.504487328*(-3.818 + i7)^2) - + 7.974624604*exp(-8.863295372*(-0.3364 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5091 + 0.1*i2)^2)*exp(-1.950763773*(-0.697 + 0.1*i3)^2)*exp(-1.358511991 + *(-0.7323 + 0.1*i4)^2)*exp(-1.30355952*(-1.182 + i5)^2)*exp(-1.120822279*( + -3.313 + i6)^2)*exp(-0.504487328*(-3.727 + i7)^2) - 0.291768722*exp(- + 8.863295372*(-0.4212 + 0.1*i1)^2)*exp(-11.95674384*(-0.6061 + 0.1*i2)^2)* + exp(-1.950763773*(-0.8485 + 0.1*i3)^2)*exp(-1.358511991*(-1.476 + 0.1*i4)^ + 2)*exp(-1.30355952*(-1.505 + i5)^2)*exp(-1.120822279*(-3.364 + i6)^2)*exp( + -0.504487328*(-5 + i7)^2) + 4.741695872*exp(-8.863295372*(-0.3697 + 0.1*i1 + )^2)*exp(-11.95674384*(-0.8485 + 0.1*i2)^2)*exp(-1.950763773*(-0.5455 + + 0.1*i3)^2)*exp(-1.358511991*(-0.902 + 0.1*i4)^2)*exp(-1.30355952*(-1.788 + + i5)^2)*exp(-1.120822279*(-3.697 + i6)^2)*exp(-0.504487328*(-4.909 + i7) + ^2) + 1.813164685*exp(-8.863295372*(-0.5121 + 0.1*i1)^2)*exp(-11.95674384* + (-0.5758 + 0.1*i2)^2)*exp(-1.950763773*(-0.9091 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.8051 + 0.1*i4)^2)*exp(-1.30355952*(-1.152 + i5)^2)*exp(- + 1.120822279*(-3.667 + i6)^2)*exp(-0.504487328*(-4.485 + i7)^2) + + 5.357878066*exp(-8.863295372*(-0.4697 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7455 + 0.1*i2)^2)*exp(-1.950763773*(-0.9515 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.33 + 0.1*i4)^2)*exp(-1.30355952*(-1.162 + i5)^2)*exp(- + 1.120822279*(-3.354 + i6)^2)*exp(-0.504487328*(-2.182 + i7)^2) - + 3.624989013*exp(-8.863295372*(-0.4758 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6848 + 0.1*i2)^2)*exp(-1.950763773*(-0.4848 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7 + 0.1*i4)^2)*exp(-1.30355952*(-1.939 + i5)^2)*exp(- + 1.120822279*(-3.515 + i6)^2)*exp(-0.504487328*(-3.333 + i7)^2) + + 11.38466574*exp(-8.863295372*(-0.3152 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5879 + 0.1*i2)^2)*exp(-1.950763773*(-0.8667 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.031 + 0.1*i4)^2)*exp(-1.30355952*(-1.485 + i5)^2)*exp(- + 1.120822279*(-3.182 + i6)^2)*exp(-0.504487328*(-2.242 + i7)^2) - + 2.996927085*exp(-8.863295372*(-0.3818 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7333 + 0.1*i2)^2)*exp(-1.950763773*(-0.4061 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.201 + 0.1*i4)^2)*exp(-1.30355952*(-1.283 + i5)^2)*exp(- + 1.120822279*(-3.949 + i6)^2)*exp(-0.504487328*(-3 + i7)^2) - 4.249798666* + exp(-8.863295372*(-0.5182 + 0.1*i1)^2)*exp(-11.95674384*(-0.9939 + 0.1*i2) + ^2)*exp(-1.950763773*(-0.8788 + 0.1*i3)^2)*exp(-1.358511991*(-1.072 + 0.1* + i4)^2)*exp(-1.30355952*(-1.081 + i5)^2)*exp(-1.120822279*(-3.303 + i6)^2)* + exp(-0.504487328*(-3.545 + i7)^2) + 13.01542634*exp(-8.863295372*(-0.4424 + + 0.1*i1)^2)*exp(-11.95674384*(-0.8364 + 0.1*i2)^2)*exp(-1.950763773*(- + 0.5333 + 0.1*i3)^2)*exp(-1.358511991*(-1.484 + 0.1*i4)^2)*exp(-1.30355952* + (-1.677 + i5)^2)*exp(-1.120822279*(-3.737 + i6)^2)*exp(-0.504487328*(- + 2.333 + i7)^2) - 5.752191484*exp(-8.863295372*(-0.397 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.5939 + 0.1*i2)^2)*exp(-1.950763773*(-0.8545 + 0.1*i3)^2)* + exp(-1.358511991*(-1.363 + 0.1*i4)^2)*exp(-1.30355952*(-1.869 + i5)^2)* + exp(-1.120822279*(-3.02 + i6)^2)*exp(-0.504487328*(-3.515 + i7)^2) + + 3.558232447*exp(-8.863295372*(-0.4879 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4788 + 0.1*i2)^2)*exp(-1.950763773*(-0.6121 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.8939 + 0.1*i4)^2)*exp(-1.30355952*(-1.051 + i5)^2)*exp(- + 1.120822279*(-3.879 + i6)^2)*exp(-0.504487328*(-3.182 + i7)^2) + + 4.614375663*exp(-8.863295372*(-0.3545 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4364 + 0.1*i2)^2)*exp(-1.950763773*(-0.7333 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9828 + 0.1*i4)^2)*exp(-1.30355952*(-1.99 + i5)^2)*exp(- + 1.120822279*(-3.495 + i6)^2)*exp(-0.504487328*(-2.97 + i7)^2) - + 0.821659291*exp(-8.863295372*(-0.5424 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.6909 + 0.1*i2)^2)*exp(-1.950763773*(-0.6727 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7889 + 0.1*i4)^2)*exp(-1.30355952*(-1.121 + i5)^2)*exp(- + 1.120822279*(-3.091 + i6)^2)*exp(-0.504487328*(-4.121 + i7)^2) - + 11.66344704*exp(-8.863295372*(-0.4848 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7879 + 0.1*i2)^2)*exp(-1.950763773*(-0.6909 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7162 + 0.1*i4)^2)*exp(-1.30355952*(-1.475 + i5)^2)*exp(- + 1.120822279*(-3.131 + i6)^2)*exp(-0.504487328*(-2.212 + i7)^2) + + 4.942208827*exp(-8.863295372*(-0.4394 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.897 + 0.1*i2)^2)*exp(-1.950763773*(-0.9758 + 0.1*i3)^2)*exp(-1.358511991 + *(-1.023 + 0.1*i4)^2)*exp(-1.30355952*(-1.667 + i5)^2)*exp(-1.120822279*(- + 3.061 + i6)^2)*exp(-0.504487328*(-2.879 + i7)^2) + 5.57731302*exp(- + 8.863295372*(-0.3848 + 0.1*i1)^2)*exp(-11.95674384*(-0.5394 + 0.1*i2)^2)* + exp(-1.950763773*(-0.9152 + 0.1*i3)^2)*exp(-1.358511991*(-1.5 + 0.1*i4)^2) + *exp(-1.30355952*(-1.596 + i5)^2)*exp(-1.120822279*(-3.636 + i6)^2)*exp(- + 0.504487328*(-2.727 + i7)^2) + 8.992931813*exp(-8.863295372*(-0.5545 + 0.1 + *i1)^2)*exp(-11.95674384*(-0.9758 + 0.1*i2)^2)*exp(-1.950763773*(-0.7212 + + 0.1*i3)^2)*exp(-1.358511991*(-1.08 + 0.1*i4)^2)*exp(-1.30355952*(-1.838 + + i5)^2)*exp(-1.120822279*(-3.434 + i6)^2)*exp(-0.504487328*(-2.364 + i7) + ^2) - 6.495541701*exp(-8.863295372*(-0.3758 + 0.1*i1)^2)*exp(-11.95674384* + (-0.8667 + 0.1*i2)^2)*exp(-1.950763773*(-0.5394 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.015 + 0.1*i4)^2)*exp(-1.30355952*(-1.919 + i5)^2)*exp(- + 1.120822279*(-3.909 + i6)^2)*exp(-0.504487328*(-2.939 + i7)^2) + + 46.4164368*exp(-8.863295372*(-0.3212 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7576 + 0.1*i2)^2)*exp(-1.950763773*(-0.5212 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9343 + 0.1*i4)^2)*exp(-1.30355952*(-1.808 + i5)^2)*exp(- + 1.120822279*(-3.212 + i6)^2)*exp(-0.504487328*(-2.545 + i7)^2) + + 3.567650851*exp(-8.863295372*(-0.4727 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.9333 + 0.1*i2)^2)*exp(-1.950763773*(-0.6485 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.322 + 0.1*i4)^2)*exp(-1.30355952*(-1.394 + i5)^2)*exp(- + 1.120822279*(-3.081 + i6)^2)*exp(-0.504487328*(-4.697 + i7)^2) - + 1.880075995*exp(-8.863295372*(-0.4576 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5455 + 0.1*i2)^2)*exp(-1.950763773*(-0.9939 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.169 + 0.1*i4)^2)*exp(-1.30355952*(-1.98 + i5)^2)*exp(- + 1.120822279*(-3.626 + i6)^2)*exp(-0.504487328*(-3.939 + i7)^2) - + 10.56204613*exp(-8.863295372*(-0.3242 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.9212 + 0.1*i2)^2)*exp(-1.950763773*(-0.4667 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.314 + 0.1*i4)^2)*exp(-1.30355952*(-1.697 + i5)^2)*exp(- + 1.120822279*(-3.374 + i6)^2)*exp(-0.504487328*(-3.758 + i7)^2) - + 4.003685445*exp(-8.863295372*(-0.5697 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4182 + 0.1*i2)^2)*exp(-1.950763773*(-0.7394 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.8374 + 0.1*i4)^2)*exp(-1.30355952*(-1.717 + i5)^2)*exp(- + 1.120822279*(-3.727 + i6)^2)*exp(-0.504487328*(-3.303 + i7)^2) - + 14.39519413*exp(-8.863295372*(-0.3727 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.9879 + 0.1*i2)^2)*exp(-1.950763773*(-0.6848 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.104 + 0.1*i4)^2)*exp(-1.30355952*(-1.343 + i5)^2)*exp(- + 1.120822279*(-3.606 + i6)^2)*exp(-0.504487328*(-2 + i7)^2) + 9.50251905* + exp(-8.863295372*(-0.5091 + 0.1*i1)^2)*exp(-11.95674384*(-0.4667 + 0.1*i2) + ^2)*exp(-1.950763773*(-0.8303 + 0.1*i3)^2)*exp(-1.358511991*(-0.8859 + 0.1 + *i4)^2)*exp(-1.30355952*(-1.111 + i5)^2)*exp(-1.120822279*(-3.283 + i6)^2) + *exp(-0.504487328*(-2.576 + i7)^2) - 10.11586689*exp(-8.863295372*(-0.3485 + + 0.1*i1)^2)*exp(-11.95674384*(-0.9091 + 0.1*i2)^2)*exp(-1.950763773*(- + 0.6606 + 0.1*i3)^2)*exp(-1.358511991*(-0.999 + 0.1*i4)^2)*exp(-1.30355952* + (-1.172 + i5)^2)*exp(-1.120822279*(-3.03 + i6)^2)*exp(-0.504487328*(-3.152 + + i7)^2) - 2.853435172*exp(-8.863295372*(-0.5848 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.6788 + 0.1*i2)^2)*exp(-1.950763773*(-0.8 + 0.1*i3)^2)*exp( + -1.358511991*(-1.298 + 0.1*i4)^2)*exp(-1.30355952*(-1.848 + i5)^2)*exp(- + 1.120822279*(-3.828 + i6)^2)*exp(-0.504487328*(-2.636 + i7)^2) - + 8.279744938*exp(-8.863295372*(-0.3303 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5212 + 0.1*i2)^2)*exp(-1.950763773*(-0.497 + 0.1*i3)^2)*exp(-1.358511991 + *(-1.395 + 0.1*i4)^2)*exp(-1.30355952*(-1.636 + i5)^2)*exp(-1.120822279*(- + 3.384 + i6)^2)*exp(-0.504487328*(-2.697 + i7)^2) + 2.823693997*exp(- + 8.863295372*(-0.3061 + 0.1*i1)^2)*exp(-11.95674384*(-0.6242 + 0.1*i2)^2)* + exp(-1.950763773*(-0.6788 + 0.1*i3)^2)*exp(-1.358511991*(-1.338 + 0.1*i4)^ + 2)*exp(-1.30355952*(-1.859 + i5)^2)*exp(-1.120822279*(-3.758 + i6)^2)*exp( + -0.504487328*(-4.273 + i7)^2) - 0.939330216*exp(-8.863295372*(-0.5485 + + 0.1*i1)^2)*exp(-11.95674384*(-0.4545 + 0.1*i2)^2)*exp(-1.950763773*(- + 0.8848 + 0.1*i3)^2)*exp(-1.358511991*(-1.112 + 0.1*i4)^2)*exp(-1.30355952* + (-1.515 + i5)^2)*exp(-1.120822279*(-3.101 + i6)^2)*exp(-0.504487328*(- + 4.333 + i7)^2) + 3.575485518*exp(-8.863295372*(-0.4636 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.7939 + 0.1*i2)^2)*exp(-1.950763773*(-0.7879 + 0.1*i3)^2)* + exp(-1.358511991*(-1.492 + 0.1*i4)^2)*exp(-1.30355952*(-1.707 + i5)^2)* + exp(-1.120822279*(-3.97 + i6)^2)*exp(-0.504487328*(-4.03 + i7)^2) - + 5.759281026*exp(-8.863295372*(-0.3455 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5818 + 0.1*i2)^2)*exp(-1.950763773*(-0.7455 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7404 + 0.1*i4)^2)*exp(-1.30355952*(-1.687 + i5)^2)*exp(- + 1.120822279*(-3.929 + i6)^2)*exp(-0.504487328*(-3.788 + i7)^2) - + 7.654097793*exp(-8.863295372*(-0.6 + 0.1*i1)^2)*exp(-11.95674384*(-0.7515 + + 0.1*i2)^2)*exp(-1.950763773*(-0.9455 + 0.1*i3)^2)*exp(-1.358511991*(- + 0.8616 + 0.1*i4)^2)*exp(-1.30355952*(-1.384 + i5)^2)*exp(-1.120822279*(- + 3.596 + i6)^2)*exp(-0.504487328*(-2.848 + i7)^2) + 1.356387041*exp(- + 8.863295372*(-0.3273 + 0.1*i1)^2)*exp(-11.95674384*(-0.4 + 0.1*i2)^2)*exp( + -1.950763773*(-0.897 + 0.1*i3)^2)*exp(-1.358511991*(-1.12 + 0.1*i4)^2)* + exp(-1.30355952*(-1.404 + i5)^2)*exp(-1.120822279*(-3.525 + i6)^2)*exp(- + 0.504487328*(-4.182 + i7)^2) - 4.163462923*exp(-8.863295372*(-0.5212 + 0.1 + *i1)^2)*exp(-11.95674384*(-0.497 + 0.1*i2)^2)*exp(-1.950763773*(-0.8909 + + 0.1*i3)^2)*exp(-1.358511991*(-1.185 + 0.1*i4)^2)*exp(-1.30355952*(-1.737 + + i5)^2)*exp(-1.120822279*(-3.293 + i6)^2)*exp(-0.504487328*(-2.091 + i7) + ^2) + 2.582310948*exp(-8.863295372*(-0.4303 + 0.1*i1)^2)*exp(-11.95674384* + (-0.4606 + 0.1*i2)^2)*exp(-1.950763773*(-0.6242 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.225 + 0.1*i4)^2)*exp(-1.30355952*(-1.727 + i5)^2)*exp(- + 1.120822279*(-3.96 + i6)^2)*exp(-0.504487328*(-2.424 + i7)^2) - + 0.889699883*exp(-8.863295372*(-0.3121 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8909 + 0.1*i2)^2)*exp(-1.950763773*(-0.903 + 0.1*i3)^2)*exp(-1.358511991 + *(-1.387 + 0.1*i4)^2)*exp(-1.30355952*(-1.414 + i5)^2)*exp(-1.120822279*(- + 3.323 + i6)^2)*exp(-0.504487328*(-3.636 + i7)^2) + 2.406989579*exp(- + 8.863295372*(-0.3424 + 0.1*i1)^2)*exp(-11.95674384*(-0.4485 + 0.1*i2)^2)* + exp(-1.950763773*(-0.4182 + 0.1*i3)^2)*exp(-1.358511991*(-0.9747 + 0.1*i4) + ^2)*exp(-1.30355952*(-1.566 + i5)^2)*exp(-1.120822279*(-3.657 + i6)^2)* + exp(-0.504487328*(-3.879 + i7)^2) - 11.08420107*exp(-8.863295372*(-0.497 + + 0.1*i1)^2)*exp(-11.95674384*(-0.7697 + 0.1*i2)^2)*exp(-1.950763773*(- + 0.7939 + 0.1*i3)^2)*exp(-1.358511991*(-1.274 + 0.1*i4)^2)*exp(-1.30355952* + (-1.141 + i5)^2)*exp(-1.120822279*(-4 + i6)^2)*exp(-0.504487328*(-2.515 + + i7)^2) + 4.85116629*exp(-8.863295372*(-0.4939 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.5576 + 0.1*i2)^2)*exp(-1.950763773*(-0.4545 + 0.1*i3)^2)* + exp(-1.358511991*(-1.177 + 0.1*i4)^2)*exp(-1.30355952*(-1.96 + i5)^2)*exp( + -1.120822279*(-3.818 + i6)^2)*exp(-0.504487328*(-4 + i7)^2) - 5.547277967* + exp(-8.863295372*(-0.5 + 0.1*i1)^2)*exp(-11.95674384*(-0.9515 + 0.1*i2)^2) + *exp(-1.950763773*(-0.4 + 0.1*i3)^2)*exp(-1.358511991*(-1.088 + 0.1*i4)^2) + *exp(-1.30355952*(-1.455 + i5)^2)*exp(-1.120822279*(-3.242 + i6)^2)*exp(- + 0.504487328*(-2.788 + i7)^2) + 7.386160779*exp(-8.863295372*(-0.4182 + 0.1 + *i1)^2)*exp(-11.95674384*(-0.9455 + 0.1*i2)^2)*exp(-1.950763773*(-0.8364 + + 0.1*i3)^2)*exp(-1.358511991*(-1.258 + 0.1*i4)^2)*exp(-1.30355952*(- + 1.929 + i5)^2)*exp(-1.120822279*(-3.465 + i6)^2)*exp(-0.504487328*(-4.606 + + i7)^2) - 2.138580272*exp(-8.863295372*(-0.3636 + 0.1*i1)^2)*exp(- + 11.95674384*(-0.7818 + 0.1*i2)^2)*exp(-1.950763773*(-1 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9909 + 0.1*i4)^2)*exp(-1.30355952*(-1.535 + i5)^2)*exp(- + 1.120822279*(-3.768 + i6)^2)*exp(-0.504487328*(-4.667 + i7)^2) - + 1.296602497*exp(-8.863295372*(-0.4091 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7212 + 0.1*i2)^2)*exp(-1.950763773*(-0.9273 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.371 + 0.1*i4)^2)*exp(-1.30355952*(-1.04 + i5)^2)*exp(- + 1.120822279*(-3.747 + i6)^2)*exp(-0.504487328*(-4.152 + i7)^2) + + 2.709523906*exp(-8.863295372*(-0.4455 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4242 + 0.1*i2)^2)*exp(-1.950763773*(-0.5879 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9182 + 0.1*i4)^2)*exp(-1.30355952*(-1.626 + i5)^2)*exp(- + 1.120822279*(-3 + i6)^2)*exp(-0.504487328*(-3.091 + i7)^2) - 14.00695501* + exp(-8.863295372*(-0.3667 + 0.1*i1)^2)*exp(-11.95674384*(-0.8424 + 0.1*i2) + ^2)*exp(-1.950763773*(-0.8242 + 0.1*i3)^2)*exp(-1.358511991*(-1.29 + 0.1* + i4)^2)*exp(-1.30355952*(-2 + i5)^2)*exp(-1.120822279*(-3.485 + i6)^2)*exp( + -0.504487328*(-2.485 + i7)^2) - 9.132293025*exp(-8.863295372*(-0.4 + 0.1* + i1)^2)*exp(-11.95674384*(-0.6 + 0.1*i2)^2)*exp(-1.950763773*(-0.4364 + 0.1 + *i3)^2)*exp(-1.358511991*(-1.056 + 0.1*i4)^2)*exp(-1.30355952*(-1.091 + i5 + )^2)*exp(-1.120822279*(-3.202 + i6)^2)*exp(-0.504487328*(-2.606 + i7)^2) + - 9.610625701*exp(-8.863295372*(-0.5303 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8545 + 0.1*i2)^2)*exp(-1.950763773*(-0.9212 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.8778 + 0.1*i4)^2)*exp(-1.30355952*(-1.616 + i5)^2)*exp(- + 1.120822279*(-3.232 + i6)^2)*exp(-0.504487328*(-4.727 + i7)^2) + + 0.481857315*exp(-8.863295372*(-0.3879 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5515 + 0.1*i2)^2)*exp(-1.950763773*(-0.5576 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7808 + 0.1*i4)^2)*exp(-1.30355952*(-1.444 + i5)^2)*exp(- + 1.120822279*(-3.677 + i6)^2)*exp(-0.504487328*(-2.03 + i7)^2) - + 1.618401214*exp(-8.863295372*(-0.4515 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7273 + 0.1*i2)^2)*exp(-1.950763773*(-0.8727 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.8131 + 0.1*i4)^2)*exp(-1.30355952*(-1.828 + i5)^2)*exp(- + 1.120822279*(-3.717 + i6)^2)*exp(-0.504487328*(-2.061 + i7)^2) - + 0.196906817*exp(-8.863295372*(-0.4818 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4121 + 0.1*i2)^2)*exp(-1.950763773*(-0.5515 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.064 + 0.1*i4)^2)*exp(-1.30355952*(-1.202 + i5)^2)*exp(- + 1.120822279*(-3.404 + i6)^2)*exp(-0.504487328*(-4.788 + i7)^2) - + 6.296995946*exp(-8.863295372*(-0.5515 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8182 + 0.1*i2)^2)*exp(-1.950763773*(-0.9636 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.443 + 0.1*i4)^2)*exp(-1.30355952*(-1.606 + i5)^2)*exp(- + 1.120822279*(-3.263 + i6)^2)*exp(-0.504487328*(-3.667 + i7)^2) + + 2.025435268*exp(-8.863295372*(-0.4667 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.4727 + 0.1*i2)^2)*exp(-1.950763773*(-0.7818 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.136 + 0.1*i4)^2)*exp(-1.30355952*(-1.545 + i5)^2)*exp(- + 1.120822279*(-3.99 + i6)^2)*exp(-0.504487328*(-4.758 + i7)^2) + + 9.269321561*exp(-8.863295372*(-0.5606 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.7758 + 0.1*i2)^2)*exp(-1.950763773*(-0.5273 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9263 + 0.1*i4)^2)*exp(-1.30355952*(-1.576 + i5)^2)*exp(- + 1.120822279*(-3.919 + i6)^2)*exp(-0.504487328*(-2.394 + i7)^2) + + 9.564341152*exp(-8.863295372*(-0.4333 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.5636 + 0.1*i2)^2)*exp(-1.950763773*(-0.9818 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.7081 + 0.1*i4)^2)*exp(-1.30355952*(-1.657 + i5)^2)*exp(- + 1.120822279*(-3.273 + i6)^2)*exp(-0.504487328*(-3.455 + i7)^2) + + 3.262817151*exp(-8.863295372*(-0.5333 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8303 + 0.1*i2)^2)*exp(-1.950763773*(-0.6061 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.9424 + 0.1*i4)^2)*exp(-1.30355952*(-1 + i5)^2)*exp(- + 1.120822279*(-3.545 + i6)^2)*exp(-0.504487328*(-2.303 + i7)^2) + + 9.18863525*exp(-8.863295372*(-0.3788 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.9152 + 0.1*i2)^2)*exp(-1.950763773*(-0.7515 + 0.1*i3)^2)*exp(- + 1.358511991*(-0.8455 + 0.1*i4)^2)*exp(-1.30355952*(-1.212 + i5)^2)*exp(- + 1.120822279*(-3.394 + i6)^2)*exp(-0.504487328*(-4.879 + i7)^2) - + 6.428017691*exp(-8.863295372*(-0.4909 + 0.1*i1)^2)*exp(-11.95674384*(- + 0.8727 + 0.1*i2)^2)*exp(-1.950763773*(-0.4424 + 0.1*i3)^2)*exp(- + 1.358511991*(-1.047 + 0.1*i4)^2)*exp(-1.30355952*(-1.02 + i5)^2)*exp(- + 1.120822279*(-3.556 + i6)^2)*exp(-0.504487328*(-4.303 + i7)^2)) + x8 + >= 12.86059766; + + -(4.447154231*exp(-10.74928851*(-0.303 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.697 + 0.1*i2)^2)*exp(-4.120672683*(-0.8061 + 0.1*i3)^2)*exp(-0.448649548 + *(-0.9586 + 0.1*i4)^2)*exp(-1.216520282*(-1.758 + i5)^2)*exp(-1.913838294* + (-3.141 + i6)^2)*exp(-0.491450763*(-4.424 + i7)^2) - 12.97421606*exp(- + 10.74928851*(-0.5364 + 0.1*i1)^2)*exp(-12.03863644*(-0.9697 + 0.1*i2)^2)* + exp(-4.120672683*(-0.4909 + 0.1*i3)^2)*exp(-0.448649548*(-1.161 + 0.1*i4)^ + 2)*exp(-1.216520282*(-1.778 + i5)^2)*exp(-1.913838294*(-3.778 + i6)^2)* + exp(-0.491450763*(-4.091 + i7)^2) + 1.675115737*exp(-10.74928851*(-0.503 + + 0.1*i1)^2)*exp(-12.03863644*(-0.6182 + 0.1*i2)^2)*exp(-4.120672683*(- + 0.4121 + 0.1*i3)^2)*exp(-0.448649548*(-1.419 + 0.1*i4)^2)*exp(-1.216520282 + *(-1.333 + i5)^2)*exp(-1.913838294*(-3.152 + i6)^2)*exp(-0.491450763*(- + 3.697 + i7)^2) - 3.208249393*exp(-10.74928851*(-0.4606 + 0.1*i1)^2)*exp(- + 12.03863644*(-0.903 + 0.1*i2)^2)*exp(-4.120672683*(-0.7576 + 0.1*i3)^2)* + exp(-0.448649548*(-0.7727 + 0.1*i4)^2)*exp(-1.216520282*(-1.242 + i5)^2)* + exp(-1.913838294*(-3.98 + i6)^2)*exp(-0.491450763*(-3.424 + i7)^2) + + 4.004844788*exp(-10.74928851*(-0.3 + 0.1*i1)^2)*exp(-12.03863644*(-0.7636 + + 0.1*i2)^2)*exp(-4.120672683*(-0.8606 + 0.1*i3)^2)*exp(-0.448649548*(- + 1.153 + 0.1*i4)^2)*exp(-1.216520282*(-1.556 + i5)^2)*exp(-1.913838294*(- + 3.939 + i6)^2)*exp(-0.491450763*(-2.818 + i7)^2) + 13.11230961*exp(- + 10.74928851*(-0.5879 + 0.1*i1)^2)*exp(-12.03863644*(-0.703 + 0.1*i2)^2)* + exp(-4.120672683*(-0.4788 + 0.1*i3)^2)*exp(-0.448649548*(-1.039 + 0.1*i4)^ + 2)*exp(-1.216520282*(-1.646 + i5)^2)*exp(-1.913838294*(-3.222 + i6)^2)* + exp(-0.491450763*(-4.636 + i7)^2) + 1.414959097*exp(-10.74928851*(-0.4121 + + 0.1*i1)^2)*exp(-12.03863644*(-0.4424 + 0.1*i2)^2)*exp(-4.120672683*(- + 0.5939 + 0.1*i3)^2)*exp(-0.448649548*(-1.46 + 0.1*i4)^2)*exp(-1.216520282* + (-1.232 + i5)^2)*exp(-1.913838294*(-3.788 + i6)^2)*exp(-0.491450763*(- + 3.848 + i7)^2) + 3.124946094*exp(-10.74928851*(-0.5576 + 0.1*i1)^2)*exp(- + 12.03863644*(-0.8848 + 0.1*i2)^2)*exp(-4.120672683*(-0.8121 + 0.1*i3)^2)* + exp(-0.448649548*(-1.128 + 0.1*i4)^2)*exp(-1.216520282*(-1.263 + i5)^2)* + exp(-1.913838294*(-3.808 + i6)^2)*exp(-0.491450763*(-4.818 + i7)^2) - + 11.2602458*exp(-10.74928851*(-0.4273 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4848 + 0.1*i2)^2)*exp(-4.120672683*(-0.9697 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.9667 + 0.1*i4)^2)*exp(-1.216520282*(-1.364 + i5)^2)*exp(- + 1.913838294*(-3.869 + i6)^2)*exp(-0.491450763*(-2.667 + i7)^2) - + 4.187800252*exp(-10.74928851*(-0.5455 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4061 + 0.1*i2)^2)*exp(-4.120672683*(-0.6303 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.427 + 0.1*i4)^2)*exp(-1.216520282*(-1.747 + i5)^2)*exp(- + 1.913838294*(-3.444 + i6)^2)*exp(-0.491450763*(-3.576 + i7)^2) + + 7.077456067*exp(-10.74928851*(-0.5394 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.5273 + 0.1*i2)^2)*exp(-4.120672683*(-0.5636 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.355 + 0.1*i4)^2)*exp(-1.216520282*(-1.253 + i5)^2)*exp(- + 1.913838294*(-3.566 + i6)^2)*exp(-0.491450763*(-2.121 + i7)^2) - + 7.72398176*exp(-10.74928851*(-0.5273 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8121 + 0.1*i2)^2)*exp(-4.120672683*(-0.8424 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.8535 + 0.1*i4)^2)*exp(-1.216520282*(-1.899 + i5)^2)*exp(- + 1.913838294*(-3.889 + i6)^2)*exp(-0.491450763*(-4.061 + i7)^2) + + 4.632713621*exp(-10.74928851*(-0.5727 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4909 + 0.1*i2)^2)*exp(-4.120672683*(-0.9333 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.306 + 0.1*i4)^2)*exp(-1.216520282*(-1.273 + i5)^2)*exp(- + 1.913838294*(-3.707 + i6)^2)*exp(-0.491450763*(-3.485 + i7)^2) + + 12.91253105*exp(-10.74928851*(-0.3091 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6364 + 0.1*i2)^2)*exp(-4.120672683*(-0.5758 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.282 + 0.1*i4)^2)*exp(-1.216520282*(-1.222 + i5)^2)*exp(- + 1.913838294*(-3.192 + i6)^2)*exp(-0.491450763*(-4.455 + i7)^2) + + 5.385884715*exp(-10.74928851*(-0.4364 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7394 + 0.1*i2)^2)*exp(-4.120672683*(-0.4485 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.403 + 0.1*i4)^2)*exp(-1.216520282*(-1.465 + i5)^2)*exp(- + 1.913838294*(-3.687 + i6)^2)*exp(-0.491450763*(-4.939 + i7)^2) - + 1.511268259*exp(-10.74928851*(-0.5636 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6485 + 0.1*i2)^2)*exp(-4.120672683*(-0.7273 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.346 + 0.1*i4)^2)*exp(-1.216520282*(-1.01 + i5)^2)*exp(- + 1.913838294*(-3.333 + i6)^2)*exp(-0.491450763*(-4.364 + i7)^2) + + 11.89275785*exp(-10.74928851*(-0.597 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7152 + 0.1*i2)^2)*exp(-4.120672683*(-0.703 + 0.1*i3)^2)*exp(-0.448649548 + *(-1.209 + 0.1*i4)^2)*exp(-1.216520282*(-1.354 + i5)^2)*exp(-1.913838294*( + -3.01 + i6)^2)*exp(-0.491450763*(-2.758 + i7)^2) - 3.1450955*exp(- + 10.74928851*(-0.5152 + 0.1*i1)^2)*exp(-12.03863644*(-0.6606 + 0.1*i2)^2)* + exp(-4.120672683*(-0.503 + 0.1*i3)^2)*exp(-0.448649548*(-0.7566 + 0.1*i4)^ + 2)*exp(-1.216520282*(-1.424 + i5)^2)*exp(-1.913838294*(-3.848 + i6)^2)* + exp(-0.491450763*(-4.576 + i7)^2) - 4.570274637*exp(-10.74928851*(-0.5758 + + 0.1*i1)^2)*exp(-12.03863644*(-0.5152 + 0.1*i2)^2)*exp(-4.120672683*(- + 0.4303 + 0.1*i3)^2)*exp(-0.448649548*(-0.8697 + 0.1*i4)^2)*exp(- + 1.216520282*(-1.374 + i5)^2)*exp(-1.913838294*(-3.414 + i6)^2)*exp(- + 0.491450763*(-3.061 + i7)^2) - 19.1984218*exp(-10.74928851*(-0.3939 + 0.1* + i1)^2)*exp(-12.03863644*(-0.7091 + 0.1*i2)^2)*exp(-4.120672683*(-0.4242 + + 0.1*i3)^2)*exp(-0.448649548*(-0.8293 + 0.1*i4)^2)*exp(-1.216520282*(-1.434 + + i5)^2)*exp(-1.913838294*(-3.121 + i6)^2)*exp(-0.491450763*(-4.394 + i7) + ^2) + 2.701294497*exp(-10.74928851*(-0.403 + 0.1*i1)^2)*exp(-12.03863644*( + -0.5333 + 0.1*i2)^2)*exp(-4.120672683*(-0.5152 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.233 + 0.1*i4)^2)*exp(-1.216520282*(-1.889 + i5)^2)*exp(- + 1.913838294*(-3.172 + i6)^2)*exp(-0.491450763*(-4.545 + i7)^2) - + 11.23154825*exp(-10.74928851*(-0.5061 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6121 + 0.1*i2)^2)*exp(-4.120672683*(-0.4606 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.144 + 0.1*i4)^2)*exp(-1.216520282*(-1.879 + i5)^2)*exp(- + 1.913838294*(-3.343 + i6)^2)*exp(-0.491450763*(-2.152 + i7)^2) - + 1.713130308*exp(-10.74928851*(-0.4152 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8242 + 0.1*i2)^2)*exp(-4.120672683*(-0.6545 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.411 + 0.1*i4)^2)*exp(-1.216520282*(-1.525 + i5)^2)*exp(- + 1.913838294*(-3.04 + i6)^2)*exp(-0.491450763*(-2.273 + i7)^2) - + 5.523071973*exp(-10.74928851*(-0.4545 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.503 + 0.1*i2)^2)*exp(-4.120672683*(-0.7152 + 0.1*i3)^2)*exp(-0.448649548 + *(-0.797 + 0.1*i4)^2)*exp(-1.216520282*(-1.798 + i5)^2)*exp(-1.913838294*( + -3.424 + i6)^2)*exp(-0.491450763*(-4.97 + i7)^2) + 10.12076535*exp(- + 10.74928851*(-0.3606 + 0.1*i1)^2)*exp(-12.03863644*(-0.8 + 0.1*i2)^2)*exp( + -4.120672683*(-0.9394 + 0.1*i3)^2)*exp(-0.448649548*(-0.8212 + 0.1*i4)^2)* + exp(-1.216520282*(-1.101 + i5)^2)*exp(-1.913838294*(-3.535 + i6)^2)*exp(- + 0.491450763*(-2.909 + i7)^2) - 8.021776303*exp(-10.74928851*(-0.5818 + 0.1 + *i1)^2)*exp(-12.03863644*(-0.9394 + 0.1*i2)^2)*exp(-4.120672683*(-0.6364 + + 0.1*i3)^2)*exp(-0.448649548*(-1.435 + 0.1*i4)^2)*exp(-1.216520282*(- + 1.313 + i5)^2)*exp(-1.913838294*(-3.576 + i6)^2)*exp(-0.491450763*(-3.212 + + i7)^2) - 7.513011729*exp(-10.74928851*(-0.4485 + 0.1*i1)^2)*exp(- + 12.03863644*(-0.9273 + 0.1*i2)^2)*exp(-4.120672683*(-0.6 + 0.1*i3)^2)*exp( + -0.448649548*(-0.9505 + 0.1*i4)^2)*exp(-1.216520282*(-1.909 + i5)^2)*exp(- + 1.913838294*(-3.051 + i6)^2)*exp(-0.491450763*(-3.97 + i7)^2) + + 7.819951086*exp(-10.74928851*(-0.3394 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8788 + 0.1*i2)^2)*exp(-4.120672683*(-0.4727 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.7646 + 0.1*i4)^2)*exp(-1.216520282*(-1.293 + i5)^2)*exp(- + 1.913838294*(-3.616 + i6)^2)*exp(-0.491450763*(-3.273 + i7)^2) - + 8.630910368*exp(-10.74928851*(-0.3515 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9576 + 0.1*i2)^2)*exp(-4.120672683*(-0.8182 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.7485 + 0.1*i4)^2)*exp(-1.216520282*(-1.768 + i5)^2)*exp(- + 1.913838294*(-3.505 + i6)^2)*exp(-0.491450763*(-3.394 + i7)^2) - + 2.373873205*exp(-10.74928851*(-0.4061 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6667 + 0.1*i2)^2)*exp(-4.120672683*(-0.9576 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.096 + 0.1*i4)^2)*exp(-1.216520282*(-1.131 + i5)^2)*exp(- + 1.913838294*(-3.071 + i6)^2)*exp(-0.491450763*(-4.242 + i7)^2) - + 0.315966713*exp(-10.74928851*(-0.5788 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6545 + 0.1*i2)^2)*exp(-4.120672683*(-0.7697 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.9101 + 0.1*i4)^2)*exp(-1.216520282*(-1.97 + i5)^2)*exp(- + 1.913838294*(-3.162 + i6)^2)*exp(-0.491450763*(-3.364 + i7)^2) + + 12.03514835*exp(-10.74928851*(-0.4788 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9818 + 0.1*i2)^2)*exp(-4.120672683*(-0.9879 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.193 + 0.1*i4)^2)*exp(-1.216520282*(-1.586 + i5)^2)*exp(- + 1.913838294*(-3.798 + i6)^2)*exp(-0.491450763*(-3.03 + i7)^2) - + 2.749195884*exp(-10.74928851*(-0.3182 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.5697 + 0.1*i2)^2)*exp(-4.120672683*(-0.7091 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.217 + 0.1*i4)^2)*exp(-1.216520282*(-1.061 + i5)^2)*exp(- + 1.913838294*(-3.646 + i6)^2)*exp(-0.491450763*(-2.455 + i7)^2) + + 4.856542039*exp(-10.74928851*(-0.3909 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8606 + 0.1*i2)^2)*exp(-4.120672683*(-0.5818 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.468 + 0.1*i4)^2)*exp(-1.216520282*(-1.03 + i5)^2)*exp(- + 1.913838294*(-3.455 + i6)^2)*exp(-0.491450763*(-3.242 + i7)^2) + + 4.329673184*exp(-10.74928851*(-0.5909 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6303 + 0.1*i2)^2)*exp(-4.120672683*(-0.5091 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.266 + 0.1*i4)^2)*exp(-1.216520282*(-1.303 + i5)^2)*exp(- + 1.913838294*(-3.899 + i6)^2)*exp(-0.491450763*(-3.909 + i7)^2) - + 1.831560922*exp(-10.74928851*(-0.5939 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6727 + 0.1*i2)^2)*exp(-4.120672683*(-0.7758 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.249 + 0.1*i4)^2)*exp(-1.216520282*(-1.818 + i5)^2)*exp(- + 1.913838294*(-3.586 + i6)^2)*exp(-0.491450763*(-4.848 + i7)^2) - + 9.861791189*exp(-10.74928851*(-0.5242 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8061 + 0.1*i2)^2)*exp(-4.120672683*(-0.5697 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.452 + 0.1*i4)^2)*exp(-1.216520282*(-1.949 + i5)^2)*exp(- + 1.913838294*(-3.253 + i6)^2)*exp(-0.491450763*(-3.606 + i7)^2) + + 30.8464103*exp(-10.74928851*(-0.5667 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9636 + 0.1*i2)^2)*exp(-4.120672683*(-0.6182 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.7242 + 0.1*i4)^2)*exp(-1.216520282*(-1.495 + i5)^2)*exp(- + 1.913838294*(-3.475 + i6)^2)*exp(-0.491450763*(-3.818 + i7)^2) - + 9.409064116*exp(-10.74928851*(-0.3364 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.5091 + 0.1*i2)^2)*exp(-4.120672683*(-0.697 + 0.1*i3)^2)*exp(-0.448649548 + *(-0.7323 + 0.1*i4)^2)*exp(-1.216520282*(-1.182 + i5)^2)*exp(-1.913838294* + (-3.313 + i6)^2)*exp(-0.491450763*(-3.727 + i7)^2) - 0.41056647*exp(- + 10.74928851*(-0.4212 + 0.1*i1)^2)*exp(-12.03863644*(-0.6061 + 0.1*i2)^2)* + exp(-4.120672683*(-0.8485 + 0.1*i3)^2)*exp(-0.448649548*(-1.476 + 0.1*i4)^ + 2)*exp(-1.216520282*(-1.505 + i5)^2)*exp(-1.913838294*(-3.364 + i6)^2)* + exp(-0.491450763*(-5 + i7)^2) - 0.175214563*exp(-10.74928851*(-0.3697 + + 0.1*i1)^2)*exp(-12.03863644*(-0.8485 + 0.1*i2)^2)*exp(-4.120672683*(- + 0.5455 + 0.1*i3)^2)*exp(-0.448649548*(-0.902 + 0.1*i4)^2)*exp(-1.216520282 + *(-1.788 + i5)^2)*exp(-1.913838294*(-3.697 + i6)^2)*exp(-0.491450763*(- + 4.909 + i7)^2) + 0.113321143*exp(-10.74928851*(-0.5121 + 0.1*i1)^2)*exp(- + 12.03863644*(-0.5758 + 0.1*i2)^2)*exp(-4.120672683*(-0.9091 + 0.1*i3)^2)* + exp(-0.448649548*(-0.8051 + 0.1*i4)^2)*exp(-1.216520282*(-1.152 + i5)^2)* + exp(-1.913838294*(-3.667 + i6)^2)*exp(-0.491450763*(-4.485 + i7)^2) + + 0.233322539*exp(-10.74928851*(-0.4697 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7455 + 0.1*i2)^2)*exp(-4.120672683*(-0.9515 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.33 + 0.1*i4)^2)*exp(-1.216520282*(-1.162 + i5)^2)*exp(- + 1.913838294*(-3.354 + i6)^2)*exp(-0.491450763*(-2.182 + i7)^2) + + 8.757458894*exp(-10.74928851*(-0.4758 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6848 + 0.1*i2)^2)*exp(-4.120672683*(-0.4848 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.7 + 0.1*i4)^2)*exp(-1.216520282*(-1.939 + i5)^2)*exp(- + 1.913838294*(-3.515 + i6)^2)*exp(-0.491450763*(-3.333 + i7)^2) + + 14.28635764*exp(-10.74928851*(-0.3152 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.5879 + 0.1*i2)^2)*exp(-4.120672683*(-0.8667 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.031 + 0.1*i4)^2)*exp(-1.216520282*(-1.485 + i5)^2)*exp(- + 1.913838294*(-3.182 + i6)^2)*exp(-0.491450763*(-2.242 + i7)^2) - + 3.239243469*exp(-10.74928851*(-0.3818 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7333 + 0.1*i2)^2)*exp(-4.120672683*(-0.4061 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.201 + 0.1*i4)^2)*exp(-1.216520282*(-1.283 + i5)^2)*exp(- + 1.913838294*(-3.949 + i6)^2)*exp(-0.491450763*(-3 + i7)^2) - 9.972169511* + exp(-10.74928851*(-0.5182 + 0.1*i1)^2)*exp(-12.03863644*(-0.9939 + 0.1*i2) + ^2)*exp(-4.120672683*(-0.8788 + 0.1*i3)^2)*exp(-0.448649548*(-1.072 + 0.1* + i4)^2)*exp(-1.216520282*(-1.081 + i5)^2)*exp(-1.913838294*(-3.303 + i6)^2) + *exp(-0.491450763*(-3.545 + i7)^2) + 10.14400938*exp(-10.74928851*(-0.4424 + + 0.1*i1)^2)*exp(-12.03863644*(-0.8364 + 0.1*i2)^2)*exp(-4.120672683*(- + 0.5333 + 0.1*i3)^2)*exp(-0.448649548*(-1.484 + 0.1*i4)^2)*exp(-1.216520282 + *(-1.677 + i5)^2)*exp(-1.913838294*(-3.737 + i6)^2)*exp(-0.491450763*(- + 2.333 + i7)^2) - 8.62752544*exp(-10.74928851*(-0.397 + 0.1*i1)^2)*exp(- + 12.03863644*(-0.5939 + 0.1*i2)^2)*exp(-4.120672683*(-0.8545 + 0.1*i3)^2)* + exp(-0.448649548*(-1.363 + 0.1*i4)^2)*exp(-1.216520282*(-1.869 + i5)^2)* + exp(-1.913838294*(-3.02 + i6)^2)*exp(-0.491450763*(-3.515 + i7)^2) - + 2.748392206*exp(-10.74928851*(-0.4879 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4788 + 0.1*i2)^2)*exp(-4.120672683*(-0.6121 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.8939 + 0.1*i4)^2)*exp(-1.216520282*(-1.051 + i5)^2)*exp(- + 1.913838294*(-3.879 + i6)^2)*exp(-0.491450763*(-3.182 + i7)^2) + + 7.207650958*exp(-10.74928851*(-0.3545 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4364 + 0.1*i2)^2)*exp(-4.120672683*(-0.7333 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.9828 + 0.1*i4)^2)*exp(-1.216520282*(-1.99 + i5)^2)*exp(- + 1.913838294*(-3.495 + i6)^2)*exp(-0.491450763*(-2.97 + i7)^2) - + 2.073190604*exp(-10.74928851*(-0.5424 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6909 + 0.1*i2)^2)*exp(-4.120672683*(-0.6727 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.7889 + 0.1*i4)^2)*exp(-1.216520282*(-1.121 + i5)^2)*exp(- + 1.913838294*(-3.091 + i6)^2)*exp(-0.491450763*(-4.121 + i7)^2) - + 6.103627998*exp(-10.74928851*(-0.4848 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7879 + 0.1*i2)^2)*exp(-4.120672683*(-0.6909 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.7162 + 0.1*i4)^2)*exp(-1.216520282*(-1.475 + i5)^2)*exp(- + 1.913838294*(-3.131 + i6)^2)*exp(-0.491450763*(-2.212 + i7)^2) + + 6.563337442*exp(-10.74928851*(-0.4394 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.897 + 0.1*i2)^2)*exp(-4.120672683*(-0.9758 + 0.1*i3)^2)*exp(-0.448649548 + *(-1.023 + 0.1*i4)^2)*exp(-1.216520282*(-1.667 + i5)^2)*exp(-1.913838294*( + -3.061 + i6)^2)*exp(-0.491450763*(-2.879 + i7)^2) + 0.624833701*exp(- + 10.74928851*(-0.3848 + 0.1*i1)^2)*exp(-12.03863644*(-0.5394 + 0.1*i2)^2)* + exp(-4.120672683*(-0.9152 + 0.1*i3)^2)*exp(-0.448649548*(-1.5 + 0.1*i4)^2) + *exp(-1.216520282*(-1.596 + i5)^2)*exp(-1.913838294*(-3.636 + i6)^2)*exp(- + 0.491450763*(-2.727 + i7)^2) + 7.485985893*exp(-10.74928851*(-0.5545 + 0.1 + *i1)^2)*exp(-12.03863644*(-0.9758 + 0.1*i2)^2)*exp(-4.120672683*(-0.7212 + + 0.1*i3)^2)*exp(-0.448649548*(-1.08 + 0.1*i4)^2)*exp(-1.216520282*(- + 1.838 + i5)^2)*exp(-1.913838294*(-3.434 + i6)^2)*exp(-0.491450763*(-2.364 + + i7)^2) - 9.069501757*exp(-10.74928851*(-0.3758 + 0.1*i1)^2)*exp(- + 12.03863644*(-0.8667 + 0.1*i2)^2)*exp(-4.120672683*(-0.5394 + 0.1*i3)^2)* + exp(-0.448649548*(-1.015 + 0.1*i4)^2)*exp(-1.216520282*(-1.919 + i5)^2)* + exp(-1.913838294*(-3.909 + i6)^2)*exp(-0.491450763*(-2.939 + i7)^2) + + 15.58806607*exp(-10.74928851*(-0.3212 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7576 + 0.1*i2)^2)*exp(-4.120672683*(-0.5212 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.9343 + 0.1*i4)^2)*exp(-1.216520282*(-1.808 + i5)^2)*exp(- + 1.913838294*(-3.212 + i6)^2)*exp(-0.491450763*(-2.545 + i7)^2) + + 2.369828053*exp(-10.74928851*(-0.4727 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9333 + 0.1*i2)^2)*exp(-4.120672683*(-0.6485 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.322 + 0.1*i4)^2)*exp(-1.216520282*(-1.394 + i5)^2)*exp(- + 1.913838294*(-3.081 + i6)^2)*exp(-0.491450763*(-4.697 + i7)^2) - + 4.204834218*exp(-10.74928851*(-0.4576 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.5455 + 0.1*i2)^2)*exp(-4.120672683*(-0.9939 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.169 + 0.1*i4)^2)*exp(-1.216520282*(-1.98 + i5)^2)*exp(- + 1.913838294*(-3.626 + i6)^2)*exp(-0.491450763*(-3.939 + i7)^2) + + 5.248777428*exp(-10.74928851*(-0.3242 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9212 + 0.1*i2)^2)*exp(-4.120672683*(-0.4667 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.314 + 0.1*i4)^2)*exp(-1.216520282*(-1.697 + i5)^2)*exp(- + 1.913838294*(-3.374 + i6)^2)*exp(-0.491450763*(-3.758 + i7)^2) - + 3.477293099*exp(-10.74928851*(-0.5697 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4182 + 0.1*i2)^2)*exp(-4.120672683*(-0.7394 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.8374 + 0.1*i4)^2)*exp(-1.216520282*(-1.717 + i5)^2)*exp(- + 1.913838294*(-3.727 + i6)^2)*exp(-0.491450763*(-3.303 + i7)^2) - + 18.51372441*exp(-10.74928851*(-0.3727 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9879 + 0.1*i2)^2)*exp(-4.120672683*(-0.6848 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.104 + 0.1*i4)^2)*exp(-1.216520282*(-1.343 + i5)^2)*exp(- + 1.913838294*(-3.606 + i6)^2)*exp(-0.491450763*(-2 + i7)^2) + 5.562411752* + exp(-10.74928851*(-0.5091 + 0.1*i1)^2)*exp(-12.03863644*(-0.4667 + 0.1*i2) + ^2)*exp(-4.120672683*(-0.8303 + 0.1*i3)^2)*exp(-0.448649548*(-0.8859 + 0.1 + *i4)^2)*exp(-1.216520282*(-1.111 + i5)^2)*exp(-1.913838294*(-3.283 + i6)^2 + )*exp(-0.491450763*(-2.576 + i7)^2) - 4.556678666*exp(-10.74928851*(- + 0.3485 + 0.1*i1)^2)*exp(-12.03863644*(-0.9091 + 0.1*i2)^2)*exp(- + 4.120672683*(-0.6606 + 0.1*i3)^2)*exp(-0.448649548*(-0.999 + 0.1*i4)^2)* + exp(-1.216520282*(-1.172 + i5)^2)*exp(-1.913838294*(-3.03 + i6)^2)*exp(- + 0.491450763*(-3.152 + i7)^2) - 6.031272173*exp(-10.74928851*(-0.5848 + 0.1 + *i1)^2)*exp(-12.03863644*(-0.6788 + 0.1*i2)^2)*exp(-4.120672683*(-0.8 + + 0.1*i3)^2)*exp(-0.448649548*(-1.298 + 0.1*i4)^2)*exp(-1.216520282*(-1.848 + + i5)^2)*exp(-1.913838294*(-3.828 + i6)^2)*exp(-0.491450763*(-2.636 + i7) + ^2) - 2.033895533*exp(-10.74928851*(-0.3303 + 0.1*i1)^2)*exp(-12.03863644* + (-0.5212 + 0.1*i2)^2)*exp(-4.120672683*(-0.497 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.395 + 0.1*i4)^2)*exp(-1.216520282*(-1.636 + i5)^2)*exp(- + 1.913838294*(-3.384 + i6)^2)*exp(-0.491450763*(-2.697 + i7)^2) + + 1.339544942*exp(-10.74928851*(-0.3061 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.6242 + 0.1*i2)^2)*exp(-4.120672683*(-0.6788 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.338 + 0.1*i4)^2)*exp(-1.216520282*(-1.859 + i5)^2)*exp(- + 1.913838294*(-3.758 + i6)^2)*exp(-0.491450763*(-4.273 + i7)^2) - + 2.625687691*exp(-10.74928851*(-0.5485 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4545 + 0.1*i2)^2)*exp(-4.120672683*(-0.8848 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.112 + 0.1*i4)^2)*exp(-1.216520282*(-1.515 + i5)^2)*exp(- + 1.913838294*(-3.101 + i6)^2)*exp(-0.491450763*(-4.333 + i7)^2) + + 8.557901309*exp(-10.74928851*(-0.4636 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7939 + 0.1*i2)^2)*exp(-4.120672683*(-0.7879 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.492 + 0.1*i4)^2)*exp(-1.216520282*(-1.707 + i5)^2)*exp(- + 1.913838294*(-3.97 + i6)^2)*exp(-0.491450763*(-4.03 + i7)^2) - 5.599713976 + *exp(-10.74928851*(-0.3455 + 0.1*i1)^2)*exp(-12.03863644*(-0.5818 + 0.1*i2 + )^2)*exp(-4.120672683*(-0.7455 + 0.1*i3)^2)*exp(-0.448649548*(-0.7404 + + 0.1*i4)^2)*exp(-1.216520282*(-1.687 + i5)^2)*exp(-1.913838294*(-3.929 + i6 + )^2)*exp(-0.491450763*(-3.788 + i7)^2) - 11.78208704*exp(-10.74928851*(- + 0.6 + 0.1*i1)^2)*exp(-12.03863644*(-0.7515 + 0.1*i2)^2)*exp(-4.120672683*( + -0.9455 + 0.1*i3)^2)*exp(-0.448649548*(-0.8616 + 0.1*i4)^2)*exp(- + 1.216520282*(-1.384 + i5)^2)*exp(-1.913838294*(-3.596 + i6)^2)*exp(- + 0.491450763*(-2.848 + i7)^2) + 1.774702669*exp(-10.74928851*(-0.3273 + 0.1 + *i1)^2)*exp(-12.03863644*(-0.4 + 0.1*i2)^2)*exp(-4.120672683*(-0.897 + 0.1 + *i3)^2)*exp(-0.448649548*(-1.12 + 0.1*i4)^2)*exp(-1.216520282*(-1.404 + i5 + )^2)*exp(-1.913838294*(-3.525 + i6)^2)*exp(-0.491450763*(-4.182 + i7)^2) + - 7.097563136*exp(-10.74928851*(-0.5212 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.497 + 0.1*i2)^2)*exp(-4.120672683*(-0.8909 + 0.1*i3)^2)*exp(-0.448649548 + *(-1.185 + 0.1*i4)^2)*exp(-1.216520282*(-1.737 + i5)^2)*exp(-1.913838294*( + -3.293 + i6)^2)*exp(-0.491450763*(-2.091 + i7)^2) - 3.045374922*exp(- + 10.74928851*(-0.4303 + 0.1*i1)^2)*exp(-12.03863644*(-0.4606 + 0.1*i2)^2)* + exp(-4.120672683*(-0.6242 + 0.1*i3)^2)*exp(-0.448649548*(-1.225 + 0.1*i4)^ + 2)*exp(-1.216520282*(-1.727 + i5)^2)*exp(-1.913838294*(-3.96 + i6)^2)*exp( + -0.491450763*(-2.424 + i7)^2) - 9.874762434*exp(-10.74928851*(-0.3121 + + 0.1*i1)^2)*exp(-12.03863644*(-0.8909 + 0.1*i2)^2)*exp(-4.120672683*(-0.903 + + 0.1*i3)^2)*exp(-0.448649548*(-1.387 + 0.1*i4)^2)*exp(-1.216520282*(- + 1.414 + i5)^2)*exp(-1.913838294*(-3.323 + i6)^2)*exp(-0.491450763*(-3.636 + + i7)^2) - 0.374353269*exp(-10.74928851*(-0.3424 + 0.1*i1)^2)*exp(- + 12.03863644*(-0.4485 + 0.1*i2)^2)*exp(-4.120672683*(-0.4182 + 0.1*i3)^2)* + exp(-0.448649548*(-0.9747 + 0.1*i4)^2)*exp(-1.216520282*(-1.566 + i5)^2)* + exp(-1.913838294*(-3.657 + i6)^2)*exp(-0.491450763*(-3.879 + i7)^2) - + 0.1845552*exp(-10.74928851*(-0.497 + 0.1*i1)^2)*exp(-12.03863644*(-0.7697 + + 0.1*i2)^2)*exp(-4.120672683*(-0.7939 + 0.1*i3)^2)*exp(-0.448649548*(- + 1.274 + 0.1*i4)^2)*exp(-1.216520282*(-1.141 + i5)^2)*exp(-1.913838294*(-4 + + i6)^2)*exp(-0.491450763*(-2.515 + i7)^2) + 1.958568337*exp(-10.74928851 + *(-0.4939 + 0.1*i1)^2)*exp(-12.03863644*(-0.5576 + 0.1*i2)^2)*exp(- + 4.120672683*(-0.4545 + 0.1*i3)^2)*exp(-0.448649548*(-1.177 + 0.1*i4)^2)* + exp(-1.216520282*(-1.96 + i5)^2)*exp(-1.913838294*(-3.818 + i6)^2)*exp(- + 0.491450763*(-4 + i7)^2) - 3.730335364*exp(-10.74928851*(-0.5 + 0.1*i1)^2) + *exp(-12.03863644*(-0.9515 + 0.1*i2)^2)*exp(-4.120672683*(-0.4 + 0.1*i3)^2 + )*exp(-0.448649548*(-1.088 + 0.1*i4)^2)*exp(-1.216520282*(-1.455 + i5)^2)* + exp(-1.913838294*(-3.242 + i6)^2)*exp(-0.491450763*(-2.788 + i7)^2) + + 10.15665394*exp(-10.74928851*(-0.4182 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9455 + 0.1*i2)^2)*exp(-4.120672683*(-0.8364 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.258 + 0.1*i4)^2)*exp(-1.216520282*(-1.929 + i5)^2)*exp(- + 1.913838294*(-3.465 + i6)^2)*exp(-0.491450763*(-4.606 + i7)^2) - + 0.171108442*exp(-10.74928851*(-0.3636 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7818 + 0.1*i2)^2)*exp(-4.120672683*(-1 + 0.1*i3)^2)*exp(-0.448649548*(- + 0.9909 + 0.1*i4)^2)*exp(-1.216520282*(-1.535 + i5)^2)*exp(-1.913838294*(- + 3.768 + i6)^2)*exp(-0.491450763*(-4.667 + i7)^2) - 1.326501636*exp(- + 10.74928851*(-0.4091 + 0.1*i1)^2)*exp(-12.03863644*(-0.7212 + 0.1*i2)^2)* + exp(-4.120672683*(-0.9273 + 0.1*i3)^2)*exp(-0.448649548*(-1.371 + 0.1*i4)^ + 2)*exp(-1.216520282*(-1.04 + i5)^2)*exp(-1.913838294*(-3.747 + i6)^2)*exp( + -0.491450763*(-4.152 + i7)^2) + 3.154008456*exp(-10.74928851*(-0.4455 + + 0.1*i1)^2)*exp(-12.03863644*(-0.4242 + 0.1*i2)^2)*exp(-4.120672683*(- + 0.5879 + 0.1*i3)^2)*exp(-0.448649548*(-0.9182 + 0.1*i4)^2)*exp(- + 1.216520282*(-1.626 + i5)^2)*exp(-1.913838294*(-3 + i6)^2)*exp(- + 0.491450763*(-3.091 + i7)^2) - 4.220244967*exp(-10.74928851*(-0.3667 + 0.1 + *i1)^2)*exp(-12.03863644*(-0.8424 + 0.1*i2)^2)*exp(-4.120672683*(-0.8242 + + 0.1*i3)^2)*exp(-0.448649548*(-1.29 + 0.1*i4)^2)*exp(-1.216520282*(-2 + + i5)^2)*exp(-1.913838294*(-3.485 + i6)^2)*exp(-0.491450763*(-2.485 + i7)^2) + - 6.874802723*exp(-10.74928851*(-0.4 + 0.1*i1)^2)*exp(-12.03863644*(-0.6 + + 0.1*i2)^2)*exp(-4.120672683*(-0.4364 + 0.1*i3)^2)*exp(-0.448649548*(- + 1.056 + 0.1*i4)^2)*exp(-1.216520282*(-1.091 + i5)^2)*exp(-1.913838294*(- + 3.202 + i6)^2)*exp(-0.491450763*(-2.606 + i7)^2) - 7.913766937*exp(- + 10.74928851*(-0.5303 + 0.1*i1)^2)*exp(-12.03863644*(-0.8545 + 0.1*i2)^2)* + exp(-4.120672683*(-0.9212 + 0.1*i3)^2)*exp(-0.448649548*(-0.8778 + 0.1*i4) + ^2)*exp(-1.216520282*(-1.616 + i5)^2)*exp(-1.913838294*(-3.232 + i6)^2)* + exp(-0.491450763*(-4.727 + i7)^2) + 6.613562448*exp(-10.74928851*(-0.3879 + + 0.1*i1)^2)*exp(-12.03863644*(-0.5515 + 0.1*i2)^2)*exp(-4.120672683*(- + 0.5576 + 0.1*i3)^2)*exp(-0.448649548*(-0.7808 + 0.1*i4)^2)*exp(- + 1.216520282*(-1.444 + i5)^2)*exp(-1.913838294*(-3.677 + i6)^2)*exp(- + 0.491450763*(-2.03 + i7)^2) + 3.499348832*exp(-10.74928851*(-0.4515 + 0.1* + i1)^2)*exp(-12.03863644*(-0.7273 + 0.1*i2)^2)*exp(-4.120672683*(-0.8727 + + 0.1*i3)^2)*exp(-0.448649548*(-0.8131 + 0.1*i4)^2)*exp(-1.216520282*(-1.828 + + i5)^2)*exp(-1.913838294*(-3.717 + i6)^2)*exp(-0.491450763*(-2.061 + i7) + ^2) + 1.200497209*exp(-10.74928851*(-0.4818 + 0.1*i1)^2)*exp(-12.03863644* + (-0.4121 + 0.1*i2)^2)*exp(-4.120672683*(-0.5515 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.064 + 0.1*i4)^2)*exp(-1.216520282*(-1.202 + i5)^2)*exp(- + 1.913838294*(-3.404 + i6)^2)*exp(-0.491450763*(-4.788 + i7)^2) + + 0.131470758*exp(-10.74928851*(-0.5515 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8182 + 0.1*i2)^2)*exp(-4.120672683*(-0.9636 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.443 + 0.1*i4)^2)*exp(-1.216520282*(-1.606 + i5)^2)*exp(- + 1.913838294*(-3.263 + i6)^2)*exp(-0.491450763*(-3.667 + i7)^2) + + 3.85197381*exp(-10.74928851*(-0.4667 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.4727 + 0.1*i2)^2)*exp(-4.120672683*(-0.7818 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.136 + 0.1*i4)^2)*exp(-1.216520282*(-1.545 + i5)^2)*exp(- + 1.913838294*(-3.99 + i6)^2)*exp(-0.491450763*(-4.758 + i7)^2) + + 8.296296453*exp(-10.74928851*(-0.5606 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.7758 + 0.1*i2)^2)*exp(-4.120672683*(-0.5273 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.9263 + 0.1*i4)^2)*exp(-1.216520282*(-1.576 + i5)^2)*exp(- + 1.913838294*(-3.919 + i6)^2)*exp(-0.491450763*(-2.394 + i7)^2) + + 7.433471568*exp(-10.74928851*(-0.4333 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.5636 + 0.1*i2)^2)*exp(-4.120672683*(-0.9818 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.7081 + 0.1*i4)^2)*exp(-1.216520282*(-1.657 + i5)^2)*exp(- + 1.913838294*(-3.273 + i6)^2)*exp(-0.491450763*(-3.455 + i7)^2) - + 2.797262913*exp(-10.74928851*(-0.5333 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8303 + 0.1*i2)^2)*exp(-4.120672683*(-0.6061 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.9424 + 0.1*i4)^2)*exp(-1.216520282*(-1 + i5)^2)*exp(- + 1.913838294*(-3.545 + i6)^2)*exp(-0.491450763*(-2.303 + i7)^2) + + 5.068518666*exp(-10.74928851*(-0.3788 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.9152 + 0.1*i2)^2)*exp(-4.120672683*(-0.7515 + 0.1*i3)^2)*exp(- + 0.448649548*(-0.8455 + 0.1*i4)^2)*exp(-1.216520282*(-1.212 + i5)^2)*exp(- + 1.913838294*(-3.394 + i6)^2)*exp(-0.491450763*(-4.879 + i7)^2) - + 3.802632777*exp(-10.74928851*(-0.4909 + 0.1*i1)^2)*exp(-12.03863644*(- + 0.8727 + 0.1*i2)^2)*exp(-4.120672683*(-0.4424 + 0.1*i3)^2)*exp(- + 0.448649548*(-1.047 + 0.1*i4)^2)*exp(-1.216520282*(-1.02 + i5)^2)*exp(- + 1.913838294*(-3.556 + i6)^2)*exp(-0.491450763*(-4.303 + i7)^2)) + x8 + >= 13.56829208; + + -(0.101135215*exp(-29.21628191*(-0.303 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.697 + 0.1*i2)^2)*exp(-12.6084759*(-0.8061 + 0.1*i3)^2)*exp(-1.165943672* + (-0.9586 + 0.1*i4)^2)*exp(-2.253415243*(-1.758 + i5)^2)*exp(-0.238973896*( + -3.141 + i6)^2)*exp(-0.175165145*(-4.424 + i7)^2) - 1.073337014*exp(- + 29.21628191*(-0.5364 + 0.1*i1)^2)*exp(-11.07641937*(-0.9697 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4909 + 0.1*i3)^2)*exp(-1.165943672*(-1.161 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.778 + i5)^2)*exp(-0.238973896*(-3.778 + i6)^2)*exp( + -0.175165145*(-4.091 + i7)^2) - 1.013687635*exp(-29.21628191*(-0.503 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.6182 + 0.1*i2)^2)*exp(-12.6084759*(-0.4121 + + 0.1*i3)^2)*exp(-1.165943672*(-1.419 + 0.1*i4)^2)*exp(-2.253415243*(-1.333 + + i5)^2)*exp(-0.238973896*(-3.152 + i6)^2)*exp(-0.175165145*(-3.697 + i7) + ^2) + 0.275562517*exp(-29.21628191*(-0.4606 + 0.1*i1)^2)*exp(-11.07641937* + (-0.903 + 0.1*i2)^2)*exp(-12.6084759*(-0.7576 + 0.1*i3)^2)*exp(- + 1.165943672*(-0.7727 + 0.1*i4)^2)*exp(-2.253415243*(-1.242 + i5)^2)*exp(- + 0.238973896*(-3.98 + i6)^2)*exp(-0.175165145*(-3.424 + i7)^2) - + 0.637684875*exp(-29.21628191*(-0.3 + 0.1*i1)^2)*exp(-11.07641937*(-0.7636 + + 0.1*i2)^2)*exp(-12.6084759*(-0.8606 + 0.1*i3)^2)*exp(-1.165943672*(- + 1.153 + 0.1*i4)^2)*exp(-2.253415243*(-1.556 + i5)^2)*exp(-0.238973896*(- + 3.939 + i6)^2)*exp(-0.175165145*(-2.818 + i7)^2) - 0.59644008*exp(- + 29.21628191*(-0.5879 + 0.1*i1)^2)*exp(-11.07641937*(-0.703 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4788 + 0.1*i3)^2)*exp(-1.165943672*(-1.039 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.646 + i5)^2)*exp(-0.238973896*(-3.222 + i6)^2)*exp( + -0.175165145*(-4.636 + i7)^2) + 0.922465591*exp(-29.21628191*(-0.4121 + + 0.1*i1)^2)*exp(-11.07641937*(-0.4424 + 0.1*i2)^2)*exp(-12.6084759*(-0.5939 + + 0.1*i3)^2)*exp(-1.165943672*(-1.46 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.232 + i5)^2)*exp(-0.238973896*(-3.788 + i6)^2)*exp(-0.175165145*(-3.848 + + i7)^2) + 0.550280217*exp(-29.21628191*(-0.5576 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.8848 + 0.1*i2)^2)*exp(-12.6084759*(-0.8121 + 0.1*i3)^2)* + exp(-1.165943672*(-1.128 + 0.1*i4)^2)*exp(-2.253415243*(-1.263 + i5)^2)* + exp(-0.238973896*(-3.808 + i6)^2)*exp(-0.175165145*(-4.818 + i7)^2) - + 1.505862914*exp(-29.21628191*(-0.4273 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.4848 + 0.1*i2)^2)*exp(-12.6084759*(-0.9697 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.9667 + 0.1*i4)^2)*exp(-2.253415243*(-1.364 + i5)^2)*exp(-0.238973896* + (-3.869 + i6)^2)*exp(-0.175165145*(-2.667 + i7)^2) + 0.466593924*exp(- + 29.21628191*(-0.5455 + 0.1*i1)^2)*exp(-11.07641937*(-0.4061 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6303 + 0.1*i3)^2)*exp(-1.165943672*(-1.427 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.747 + i5)^2)*exp(-0.238973896*(-3.444 + i6)^2)*exp( + -0.175165145*(-3.576 + i7)^2) + 0.155947445*exp(-29.21628191*(-0.5394 + + 0.1*i1)^2)*exp(-11.07641937*(-0.5273 + 0.1*i2)^2)*exp(-12.6084759*(-0.5636 + + 0.1*i3)^2)*exp(-1.165943672*(-1.355 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.253 + i5)^2)*exp(-0.238973896*(-3.566 + i6)^2)*exp(-0.175165145*(-2.121 + + i7)^2) + 0.795466969*exp(-29.21628191*(-0.5273 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.8121 + 0.1*i2)^2)*exp(-12.6084759*(-0.8424 + 0.1*i3)^2)* + exp(-1.165943672*(-0.8535 + 0.1*i4)^2)*exp(-2.253415243*(-1.899 + i5)^2)* + exp(-0.238973896*(-3.889 + i6)^2)*exp(-0.175165145*(-4.061 + i7)^2) - + 1.660633541*exp(-29.21628191*(-0.5727 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.4909 + 0.1*i2)^2)*exp(-12.6084759*(-0.9333 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.306 + 0.1*i4)^2)*exp(-2.253415243*(-1.273 + i5)^2)*exp(-0.238973896*( + -3.707 + i6)^2)*exp(-0.175165145*(-3.485 + i7)^2) + 1.00955068*exp(- + 29.21628191*(-0.3091 + 0.1*i1)^2)*exp(-11.07641937*(-0.6364 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5758 + 0.1*i3)^2)*exp(-1.165943672*(-1.282 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.222 + i5)^2)*exp(-0.238973896*(-3.192 + i6)^2)*exp( + -0.175165145*(-4.455 + i7)^2) - 0.778722323*exp(-29.21628191*(-0.4364 + + 0.1*i1)^2)*exp(-11.07641937*(-0.7394 + 0.1*i2)^2)*exp(-12.6084759*(-0.4485 + + 0.1*i3)^2)*exp(-1.165943672*(-1.403 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.465 + i5)^2)*exp(-0.238973896*(-3.687 + i6)^2)*exp(-0.175165145*(-4.939 + + i7)^2) - 1.487829592*exp(-29.21628191*(-0.5636 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.6485 + 0.1*i2)^2)*exp(-12.6084759*(-0.7273 + 0.1*i3)^2)* + exp(-1.165943672*(-1.346 + 0.1*i4)^2)*exp(-2.253415243*(-1.01 + i5)^2)* + exp(-0.238973896*(-3.333 + i6)^2)*exp(-0.175165145*(-4.364 + i7)^2) + + 0.425638863*exp(-29.21628191*(-0.597 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.7152 + 0.1*i2)^2)*exp(-12.6084759*(-0.703 + 0.1*i3)^2)*exp(-1.165943672* + (-1.209 + 0.1*i4)^2)*exp(-2.253415243*(-1.354 + i5)^2)*exp(-0.238973896*(- + 3.01 + i6)^2)*exp(-0.175165145*(-2.758 + i7)^2) - 0.277228114*exp(- + 29.21628191*(-0.5152 + 0.1*i1)^2)*exp(-11.07641937*(-0.6606 + 0.1*i2)^2)* + exp(-12.6084759*(-0.503 + 0.1*i3)^2)*exp(-1.165943672*(-0.7566 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.424 + i5)^2)*exp(-0.238973896*(-3.848 + i6)^2)*exp( + -0.175165145*(-4.576 + i7)^2) - 0.150004169*exp(-29.21628191*(-0.5758 + + 0.1*i1)^2)*exp(-11.07641937*(-0.5152 + 0.1*i2)^2)*exp(-12.6084759*(-0.4303 + + 0.1*i3)^2)*exp(-1.165943672*(-0.8697 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.374 + i5)^2)*exp(-0.238973896*(-3.414 + i6)^2)*exp(-0.175165145*(-3.061 + + i7)^2) + 0.252906*exp(-29.21628191*(-0.3939 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.7091 + 0.1*i2)^2)*exp(-12.6084759*(-0.4242 + 0.1*i3)^2)* + exp(-1.165943672*(-0.8293 + 0.1*i4)^2)*exp(-2.253415243*(-1.434 + i5)^2)* + exp(-0.238973896*(-3.121 + i6)^2)*exp(-0.175165145*(-4.394 + i7)^2) + + 0.407690981*exp(-29.21628191*(-0.403 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.5333 + 0.1*i2)^2)*exp(-12.6084759*(-0.5152 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.233 + 0.1*i4)^2)*exp(-2.253415243*(-1.889 + i5)^2)*exp(-0.238973896*( + -3.172 + i6)^2)*exp(-0.175165145*(-4.545 + i7)^2) - 0.263172722*exp(- + 29.21628191*(-0.5061 + 0.1*i1)^2)*exp(-11.07641937*(-0.6121 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4606 + 0.1*i3)^2)*exp(-1.165943672*(-1.144 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.879 + i5)^2)*exp(-0.238973896*(-3.343 + i6)^2)*exp( + -0.175165145*(-2.152 + i7)^2) - 1.248206201*exp(-29.21628191*(-0.4152 + + 0.1*i1)^2)*exp(-11.07641937*(-0.8242 + 0.1*i2)^2)*exp(-12.6084759*(-0.6545 + + 0.1*i3)^2)*exp(-1.165943672*(-1.411 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.525 + i5)^2)*exp(-0.238973896*(-3.04 + i6)^2)*exp(-0.175165145*(-2.273 + + i7)^2) - 0.947932407*exp(-29.21628191*(-0.4545 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.503 + 0.1*i2)^2)*exp(-12.6084759*(-0.7152 + 0.1*i3)^2)* + exp(-1.165943672*(-0.797 + 0.1*i4)^2)*exp(-2.253415243*(-1.798 + i5)^2)* + exp(-0.238973896*(-3.424 + i6)^2)*exp(-0.175165145*(-4.97 + i7)^2) - + 0.81886924*exp(-29.21628191*(-0.3606 + 0.1*i1)^2)*exp(-11.07641937*(-0.8 + + 0.1*i2)^2)*exp(-12.6084759*(-0.9394 + 0.1*i3)^2)*exp(-1.165943672*(- + 0.8212 + 0.1*i4)^2)*exp(-2.253415243*(-1.101 + i5)^2)*exp(-0.238973896*(- + 3.535 + i6)^2)*exp(-0.175165145*(-2.909 + i7)^2) - 0.790079404*exp(- + 29.21628191*(-0.5818 + 0.1*i1)^2)*exp(-11.07641937*(-0.9394 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6364 + 0.1*i3)^2)*exp(-1.165943672*(-1.435 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.313 + i5)^2)*exp(-0.238973896*(-3.576 + i6)^2)*exp( + -0.175165145*(-3.212 + i7)^2) - 1.113277475*exp(-29.21628191*(-0.4485 + + 0.1*i1)^2)*exp(-11.07641937*(-0.9273 + 0.1*i2)^2)*exp(-12.6084759*(-0.6 + + 0.1*i3)^2)*exp(-1.165943672*(-0.9505 + 0.1*i4)^2)*exp(-2.253415243*(-1.909 + + i5)^2)*exp(-0.238973896*(-3.051 + i6)^2)*exp(-0.175165145*(-3.97 + i7)^ + 2) - 1.286410146*exp(-29.21628191*(-0.3394 + 0.1*i1)^2)*exp(-11.07641937*( + -0.8788 + 0.1*i2)^2)*exp(-12.6084759*(-0.4727 + 0.1*i3)^2)*exp(- + 1.165943672*(-0.7646 + 0.1*i4)^2)*exp(-2.253415243*(-1.293 + i5)^2)*exp(- + 0.238973896*(-3.616 + i6)^2)*exp(-0.175165145*(-3.273 + i7)^2) + + 0.09067439*exp(-29.21628191*(-0.3515 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.9576 + 0.1*i2)^2)*exp(-12.6084759*(-0.8182 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.7485 + 0.1*i4)^2)*exp(-2.253415243*(-1.768 + i5)^2)*exp(-0.238973896* + (-3.505 + i6)^2)*exp(-0.175165145*(-3.394 + i7)^2) + 1.219207099*exp(- + 29.21628191*(-0.4061 + 0.1*i1)^2)*exp(-11.07641937*(-0.6667 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9576 + 0.1*i3)^2)*exp(-1.165943672*(-1.096 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.131 + i5)^2)*exp(-0.238973896*(-3.071 + i6)^2)*exp( + -0.175165145*(-4.242 + i7)^2) - 0.504004747*exp(-29.21628191*(-0.5788 + + 0.1*i1)^2)*exp(-11.07641937*(-0.6545 + 0.1*i2)^2)*exp(-12.6084759*(-0.7697 + + 0.1*i3)^2)*exp(-1.165943672*(-0.9101 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.97 + i5)^2)*exp(-0.238973896*(-3.162 + i6)^2)*exp(-0.175165145*(-3.364 + + i7)^2) - 0.109232645*exp(-29.21628191*(-0.4788 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.9818 + 0.1*i2)^2)*exp(-12.6084759*(-0.9879 + 0.1*i3)^2)* + exp(-1.165943672*(-1.193 + 0.1*i4)^2)*exp(-2.253415243*(-1.586 + i5)^2)* + exp(-0.238973896*(-3.798 + i6)^2)*exp(-0.175165145*(-3.03 + i7)^2) - + 0.810251131*exp(-29.21628191*(-0.3182 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.5697 + 0.1*i2)^2)*exp(-12.6084759*(-0.7091 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.217 + 0.1*i4)^2)*exp(-2.253415243*(-1.061 + i5)^2)*exp(-0.238973896*( + -3.646 + i6)^2)*exp(-0.175165145*(-2.455 + i7)^2) - 0.044455714*exp(- + 29.21628191*(-0.3909 + 0.1*i1)^2)*exp(-11.07641937*(-0.8606 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5818 + 0.1*i3)^2)*exp(-1.165943672*(-1.468 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.03 + i5)^2)*exp(-0.238973896*(-3.455 + i6)^2)*exp(- + 0.175165145*(-3.242 + i7)^2) + 1.843043855*exp(-29.21628191*(-0.5909 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.6303 + 0.1*i2)^2)*exp(-12.6084759*(-0.5091 + + 0.1*i3)^2)*exp(-1.165943672*(-1.266 + 0.1*i4)^2)*exp(-2.253415243*(-1.303 + + i5)^2)*exp(-0.238973896*(-3.899 + i6)^2)*exp(-0.175165145*(-3.909 + i7) + ^2) - 1.197614412*exp(-29.21628191*(-0.5939 + 0.1*i1)^2)*exp(-11.07641937* + (-0.6727 + 0.1*i2)^2)*exp(-12.6084759*(-0.7758 + 0.1*i3)^2)*exp(- + 1.165943672*(-1.249 + 0.1*i4)^2)*exp(-2.253415243*(-1.818 + i5)^2)*exp(- + 0.238973896*(-3.586 + i6)^2)*exp(-0.175165145*(-4.848 + i7)^2) + + 1.725816625*exp(-29.21628191*(-0.5242 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.8061 + 0.1*i2)^2)*exp(-12.6084759*(-0.5697 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.452 + 0.1*i4)^2)*exp(-2.253415243*(-1.949 + i5)^2)*exp(-0.238973896*( + -3.253 + i6)^2)*exp(-0.175165145*(-3.606 + i7)^2) - 0.408160949*exp(- + 29.21628191*(-0.5667 + 0.1*i1)^2)*exp(-11.07641937*(-0.9636 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6182 + 0.1*i3)^2)*exp(-1.165943672*(-0.7242 + 0.1*i4)^ + 2)*exp(-2.253415243*(-1.495 + i5)^2)*exp(-0.238973896*(-3.475 + i6)^2)* + exp(-0.175165145*(-3.818 + i7)^2) - 1.046774309*exp(-29.21628191*(-0.3364 + + 0.1*i1)^2)*exp(-11.07641937*(-0.5091 + 0.1*i2)^2)*exp(-12.6084759*(- + 0.697 + 0.1*i3)^2)*exp(-1.165943672*(-0.7323 + 0.1*i4)^2)*exp(-2.253415243 + *(-1.182 + i5)^2)*exp(-0.238973896*(-3.313 + i6)^2)*exp(-0.175165145*(- + 3.727 + i7)^2) - 1.330076174*exp(-29.21628191*(-0.4212 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.6061 + 0.1*i2)^2)*exp(-12.6084759*(-0.8485 + 0.1*i3)^2)* + exp(-1.165943672*(-1.476 + 0.1*i4)^2)*exp(-2.253415243*(-1.505 + i5)^2)* + exp(-0.238973896*(-3.364 + i6)^2)*exp(-0.175165145*(-5 + i7)^2) + + 1.163127597*exp(-29.21628191*(-0.3697 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.8485 + 0.1*i2)^2)*exp(-12.6084759*(-0.5455 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.902 + 0.1*i4)^2)*exp(-2.253415243*(-1.788 + i5)^2)*exp(-0.238973896*( + -3.697 + i6)^2)*exp(-0.175165145*(-4.909 + i7)^2) + 0.53595057*exp(- + 29.21628191*(-0.5121 + 0.1*i1)^2)*exp(-11.07641937*(-0.5758 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9091 + 0.1*i3)^2)*exp(-1.165943672*(-0.8051 + 0.1*i4)^ + 2)*exp(-2.253415243*(-1.152 + i5)^2)*exp(-0.238973896*(-3.667 + i6)^2)* + exp(-0.175165145*(-4.485 + i7)^2) + 0.198653889*exp(-29.21628191*(-0.4697 + + 0.1*i1)^2)*exp(-11.07641937*(-0.7455 + 0.1*i2)^2)*exp(-12.6084759*(- + 0.9515 + 0.1*i3)^2)*exp(-1.165943672*(-1.33 + 0.1*i4)^2)*exp(-2.253415243* + (-1.162 + i5)^2)*exp(-0.238973896*(-3.354 + i6)^2)*exp(-0.175165145*(- + 2.182 + i7)^2) + 0.110234486*exp(-29.21628191*(-0.4758 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.6848 + 0.1*i2)^2)*exp(-12.6084759*(-0.4848 + 0.1*i3)^2)* + exp(-1.165943672*(-0.7 + 0.1*i4)^2)*exp(-2.253415243*(-1.939 + i5)^2)*exp( + -0.238973896*(-3.515 + i6)^2)*exp(-0.175165145*(-3.333 + i7)^2) + + 2.143918283*exp(-29.21628191*(-0.3152 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.5879 + 0.1*i2)^2)*exp(-12.6084759*(-0.8667 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.031 + 0.1*i4)^2)*exp(-2.253415243*(-1.485 + i5)^2)*exp(-0.238973896*( + -3.182 + i6)^2)*exp(-0.175165145*(-2.242 + i7)^2) - 0.666400554*exp(- + 29.21628191*(-0.3818 + 0.1*i1)^2)*exp(-11.07641937*(-0.7333 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4061 + 0.1*i3)^2)*exp(-1.165943672*(-1.201 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.283 + i5)^2)*exp(-0.238973896*(-3.949 + i6)^2)*exp( + -0.175165145*(-3 + i7)^2) - 0.25817934*exp(-29.21628191*(-0.5182 + 0.1*i1) + ^2)*exp(-11.07641937*(-0.9939 + 0.1*i2)^2)*exp(-12.6084759*(-0.8788 + 0.1* + i3)^2)*exp(-1.165943672*(-1.072 + 0.1*i4)^2)*exp(-2.253415243*(-1.081 + i5 + )^2)*exp(-0.238973896*(-3.303 + i6)^2)*exp(-0.175165145*(-3.545 + i7)^2) + + 0.987316746*exp(-29.21628191*(-0.4424 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.8364 + 0.1*i2)^2)*exp(-12.6084759*(-0.5333 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.484 + 0.1*i4)^2)*exp(-2.253415243*(-1.677 + i5)^2)*exp(-0.238973896*( + -3.737 + i6)^2)*exp(-0.175165145*(-2.333 + i7)^2) - 0.604805225*exp(- + 29.21628191*(-0.397 + 0.1*i1)^2)*exp(-11.07641937*(-0.5939 + 0.1*i2)^2)* + exp(-12.6084759*(-0.8545 + 0.1*i3)^2)*exp(-1.165943672*(-1.363 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.869 + i5)^2)*exp(-0.238973896*(-3.02 + i6)^2)*exp(- + 0.175165145*(-3.515 + i7)^2) - 2.013751157*exp(-29.21628191*(-0.4879 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.4788 + 0.1*i2)^2)*exp(-12.6084759*(-0.6121 + + 0.1*i3)^2)*exp(-1.165943672*(-0.8939 + 0.1*i4)^2)*exp(-2.253415243*(-1.051 + + i5)^2)*exp(-0.238973896*(-3.879 + i6)^2)*exp(-0.175165145*(-3.182 + i7) + ^2) + 1.185123932*exp(-29.21628191*(-0.3545 + 0.1*i1)^2)*exp(-11.07641937* + (-0.4364 + 0.1*i2)^2)*exp(-12.6084759*(-0.7333 + 0.1*i3)^2)*exp(- + 1.165943672*(-0.9828 + 0.1*i4)^2)*exp(-2.253415243*(-1.99 + i5)^2)*exp(- + 0.238973896*(-3.495 + i6)^2)*exp(-0.175165145*(-2.97 + i7)^2) + + 0.165470765*exp(-29.21628191*(-0.5424 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.6909 + 0.1*i2)^2)*exp(-12.6084759*(-0.6727 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.7889 + 0.1*i4)^2)*exp(-2.253415243*(-1.121 + i5)^2)*exp(-0.238973896* + (-3.091 + i6)^2)*exp(-0.175165145*(-4.121 + i7)^2) + 0.311800702*exp(- + 29.21628191*(-0.4848 + 0.1*i1)^2)*exp(-11.07641937*(-0.7879 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6909 + 0.1*i3)^2)*exp(-1.165943672*(-0.7162 + 0.1*i4)^ + 2)*exp(-2.253415243*(-1.475 + i5)^2)*exp(-0.238973896*(-3.131 + i6)^2)* + exp(-0.175165145*(-2.212 + i7)^2) - 0.515083443*exp(-29.21628191*(-0.4394 + + 0.1*i1)^2)*exp(-11.07641937*(-0.897 + 0.1*i2)^2)*exp(-12.6084759*(- + 0.9758 + 0.1*i3)^2)*exp(-1.165943672*(-1.023 + 0.1*i4)^2)*exp(-2.253415243 + *(-1.667 + i5)^2)*exp(-0.238973896*(-3.061 + i6)^2)*exp(-0.175165145*(- + 2.879 + i7)^2) + 0.034639112*exp(-29.21628191*(-0.3848 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.5394 + 0.1*i2)^2)*exp(-12.6084759*(-0.9152 + 0.1*i3)^2)* + exp(-1.165943672*(-1.5 + 0.1*i4)^2)*exp(-2.253415243*(-1.596 + i5)^2)*exp( + -0.238973896*(-3.636 + i6)^2)*exp(-0.175165145*(-2.727 + i7)^2) + + 0.442630499*exp(-29.21628191*(-0.5545 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.9758 + 0.1*i2)^2)*exp(-12.6084759*(-0.7212 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.08 + 0.1*i4)^2)*exp(-2.253415243*(-1.838 + i5)^2)*exp(-0.238973896*(- + 3.434 + i6)^2)*exp(-0.175165145*(-2.364 + i7)^2) - 0.399665847*exp(- + 29.21628191*(-0.3758 + 0.1*i1)^2)*exp(-11.07641937*(-0.8667 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5394 + 0.1*i3)^2)*exp(-1.165943672*(-1.015 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.919 + i5)^2)*exp(-0.238973896*(-3.909 + i6)^2)*exp( + -0.175165145*(-2.939 + i7)^2) + 0.50029784*exp(-29.21628191*(-0.3212 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.7576 + 0.1*i2)^2)*exp(-12.6084759*(-0.5212 + + 0.1*i3)^2)*exp(-1.165943672*(-0.9343 + 0.1*i4)^2)*exp(-2.253415243*(-1.808 + + i5)^2)*exp(-0.238973896*(-3.212 + i6)^2)*exp(-0.175165145*(-2.545 + i7) + ^2) + 0.774658831*exp(-29.21628191*(-0.4727 + 0.1*i1)^2)*exp(-11.07641937* + (-0.9333 + 0.1*i2)^2)*exp(-12.6084759*(-0.6485 + 0.1*i3)^2)*exp(- + 1.165943672*(-1.322 + 0.1*i4)^2)*exp(-2.253415243*(-1.394 + i5)^2)*exp(- + 0.238973896*(-3.081 + i6)^2)*exp(-0.175165145*(-4.697 + i7)^2) + + 2.10999953*exp(-29.21628191*(-0.4576 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.5455 + 0.1*i2)^2)*exp(-12.6084759*(-0.9939 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.169 + 0.1*i4)^2)*exp(-2.253415243*(-1.98 + i5)^2)*exp(-0.238973896*(- + 3.626 + i6)^2)*exp(-0.175165145*(-3.939 + i7)^2) - 0.333288245*exp(- + 29.21628191*(-0.3242 + 0.1*i1)^2)*exp(-11.07641937*(-0.9212 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4667 + 0.1*i3)^2)*exp(-1.165943672*(-1.314 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.697 + i5)^2)*exp(-0.238973896*(-3.374 + i6)^2)*exp( + -0.175165145*(-3.758 + i7)^2) + 0.671276286*exp(-29.21628191*(-0.5697 + + 0.1*i1)^2)*exp(-11.07641937*(-0.4182 + 0.1*i2)^2)*exp(-12.6084759*(-0.7394 + + 0.1*i3)^2)*exp(-1.165943672*(-0.8374 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.717 + i5)^2)*exp(-0.238973896*(-3.727 + i6)^2)*exp(-0.175165145*(-3.303 + + i7)^2) + 2.190313764*exp(-29.21628191*(-0.3727 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.9879 + 0.1*i2)^2)*exp(-12.6084759*(-0.6848 + 0.1*i3)^2)* + exp(-1.165943672*(-1.104 + 0.1*i4)^2)*exp(-2.253415243*(-1.343 + i5)^2)* + exp(-0.238973896*(-3.606 + i6)^2)*exp(-0.175165145*(-2 + i7)^2) + + 4.356324407*exp(-29.21628191*(-0.5091 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.4667 + 0.1*i2)^2)*exp(-12.6084759*(-0.8303 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.8859 + 0.1*i4)^2)*exp(-2.253415243*(-1.111 + i5)^2)*exp(-0.238973896* + (-3.283 + i6)^2)*exp(-0.175165145*(-2.576 + i7)^2) - 1.043647078*exp(- + 29.21628191*(-0.3485 + 0.1*i1)^2)*exp(-11.07641937*(-0.9091 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6606 + 0.1*i3)^2)*exp(-1.165943672*(-0.999 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.172 + i5)^2)*exp(-0.238973896*(-3.03 + i6)^2)*exp(- + 0.175165145*(-3.152 + i7)^2) + 0.534453048*exp(-29.21628191*(-0.5848 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.6788 + 0.1*i2)^2)*exp(-12.6084759*(-0.8 + 0.1 + *i3)^2)*exp(-1.165943672*(-1.298 + 0.1*i4)^2)*exp(-2.253415243*(-1.848 + + i5)^2)*exp(-0.238973896*(-3.828 + i6)^2)*exp(-0.175165145*(-2.636 + i7)^2) + - 0.531661276*exp(-29.21628191*(-0.3303 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.5212 + 0.1*i2)^2)*exp(-12.6084759*(-0.497 + 0.1*i3)^2)*exp(-1.165943672* + (-1.395 + 0.1*i4)^2)*exp(-2.253415243*(-1.636 + i5)^2)*exp(-0.238973896*(- + 3.384 + i6)^2)*exp(-0.175165145*(-2.697 + i7)^2) - 0.870633931*exp(- + 29.21628191*(-0.3061 + 0.1*i1)^2)*exp(-11.07641937*(-0.6242 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6788 + 0.1*i3)^2)*exp(-1.165943672*(-1.338 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.859 + i5)^2)*exp(-0.238973896*(-3.758 + i6)^2)*exp( + -0.175165145*(-4.273 + i7)^2) + 2.529407772*exp(-29.21628191*(-0.5485 + + 0.1*i1)^2)*exp(-11.07641937*(-0.4545 + 0.1*i2)^2)*exp(-12.6084759*(-0.8848 + + 0.1*i3)^2)*exp(-1.165943672*(-1.112 + 0.1*i4)^2)*exp(-2.253415243*(- + 1.515 + i5)^2)*exp(-0.238973896*(-3.101 + i6)^2)*exp(-0.175165145*(-4.333 + + i7)^2) + 0.371178065*exp(-29.21628191*(-0.4636 + 0.1*i1)^2)*exp(- + 11.07641937*(-0.7939 + 0.1*i2)^2)*exp(-12.6084759*(-0.7879 + 0.1*i3)^2)* + exp(-1.165943672*(-1.492 + 0.1*i4)^2)*exp(-2.253415243*(-1.707 + i5)^2)* + exp(-0.238973896*(-3.97 + i6)^2)*exp(-0.175165145*(-4.03 + i7)^2) - + 0.601191899*exp(-29.21628191*(-0.3455 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.5818 + 0.1*i2)^2)*exp(-12.6084759*(-0.7455 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.7404 + 0.1*i4)^2)*exp(-2.253415243*(-1.687 + i5)^2)*exp(-0.238973896* + (-3.929 + i6)^2)*exp(-0.175165145*(-3.788 + i7)^2) - 0.392627649*exp(- + 29.21628191*(-0.6 + 0.1*i1)^2)*exp(-11.07641937*(-0.7515 + 0.1*i2)^2)*exp( + -12.6084759*(-0.9455 + 0.1*i3)^2)*exp(-1.165943672*(-0.8616 + 0.1*i4)^2)* + exp(-2.253415243*(-1.384 + i5)^2)*exp(-0.238973896*(-3.596 + i6)^2)*exp(- + 0.175165145*(-2.848 + i7)^2) - 0.189438441*exp(-29.21628191*(-0.3273 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.4 + 0.1*i2)^2)*exp(-12.6084759*(-0.897 + 0.1* + i3)^2)*exp(-1.165943672*(-1.12 + 0.1*i4)^2)*exp(-2.253415243*(-1.404 + i5) + ^2)*exp(-0.238973896*(-3.525 + i6)^2)*exp(-0.175165145*(-4.182 + i7)^2) - + 1.812938632*exp(-29.21628191*(-0.5212 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.497 + 0.1*i2)^2)*exp(-12.6084759*(-0.8909 + 0.1*i3)^2)*exp(-1.165943672* + (-1.185 + 0.1*i4)^2)*exp(-2.253415243*(-1.737 + i5)^2)*exp(-0.238973896*(- + 3.293 + i6)^2)*exp(-0.175165145*(-2.091 + i7)^2) - 0.537636744*exp(- + 29.21628191*(-0.4303 + 0.1*i1)^2)*exp(-11.07641937*(-0.4606 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6242 + 0.1*i3)^2)*exp(-1.165943672*(-1.225 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.727 + i5)^2)*exp(-0.238973896*(-3.96 + i6)^2)*exp(- + 0.175165145*(-2.424 + i7)^2) + 0.928966592*exp(-29.21628191*(-0.3121 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.8909 + 0.1*i2)^2)*exp(-12.6084759*(-0.903 + + 0.1*i3)^2)*exp(-1.165943672*(-1.387 + 0.1*i4)^2)*exp(-2.253415243*(-1.414 + + i5)^2)*exp(-0.238973896*(-3.323 + i6)^2)*exp(-0.175165145*(-3.636 + i7) + ^2) + 0.364063553*exp(-29.21628191*(-0.3424 + 0.1*i1)^2)*exp(-11.07641937* + (-0.4485 + 0.1*i2)^2)*exp(-12.6084759*(-0.4182 + 0.1*i3)^2)*exp(- + 1.165943672*(-0.9747 + 0.1*i4)^2)*exp(-2.253415243*(-1.566 + i5)^2)*exp(- + 0.238973896*(-3.657 + i6)^2)*exp(-0.175165145*(-3.879 + i7)^2) - + 0.596114542*exp(-29.21628191*(-0.497 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.7697 + 0.1*i2)^2)*exp(-12.6084759*(-0.7939 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.274 + 0.1*i4)^2)*exp(-2.253415243*(-1.141 + i5)^2)*exp(-0.238973896*( + -4 + i6)^2)*exp(-0.175165145*(-2.515 + i7)^2) + 0.30738077*exp(- + 29.21628191*(-0.4939 + 0.1*i1)^2)*exp(-11.07641937*(-0.5576 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4545 + 0.1*i3)^2)*exp(-1.165943672*(-1.177 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.96 + i5)^2)*exp(-0.238973896*(-3.818 + i6)^2)*exp(- + 0.175165145*(-4 + i7)^2) + 0.770994186*exp(-29.21628191*(-0.5 + 0.1*i1)^2) + *exp(-11.07641937*(-0.9515 + 0.1*i2)^2)*exp(-12.6084759*(-0.4 + 0.1*i3)^2) + *exp(-1.165943672*(-1.088 + 0.1*i4)^2)*exp(-2.253415243*(-1.455 + i5)^2)* + exp(-0.238973896*(-3.242 + i6)^2)*exp(-0.175165145*(-2.788 + i7)^2) - + 0.046649511*exp(-29.21628191*(-0.4182 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.9455 + 0.1*i2)^2)*exp(-12.6084759*(-0.8364 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.258 + 0.1*i4)^2)*exp(-2.253415243*(-1.929 + i5)^2)*exp(-0.238973896*( + -3.465 + i6)^2)*exp(-0.175165145*(-4.606 + i7)^2) - 1.216853174*exp(- + 29.21628191*(-0.3636 + 0.1*i1)^2)*exp(-11.07641937*(-0.7818 + 0.1*i2)^2)* + exp(-12.6084759*(-1 + 0.1*i3)^2)*exp(-1.165943672*(-0.9909 + 0.1*i4)^2)* + exp(-2.253415243*(-1.535 + i5)^2)*exp(-0.238973896*(-3.768 + i6)^2)*exp(- + 0.175165145*(-4.667 + i7)^2) - 0.769416632*exp(-29.21628191*(-0.4091 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.7212 + 0.1*i2)^2)*exp(-12.6084759*(-0.9273 + + 0.1*i3)^2)*exp(-1.165943672*(-1.371 + 0.1*i4)^2)*exp(-2.253415243*(-1.04 + + i5)^2)*exp(-0.238973896*(-3.747 + i6)^2)*exp(-0.175165145*(-4.152 + i7) + ^2) - 0.730316386*exp(-29.21628191*(-0.4455 + 0.1*i1)^2)*exp(-11.07641937* + (-0.4242 + 0.1*i2)^2)*exp(-12.6084759*(-0.5879 + 0.1*i3)^2)*exp(- + 1.165943672*(-0.9182 + 0.1*i4)^2)*exp(-2.253415243*(-1.626 + i5)^2)*exp(- + 0.238973896*(-3 + i6)^2)*exp(-0.175165145*(-3.091 + i7)^2) - 0.380645559* + exp(-29.21628191*(-0.3667 + 0.1*i1)^2)*exp(-11.07641937*(-0.8424 + 0.1*i2) + ^2)*exp(-12.6084759*(-0.8242 + 0.1*i3)^2)*exp(-1.165943672*(-1.29 + 0.1*i4 + )^2)*exp(-2.253415243*(-2 + i5)^2)*exp(-0.238973896*(-3.485 + i6)^2)*exp(- + 0.175165145*(-2.485 + i7)^2) + 0.056237102*exp(-29.21628191*(-0.4 + 0.1*i1 + )^2)*exp(-11.07641937*(-0.6 + 0.1*i2)^2)*exp(-12.6084759*(-0.4364 + 0.1*i3 + )^2)*exp(-1.165943672*(-1.056 + 0.1*i4)^2)*exp(-2.253415243*(-1.091 + i5)^ + 2)*exp(-0.238973896*(-3.202 + i6)^2)*exp(-0.175165145*(-2.606 + i7)^2) - + 0.747863312*exp(-29.21628191*(-0.5303 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.8545 + 0.1*i2)^2)*exp(-12.6084759*(-0.9212 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.8778 + 0.1*i4)^2)*exp(-2.253415243*(-1.616 + i5)^2)*exp(-0.238973896* + (-3.232 + i6)^2)*exp(-0.175165145*(-4.727 + i7)^2) + 1.210928939*exp(- + 29.21628191*(-0.3879 + 0.1*i1)^2)*exp(-11.07641937*(-0.5515 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5576 + 0.1*i3)^2)*exp(-1.165943672*(-0.7808 + 0.1*i4)^ + 2)*exp(-2.253415243*(-1.444 + i5)^2)*exp(-0.238973896*(-3.677 + i6)^2)* + exp(-0.175165145*(-2.03 + i7)^2) - 0.437209922*exp(-29.21628191*(-0.4515 + + 0.1*i1)^2)*exp(-11.07641937*(-0.7273 + 0.1*i2)^2)*exp(-12.6084759*(- + 0.8727 + 0.1*i3)^2)*exp(-1.165943672*(-0.8131 + 0.1*i4)^2)*exp(- + 2.253415243*(-1.828 + i5)^2)*exp(-0.238973896*(-3.717 + i6)^2)*exp(- + 0.175165145*(-2.061 + i7)^2) - 0.022526449*exp(-29.21628191*(-0.4818 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.4121 + 0.1*i2)^2)*exp(-12.6084759*(-0.5515 + + 0.1*i3)^2)*exp(-1.165943672*(-1.064 + 0.1*i4)^2)*exp(-2.253415243*(-1.202 + + i5)^2)*exp(-0.238973896*(-3.404 + i6)^2)*exp(-0.175165145*(-4.788 + i7) + ^2) + 0.751154866*exp(-29.21628191*(-0.5515 + 0.1*i1)^2)*exp(-11.07641937* + (-0.8182 + 0.1*i2)^2)*exp(-12.6084759*(-0.9636 + 0.1*i3)^2)*exp(- + 1.165943672*(-1.443 + 0.1*i4)^2)*exp(-2.253415243*(-1.606 + i5)^2)*exp(- + 0.238973896*(-3.263 + i6)^2)*exp(-0.175165145*(-3.667 + i7)^2) + + 0.188078016*exp(-29.21628191*(-0.4667 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.4727 + 0.1*i2)^2)*exp(-12.6084759*(-0.7818 + 0.1*i3)^2)*exp(-1.165943672 + *(-1.136 + 0.1*i4)^2)*exp(-2.253415243*(-1.545 + i5)^2)*exp(-0.238973896*( + -3.99 + i6)^2)*exp(-0.175165145*(-4.758 + i7)^2) - 2.198903683*exp(- + 29.21628191*(-0.5606 + 0.1*i1)^2)*exp(-11.07641937*(-0.7758 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5273 + 0.1*i3)^2)*exp(-1.165943672*(-0.9263 + 0.1*i4)^ + 2)*exp(-2.253415243*(-1.576 + i5)^2)*exp(-0.238973896*(-3.919 + i6)^2)* + exp(-0.175165145*(-2.394 + i7)^2) + 0.196244938*exp(-29.21628191*(-0.4333 + + 0.1*i1)^2)*exp(-11.07641937*(-0.5636 + 0.1*i2)^2)*exp(-12.6084759*(- + 0.9818 + 0.1*i3)^2)*exp(-1.165943672*(-0.7081 + 0.1*i4)^2)*exp(- + 2.253415243*(-1.657 + i5)^2)*exp(-0.238973896*(-3.273 + i6)^2)*exp(- + 0.175165145*(-3.455 + i7)^2) + 1.445839349*exp(-29.21628191*(-0.5333 + 0.1 + *i1)^2)*exp(-11.07641937*(-0.8303 + 0.1*i2)^2)*exp(-12.6084759*(-0.6061 + + 0.1*i3)^2)*exp(-1.165943672*(-0.9424 + 0.1*i4)^2)*exp(-2.253415243*(-1 + + i5)^2)*exp(-0.238973896*(-3.545 + i6)^2)*exp(-0.175165145*(-2.303 + i7)^2) + - 0.186444508*exp(-29.21628191*(-0.3788 + 0.1*i1)^2)*exp(-11.07641937*(- + 0.9152 + 0.1*i2)^2)*exp(-12.6084759*(-0.7515 + 0.1*i3)^2)*exp(-1.165943672 + *(-0.8455 + 0.1*i4)^2)*exp(-2.253415243*(-1.212 + i5)^2)*exp(-0.238973896* + (-3.394 + i6)^2)*exp(-0.175165145*(-4.879 + i7)^2) + 1.425196267*exp(- + 29.21628191*(-0.4909 + 0.1*i1)^2)*exp(-11.07641937*(-0.8727 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4424 + 0.1*i3)^2)*exp(-1.165943672*(-1.047 + 0.1*i4)^2 + )*exp(-2.253415243*(-1.02 + i5)^2)*exp(-0.238973896*(-3.556 + i6)^2)*exp(- + 0.175165145*(-4.303 + i7)^2)) + x8 >= 2.22830513; + + -(-0.173365361*exp(-16.65511777*(-0.303 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.697 + 0.1*i2)^2)*exp(-12.6084759*(-0.8061 + 0.1*i3)^2)*exp(-2.93501772*( + -0.9586 + 0.1*i4)^2)*exp(-1.462797384*(-1.758 + i5)^2)*exp(-1.123092727*(- + 3.141 + i6)^2)*exp(-0.232874208*(-4.424 + i7)^2) - 0.549102732*exp(- + 16.65511777*(-0.5364 + 0.1*i1)^2)*exp(-8.627614995*(-0.9697 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4909 + 0.1*i3)^2)*exp(-2.93501772*(-1.161 + 0.1*i4)^2) + *exp(-1.462797384*(-1.778 + i5)^2)*exp(-1.123092727*(-3.778 + i6)^2)*exp(- + 0.232874208*(-4.091 + i7)^2) + 0.145462328*exp(-16.65511777*(-0.503 + 0.1* + i1)^2)*exp(-8.627614995*(-0.6182 + 0.1*i2)^2)*exp(-12.6084759*(-0.4121 + + 0.1*i3)^2)*exp(-2.93501772*(-1.419 + 0.1*i4)^2)*exp(-1.462797384*(-1.333 + + i5)^2)*exp(-1.123092727*(-3.152 + i6)^2)*exp(-0.232874208*(-3.697 + i7) + ^2) + 0.27550064*exp(-16.65511777*(-0.4606 + 0.1*i1)^2)*exp(-8.627614995*( + -0.903 + 0.1*i2)^2)*exp(-12.6084759*(-0.7576 + 0.1*i3)^2)*exp(-2.93501772* + (-0.7727 + 0.1*i4)^2)*exp(-1.462797384*(-1.242 + i5)^2)*exp(-1.123092727*( + -3.98 + i6)^2)*exp(-0.232874208*(-3.424 + i7)^2) + 0.091188597*exp(- + 16.65511777*(-0.3 + 0.1*i1)^2)*exp(-8.627614995*(-0.7636 + 0.1*i2)^2)*exp( + -12.6084759*(-0.8606 + 0.1*i3)^2)*exp(-2.93501772*(-1.153 + 0.1*i4)^2)* + exp(-1.462797384*(-1.556 + i5)^2)*exp(-1.123092727*(-3.939 + i6)^2)*exp(- + 0.232874208*(-2.818 + i7)^2) + 0.356915701*exp(-16.65511777*(-0.5879 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.703 + 0.1*i2)^2)*exp(-12.6084759*(-0.4788 + + 0.1*i3)^2)*exp(-2.93501772*(-1.039 + 0.1*i4)^2)*exp(-1.462797384*(-1.646 + + i5)^2)*exp(-1.123092727*(-3.222 + i6)^2)*exp(-0.232874208*(-4.636 + i7) + ^2) + 0.161629437*exp(-16.65511777*(-0.4121 + 0.1*i1)^2)*exp(-8.627614995* + (-0.4424 + 0.1*i2)^2)*exp(-12.6084759*(-0.5939 + 0.1*i3)^2)*exp(- + 2.93501772*(-1.46 + 0.1*i4)^2)*exp(-1.462797384*(-1.232 + i5)^2)*exp(- + 1.123092727*(-3.788 + i6)^2)*exp(-0.232874208*(-3.848 + i7)^2) + + 0.209574141*exp(-16.65511777*(-0.5576 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8848 + 0.1*i2)^2)*exp(-12.6084759*(-0.8121 + 0.1*i3)^2)*exp(-2.93501772* + (-1.128 + 0.1*i4)^2)*exp(-1.462797384*(-1.263 + i5)^2)*exp(-1.123092727*(- + 3.808 + i6)^2)*exp(-0.232874208*(-4.818 + i7)^2) - 1.584863625*exp(- + 16.65511777*(-0.4273 + 0.1*i1)^2)*exp(-8.627614995*(-0.4848 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9697 + 0.1*i3)^2)*exp(-2.93501772*(-0.9667 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.364 + i5)^2)*exp(-1.123092727*(-3.869 + i6)^2)*exp( + -0.232874208*(-2.667 + i7)^2) + 0.491088865*exp(-16.65511777*(-0.5455 + + 0.1*i1)^2)*exp(-8.627614995*(-0.4061 + 0.1*i2)^2)*exp(-12.6084759*(-0.6303 + + 0.1*i3)^2)*exp(-2.93501772*(-1.427 + 0.1*i4)^2)*exp(-1.462797384*(- + 1.747 + i5)^2)*exp(-1.123092727*(-3.444 + i6)^2)*exp(-0.232874208*(-3.576 + + i7)^2) - 0.199952534*exp(-16.65511777*(-0.5394 + 0.1*i1)^2)*exp(- + 8.627614995*(-0.5273 + 0.1*i2)^2)*exp(-12.6084759*(-0.5636 + 0.1*i3)^2)* + exp(-2.93501772*(-1.355 + 0.1*i4)^2)*exp(-1.462797384*(-1.253 + i5)^2)* + exp(-1.123092727*(-3.566 + i6)^2)*exp(-0.232874208*(-2.121 + i7)^2) + + 0.143924454*exp(-16.65511777*(-0.5273 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8121 + 0.1*i2)^2)*exp(-12.6084759*(-0.8424 + 0.1*i3)^2)*exp(-2.93501772* + (-0.8535 + 0.1*i4)^2)*exp(-1.462797384*(-1.899 + i5)^2)*exp(-1.123092727*( + -3.889 + i6)^2)*exp(-0.232874208*(-4.061 + i7)^2) - 0.339203567*exp(- + 16.65511777*(-0.5727 + 0.1*i1)^2)*exp(-8.627614995*(-0.4909 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9333 + 0.1*i3)^2)*exp(-2.93501772*(-1.306 + 0.1*i4)^2) + *exp(-1.462797384*(-1.273 + i5)^2)*exp(-1.123092727*(-3.707 + i6)^2)*exp(- + 0.232874208*(-3.485 + i7)^2) + 0.243442468*exp(-16.65511777*(-0.3091 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.6364 + 0.1*i2)^2)*exp(-12.6084759*(-0.5758 + + 0.1*i3)^2)*exp(-2.93501772*(-1.282 + 0.1*i4)^2)*exp(-1.462797384*(-1.222 + + i5)^2)*exp(-1.123092727*(-3.192 + i6)^2)*exp(-0.232874208*(-4.455 + i7) + ^2) - 0.452666575*exp(-16.65511777*(-0.4364 + 0.1*i1)^2)*exp(-8.627614995* + (-0.7394 + 0.1*i2)^2)*exp(-12.6084759*(-0.4485 + 0.1*i3)^2)*exp(- + 2.93501772*(-1.403 + 0.1*i4)^2)*exp(-1.462797384*(-1.465 + i5)^2)*exp(- + 1.123092727*(-3.687 + i6)^2)*exp(-0.232874208*(-4.939 + i7)^2) - + 0.829406468*exp(-16.65511777*(-0.5636 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.6485 + 0.1*i2)^2)*exp(-12.6084759*(-0.7273 + 0.1*i3)^2)*exp(-2.93501772* + (-1.346 + 0.1*i4)^2)*exp(-1.462797384*(-1.01 + i5)^2)*exp(-1.123092727*(- + 3.333 + i6)^2)*exp(-0.232874208*(-4.364 + i7)^2) - 0.229330908*exp(- + 16.65511777*(-0.597 + 0.1*i1)^2)*exp(-8.627614995*(-0.7152 + 0.1*i2)^2)* + exp(-12.6084759*(-0.703 + 0.1*i3)^2)*exp(-2.93501772*(-1.209 + 0.1*i4)^2)* + exp(-1.462797384*(-1.354 + i5)^2)*exp(-1.123092727*(-3.01 + i6)^2)*exp(- + 0.232874208*(-2.758 + i7)^2) + 0.788123986*exp(-16.65511777*(-0.5152 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.6606 + 0.1*i2)^2)*exp(-12.6084759*(-0.503 + + 0.1*i3)^2)*exp(-2.93501772*(-0.7566 + 0.1*i4)^2)*exp(-1.462797384*(-1.424 + + i5)^2)*exp(-1.123092727*(-3.848 + i6)^2)*exp(-0.232874208*(-4.576 + i7) + ^2) + 0.12089231*exp(-16.65511777*(-0.5758 + 0.1*i1)^2)*exp(-8.627614995*( + -0.5152 + 0.1*i2)^2)*exp(-12.6084759*(-0.4303 + 0.1*i3)^2)*exp(-2.93501772 + *(-0.8697 + 0.1*i4)^2)*exp(-1.462797384*(-1.374 + i5)^2)*exp(-1.123092727* + (-3.414 + i6)^2)*exp(-0.232874208*(-3.061 + i7)^2) + 0.649947926*exp(- + 16.65511777*(-0.3939 + 0.1*i1)^2)*exp(-8.627614995*(-0.7091 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4242 + 0.1*i3)^2)*exp(-2.93501772*(-0.8293 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.434 + i5)^2)*exp(-1.123092727*(-3.121 + i6)^2)*exp( + -0.232874208*(-4.394 + i7)^2) - 0.195968648*exp(-16.65511777*(-0.403 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.5333 + 0.1*i2)^2)*exp(-12.6084759*(-0.5152 + + 0.1*i3)^2)*exp(-2.93501772*(-1.233 + 0.1*i4)^2)*exp(-1.462797384*(-1.889 + + i5)^2)*exp(-1.123092727*(-3.172 + i6)^2)*exp(-0.232874208*(-4.545 + i7) + ^2) + 0.624558665*exp(-16.65511777*(-0.5061 + 0.1*i1)^2)*exp(-8.627614995* + (-0.6121 + 0.1*i2)^2)*exp(-12.6084759*(-0.4606 + 0.1*i3)^2)*exp(- + 2.93501772*(-1.144 + 0.1*i4)^2)*exp(-1.462797384*(-1.879 + i5)^2)*exp(- + 1.123092727*(-3.343 + i6)^2)*exp(-0.232874208*(-2.152 + i7)^2) - + 0.576490937*exp(-16.65511777*(-0.4152 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8242 + 0.1*i2)^2)*exp(-12.6084759*(-0.6545 + 0.1*i3)^2)*exp(-2.93501772* + (-1.411 + 0.1*i4)^2)*exp(-1.462797384*(-1.525 + i5)^2)*exp(-1.123092727*(- + 3.04 + i6)^2)*exp(-0.232874208*(-2.273 + i7)^2) - 0.361168054*exp(- + 16.65511777*(-0.4545 + 0.1*i1)^2)*exp(-8.627614995*(-0.503 + 0.1*i2)^2)* + exp(-12.6084759*(-0.7152 + 0.1*i3)^2)*exp(-2.93501772*(-0.797 + 0.1*i4)^2) + *exp(-1.462797384*(-1.798 + i5)^2)*exp(-1.123092727*(-3.424 + i6)^2)*exp(- + 0.232874208*(-4.97 + i7)^2) - 0.446957771*exp(-16.65511777*(-0.3606 + 0.1* + i1)^2)*exp(-8.627614995*(-0.8 + 0.1*i2)^2)*exp(-12.6084759*(-0.9394 + 0.1* + i3)^2)*exp(-2.93501772*(-0.8212 + 0.1*i4)^2)*exp(-1.462797384*(-1.101 + i5 + )^2)*exp(-1.123092727*(-3.535 + i6)^2)*exp(-0.232874208*(-2.909 + i7)^2) + + 0.419105415*exp(-16.65511777*(-0.5818 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.9394 + 0.1*i2)^2)*exp(-12.6084759*(-0.6364 + 0.1*i3)^2)*exp(-2.93501772* + (-1.435 + 0.1*i4)^2)*exp(-1.462797384*(-1.313 + i5)^2)*exp(-1.123092727*(- + 3.576 + i6)^2)*exp(-0.232874208*(-3.212 + i7)^2) + 0.458631821*exp(- + 16.65511777*(-0.4485 + 0.1*i1)^2)*exp(-8.627614995*(-0.9273 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6 + 0.1*i3)^2)*exp(-2.93501772*(-0.9505 + 0.1*i4)^2)* + exp(-1.462797384*(-1.909 + i5)^2)*exp(-1.123092727*(-3.051 + i6)^2)*exp(- + 0.232874208*(-3.97 + i7)^2) - 0.562110202*exp(-16.65511777*(-0.3394 + 0.1* + i1)^2)*exp(-8.627614995*(-0.8788 + 0.1*i2)^2)*exp(-12.6084759*(-0.4727 + + 0.1*i3)^2)*exp(-2.93501772*(-0.7646 + 0.1*i4)^2)*exp(-1.462797384*(-1.293 + + i5)^2)*exp(-1.123092727*(-3.616 + i6)^2)*exp(-0.232874208*(-3.273 + i7) + ^2) - 0.276785589*exp(-16.65511777*(-0.3515 + 0.1*i1)^2)*exp(-8.627614995* + (-0.9576 + 0.1*i2)^2)*exp(-12.6084759*(-0.8182 + 0.1*i3)^2)*exp(- + 2.93501772*(-0.7485 + 0.1*i4)^2)*exp(-1.462797384*(-1.768 + i5)^2)*exp(- + 1.123092727*(-3.505 + i6)^2)*exp(-0.232874208*(-3.394 + i7)^2) - + 0.299047824*exp(-16.65511777*(-0.4061 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.6667 + 0.1*i2)^2)*exp(-12.6084759*(-0.9576 + 0.1*i3)^2)*exp(-2.93501772* + (-1.096 + 0.1*i4)^2)*exp(-1.462797384*(-1.131 + i5)^2)*exp(-1.123092727*(- + 3.071 + i6)^2)*exp(-0.232874208*(-4.242 + i7)^2) - 0.187537323*exp(- + 16.65511777*(-0.5788 + 0.1*i1)^2)*exp(-8.627614995*(-0.6545 + 0.1*i2)^2)* + exp(-12.6084759*(-0.7697 + 0.1*i3)^2)*exp(-2.93501772*(-0.9101 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.97 + i5)^2)*exp(-1.123092727*(-3.162 + i6)^2)*exp(- + 0.232874208*(-3.364 + i7)^2) - 0.143678658*exp(-16.65511777*(-0.4788 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.9818 + 0.1*i2)^2)*exp(-12.6084759*(-0.9879 + + 0.1*i3)^2)*exp(-2.93501772*(-1.193 + 0.1*i4)^2)*exp(-1.462797384*(-1.586 + + i5)^2)*exp(-1.123092727*(-3.798 + i6)^2)*exp(-0.232874208*(-3.03 + i7)^ + 2) - 0.729854967*exp(-16.65511777*(-0.3182 + 0.1*i1)^2)*exp(-8.627614995*( + -0.5697 + 0.1*i2)^2)*exp(-12.6084759*(-0.7091 + 0.1*i3)^2)*exp(-2.93501772 + *(-1.217 + 0.1*i4)^2)*exp(-1.462797384*(-1.061 + i5)^2)*exp(-1.123092727*( + -3.646 + i6)^2)*exp(-0.232874208*(-2.455 + i7)^2) + 0.151548207*exp(- + 16.65511777*(-0.3909 + 0.1*i1)^2)*exp(-8.627614995*(-0.8606 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5818 + 0.1*i3)^2)*exp(-2.93501772*(-1.468 + 0.1*i4)^2) + *exp(-1.462797384*(-1.03 + i5)^2)*exp(-1.123092727*(-3.455 + i6)^2)*exp(- + 0.232874208*(-3.242 + i7)^2) + 0.835851674*exp(-16.65511777*(-0.5909 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.6303 + 0.1*i2)^2)*exp(-12.6084759*(-0.5091 + + 0.1*i3)^2)*exp(-2.93501772*(-1.266 + 0.1*i4)^2)*exp(-1.462797384*(-1.303 + + i5)^2)*exp(-1.123092727*(-3.899 + i6)^2)*exp(-0.232874208*(-3.909 + i7) + ^2) - 0.850272655*exp(-16.65511777*(-0.5939 + 0.1*i1)^2)*exp(-8.627614995* + (-0.6727 + 0.1*i2)^2)*exp(-12.6084759*(-0.7758 + 0.1*i3)^2)*exp(- + 2.93501772*(-1.249 + 0.1*i4)^2)*exp(-1.462797384*(-1.818 + i5)^2)*exp(- + 1.123092727*(-3.586 + i6)^2)*exp(-0.232874208*(-4.848 + i7)^2) + + 0.530026446*exp(-16.65511777*(-0.5242 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8061 + 0.1*i2)^2)*exp(-12.6084759*(-0.5697 + 0.1*i3)^2)*exp(-2.93501772* + (-1.452 + 0.1*i4)^2)*exp(-1.462797384*(-1.949 + i5)^2)*exp(-1.123092727*(- + 3.253 + i6)^2)*exp(-0.232874208*(-3.606 + i7)^2) + 0.094938215*exp(- + 16.65511777*(-0.5667 + 0.1*i1)^2)*exp(-8.627614995*(-0.9636 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6182 + 0.1*i3)^2)*exp(-2.93501772*(-0.7242 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.495 + i5)^2)*exp(-1.123092727*(-3.475 + i6)^2)*exp( + -0.232874208*(-3.818 + i7)^2) - 1.186901853*exp(-16.65511777*(-0.3364 + + 0.1*i1)^2)*exp(-8.627614995*(-0.5091 + 0.1*i2)^2)*exp(-12.6084759*(-0.697 + + 0.1*i3)^2)*exp(-2.93501772*(-0.7323 + 0.1*i4)^2)*exp(-1.462797384*(- + 1.182 + i5)^2)*exp(-1.123092727*(-3.313 + i6)^2)*exp(-0.232874208*(-3.727 + + i7)^2) - 0.282209728*exp(-16.65511777*(-0.4212 + 0.1*i1)^2)*exp(- + 8.627614995*(-0.6061 + 0.1*i2)^2)*exp(-12.6084759*(-0.8485 + 0.1*i3)^2)* + exp(-2.93501772*(-1.476 + 0.1*i4)^2)*exp(-1.462797384*(-1.505 + i5)^2)* + exp(-1.123092727*(-3.364 + i6)^2)*exp(-0.232874208*(-5 + i7)^2) - + 0.02759374*exp(-16.65511777*(-0.3697 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8485 + 0.1*i2)^2)*exp(-12.6084759*(-0.5455 + 0.1*i3)^2)*exp(-2.93501772* + (-0.902 + 0.1*i4)^2)*exp(-1.462797384*(-1.788 + i5)^2)*exp(-1.123092727*(- + 3.697 + i6)^2)*exp(-0.232874208*(-4.909 + i7)^2) + 0.486366523*exp(- + 16.65511777*(-0.5121 + 0.1*i1)^2)*exp(-8.627614995*(-0.5758 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9091 + 0.1*i3)^2)*exp(-2.93501772*(-0.8051 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.152 + i5)^2)*exp(-1.123092727*(-3.667 + i6)^2)*exp( + -0.232874208*(-4.485 + i7)^2) - 0.25045829*exp(-16.65511777*(-0.4697 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.7455 + 0.1*i2)^2)*exp(-12.6084759*(-0.9515 + + 0.1*i3)^2)*exp(-2.93501772*(-1.33 + 0.1*i4)^2)*exp(-1.462797384*(-1.162 + + i5)^2)*exp(-1.123092727*(-3.354 + i6)^2)*exp(-0.232874208*(-2.182 + i7)^2) + - 1.000692025*exp(-16.65511777*(-0.4758 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.6848 + 0.1*i2)^2)*exp(-12.6084759*(-0.4848 + 0.1*i3)^2)*exp(-2.93501772* + (-0.7 + 0.1*i4)^2)*exp(-1.462797384*(-1.939 + i5)^2)*exp(-1.123092727*(- + 3.515 + i6)^2)*exp(-0.232874208*(-3.333 + i7)^2) + 1.607073145*exp(- + 16.65511777*(-0.3152 + 0.1*i1)^2)*exp(-8.627614995*(-0.5879 + 0.1*i2)^2)* + exp(-12.6084759*(-0.8667 + 0.1*i3)^2)*exp(-2.93501772*(-1.031 + 0.1*i4)^2) + *exp(-1.462797384*(-1.485 + i5)^2)*exp(-1.123092727*(-3.182 + i6)^2)*exp(- + 0.232874208*(-2.242 + i7)^2) + 0.150343197*exp(-16.65511777*(-0.3818 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.7333 + 0.1*i2)^2)*exp(-12.6084759*(-0.4061 + + 0.1*i3)^2)*exp(-2.93501772*(-1.201 + 0.1*i4)^2)*exp(-1.462797384*(-1.283 + + i5)^2)*exp(-1.123092727*(-3.949 + i6)^2)*exp(-0.232874208*(-3 + i7)^2) + + 0.060190144*exp(-16.65511777*(-0.5182 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.9939 + 0.1*i2)^2)*exp(-12.6084759*(-0.8788 + 0.1*i3)^2)*exp(-2.93501772* + (-1.072 + 0.1*i4)^2)*exp(-1.462797384*(-1.081 + i5)^2)*exp(-1.123092727*(- + 3.303 + i6)^2)*exp(-0.232874208*(-3.545 + i7)^2) - 0.011170454*exp(- + 16.65511777*(-0.4424 + 0.1*i1)^2)*exp(-8.627614995*(-0.8364 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5333 + 0.1*i3)^2)*exp(-2.93501772*(-1.484 + 0.1*i4)^2) + *exp(-1.462797384*(-1.677 + i5)^2)*exp(-1.123092727*(-3.737 + i6)^2)*exp(- + 0.232874208*(-2.333 + i7)^2) - 0.410826838*exp(-16.65511777*(-0.397 + 0.1* + i1)^2)*exp(-8.627614995*(-0.5939 + 0.1*i2)^2)*exp(-12.6084759*(-0.8545 + + 0.1*i3)^2)*exp(-2.93501772*(-1.363 + 0.1*i4)^2)*exp(-1.462797384*(-1.869 + + i5)^2)*exp(-1.123092727*(-3.02 + i6)^2)*exp(-0.232874208*(-3.515 + i7)^ + 2) - 0.856377319*exp(-16.65511777*(-0.4879 + 0.1*i1)^2)*exp(-8.627614995*( + -0.4788 + 0.1*i2)^2)*exp(-12.6084759*(-0.6121 + 0.1*i3)^2)*exp(-2.93501772 + *(-0.8939 + 0.1*i4)^2)*exp(-1.462797384*(-1.051 + i5)^2)*exp(-1.123092727* + (-3.879 + i6)^2)*exp(-0.232874208*(-3.182 + i7)^2) + 0.769728621*exp(- + 16.65511777*(-0.3545 + 0.1*i1)^2)*exp(-8.627614995*(-0.4364 + 0.1*i2)^2)* + exp(-12.6084759*(-0.7333 + 0.1*i3)^2)*exp(-2.93501772*(-0.9828 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.99 + i5)^2)*exp(-1.123092727*(-3.495 + i6)^2)*exp(- + 0.232874208*(-2.97 + i7)^2) + 0.113899142*exp(-16.65511777*(-0.5424 + 0.1* + i1)^2)*exp(-8.627614995*(-0.6909 + 0.1*i2)^2)*exp(-12.6084759*(-0.6727 + + 0.1*i3)^2)*exp(-2.93501772*(-0.7889 + 0.1*i4)^2)*exp(-1.462797384*(-1.121 + + i5)^2)*exp(-1.123092727*(-3.091 + i6)^2)*exp(-0.232874208*(-4.121 + i7) + ^2) - 0.157789055*exp(-16.65511777*(-0.4848 + 0.1*i1)^2)*exp(-8.627614995* + (-0.7879 + 0.1*i2)^2)*exp(-12.6084759*(-0.6909 + 0.1*i3)^2)*exp(- + 2.93501772*(-0.7162 + 0.1*i4)^2)*exp(-1.462797384*(-1.475 + i5)^2)*exp(- + 1.123092727*(-3.131 + i6)^2)*exp(-0.232874208*(-2.212 + i7)^2) - + 0.234389962*exp(-16.65511777*(-0.4394 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.897 + 0.1*i2)^2)*exp(-12.6084759*(-0.9758 + 0.1*i3)^2)*exp(-2.93501772*( + -1.023 + 0.1*i4)^2)*exp(-1.462797384*(-1.667 + i5)^2)*exp(-1.123092727*(- + 3.061 + i6)^2)*exp(-0.232874208*(-2.879 + i7)^2) + 0.625939364*exp(- + 16.65511777*(-0.3848 + 0.1*i1)^2)*exp(-8.627614995*(-0.5394 + 0.1*i2)^2)* + exp(-12.6084759*(-0.9152 + 0.1*i3)^2)*exp(-2.93501772*(-1.5 + 0.1*i4)^2)* + exp(-1.462797384*(-1.596 + i5)^2)*exp(-1.123092727*(-3.636 + i6)^2)*exp(- + 0.232874208*(-2.727 + i7)^2) + 0.773683853*exp(-16.65511777*(-0.5545 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.9758 + 0.1*i2)^2)*exp(-12.6084759*(-0.7212 + + 0.1*i3)^2)*exp(-2.93501772*(-1.08 + 0.1*i4)^2)*exp(-1.462797384*(-1.838 + + i5)^2)*exp(-1.123092727*(-3.434 + i6)^2)*exp(-0.232874208*(-2.364 + i7)^2) + + 0.761087683*exp(-16.65511777*(-0.3758 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8667 + 0.1*i2)^2)*exp(-12.6084759*(-0.5394 + 0.1*i3)^2)*exp(-2.93501772* + (-1.015 + 0.1*i4)^2)*exp(-1.462797384*(-1.919 + i5)^2)*exp(-1.123092727*(- + 3.909 + i6)^2)*exp(-0.232874208*(-2.939 + i7)^2) + 0.462460382*exp(- + 16.65511777*(-0.3212 + 0.1*i1)^2)*exp(-8.627614995*(-0.7576 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5212 + 0.1*i3)^2)*exp(-2.93501772*(-0.9343 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.808 + i5)^2)*exp(-1.123092727*(-3.212 + i6)^2)*exp( + -0.232874208*(-2.545 + i7)^2) - 0.077620049*exp(-16.65511777*(-0.4727 + + 0.1*i1)^2)*exp(-8.627614995*(-0.9333 + 0.1*i2)^2)*exp(-12.6084759*(-0.6485 + + 0.1*i3)^2)*exp(-2.93501772*(-1.322 + 0.1*i4)^2)*exp(-1.462797384*(- + 1.394 + i5)^2)*exp(-1.123092727*(-3.081 + i6)^2)*exp(-0.232874208*(-4.697 + + i7)^2) + 1.592497633*exp(-16.65511777*(-0.4576 + 0.1*i1)^2)*exp(- + 8.627614995*(-0.5455 + 0.1*i2)^2)*exp(-12.6084759*(-0.9939 + 0.1*i3)^2)* + exp(-2.93501772*(-1.169 + 0.1*i4)^2)*exp(-1.462797384*(-1.98 + i5)^2)*exp( + -1.123092727*(-3.626 + i6)^2)*exp(-0.232874208*(-3.939 + i7)^2) + + 0.122269658*exp(-16.65511777*(-0.3242 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.9212 + 0.1*i2)^2)*exp(-12.6084759*(-0.4667 + 0.1*i3)^2)*exp(-2.93501772* + (-1.314 + 0.1*i4)^2)*exp(-1.462797384*(-1.697 + i5)^2)*exp(-1.123092727*(- + 3.374 + i6)^2)*exp(-0.232874208*(-3.758 + i7)^2) - 0.248070913*exp(- + 16.65511777*(-0.5697 + 0.1*i1)^2)*exp(-8.627614995*(-0.4182 + 0.1*i2)^2)* + exp(-12.6084759*(-0.7394 + 0.1*i3)^2)*exp(-2.93501772*(-0.8374 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.717 + i5)^2)*exp(-1.123092727*(-3.727 + i6)^2)*exp( + -0.232874208*(-3.303 + i7)^2) + 0.12005207*exp(-16.65511777*(-0.3727 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.9879 + 0.1*i2)^2)*exp(-12.6084759*(-0.6848 + + 0.1*i3)^2)*exp(-2.93501772*(-1.104 + 0.1*i4)^2)*exp(-1.462797384*(-1.343 + + i5)^2)*exp(-1.123092727*(-3.606 + i6)^2)*exp(-0.232874208*(-2 + i7)^2) + + 4.178565995*exp(-16.65511777*(-0.5091 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.4667 + 0.1*i2)^2)*exp(-12.6084759*(-0.8303 + 0.1*i3)^2)*exp(-2.93501772* + (-0.8859 + 0.1*i4)^2)*exp(-1.462797384*(-1.111 + i5)^2)*exp(-1.123092727*( + -3.283 + i6)^2)*exp(-0.232874208*(-2.576 + i7)^2) - 0.481772508*exp(- + 16.65511777*(-0.3485 + 0.1*i1)^2)*exp(-8.627614995*(-0.9091 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6606 + 0.1*i3)^2)*exp(-2.93501772*(-0.999 + 0.1*i4)^2) + *exp(-1.462797384*(-1.172 + i5)^2)*exp(-1.123092727*(-3.03 + i6)^2)*exp(- + 0.232874208*(-3.152 + i7)^2) + 0.527787271*exp(-16.65511777*(-0.5848 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.6788 + 0.1*i2)^2)*exp(-12.6084759*(-0.8 + 0.1 + *i3)^2)*exp(-2.93501772*(-1.298 + 0.1*i4)^2)*exp(-1.462797384*(-1.848 + i5 + )^2)*exp(-1.123092727*(-3.828 + i6)^2)*exp(-0.232874208*(-2.636 + i7)^2) + - 0.798702887*exp(-16.65511777*(-0.3303 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.5212 + 0.1*i2)^2)*exp(-12.6084759*(-0.497 + 0.1*i3)^2)*exp(-2.93501772*( + -1.395 + 0.1*i4)^2)*exp(-1.462797384*(-1.636 + i5)^2)*exp(-1.123092727*(- + 3.384 + i6)^2)*exp(-0.232874208*(-2.697 + i7)^2) - 0.520054452*exp(- + 16.65511777*(-0.3061 + 0.1*i1)^2)*exp(-8.627614995*(-0.6242 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6788 + 0.1*i3)^2)*exp(-2.93501772*(-1.338 + 0.1*i4)^2) + *exp(-1.462797384*(-1.859 + i5)^2)*exp(-1.123092727*(-3.758 + i6)^2)*exp(- + 0.232874208*(-4.273 + i7)^2) + 1.205493982*exp(-16.65511777*(-0.5485 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.4545 + 0.1*i2)^2)*exp(-12.6084759*(-0.8848 + + 0.1*i3)^2)*exp(-2.93501772*(-1.112 + 0.1*i4)^2)*exp(-1.462797384*(-1.515 + + i5)^2)*exp(-1.123092727*(-3.101 + i6)^2)*exp(-0.232874208*(-4.333 + i7) + ^2) - 0.414015838*exp(-16.65511777*(-0.4636 + 0.1*i1)^2)*exp(-8.627614995* + (-0.7939 + 0.1*i2)^2)*exp(-12.6084759*(-0.7879 + 0.1*i3)^2)*exp(- + 2.93501772*(-1.492 + 0.1*i4)^2)*exp(-1.462797384*(-1.707 + i5)^2)*exp(- + 1.123092727*(-3.97 + i6)^2)*exp(-0.232874208*(-4.03 + i7)^2) - 0.209177854 + *exp(-16.65511777*(-0.3455 + 0.1*i1)^2)*exp(-8.627614995*(-0.5818 + 0.1*i2 + )^2)*exp(-12.6084759*(-0.7455 + 0.1*i3)^2)*exp(-2.93501772*(-0.7404 + 0.1* + i4)^2)*exp(-1.462797384*(-1.687 + i5)^2)*exp(-1.123092727*(-3.929 + i6)^2) + *exp(-0.232874208*(-3.788 + i7)^2) - 0.381614846*exp(-16.65511777*(-0.6 + + 0.1*i1)^2)*exp(-8.627614995*(-0.7515 + 0.1*i2)^2)*exp(-12.6084759*(-0.9455 + + 0.1*i3)^2)*exp(-2.93501772*(-0.8616 + 0.1*i4)^2)*exp(-1.462797384*(- + 1.384 + i5)^2)*exp(-1.123092727*(-3.596 + i6)^2)*exp(-0.232874208*(-2.848 + + i7)^2) - 0.382900884*exp(-16.65511777*(-0.3273 + 0.1*i1)^2)*exp(- + 8.627614995*(-0.4 + 0.1*i2)^2)*exp(-12.6084759*(-0.897 + 0.1*i3)^2)*exp(- + 2.93501772*(-1.12 + 0.1*i4)^2)*exp(-1.462797384*(-1.404 + i5)^2)*exp(- + 1.123092727*(-3.525 + i6)^2)*exp(-0.232874208*(-4.182 + i7)^2) - + 2.103329763*exp(-16.65511777*(-0.5212 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.497 + 0.1*i2)^2)*exp(-12.6084759*(-0.8909 + 0.1*i3)^2)*exp(-2.93501772*( + -1.185 + 0.1*i4)^2)*exp(-1.462797384*(-1.737 + i5)^2)*exp(-1.123092727*(- + 3.293 + i6)^2)*exp(-0.232874208*(-2.091 + i7)^2) - 0.119598744*exp(- + 16.65511777*(-0.4303 + 0.1*i1)^2)*exp(-8.627614995*(-0.4606 + 0.1*i2)^2)* + exp(-12.6084759*(-0.6242 + 0.1*i3)^2)*exp(-2.93501772*(-1.225 + 0.1*i4)^2) + *exp(-1.462797384*(-1.727 + i5)^2)*exp(-1.123092727*(-3.96 + i6)^2)*exp(- + 0.232874208*(-2.424 + i7)^2) + 0.420535697*exp(-16.65511777*(-0.3121 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.8909 + 0.1*i2)^2)*exp(-12.6084759*(-0.903 + + 0.1*i3)^2)*exp(-2.93501772*(-1.387 + 0.1*i4)^2)*exp(-1.462797384*(-1.414 + + i5)^2)*exp(-1.123092727*(-3.323 + i6)^2)*exp(-0.232874208*(-3.636 + i7) + ^2) + 0.519853725*exp(-16.65511777*(-0.3424 + 0.1*i1)^2)*exp(-8.627614995* + (-0.4485 + 0.1*i2)^2)*exp(-12.6084759*(-0.4182 + 0.1*i3)^2)*exp(- + 2.93501772*(-0.9747 + 0.1*i4)^2)*exp(-1.462797384*(-1.566 + i5)^2)*exp(- + 1.123092727*(-3.657 + i6)^2)*exp(-0.232874208*(-3.879 + i7)^2) + + 0.022706698*exp(-16.65511777*(-0.497 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.7697 + 0.1*i2)^2)*exp(-12.6084759*(-0.7939 + 0.1*i3)^2)*exp(-2.93501772* + (-1.274 + 0.1*i4)^2)*exp(-1.462797384*(-1.141 + i5)^2)*exp(-1.123092727*(- + 4 + i6)^2)*exp(-0.232874208*(-2.515 + i7)^2) + 0.260652495*exp(- + 16.65511777*(-0.4939 + 0.1*i1)^2)*exp(-8.627614995*(-0.5576 + 0.1*i2)^2)* + exp(-12.6084759*(-0.4545 + 0.1*i3)^2)*exp(-2.93501772*(-1.177 + 0.1*i4)^2) + *exp(-1.462797384*(-1.96 + i5)^2)*exp(-1.123092727*(-3.818 + i6)^2)*exp(- + 0.232874208*(-4 + i7)^2) - 0.00731364*exp(-16.65511777*(-0.5 + 0.1*i1)^2)* + exp(-8.627614995*(-0.9515 + 0.1*i2)^2)*exp(-12.6084759*(-0.4 + 0.1*i3)^2)* + exp(-2.93501772*(-1.088 + 0.1*i4)^2)*exp(-1.462797384*(-1.455 + i5)^2)* + exp(-1.123092727*(-3.242 + i6)^2)*exp(-0.232874208*(-2.788 + i7)^2) + + 0.077570454*exp(-16.65511777*(-0.4182 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.9455 + 0.1*i2)^2)*exp(-12.6084759*(-0.8364 + 0.1*i3)^2)*exp(-2.93501772* + (-1.258 + 0.1*i4)^2)*exp(-1.462797384*(-1.929 + i5)^2)*exp(-1.123092727*(- + 3.465 + i6)^2)*exp(-0.232874208*(-4.606 + i7)^2) - 0.594276504*exp(- + 16.65511777*(-0.3636 + 0.1*i1)^2)*exp(-8.627614995*(-0.7818 + 0.1*i2)^2)* + exp(-12.6084759*(-1 + 0.1*i3)^2)*exp(-2.93501772*(-0.9909 + 0.1*i4)^2)* + exp(-1.462797384*(-1.535 + i5)^2)*exp(-1.123092727*(-3.768 + i6)^2)*exp(- + 0.232874208*(-4.667 + i7)^2) - 0.089278255*exp(-16.65511777*(-0.4091 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.7212 + 0.1*i2)^2)*exp(-12.6084759*(-0.9273 + + 0.1*i3)^2)*exp(-2.93501772*(-1.371 + 0.1*i4)^2)*exp(-1.462797384*(-1.04 + + i5)^2)*exp(-1.123092727*(-3.747 + i6)^2)*exp(-0.232874208*(-4.152 + i7)^2) + - 0.705986937*exp(-16.65511777*(-0.4455 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.4242 + 0.1*i2)^2)*exp(-12.6084759*(-0.5879 + 0.1*i3)^2)*exp(-2.93501772* + (-0.9182 + 0.1*i4)^2)*exp(-1.462797384*(-1.626 + i5)^2)*exp(-1.123092727*( + -3 + i6)^2)*exp(-0.232874208*(-3.091 + i7)^2) - 0.834461155*exp(- + 16.65511777*(-0.3667 + 0.1*i1)^2)*exp(-8.627614995*(-0.8424 + 0.1*i2)^2)* + exp(-12.6084759*(-0.8242 + 0.1*i3)^2)*exp(-2.93501772*(-1.29 + 0.1*i4)^2)* + exp(-1.462797384*(-2 + i5)^2)*exp(-1.123092727*(-3.485 + i6)^2)*exp(- + 0.232874208*(-2.485 + i7)^2) + 0.271522187*exp(-16.65511777*(-0.4 + 0.1*i1 + )^2)*exp(-8.627614995*(-0.6 + 0.1*i2)^2)*exp(-12.6084759*(-0.4364 + 0.1*i3 + )^2)*exp(-2.93501772*(-1.056 + 0.1*i4)^2)*exp(-1.462797384*(-1.091 + i5)^2 + )*exp(-1.123092727*(-3.202 + i6)^2)*exp(-0.232874208*(-2.606 + i7)^2) - + 0.27877323*exp(-16.65511777*(-0.5303 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8545 + 0.1*i2)^2)*exp(-12.6084759*(-0.9212 + 0.1*i3)^2)*exp(-2.93501772* + (-0.8778 + 0.1*i4)^2)*exp(-1.462797384*(-1.616 + i5)^2)*exp(-1.123092727*( + -3.232 + i6)^2)*exp(-0.232874208*(-4.727 + i7)^2) + 0.252001444*exp(- + 16.65511777*(-0.3879 + 0.1*i1)^2)*exp(-8.627614995*(-0.5515 + 0.1*i2)^2)* + exp(-12.6084759*(-0.5576 + 0.1*i3)^2)*exp(-2.93501772*(-0.7808 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.444 + i5)^2)*exp(-1.123092727*(-3.677 + i6)^2)*exp( + -0.232874208*(-2.03 + i7)^2) - 0.055793641*exp(-16.65511777*(-0.4515 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.7273 + 0.1*i2)^2)*exp(-12.6084759*(-0.8727 + + 0.1*i3)^2)*exp(-2.93501772*(-0.8131 + 0.1*i4)^2)*exp(-1.462797384*(-1.828 + + i5)^2)*exp(-1.123092727*(-3.717 + i6)^2)*exp(-0.232874208*(-2.061 + i7) + ^2) - 0.703347943*exp(-16.65511777*(-0.4818 + 0.1*i1)^2)*exp(-8.627614995* + (-0.4121 + 0.1*i2)^2)*exp(-12.6084759*(-0.5515 + 0.1*i3)^2)*exp(- + 2.93501772*(-1.064 + 0.1*i4)^2)*exp(-1.462797384*(-1.202 + i5)^2)*exp(- + 1.123092727*(-3.404 + i6)^2)*exp(-0.232874208*(-4.788 + i7)^2) + + 0.333263111*exp(-16.65511777*(-0.5515 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8182 + 0.1*i2)^2)*exp(-12.6084759*(-0.9636 + 0.1*i3)^2)*exp(-2.93501772* + (-1.443 + 0.1*i4)^2)*exp(-1.462797384*(-1.606 + i5)^2)*exp(-1.123092727*(- + 3.263 + i6)^2)*exp(-0.232874208*(-3.667 + i7)^2) + 0.380827651*exp(- + 16.65511777*(-0.4667 + 0.1*i1)^2)*exp(-8.627614995*(-0.4727 + 0.1*i2)^2)* + exp(-12.6084759*(-0.7818 + 0.1*i3)^2)*exp(-2.93501772*(-1.136 + 0.1*i4)^2) + *exp(-1.462797384*(-1.545 + i5)^2)*exp(-1.123092727*(-3.99 + i6)^2)*exp(- + 0.232874208*(-4.758 + i7)^2) - 1.056435793*exp(-16.65511777*(-0.5606 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.7758 + 0.1*i2)^2)*exp(-12.6084759*(-0.5273 + + 0.1*i3)^2)*exp(-2.93501772*(-0.9263 + 0.1*i4)^2)*exp(-1.462797384*(-1.576 + + i5)^2)*exp(-1.123092727*(-3.919 + i6)^2)*exp(-0.232874208*(-2.394 + i7) + ^2) - 0.111587416*exp(-16.65511777*(-0.4333 + 0.1*i1)^2)*exp(-8.627614995* + (-0.5636 + 0.1*i2)^2)*exp(-12.6084759*(-0.9818 + 0.1*i3)^2)*exp(- + 2.93501772*(-0.7081 + 0.1*i4)^2)*exp(-1.462797384*(-1.657 + i5)^2)*exp(- + 1.123092727*(-3.273 + i6)^2)*exp(-0.232874208*(-3.455 + i7)^2) + + 0.404166167*exp(-16.65511777*(-0.5333 + 0.1*i1)^2)*exp(-8.627614995*(- + 0.8303 + 0.1*i2)^2)*exp(-12.6084759*(-0.6061 + 0.1*i3)^2)*exp(-2.93501772* + (-0.9424 + 0.1*i4)^2)*exp(-1.462797384*(-1 + i5)^2)*exp(-1.123092727*(- + 3.545 + i6)^2)*exp(-0.232874208*(-2.303 + i7)^2) - 0.059459253*exp(- + 16.65511777*(-0.3788 + 0.1*i1)^2)*exp(-8.627614995*(-0.9152 + 0.1*i2)^2)* + exp(-12.6084759*(-0.7515 + 0.1*i3)^2)*exp(-2.93501772*(-0.8455 + 0.1*i4)^2 + )*exp(-1.462797384*(-1.212 + i5)^2)*exp(-1.123092727*(-3.394 + i6)^2)*exp( + -0.232874208*(-4.879 + i7)^2) + 0.34685658*exp(-16.65511777*(-0.4909 + 0.1 + *i1)^2)*exp(-8.627614995*(-0.8727 + 0.1*i2)^2)*exp(-12.6084759*(-0.4424 + + 0.1*i3)^2)*exp(-2.93501772*(-1.047 + 0.1*i4)^2)*exp(-1.462797384*(-1.02 + + i5)^2)*exp(-1.123092727*(-3.556 + i6)^2)*exp(-0.232874208*(-4.303 + i7)^2) + ) + x8 >= 1.978663172; + + -(0.107629465*exp(-14.90010759*(-0.5364 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.9697 + 0.1*i2)^2)*exp(-11.50514752*(-0.4909 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.161 + 0.1*i4)^2)*exp(-0.258406482*(-1.778 + i5)^2)*exp(-0.455870575*( + -3.778 + i6)^2)*exp(-0.205951927*(-4.091 + i7)^2) - 0.241713975*exp(- + 14.90010759*(-0.303 + 0.1*i1)^2)*exp(-12.65704716*(-0.697 + 0.1*i2)^2)* + exp(-11.50514752*(-0.8061 + 0.1*i3)^2)*exp(-1.06526262*(-0.9586 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.758 + i5)^2)*exp(-0.455870575*(-3.141 + i6)^2)* + exp(-0.205951927*(-4.424 + i7)^2) - 0.243366663*exp(-14.90010759*(-0.503 + + 0.1*i1)^2)*exp(-12.65704716*(-0.6182 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.4121 + 0.1*i3)^2)*exp(-1.06526262*(-1.419 + 0.1*i4)^2)*exp(-0.258406482* + (-1.333 + i5)^2)*exp(-0.455870575*(-3.152 + i6)^2)*exp(-0.205951927*(- + 3.697 + i7)^2) - 0.488249382*exp(-14.90010759*(-0.4606 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.903 + 0.1*i2)^2)*exp(-11.50514752*(-0.7576 + 0.1*i3)^2)* + exp(-1.06526262*(-0.7727 + 0.1*i4)^2)*exp(-0.258406482*(-1.242 + i5)^2)* + exp(-0.455870575*(-3.98 + i6)^2)*exp(-0.205951927*(-3.424 + i7)^2) - + 0.066497908*exp(-14.90010759*(-0.3 + 0.1*i1)^2)*exp(-12.65704716*(-0.7636 + + 0.1*i2)^2)*exp(-11.50514752*(-0.8606 + 0.1*i3)^2)*exp(-1.06526262*(- + 1.153 + 0.1*i4)^2)*exp(-0.258406482*(-1.556 + i5)^2)*exp(-0.455870575*(- + 3.939 + i6)^2)*exp(-0.205951927*(-2.818 + i7)^2) - 0.442378729*exp(- + 14.90010759*(-0.5879 + 0.1*i1)^2)*exp(-12.65704716*(-0.703 + 0.1*i2)^2)* + exp(-11.50514752*(-0.4788 + 0.1*i3)^2)*exp(-1.06526262*(-1.039 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.646 + i5)^2)*exp(-0.455870575*(-3.222 + i6)^2)*exp( + -0.205951927*(-4.636 + i7)^2) + 0.380043981*exp(-14.90010759*(-0.4121 + + 0.1*i1)^2)*exp(-12.65704716*(-0.4424 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.5939 + 0.1*i3)^2)*exp(-1.06526262*(-1.46 + 0.1*i4)^2)*exp(-0.258406482*( + -1.232 + i5)^2)*exp(-0.455870575*(-3.788 + i6)^2)*exp(-0.205951927*(-3.848 + + i7)^2) + 0.10163873*exp(-14.90010759*(-0.5576 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.8848 + 0.1*i2)^2)*exp(-11.50514752*(-0.8121 + 0.1*i3)^2)* + exp(-1.06526262*(-1.128 + 0.1*i4)^2)*exp(-0.258406482*(-1.263 + i5)^2)* + exp(-0.455870575*(-3.808 + i6)^2)*exp(-0.205951927*(-4.818 + i7)^2) - + 1.528205575*exp(-14.90010759*(-0.4273 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.4848 + 0.1*i2)^2)*exp(-11.50514752*(-0.9697 + 0.1*i3)^2)*exp(-1.06526262 + *(-0.9667 + 0.1*i4)^2)*exp(-0.258406482*(-1.364 + i5)^2)*exp(-0.455870575* + (-3.869 + i6)^2)*exp(-0.205951927*(-2.667 + i7)^2) + 0.006874611*exp(- + 14.90010759*(-0.5455 + 0.1*i1)^2)*exp(-12.65704716*(-0.4061 + 0.1*i2)^2)* + exp(-11.50514752*(-0.6303 + 0.1*i3)^2)*exp(-1.06526262*(-1.427 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.747 + i5)^2)*exp(-0.455870575*(-3.444 + i6)^2)*exp( + -0.205951927*(-3.576 + i7)^2) - 0.925781195*exp(-14.90010759*(-0.5394 + + 0.1*i1)^2)*exp(-12.65704716*(-0.5273 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.5636 + 0.1*i3)^2)*exp(-1.06526262*(-1.355 + 0.1*i4)^2)*exp(-0.258406482* + (-1.253 + i5)^2)*exp(-0.455870575*(-3.566 + i6)^2)*exp(-0.205951927*(- + 2.121 + i7)^2) + 0.528217435*exp(-14.90010759*(-0.5273 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.8121 + 0.1*i2)^2)*exp(-11.50514752*(-0.8424 + 0.1*i3)^2)* + exp(-1.06526262*(-0.8535 + 0.1*i4)^2)*exp(-0.258406482*(-1.899 + i5)^2)* + exp(-0.455870575*(-3.889 + i6)^2)*exp(-0.205951927*(-4.061 + i7)^2) + + 0.646888181*exp(-14.90010759*(-0.5727 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.4909 + 0.1*i2)^2)*exp(-11.50514752*(-0.9333 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.306 + 0.1*i4)^2)*exp(-0.258406482*(-1.273 + i5)^2)*exp(-0.455870575*( + -3.707 + i6)^2)*exp(-0.205951927*(-3.485 + i7)^2) + 0.243366645*exp(- + 14.90010759*(-0.3091 + 0.1*i1)^2)*exp(-12.65704716*(-0.6364 + 0.1*i2)^2)* + exp(-11.50514752*(-0.5758 + 0.1*i3)^2)*exp(-1.06526262*(-1.282 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.222 + i5)^2)*exp(-0.455870575*(-3.192 + i6)^2)*exp( + -0.205951927*(-4.455 + i7)^2) - 0.628246642*exp(-14.90010759*(-0.4364 + + 0.1*i1)^2)*exp(-12.65704716*(-0.7394 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.4485 + 0.1*i3)^2)*exp(-1.06526262*(-1.403 + 0.1*i4)^2)*exp(-0.258406482* + (-1.465 + i5)^2)*exp(-0.455870575*(-3.687 + i6)^2)*exp(-0.205951927*(- + 4.939 + i7)^2) - 0.93934448*exp(-14.90010759*(-0.5636 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.6485 + 0.1*i2)^2)*exp(-11.50514752*(-0.7273 + 0.1*i3)^2)* + exp(-1.06526262*(-1.346 + 0.1*i4)^2)*exp(-0.258406482*(-1.01 + i5)^2)*exp( + -0.455870575*(-3.333 + i6)^2)*exp(-0.205951927*(-4.364 + i7)^2) - + 0.384948228*exp(-14.90010759*(-0.597 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.7152 + 0.1*i2)^2)*exp(-11.50514752*(-0.703 + 0.1*i3)^2)*exp(-1.06526262* + (-1.209 + 0.1*i4)^2)*exp(-0.258406482*(-1.354 + i5)^2)*exp(-0.455870575*(- + 3.01 + i6)^2)*exp(-0.205951927*(-2.758 + i7)^2) - 0.264038331*exp(- + 14.90010759*(-0.5152 + 0.1*i1)^2)*exp(-12.65704716*(-0.6606 + 0.1*i2)^2)* + exp(-11.50514752*(-0.503 + 0.1*i3)^2)*exp(-1.06526262*(-0.7566 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.424 + i5)^2)*exp(-0.455870575*(-3.848 + i6)^2)*exp( + -0.205951927*(-4.576 + i7)^2) + 0.916029022*exp(-14.90010759*(-0.5758 + + 0.1*i1)^2)*exp(-12.65704716*(-0.5152 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.4303 + 0.1*i3)^2)*exp(-1.06526262*(-0.8697 + 0.1*i4)^2)*exp(-0.258406482 + *(-1.374 + i5)^2)*exp(-0.455870575*(-3.414 + i6)^2)*exp(-0.205951927*(- + 3.061 + i7)^2) + 1.292811848*exp(-14.90010759*(-0.3939 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.7091 + 0.1*i2)^2)*exp(-11.50514752*(-0.4242 + 0.1*i3)^2)* + exp(-1.06526262*(-0.8293 + 0.1*i4)^2)*exp(-0.258406482*(-1.434 + i5)^2)* + exp(-0.455870575*(-3.121 + i6)^2)*exp(-0.205951927*(-4.394 + i7)^2) - + 0.469718994*exp(-14.90010759*(-0.403 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.5333 + 0.1*i2)^2)*exp(-11.50514752*(-0.5152 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.233 + 0.1*i4)^2)*exp(-0.258406482*(-1.889 + i5)^2)*exp(-0.455870575*( + -3.172 + i6)^2)*exp(-0.205951927*(-4.545 + i7)^2) + 1.461593164*exp(- + 14.90010759*(-0.5061 + 0.1*i1)^2)*exp(-12.65704716*(-0.6121 + 0.1*i2)^2)* + exp(-11.50514752*(-0.4606 + 0.1*i3)^2)*exp(-1.06526262*(-1.144 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.879 + i5)^2)*exp(-0.455870575*(-3.343 + i6)^2)*exp( + -0.205951927*(-2.152 + i7)^2) + 0.700288987*exp(-14.90010759*(-0.4152 + + 0.1*i1)^2)*exp(-12.65704716*(-0.8242 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.6545 + 0.1*i3)^2)*exp(-1.06526262*(-1.411 + 0.1*i4)^2)*exp(-0.258406482* + (-1.525 + i5)^2)*exp(-0.455870575*(-3.04 + i6)^2)*exp(-0.205951927*(-2.273 + + i7)^2) + 0.099333566*exp(-14.90010759*(-0.4545 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.503 + 0.1*i2)^2)*exp(-11.50514752*(-0.7152 + 0.1*i3)^2)* + exp(-1.06526262*(-0.797 + 0.1*i4)^2)*exp(-0.258406482*(-1.798 + i5)^2)* + exp(-0.455870575*(-3.424 + i6)^2)*exp(-0.205951927*(-4.97 + i7)^2) - + 0.50586824*exp(-14.90010759*(-0.3606 + 0.1*i1)^2)*exp(-12.65704716*(-0.8 + + 0.1*i2)^2)*exp(-11.50514752*(-0.9394 + 0.1*i3)^2)*exp(-1.06526262*(- + 0.8212 + 0.1*i4)^2)*exp(-0.258406482*(-1.101 + i5)^2)*exp(-0.455870575*(- + 3.535 + i6)^2)*exp(-0.205951927*(-2.909 + i7)^2) - 0.027800886*exp(- + 14.90010759*(-0.5818 + 0.1*i1)^2)*exp(-12.65704716*(-0.9394 + 0.1*i2)^2)* + exp(-11.50514752*(-0.6364 + 0.1*i3)^2)*exp(-1.06526262*(-1.435 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.313 + i5)^2)*exp(-0.455870575*(-3.576 + i6)^2)*exp( + -0.205951927*(-3.212 + i7)^2) - 0.079362379*exp(-14.90010759*(-0.4485 + + 0.1*i1)^2)*exp(-12.65704716*(-0.9273 + 0.1*i2)^2)*exp(-11.50514752*(-0.6 + + 0.1*i3)^2)*exp(-1.06526262*(-0.9505 + 0.1*i4)^2)*exp(-0.258406482*(- + 1.909 + i5)^2)*exp(-0.455870575*(-3.051 + i6)^2)*exp(-0.205951927*(-3.97 + + i7)^2) + 0.059724003*exp(-14.90010759*(-0.3394 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.8788 + 0.1*i2)^2)*exp(-11.50514752*(-0.4727 + 0.1*i3)^2)* + exp(-1.06526262*(-0.7646 + 0.1*i4)^2)*exp(-0.258406482*(-1.293 + i5)^2)* + exp(-0.455870575*(-3.616 + i6)^2)*exp(-0.205951927*(-3.273 + i7)^2) + + 0.420365217*exp(-14.90010759*(-0.3515 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.9576 + 0.1*i2)^2)*exp(-11.50514752*(-0.8182 + 0.1*i3)^2)*exp(-1.06526262 + *(-0.7485 + 0.1*i4)^2)*exp(-0.258406482*(-1.768 + i5)^2)*exp(-0.455870575* + (-3.505 + i6)^2)*exp(-0.205951927*(-3.394 + i7)^2) - 0.038863477*exp(- + 14.90010759*(-0.4061 + 0.1*i1)^2)*exp(-12.65704716*(-0.6667 + 0.1*i2)^2)* + exp(-11.50514752*(-0.9576 + 0.1*i3)^2)*exp(-1.06526262*(-1.096 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.131 + i5)^2)*exp(-0.455870575*(-3.071 + i6)^2)*exp( + -0.205951927*(-4.242 + i7)^2) - 0.429887813*exp(-14.90010759*(-0.5788 + + 0.1*i1)^2)*exp(-12.65704716*(-0.6545 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.7697 + 0.1*i3)^2)*exp(-1.06526262*(-0.9101 + 0.1*i4)^2)*exp(-0.258406482 + *(-1.97 + i5)^2)*exp(-0.455870575*(-3.162 + i6)^2)*exp(-0.205951927*(- + 3.364 + i7)^2) - 0.237270865*exp(-14.90010759*(-0.4788 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.9818 + 0.1*i2)^2)*exp(-11.50514752*(-0.9879 + 0.1*i3)^2)* + exp(-1.06526262*(-1.193 + 0.1*i4)^2)*exp(-0.258406482*(-1.586 + i5)^2)* + exp(-0.455870575*(-3.798 + i6)^2)*exp(-0.205951927*(-3.03 + i7)^2) - + 1.518449506*exp(-14.90010759*(-0.3182 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.5697 + 0.1*i2)^2)*exp(-11.50514752*(-0.7091 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.217 + 0.1*i4)^2)*exp(-0.258406482*(-1.061 + i5)^2)*exp(-0.455870575*( + -3.646 + i6)^2)*exp(-0.205951927*(-2.455 + i7)^2) - 0.037487378*exp(- + 14.90010759*(-0.3909 + 0.1*i1)^2)*exp(-12.65704716*(-0.8606 + 0.1*i2)^2)* + exp(-11.50514752*(-0.5818 + 0.1*i3)^2)*exp(-1.06526262*(-1.468 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.03 + i5)^2)*exp(-0.455870575*(-3.455 + i6)^2)*exp(- + 0.205951927*(-3.242 + i7)^2) + 1.048651693*exp(-14.90010759*(-0.5909 + 0.1 + *i1)^2)*exp(-12.65704716*(-0.6303 + 0.1*i2)^2)*exp(-11.50514752*(-0.5091 + + 0.1*i3)^2)*exp(-1.06526262*(-1.266 + 0.1*i4)^2)*exp(-0.258406482*(- + 1.303 + i5)^2)*exp(-0.455870575*(-3.899 + i6)^2)*exp(-0.205951927*(-3.909 + + i7)^2) - 0.370234638*exp(-14.90010759*(-0.5939 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.6727 + 0.1*i2)^2)*exp(-11.50514752*(-0.7758 + 0.1*i3)^2)* + exp(-1.06526262*(-1.249 + 0.1*i4)^2)*exp(-0.258406482*(-1.818 + i5)^2)* + exp(-0.455870575*(-3.586 + i6)^2)*exp(-0.205951927*(-4.848 + i7)^2) + + 0.844932329*exp(-14.90010759*(-0.5242 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.8061 + 0.1*i2)^2)*exp(-11.50514752*(-0.5697 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.452 + 0.1*i4)^2)*exp(-0.258406482*(-1.949 + i5)^2)*exp(-0.455870575*( + -3.253 + i6)^2)*exp(-0.205951927*(-3.606 + i7)^2) + 0.53937546*exp(- + 14.90010759*(-0.5667 + 0.1*i1)^2)*exp(-12.65704716*(-0.9636 + 0.1*i2)^2)* + exp(-11.50514752*(-0.6182 + 0.1*i3)^2)*exp(-1.06526262*(-0.7242 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.495 + i5)^2)*exp(-0.455870575*(-3.475 + i6)^2)* + exp(-0.205951927*(-3.818 + i7)^2) - 0.126865199*exp(-14.90010759*(-0.3364 + + 0.1*i1)^2)*exp(-12.65704716*(-0.5091 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.697 + 0.1*i3)^2)*exp(-1.06526262*(-0.7323 + 0.1*i4)^2)*exp(-0.258406482* + (-1.182 + i5)^2)*exp(-0.455870575*(-3.313 + i6)^2)*exp(-0.205951927*(- + 3.727 + i7)^2) + 0.730151248*exp(-14.90010759*(-0.4212 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.6061 + 0.1*i2)^2)*exp(-11.50514752*(-0.8485 + 0.1*i3)^2)* + exp(-1.06526262*(-1.476 + 0.1*i4)^2)*exp(-0.258406482*(-1.505 + i5)^2)* + exp(-0.455870575*(-3.364 + i6)^2)*exp(-0.205951927*(-5 + i7)^2) + + 0.056296093*exp(-14.90010759*(-0.3697 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.8485 + 0.1*i2)^2)*exp(-11.50514752*(-0.5455 + 0.1*i3)^2)*exp(-1.06526262 + *(-0.902 + 0.1*i4)^2)*exp(-0.258406482*(-1.788 + i5)^2)*exp(-0.455870575*( + -3.697 + i6)^2)*exp(-0.205951927*(-4.909 + i7)^2) - 0.273041516*exp(- + 14.90010759*(-0.5121 + 0.1*i1)^2)*exp(-12.65704716*(-0.5758 + 0.1*i2)^2)* + exp(-11.50514752*(-0.9091 + 0.1*i3)^2)*exp(-1.06526262*(-0.8051 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.152 + i5)^2)*exp(-0.455870575*(-3.667 + i6)^2)* + exp(-0.205951927*(-4.485 + i7)^2) - 0.481318518*exp(-14.90010759*(-0.4697 + + 0.1*i1)^2)*exp(-12.65704716*(-0.7455 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.9515 + 0.1*i3)^2)*exp(-1.06526262*(-1.33 + 0.1*i4)^2)*exp(-0.258406482*( + -1.162 + i5)^2)*exp(-0.455870575*(-3.354 + i6)^2)*exp(-0.205951927*(-2.182 + + i7)^2) - 2.186091651*exp(-14.90010759*(-0.4758 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.6848 + 0.1*i2)^2)*exp(-11.50514752*(-0.4848 + 0.1*i3)^2)* + exp(-1.06526262*(-0.7 + 0.1*i4)^2)*exp(-0.258406482*(-1.939 + i5)^2)*exp(- + 0.455870575*(-3.515 + i6)^2)*exp(-0.205951927*(-3.333 + i7)^2) + + 2.146596638*exp(-14.90010759*(-0.3152 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.5879 + 0.1*i2)^2)*exp(-11.50514752*(-0.8667 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.031 + 0.1*i4)^2)*exp(-0.258406482*(-1.485 + i5)^2)*exp(-0.455870575*( + -3.182 + i6)^2)*exp(-0.205951927*(-2.242 + i7)^2) + 0.869983355*exp(- + 14.90010759*(-0.3818 + 0.1*i1)^2)*exp(-12.65704716*(-0.7333 + 0.1*i2)^2)* + exp(-11.50514752*(-0.4061 + 0.1*i3)^2)*exp(-1.06526262*(-1.201 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.283 + i5)^2)*exp(-0.455870575*(-3.949 + i6)^2)*exp( + -0.205951927*(-3 + i7)^2) + 0.116997643*exp(-14.90010759*(-0.5182 + 0.1*i1 + )^2)*exp(-12.65704716*(-0.9939 + 0.1*i2)^2)*exp(-11.50514752*(-0.8788 + + 0.1*i3)^2)*exp(-1.06526262*(-1.072 + 0.1*i4)^2)*exp(-0.258406482*(-1.081 + + i5)^2)*exp(-0.455870575*(-3.303 + i6)^2)*exp(-0.205951927*(-3.545 + i7) + ^2) - 1.555709184*exp(-14.90010759*(-0.4424 + 0.1*i1)^2)*exp(-12.65704716* + (-0.8364 + 0.1*i2)^2)*exp(-11.50514752*(-0.5333 + 0.1*i3)^2)*exp(- + 1.06526262*(-1.484 + 0.1*i4)^2)*exp(-0.258406482*(-1.677 + i5)^2)*exp(- + 0.455870575*(-3.737 + i6)^2)*exp(-0.205951927*(-2.333 + i7)^2) - + 1.243566375*exp(-14.90010759*(-0.397 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.5939 + 0.1*i2)^2)*exp(-11.50514752*(-0.8545 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.363 + 0.1*i4)^2)*exp(-0.258406482*(-1.869 + i5)^2)*exp(-0.455870575*( + -3.02 + i6)^2)*exp(-0.205951927*(-3.515 + i7)^2) - 0.141820805*exp(- + 14.90010759*(-0.4879 + 0.1*i1)^2)*exp(-12.65704716*(-0.4788 + 0.1*i2)^2)* + exp(-11.50514752*(-0.6121 + 0.1*i3)^2)*exp(-1.06526262*(-0.8939 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.051 + i5)^2)*exp(-0.455870575*(-3.879 + i6)^2)* + exp(-0.205951927*(-3.182 + i7)^2) + 1.473928925*exp(-14.90010759*(-0.3545 + + 0.1*i1)^2)*exp(-12.65704716*(-0.4364 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.7333 + 0.1*i3)^2)*exp(-1.06526262*(-0.9828 + 0.1*i4)^2)*exp(-0.258406482 + *(-1.99 + i5)^2)*exp(-0.455870575*(-3.495 + i6)^2)*exp(-0.205951927*(-2.97 + + i7)^2) + 1.22027821*exp(-14.90010759*(-0.5424 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.6909 + 0.1*i2)^2)*exp(-11.50514752*(-0.6727 + 0.1*i3)^2)* + exp(-1.06526262*(-0.7889 + 0.1*i4)^2)*exp(-0.258406482*(-1.121 + i5)^2)* + exp(-0.455870575*(-3.091 + i6)^2)*exp(-0.205951927*(-4.121 + i7)^2) + + 0.491228405*exp(-14.90010759*(-0.4848 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.7879 + 0.1*i2)^2)*exp(-11.50514752*(-0.6909 + 0.1*i3)^2)*exp(-1.06526262 + *(-0.7162 + 0.1*i4)^2)*exp(-0.258406482*(-1.475 + i5)^2)*exp(-0.455870575* + (-3.131 + i6)^2)*exp(-0.205951927*(-2.212 + i7)^2) + 0.258984249*exp(- + 14.90010759*(-0.4394 + 0.1*i1)^2)*exp(-12.65704716*(-0.897 + 0.1*i2)^2)* + exp(-11.50514752*(-0.9758 + 0.1*i3)^2)*exp(-1.06526262*(-1.023 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.667 + i5)^2)*exp(-0.455870575*(-3.061 + i6)^2)*exp( + -0.205951927*(-2.879 + i7)^2) + 1.030561213*exp(-14.90010759*(-0.3848 + + 0.1*i1)^2)*exp(-12.65704716*(-0.5394 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.9152 + 0.1*i3)^2)*exp(-1.06526262*(-1.5 + 0.1*i4)^2)*exp(-0.258406482*(- + 1.596 + i5)^2)*exp(-0.455870575*(-3.636 + i6)^2)*exp(-0.205951927*(-2.727 + + i7)^2) - 0.443402327*exp(-14.90010759*(-0.5545 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.9758 + 0.1*i2)^2)*exp(-11.50514752*(-0.7212 + 0.1*i3)^2)* + exp(-1.06526262*(-1.08 + 0.1*i4)^2)*exp(-0.258406482*(-1.838 + i5)^2)*exp( + -0.455870575*(-3.434 + i6)^2)*exp(-0.205951927*(-2.364 + i7)^2) + + 0.989696526*exp(-14.90010759*(-0.3758 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.8667 + 0.1*i2)^2)*exp(-11.50514752*(-0.5394 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.015 + 0.1*i4)^2)*exp(-0.258406482*(-1.919 + i5)^2)*exp(-0.455870575*( + -3.909 + i6)^2)*exp(-0.205951927*(-2.939 + i7)^2) + 0.1057293*exp(- + 14.90010759*(-0.3212 + 0.1*i1)^2)*exp(-12.65704716*(-0.7576 + 0.1*i2)^2)* + exp(-11.50514752*(-0.5212 + 0.1*i3)^2)*exp(-1.06526262*(-0.9343 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.808 + i5)^2)*exp(-0.455870575*(-3.212 + i6)^2)* + exp(-0.205951927*(-2.545 + i7)^2) - 0.067894639*exp(-14.90010759*(-0.4727 + + 0.1*i1)^2)*exp(-12.65704716*(-0.9333 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.6485 + 0.1*i3)^2)*exp(-1.06526262*(-1.322 + 0.1*i4)^2)*exp(-0.258406482* + (-1.394 + i5)^2)*exp(-0.455870575*(-3.081 + i6)^2)*exp(-0.205951927*(- + 4.697 + i7)^2) + 0.606686451*exp(-14.90010759*(-0.4576 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.5455 + 0.1*i2)^2)*exp(-11.50514752*(-0.9939 + 0.1*i3)^2)* + exp(-1.06526262*(-1.169 + 0.1*i4)^2)*exp(-0.258406482*(-1.98 + i5)^2)*exp( + -0.455870575*(-3.626 + i6)^2)*exp(-0.205951927*(-3.939 + i7)^2) - + 0.248830822*exp(-14.90010759*(-0.3242 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.9212 + 0.1*i2)^2)*exp(-11.50514752*(-0.4667 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.314 + 0.1*i4)^2)*exp(-0.258406482*(-1.697 + i5)^2)*exp(-0.455870575*( + -3.374 + i6)^2)*exp(-0.205951927*(-3.758 + i7)^2) - 0.043469226*exp(- + 14.90010759*(-0.5697 + 0.1*i1)^2)*exp(-12.65704716*(-0.4182 + 0.1*i2)^2)* + exp(-11.50514752*(-0.7394 + 0.1*i3)^2)*exp(-1.06526262*(-0.8374 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.717 + i5)^2)*exp(-0.455870575*(-3.727 + i6)^2)* + exp(-0.205951927*(-3.303 + i7)^2) + 0.208450031*exp(-14.90010759*(-0.3727 + + 0.1*i1)^2)*exp(-12.65704716*(-0.9879 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.6848 + 0.1*i3)^2)*exp(-1.06526262*(-1.104 + 0.1*i4)^2)*exp(-0.258406482* + (-1.343 + i5)^2)*exp(-0.455870575*(-3.606 + i6)^2)*exp(-0.205951927*(-2 + + i7)^2) + 0.234480679*exp(-14.90010759*(-0.5091 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.4667 + 0.1*i2)^2)*exp(-11.50514752*(-0.8303 + 0.1*i3)^2)* + exp(-1.06526262*(-0.8859 + 0.1*i4)^2)*exp(-0.258406482*(-1.111 + i5)^2)* + exp(-0.455870575*(-3.283 + i6)^2)*exp(-0.205951927*(-2.576 + i7)^2) - + 1.258538883*exp(-14.90010759*(-0.3485 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.9091 + 0.1*i2)^2)*exp(-11.50514752*(-0.6606 + 0.1*i3)^2)*exp(-1.06526262 + *(-0.999 + 0.1*i4)^2)*exp(-0.258406482*(-1.172 + i5)^2)*exp(-0.455870575*( + -3.03 + i6)^2)*exp(-0.205951927*(-3.152 + i7)^2) + 0.276626105*exp(- + 14.90010759*(-0.5848 + 0.1*i1)^2)*exp(-12.65704716*(-0.6788 + 0.1*i2)^2)* + exp(-11.50514752*(-0.8 + 0.1*i3)^2)*exp(-1.06526262*(-1.298 + 0.1*i4)^2)* + exp(-0.258406482*(-1.848 + i5)^2)*exp(-0.455870575*(-3.828 + i6)^2)*exp(- + 0.205951927*(-2.636 + i7)^2) + 0.060142276*exp(-14.90010759*(-0.3303 + 0.1 + *i1)^2)*exp(-12.65704716*(-0.5212 + 0.1*i2)^2)*exp(-11.50514752*(-0.497 + + 0.1*i3)^2)*exp(-1.06526262*(-1.395 + 0.1*i4)^2)*exp(-0.258406482*(-1.636 + + i5)^2)*exp(-0.455870575*(-3.384 + i6)^2)*exp(-0.205951927*(-2.697 + i7) + ^2) - 0.132929531*exp(-14.90010759*(-0.3061 + 0.1*i1)^2)*exp(-12.65704716* + (-0.6242 + 0.1*i2)^2)*exp(-11.50514752*(-0.6788 + 0.1*i3)^2)*exp(- + 1.06526262*(-1.338 + 0.1*i4)^2)*exp(-0.258406482*(-1.859 + i5)^2)*exp(- + 0.455870575*(-3.758 + i6)^2)*exp(-0.205951927*(-4.273 + i7)^2) + + 0.18115341*exp(-14.90010759*(-0.5485 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.4545 + 0.1*i2)^2)*exp(-11.50514752*(-0.8848 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.112 + 0.1*i4)^2)*exp(-0.258406482*(-1.515 + i5)^2)*exp(-0.455870575*( + -3.101 + i6)^2)*exp(-0.205951927*(-4.333 + i7)^2) - 0.743588299*exp(- + 14.90010759*(-0.4636 + 0.1*i1)^2)*exp(-12.65704716*(-0.7939 + 0.1*i2)^2)* + exp(-11.50514752*(-0.7879 + 0.1*i3)^2)*exp(-1.06526262*(-1.492 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.707 + i5)^2)*exp(-0.455870575*(-3.97 + i6)^2)*exp(- + 0.205951927*(-4.03 + i7)^2) - 0.479325574*exp(-14.90010759*(-0.3455 + 0.1* + i1)^2)*exp(-12.65704716*(-0.5818 + 0.1*i2)^2)*exp(-11.50514752*(-0.7455 + + 0.1*i3)^2)*exp(-1.06526262*(-0.7404 + 0.1*i4)^2)*exp(-0.258406482*(-1.687 + + i5)^2)*exp(-0.455870575*(-3.929 + i6)^2)*exp(-0.205951927*(-3.788 + i7) + ^2) + 0.162986071*exp(-14.90010759*(-0.6 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.7515 + 0.1*i2)^2)*exp(-11.50514752*(-0.9455 + 0.1*i3)^2)*exp(-1.06526262 + *(-0.8616 + 0.1*i4)^2)*exp(-0.258406482*(-1.384 + i5)^2)*exp(-0.455870575* + (-3.596 + i6)^2)*exp(-0.205951927*(-2.848 + i7)^2) - 1.14127173*exp(- + 14.90010759*(-0.3273 + 0.1*i1)^2)*exp(-12.65704716*(-0.4 + 0.1*i2)^2)*exp( + -11.50514752*(-0.897 + 0.1*i3)^2)*exp(-1.06526262*(-1.12 + 0.1*i4)^2)*exp( + -0.258406482*(-1.404 + i5)^2)*exp(-0.455870575*(-3.525 + i6)^2)*exp(- + 0.205951927*(-4.182 + i7)^2) - 0.715453927*exp(-14.90010759*(-0.5212 + 0.1 + *i1)^2)*exp(-12.65704716*(-0.497 + 0.1*i2)^2)*exp(-11.50514752*(-0.8909 + + 0.1*i3)^2)*exp(-1.06526262*(-1.185 + 0.1*i4)^2)*exp(-0.258406482*(-1.737 + + i5)^2)*exp(-0.455870575*(-3.293 + i6)^2)*exp(-0.205951927*(-2.091 + i7) + ^2) - 0.577817851*exp(-14.90010759*(-0.4303 + 0.1*i1)^2)*exp(-12.65704716* + (-0.4606 + 0.1*i2)^2)*exp(-11.50514752*(-0.6242 + 0.1*i3)^2)*exp(- + 1.06526262*(-1.225 + 0.1*i4)^2)*exp(-0.258406482*(-1.727 + i5)^2)*exp(- + 0.455870575*(-3.96 + i6)^2)*exp(-0.205951927*(-2.424 + i7)^2) + + 0.024162061*exp(-14.90010759*(-0.3121 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.8909 + 0.1*i2)^2)*exp(-11.50514752*(-0.903 + 0.1*i3)^2)*exp(-1.06526262* + (-1.387 + 0.1*i4)^2)*exp(-0.258406482*(-1.414 + i5)^2)*exp(-0.455870575*(- + 3.323 + i6)^2)*exp(-0.205951927*(-3.636 + i7)^2) - 0.020132872*exp(- + 14.90010759*(-0.3424 + 0.1*i1)^2)*exp(-12.65704716*(-0.4485 + 0.1*i2)^2)* + exp(-11.50514752*(-0.4182 + 0.1*i3)^2)*exp(-1.06526262*(-0.9747 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.566 + i5)^2)*exp(-0.455870575*(-3.657 + i6)^2)* + exp(-0.205951927*(-3.879 + i7)^2) + 0.71567072*exp(-14.90010759*(-0.497 + + 0.1*i1)^2)*exp(-12.65704716*(-0.7697 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.7939 + 0.1*i3)^2)*exp(-1.06526262*(-1.274 + 0.1*i4)^2)*exp(-0.258406482* + (-1.141 + i5)^2)*exp(-0.455870575*(-4 + i6)^2)*exp(-0.205951927*(-2.515 + + i7)^2) + 0.715347523*exp(-14.90010759*(-0.4939 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.5576 + 0.1*i2)^2)*exp(-11.50514752*(-0.4545 + 0.1*i3)^2)* + exp(-1.06526262*(-1.177 + 0.1*i4)^2)*exp(-0.258406482*(-1.96 + i5)^2)*exp( + -0.455870575*(-3.818 + i6)^2)*exp(-0.205951927*(-4 + i7)^2) + 0.108832761* + exp(-14.90010759*(-0.5 + 0.1*i1)^2)*exp(-12.65704716*(-0.9515 + 0.1*i2)^2) + *exp(-11.50514752*(-0.4 + 0.1*i3)^2)*exp(-1.06526262*(-1.088 + 0.1*i4)^2)* + exp(-0.258406482*(-1.455 + i5)^2)*exp(-0.455870575*(-3.242 + i6)^2)*exp(- + 0.205951927*(-2.788 + i7)^2) + 0.189316691*exp(-14.90010759*(-0.4182 + 0.1 + *i1)^2)*exp(-12.65704716*(-0.9455 + 0.1*i2)^2)*exp(-11.50514752*(-0.8364 + + 0.1*i3)^2)*exp(-1.06526262*(-1.258 + 0.1*i4)^2)*exp(-0.258406482*(- + 1.929 + i5)^2)*exp(-0.455870575*(-3.465 + i6)^2)*exp(-0.205951927*(-4.606 + + i7)^2) - 0.431249612*exp(-14.90010759*(-0.3636 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.7818 + 0.1*i2)^2)*exp(-11.50514752*(-1 + 0.1*i3)^2)*exp(- + 1.06526262*(-0.9909 + 0.1*i4)^2)*exp(-0.258406482*(-1.535 + i5)^2)*exp(- + 0.455870575*(-3.768 + i6)^2)*exp(-0.205951927*(-4.667 + i7)^2) + + 0.603460662*exp(-14.90010759*(-0.4091 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.7212 + 0.1*i2)^2)*exp(-11.50514752*(-0.9273 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.371 + 0.1*i4)^2)*exp(-0.258406482*(-1.04 + i5)^2)*exp(-0.455870575*(- + 3.747 + i6)^2)*exp(-0.205951927*(-4.152 + i7)^2) - 0.562741246*exp(- + 14.90010759*(-0.4455 + 0.1*i1)^2)*exp(-12.65704716*(-0.4242 + 0.1*i2)^2)* + exp(-11.50514752*(-0.5879 + 0.1*i3)^2)*exp(-1.06526262*(-0.9182 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.626 + i5)^2)*exp(-0.455870575*(-3 + i6)^2)*exp(- + 0.205951927*(-3.091 + i7)^2) + 0.114680809*exp(-14.90010759*(-0.3667 + 0.1 + *i1)^2)*exp(-12.65704716*(-0.8424 + 0.1*i2)^2)*exp(-11.50514752*(-0.8242 + + 0.1*i3)^2)*exp(-1.06526262*(-1.29 + 0.1*i4)^2)*exp(-0.258406482*(-2 + + i5)^2)*exp(-0.455870575*(-3.485 + i6)^2)*exp(-0.205951927*(-2.485 + i7)^2) + - 1.216883406*exp(-14.90010759*(-0.4 + 0.1*i1)^2)*exp(-12.65704716*(-0.6 + + 0.1*i2)^2)*exp(-11.50514752*(-0.4364 + 0.1*i3)^2)*exp(-1.06526262*(- + 1.056 + 0.1*i4)^2)*exp(-0.258406482*(-1.091 + i5)^2)*exp(-0.455870575*(- + 3.202 + i6)^2)*exp(-0.205951927*(-2.606 + i7)^2) - 0.624758722*exp(- + 14.90010759*(-0.5303 + 0.1*i1)^2)*exp(-12.65704716*(-0.8545 + 0.1*i2)^2)* + exp(-11.50514752*(-0.9212 + 0.1*i3)^2)*exp(-1.06526262*(-0.8778 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1.616 + i5)^2)*exp(-0.455870575*(-3.232 + i6)^2)* + exp(-0.205951927*(-4.727 + i7)^2) + 1.006441995*exp(-14.90010759*(-0.3879 + + 0.1*i1)^2)*exp(-12.65704716*(-0.5515 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.5576 + 0.1*i3)^2)*exp(-1.06526262*(-0.7808 + 0.1*i4)^2)*exp(-0.258406482 + *(-1.444 + i5)^2)*exp(-0.455870575*(-3.677 + i6)^2)*exp(-0.205951927*(- + 2.03 + i7)^2) - 1.129987566*exp(-14.90010759*(-0.4515 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.7273 + 0.1*i2)^2)*exp(-11.50514752*(-0.8727 + 0.1*i3)^2)* + exp(-1.06526262*(-0.8131 + 0.1*i4)^2)*exp(-0.258406482*(-1.828 + i5)^2)* + exp(-0.455870575*(-3.717 + i6)^2)*exp(-0.205951927*(-2.061 + i7)^2) - + 0.349663282*exp(-14.90010759*(-0.4818 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.4121 + 0.1*i2)^2)*exp(-11.50514752*(-0.5515 + 0.1*i3)^2)*exp(-1.06526262 + *(-1.064 + 0.1*i4)^2)*exp(-0.258406482*(-1.202 + i5)^2)*exp(-0.455870575*( + -3.404 + i6)^2)*exp(-0.205951927*(-4.788 + i7)^2) - 0.027684113*exp(- + 14.90010759*(-0.5515 + 0.1*i1)^2)*exp(-12.65704716*(-0.8182 + 0.1*i2)^2)* + exp(-11.50514752*(-0.9636 + 0.1*i3)^2)*exp(-1.06526262*(-1.443 + 0.1*i4)^2 + )*exp(-0.258406482*(-1.606 + i5)^2)*exp(-0.455870575*(-3.263 + i6)^2)*exp( + -0.205951927*(-3.667 + i7)^2) + 0.446236811*exp(-14.90010759*(-0.4667 + + 0.1*i1)^2)*exp(-12.65704716*(-0.4727 + 0.1*i2)^2)*exp(-11.50514752*(- + 0.7818 + 0.1*i3)^2)*exp(-1.06526262*(-1.136 + 0.1*i4)^2)*exp(-0.258406482* + (-1.545 + i5)^2)*exp(-0.455870575*(-3.99 + i6)^2)*exp(-0.205951927*(-4.758 + + i7)^2) - 0.685415057*exp(-14.90010759*(-0.5606 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.7758 + 0.1*i2)^2)*exp(-11.50514752*(-0.5273 + 0.1*i3)^2)* + exp(-1.06526262*(-0.9263 + 0.1*i4)^2)*exp(-0.258406482*(-1.576 + i5)^2)* + exp(-0.455870575*(-3.919 + i6)^2)*exp(-0.205951927*(-2.394 + i7)^2) + + 1.073942582*exp(-14.90010759*(-0.4333 + 0.1*i1)^2)*exp(-12.65704716*(- + 0.5636 + 0.1*i2)^2)*exp(-11.50514752*(-0.9818 + 0.1*i3)^2)*exp(-1.06526262 + *(-0.7081 + 0.1*i4)^2)*exp(-0.258406482*(-1.657 + i5)^2)*exp(-0.455870575* + (-3.273 + i6)^2)*exp(-0.205951927*(-3.455 + i7)^2) + 0.879943762*exp(- + 14.90010759*(-0.5333 + 0.1*i1)^2)*exp(-12.65704716*(-0.8303 + 0.1*i2)^2)* + exp(-11.50514752*(-0.6061 + 0.1*i3)^2)*exp(-1.06526262*(-0.9424 + 0.1*i4)^ + 2)*exp(-0.258406482*(-1 + i5)^2)*exp(-0.455870575*(-3.545 + i6)^2)*exp(- + 0.205951927*(-2.303 + i7)^2) + 0.120712524*exp(-14.90010759*(-0.3788 + 0.1 + *i1)^2)*exp(-12.65704716*(-0.9152 + 0.1*i2)^2)*exp(-11.50514752*(-0.7515 + + 0.1*i3)^2)*exp(-1.06526262*(-0.8455 + 0.1*i4)^2)*exp(-0.258406482*(- + 1.212 + i5)^2)*exp(-0.455870575*(-3.394 + i6)^2)*exp(-0.205951927*(-4.879 + + i7)^2) + 0.15969715*exp(-14.90010759*(-0.4909 + 0.1*i1)^2)*exp(- + 12.65704716*(-0.8727 + 0.1*i2)^2)*exp(-11.50514752*(-0.4424 + 0.1*i3)^2)* + exp(-1.06526262*(-1.047 + 0.1*i4)^2)*exp(-0.258406482*(-1.02 + i5)^2)*exp( + -0.455870575*(-3.556 + i6)^2)*exp(-0.205951927*(-4.303 + i7)^2)) + x8 + >= 2.279420317; + + -(0.167352399*exp(-17.86919673*(-0.5364 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9697 + 0.1*i2)^2)*exp(-12.64753115*(-0.4909 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.161 + 0.1*i4)^2)*exp(-0.338234944*(-1.778 + i5)^2)*exp(- + 2.926463971*(-3.778 + i6)^2)*exp(-0.225625237*(-4.091 + i7)^2) - + 0.389979338*exp(-17.86919673*(-0.303 + 0.1*i1)^2)*exp(-12.62180682*(-0.697 + + 0.1*i2)^2)*exp(-12.64753115*(-0.8061 + 0.1*i3)^2)*exp(-2.232446513*(- + 0.9586 + 0.1*i4)^2)*exp(-0.338234944*(-1.758 + i5)^2)*exp(-2.926463971*(- + 3.141 + i6)^2)*exp(-0.225625237*(-4.424 + i7)^2) + 0.303555026*exp(- + 17.86919673*(-0.503 + 0.1*i1)^2)*exp(-12.62180682*(-0.6182 + 0.1*i2)^2)* + exp(-12.64753115*(-0.4121 + 0.1*i3)^2)*exp(-2.232446513*(-1.419 + 0.1*i4)^ + 2)*exp(-0.338234944*(-1.333 + i5)^2)*exp(-2.926463971*(-3.152 + i6)^2)* + exp(-0.225625237*(-3.697 + i7)^2) + 0.138075305*exp(-17.86919673*(-0.4606 + + 0.1*i1)^2)*exp(-12.62180682*(-0.903 + 0.1*i2)^2)*exp(-12.64753115*(- + 0.7576 + 0.1*i3)^2)*exp(-2.232446513*(-0.7727 + 0.1*i4)^2)*exp(- + 0.338234944*(-1.242 + i5)^2)*exp(-2.926463971*(-3.98 + i6)^2)*exp(- + 0.225625237*(-3.424 + i7)^2) - 0.195799626*exp(-17.86919673*(-0.3 + 0.1*i1 + )^2)*exp(-12.62180682*(-0.7636 + 0.1*i2)^2)*exp(-12.64753115*(-0.8606 + + 0.1*i3)^2)*exp(-2.232446513*(-1.153 + 0.1*i4)^2)*exp(-0.338234944*(-1.556 + + i5)^2)*exp(-2.926463971*(-3.939 + i6)^2)*exp(-0.225625237*(-2.818 + i7) + ^2) - 0.327984807*exp(-17.86919673*(-0.5879 + 0.1*i1)^2)*exp(-12.62180682* + (-0.703 + 0.1*i2)^2)*exp(-12.64753115*(-0.4788 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.039 + 0.1*i4)^2)*exp(-0.338234944*(-1.646 + i5)^2)*exp(- + 2.926463971*(-3.222 + i6)^2)*exp(-0.225625237*(-4.636 + i7)^2) + + 0.042709209*exp(-17.86919673*(-0.4121 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4424 + 0.1*i2)^2)*exp(-12.64753115*(-0.5939 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.46 + 0.1*i4)^2)*exp(-0.338234944*(-1.232 + i5)^2)*exp(- + 2.926463971*(-3.788 + i6)^2)*exp(-0.225625237*(-3.848 + i7)^2) + + 0.099539208*exp(-17.86919673*(-0.5576 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8848 + 0.1*i2)^2)*exp(-12.64753115*(-0.8121 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.128 + 0.1*i4)^2)*exp(-0.338234944*(-1.263 + i5)^2)*exp(- + 2.926463971*(-3.808 + i6)^2)*exp(-0.225625237*(-4.818 + i7)^2) - + 0.949574534*exp(-17.86919673*(-0.4273 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4848 + 0.1*i2)^2)*exp(-12.64753115*(-0.9697 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.9667 + 0.1*i4)^2)*exp(-0.338234944*(-1.364 + i5)^2)*exp(- + 2.926463971*(-3.869 + i6)^2)*exp(-0.225625237*(-2.667 + i7)^2) - + 0.342691355*exp(-17.86919673*(-0.5455 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4061 + 0.1*i2)^2)*exp(-12.64753115*(-0.6303 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.427 + 0.1*i4)^2)*exp(-0.338234944*(-1.747 + i5)^2)*exp(- + 2.926463971*(-3.444 + i6)^2)*exp(-0.225625237*(-3.576 + i7)^2) - + 0.024982323*exp(-17.86919673*(-0.5394 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.5273 + 0.1*i2)^2)*exp(-12.64753115*(-0.5636 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.355 + 0.1*i4)^2)*exp(-0.338234944*(-1.253 + i5)^2)*exp(- + 2.926463971*(-3.566 + i6)^2)*exp(-0.225625237*(-2.121 + i7)^2) - + 0.516759967*exp(-17.86919673*(-0.5273 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8121 + 0.1*i2)^2)*exp(-12.64753115*(-0.8424 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.8535 + 0.1*i4)^2)*exp(-0.338234944*(-1.899 + i5)^2)*exp(- + 2.926463971*(-3.889 + i6)^2)*exp(-0.225625237*(-4.061 + i7)^2) + + 0.534974936*exp(-17.86919673*(-0.5727 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4909 + 0.1*i2)^2)*exp(-12.64753115*(-0.9333 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.306 + 0.1*i4)^2)*exp(-0.338234944*(-1.273 + i5)^2)*exp(- + 2.926463971*(-3.707 + i6)^2)*exp(-0.225625237*(-3.485 + i7)^2) - + 0.018933523*exp(-17.86919673*(-0.3091 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6364 + 0.1*i2)^2)*exp(-12.64753115*(-0.5758 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.282 + 0.1*i4)^2)*exp(-0.338234944*(-1.222 + i5)^2)*exp(- + 2.926463971*(-3.192 + i6)^2)*exp(-0.225625237*(-4.455 + i7)^2) - + 0.09328952*exp(-17.86919673*(-0.4364 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7394 + 0.1*i2)^2)*exp(-12.64753115*(-0.4485 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.403 + 0.1*i4)^2)*exp(-0.338234944*(-1.465 + i5)^2)*exp(- + 2.926463971*(-3.687 + i6)^2)*exp(-0.225625237*(-4.939 + i7)^2) + + 0.074813942*exp(-17.86919673*(-0.5636 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6485 + 0.1*i2)^2)*exp(-12.64753115*(-0.7273 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.346 + 0.1*i4)^2)*exp(-0.338234944*(-1.01 + i5)^2)*exp(- + 2.926463971*(-3.333 + i6)^2)*exp(-0.225625237*(-4.364 + i7)^2) - + 0.173490465*exp(-17.86919673*(-0.597 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7152 + 0.1*i2)^2)*exp(-12.64753115*(-0.703 + 0.1*i3)^2)*exp(-2.232446513 + *(-1.209 + 0.1*i4)^2)*exp(-0.338234944*(-1.354 + i5)^2)*exp(-2.926463971*( + -3.01 + i6)^2)*exp(-0.225625237*(-2.758 + i7)^2) - 0.159224357*exp(- + 17.86919673*(-0.5152 + 0.1*i1)^2)*exp(-12.62180682*(-0.6606 + 0.1*i2)^2)* + exp(-12.64753115*(-0.503 + 0.1*i3)^2)*exp(-2.232446513*(-0.7566 + 0.1*i4)^ + 2)*exp(-0.338234944*(-1.424 + i5)^2)*exp(-2.926463971*(-3.848 + i6)^2)* + exp(-0.225625237*(-4.576 + i7)^2) + 0.387715752*exp(-17.86919673*(-0.5758 + + 0.1*i1)^2)*exp(-12.62180682*(-0.5152 + 0.1*i2)^2)*exp(-12.64753115*(- + 0.4303 + 0.1*i3)^2)*exp(-2.232446513*(-0.8697 + 0.1*i4)^2)*exp(- + 0.338234944*(-1.374 + i5)^2)*exp(-2.926463971*(-3.414 + i6)^2)*exp(- + 0.225625237*(-3.061 + i7)^2) + 0.642341091*exp(-17.86919673*(-0.3939 + 0.1 + *i1)^2)*exp(-12.62180682*(-0.7091 + 0.1*i2)^2)*exp(-12.64753115*(-0.4242 + + 0.1*i3)^2)*exp(-2.232446513*(-0.8293 + 0.1*i4)^2)*exp(-0.338234944*(- + 1.434 + i5)^2)*exp(-2.926463971*(-3.121 + i6)^2)*exp(-0.225625237*(-4.394 + + i7)^2) - 0.518849326*exp(-17.86919673*(-0.403 + 0.1*i1)^2)*exp(- + 12.62180682*(-0.5333 + 0.1*i2)^2)*exp(-12.64753115*(-0.5152 + 0.1*i3)^2)* + exp(-2.232446513*(-1.233 + 0.1*i4)^2)*exp(-0.338234944*(-1.889 + i5)^2)* + exp(-2.926463971*(-3.172 + i6)^2)*exp(-0.225625237*(-4.545 + i7)^2) + + 0.27906945*exp(-17.86919673*(-0.5061 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6121 + 0.1*i2)^2)*exp(-12.64753115*(-0.4606 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.144 + 0.1*i4)^2)*exp(-0.338234944*(-1.879 + i5)^2)*exp(- + 2.926463971*(-3.343 + i6)^2)*exp(-0.225625237*(-2.152 + i7)^2) + + 0.145816488*exp(-17.86919673*(-0.4152 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8242 + 0.1*i2)^2)*exp(-12.64753115*(-0.6545 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.411 + 0.1*i4)^2)*exp(-0.338234944*(-1.525 + i5)^2)*exp(- + 2.926463971*(-3.04 + i6)^2)*exp(-0.225625237*(-2.273 + i7)^2) + + 0.017724426*exp(-17.86919673*(-0.4545 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.503 + 0.1*i2)^2)*exp(-12.64753115*(-0.7152 + 0.1*i3)^2)*exp(-2.232446513 + *(-0.797 + 0.1*i4)^2)*exp(-0.338234944*(-1.798 + i5)^2)*exp(-2.926463971*( + -3.424 + i6)^2)*exp(-0.225625237*(-4.97 + i7)^2) - 0.737456635*exp(- + 17.86919673*(-0.3606 + 0.1*i1)^2)*exp(-12.62180682*(-0.8 + 0.1*i2)^2)*exp( + -12.64753115*(-0.9394 + 0.1*i3)^2)*exp(-2.232446513*(-0.8212 + 0.1*i4)^2)* + exp(-0.338234944*(-1.101 + i5)^2)*exp(-2.926463971*(-3.535 + i6)^2)*exp(- + 0.225625237*(-2.909 + i7)^2) - 0.085676306*exp(-17.86919673*(-0.5818 + 0.1 + *i1)^2)*exp(-12.62180682*(-0.9394 + 0.1*i2)^2)*exp(-12.64753115*(-0.6364 + + 0.1*i3)^2)*exp(-2.232446513*(-1.435 + 0.1*i4)^2)*exp(-0.338234944*(- + 1.313 + i5)^2)*exp(-2.926463971*(-3.576 + i6)^2)*exp(-0.225625237*(-3.212 + + i7)^2) - 0.18454723*exp(-17.86919673*(-0.4485 + 0.1*i1)^2)*exp(- + 12.62180682*(-0.9273 + 0.1*i2)^2)*exp(-12.64753115*(-0.6 + 0.1*i3)^2)*exp( + -2.232446513*(-0.9505 + 0.1*i4)^2)*exp(-0.338234944*(-1.909 + i5)^2)*exp(- + 2.926463971*(-3.051 + i6)^2)*exp(-0.225625237*(-3.97 + i7)^2) - + 0.372057753*exp(-17.86919673*(-0.3394 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8788 + 0.1*i2)^2)*exp(-12.64753115*(-0.4727 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.7646 + 0.1*i4)^2)*exp(-0.338234944*(-1.293 + i5)^2)*exp(- + 2.926463971*(-3.616 + i6)^2)*exp(-0.225625237*(-3.273 + i7)^2) + + 0.396502086*exp(-17.86919673*(-0.3515 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9576 + 0.1*i2)^2)*exp(-12.64753115*(-0.8182 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.7485 + 0.1*i4)^2)*exp(-0.338234944*(-1.768 + i5)^2)*exp(- + 2.926463971*(-3.505 + i6)^2)*exp(-0.225625237*(-3.394 + i7)^2) + + 0.024258784*exp(-17.86919673*(-0.4061 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6667 + 0.1*i2)^2)*exp(-12.64753115*(-0.9576 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.096 + 0.1*i4)^2)*exp(-0.338234944*(-1.131 + i5)^2)*exp(- + 2.926463971*(-3.071 + i6)^2)*exp(-0.225625237*(-4.242 + i7)^2) + + 0.362496554*exp(-17.86919673*(-0.5788 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6545 + 0.1*i2)^2)*exp(-12.64753115*(-0.7697 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.9101 + 0.1*i4)^2)*exp(-0.338234944*(-1.97 + i5)^2)*exp(- + 2.926463971*(-3.162 + i6)^2)*exp(-0.225625237*(-3.364 + i7)^2) - + 0.176910952*exp(-17.86919673*(-0.4788 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9818 + 0.1*i2)^2)*exp(-12.64753115*(-0.9879 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.193 + 0.1*i4)^2)*exp(-0.338234944*(-1.586 + i5)^2)*exp(- + 2.926463971*(-3.798 + i6)^2)*exp(-0.225625237*(-3.03 + i7)^2) - + 0.297088546*exp(-17.86919673*(-0.3182 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.5697 + 0.1*i2)^2)*exp(-12.64753115*(-0.7091 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.217 + 0.1*i4)^2)*exp(-0.338234944*(-1.061 + i5)^2)*exp(- + 2.926463971*(-3.646 + i6)^2)*exp(-0.225625237*(-2.455 + i7)^2) - + 0.388331732*exp(-17.86919673*(-0.3909 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8606 + 0.1*i2)^2)*exp(-12.64753115*(-0.5818 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.468 + 0.1*i4)^2)*exp(-0.338234944*(-1.03 + i5)^2)*exp(- + 2.926463971*(-3.455 + i6)^2)*exp(-0.225625237*(-3.242 + i7)^2) + + 0.009691143*exp(-17.86919673*(-0.5909 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6303 + 0.1*i2)^2)*exp(-12.64753115*(-0.5091 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.266 + 0.1*i4)^2)*exp(-0.338234944*(-1.303 + i5)^2)*exp(- + 2.926463971*(-3.899 + i6)^2)*exp(-0.225625237*(-3.909 + i7)^2) - + 0.110156422*exp(-17.86919673*(-0.5939 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6727 + 0.1*i2)^2)*exp(-12.64753115*(-0.7758 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.249 + 0.1*i4)^2)*exp(-0.338234944*(-1.818 + i5)^2)*exp(- + 2.926463971*(-3.586 + i6)^2)*exp(-0.225625237*(-4.848 + i7)^2) + + 0.107483788*exp(-17.86919673*(-0.5242 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8061 + 0.1*i2)^2)*exp(-12.64753115*(-0.5697 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.452 + 0.1*i4)^2)*exp(-0.338234944*(-1.949 + i5)^2)*exp(- + 2.926463971*(-3.253 + i6)^2)*exp(-0.225625237*(-3.606 + i7)^2) + + 0.633244403*exp(-17.86919673*(-0.5667 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9636 + 0.1*i2)^2)*exp(-12.64753115*(-0.6182 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.7242 + 0.1*i4)^2)*exp(-0.338234944*(-1.495 + i5)^2)*exp(- + 2.926463971*(-3.475 + i6)^2)*exp(-0.225625237*(-3.818 + i7)^2) - + 0.240548849*exp(-17.86919673*(-0.3364 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.5091 + 0.1*i2)^2)*exp(-12.64753115*(-0.697 + 0.1*i3)^2)*exp(-2.232446513 + *(-0.7323 + 0.1*i4)^2)*exp(-0.338234944*(-1.182 + i5)^2)*exp(-2.926463971* + (-3.313 + i6)^2)*exp(-0.225625237*(-3.727 + i7)^2) + 0.242263112*exp(- + 17.86919673*(-0.4212 + 0.1*i1)^2)*exp(-12.62180682*(-0.6061 + 0.1*i2)^2)* + exp(-12.64753115*(-0.8485 + 0.1*i3)^2)*exp(-2.232446513*(-1.476 + 0.1*i4)^ + 2)*exp(-0.338234944*(-1.505 + i5)^2)*exp(-2.926463971*(-3.364 + i6)^2)* + exp(-0.225625237*(-5 + i7)^2) + 0.429075277*exp(-17.86919673*(-0.3697 + + 0.1*i1)^2)*exp(-12.62180682*(-0.8485 + 0.1*i2)^2)*exp(-12.64753115*(- + 0.5455 + 0.1*i3)^2)*exp(-2.232446513*(-0.902 + 0.1*i4)^2)*exp(-0.338234944 + *(-1.788 + i5)^2)*exp(-2.926463971*(-3.697 + i6)^2)*exp(-0.225625237*(- + 4.909 + i7)^2) + 0.147650428*exp(-17.86919673*(-0.5121 + 0.1*i1)^2)*exp(- + 12.62180682*(-0.5758 + 0.1*i2)^2)*exp(-12.64753115*(-0.9091 + 0.1*i3)^2)* + exp(-2.232446513*(-0.8051 + 0.1*i4)^2)*exp(-0.338234944*(-1.152 + i5)^2)* + exp(-2.926463971*(-3.667 + i6)^2)*exp(-0.225625237*(-4.485 + i7)^2) + + 0.174955706*exp(-17.86919673*(-0.4697 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7455 + 0.1*i2)^2)*exp(-12.64753115*(-0.9515 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.33 + 0.1*i4)^2)*exp(-0.338234944*(-1.162 + i5)^2)*exp(- + 2.926463971*(-3.354 + i6)^2)*exp(-0.225625237*(-2.182 + i7)^2) - + 0.632455631*exp(-17.86919673*(-0.4758 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6848 + 0.1*i2)^2)*exp(-12.64753115*(-0.4848 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.7 + 0.1*i4)^2)*exp(-0.338234944*(-1.939 + i5)^2)*exp(- + 2.926463971*(-3.515 + i6)^2)*exp(-0.225625237*(-3.333 + i7)^2) + + 0.29124851*exp(-17.86919673*(-0.3152 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.5879 + 0.1*i2)^2)*exp(-12.64753115*(-0.8667 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.031 + 0.1*i4)^2)*exp(-0.338234944*(-1.485 + i5)^2)*exp(- + 2.926463971*(-3.182 + i6)^2)*exp(-0.225625237*(-2.242 + i7)^2) + + 0.309156284*exp(-17.86919673*(-0.3818 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7333 + 0.1*i2)^2)*exp(-12.64753115*(-0.4061 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.201 + 0.1*i4)^2)*exp(-0.338234944*(-1.283 + i5)^2)*exp(- + 2.926463971*(-3.949 + i6)^2)*exp(-0.225625237*(-3 + i7)^2) - 0.026932964* + exp(-17.86919673*(-0.5182 + 0.1*i1)^2)*exp(-12.62180682*(-0.9939 + 0.1*i2) + ^2)*exp(-12.64753115*(-0.8788 + 0.1*i3)^2)*exp(-2.232446513*(-1.072 + 0.1* + i4)^2)*exp(-0.338234944*(-1.081 + i5)^2)*exp(-2.926463971*(-3.303 + i6)^2) + *exp(-0.225625237*(-3.545 + i7)^2) - 0.282044567*exp(-17.86919673*(-0.4424 + + 0.1*i1)^2)*exp(-12.62180682*(-0.8364 + 0.1*i2)^2)*exp(-12.64753115*(- + 0.5333 + 0.1*i3)^2)*exp(-2.232446513*(-1.484 + 0.1*i4)^2)*exp(-0.338234944 + *(-1.677 + i5)^2)*exp(-2.926463971*(-3.737 + i6)^2)*exp(-0.225625237*(- + 2.333 + i7)^2) - 0.049901257*exp(-17.86919673*(-0.397 + 0.1*i1)^2)*exp(- + 12.62180682*(-0.5939 + 0.1*i2)^2)*exp(-12.64753115*(-0.8545 + 0.1*i3)^2)* + exp(-2.232446513*(-1.363 + 0.1*i4)^2)*exp(-0.338234944*(-1.869 + i5)^2)* + exp(-2.926463971*(-3.02 + i6)^2)*exp(-0.225625237*(-3.515 + i7)^2) + + 0.230043952*exp(-17.86919673*(-0.4879 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4788 + 0.1*i2)^2)*exp(-12.64753115*(-0.6121 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.8939 + 0.1*i4)^2)*exp(-0.338234944*(-1.051 + i5)^2)*exp(- + 2.926463971*(-3.879 + i6)^2)*exp(-0.225625237*(-3.182 + i7)^2) + + 0.932872259*exp(-17.86919673*(-0.3545 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4364 + 0.1*i2)^2)*exp(-12.64753115*(-0.7333 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.9828 + 0.1*i4)^2)*exp(-0.338234944*(-1.99 + i5)^2)*exp(- + 2.926463971*(-3.495 + i6)^2)*exp(-0.225625237*(-2.97 + i7)^2) - + 0.250757744*exp(-17.86919673*(-0.5424 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6909 + 0.1*i2)^2)*exp(-12.64753115*(-0.6727 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.7889 + 0.1*i4)^2)*exp(-0.338234944*(-1.121 + i5)^2)*exp(- + 2.926463971*(-3.091 + i6)^2)*exp(-0.225625237*(-4.121 + i7)^2) - + 0.239902506*exp(-17.86919673*(-0.4848 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7879 + 0.1*i2)^2)*exp(-12.64753115*(-0.6909 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.7162 + 0.1*i4)^2)*exp(-0.338234944*(-1.475 + i5)^2)*exp(- + 2.926463971*(-3.131 + i6)^2)*exp(-0.225625237*(-2.212 + i7)^2) - + 0.190105858*exp(-17.86919673*(-0.4394 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.897 + 0.1*i2)^2)*exp(-12.64753115*(-0.9758 + 0.1*i3)^2)*exp(-2.232446513 + *(-1.023 + 0.1*i4)^2)*exp(-0.338234944*(-1.667 + i5)^2)*exp(-2.926463971*( + -3.061 + i6)^2)*exp(-0.225625237*(-2.879 + i7)^2) + 0.588591258*exp(- + 17.86919673*(-0.3848 + 0.1*i1)^2)*exp(-12.62180682*(-0.5394 + 0.1*i2)^2)* + exp(-12.64753115*(-0.9152 + 0.1*i3)^2)*exp(-2.232446513*(-1.5 + 0.1*i4)^2) + *exp(-0.338234944*(-1.596 + i5)^2)*exp(-2.926463971*(-3.636 + i6)^2)*exp(- + 0.225625237*(-2.727 + i7)^2) - 0.500014074*exp(-17.86919673*(-0.5545 + 0.1 + *i1)^2)*exp(-12.62180682*(-0.9758 + 0.1*i2)^2)*exp(-12.64753115*(-0.7212 + + 0.1*i3)^2)*exp(-2.232446513*(-1.08 + 0.1*i4)^2)*exp(-0.338234944*(- + 1.838 + i5)^2)*exp(-2.926463971*(-3.434 + i6)^2)*exp(-0.225625237*(-2.364 + + i7)^2) + 0.178913023*exp(-17.86919673*(-0.3758 + 0.1*i1)^2)*exp(- + 12.62180682*(-0.8667 + 0.1*i2)^2)*exp(-12.64753115*(-0.5394 + 0.1*i3)^2)* + exp(-2.232446513*(-1.015 + 0.1*i4)^2)*exp(-0.338234944*(-1.919 + i5)^2)* + exp(-2.926463971*(-3.909 + i6)^2)*exp(-0.225625237*(-2.939 + i7)^2) + + 0.447986432*exp(-17.86919673*(-0.3212 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7576 + 0.1*i2)^2)*exp(-12.64753115*(-0.5212 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.9343 + 0.1*i4)^2)*exp(-0.338234944*(-1.808 + i5)^2)*exp(- + 2.926463971*(-3.212 + i6)^2)*exp(-0.225625237*(-2.545 + i7)^2) + + 0.333135143*exp(-17.86919673*(-0.4727 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9333 + 0.1*i2)^2)*exp(-12.64753115*(-0.6485 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.322 + 0.1*i4)^2)*exp(-0.338234944*(-1.394 + i5)^2)*exp(- + 2.926463971*(-3.081 + i6)^2)*exp(-0.225625237*(-4.697 + i7)^2) + + 0.426899225*exp(-17.86919673*(-0.4576 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.5455 + 0.1*i2)^2)*exp(-12.64753115*(-0.9939 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.169 + 0.1*i4)^2)*exp(-0.338234944*(-1.98 + i5)^2)*exp(- + 2.926463971*(-3.626 + i6)^2)*exp(-0.225625237*(-3.939 + i7)^2) + + 0.159378768*exp(-17.86919673*(-0.3242 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9212 + 0.1*i2)^2)*exp(-12.64753115*(-0.4667 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.314 + 0.1*i4)^2)*exp(-0.338234944*(-1.697 + i5)^2)*exp(- + 2.926463971*(-3.374 + i6)^2)*exp(-0.225625237*(-3.758 + i7)^2) - + 0.083488239*exp(-17.86919673*(-0.5697 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4182 + 0.1*i2)^2)*exp(-12.64753115*(-0.7394 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.8374 + 0.1*i4)^2)*exp(-0.338234944*(-1.717 + i5)^2)*exp(- + 2.926463971*(-3.727 + i6)^2)*exp(-0.225625237*(-3.303 + i7)^2) + + 0.28447614*exp(-17.86919673*(-0.3727 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9879 + 0.1*i2)^2)*exp(-12.64753115*(-0.6848 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.104 + 0.1*i4)^2)*exp(-0.338234944*(-1.343 + i5)^2)*exp(- + 2.926463971*(-3.606 + i6)^2)*exp(-0.225625237*(-2 + i7)^2) - 0.393200819* + exp(-17.86919673*(-0.5091 + 0.1*i1)^2)*exp(-12.62180682*(-0.4667 + 0.1*i2) + ^2)*exp(-12.64753115*(-0.8303 + 0.1*i3)^2)*exp(-2.232446513*(-0.8859 + 0.1 + *i4)^2)*exp(-0.338234944*(-1.111 + i5)^2)*exp(-2.926463971*(-3.283 + i6)^2 + )*exp(-0.225625237*(-2.576 + i7)^2) - 0.197323414*exp(-17.86919673*(- + 0.3485 + 0.1*i1)^2)*exp(-12.62180682*(-0.9091 + 0.1*i2)^2)*exp(- + 12.64753115*(-0.6606 + 0.1*i3)^2)*exp(-2.232446513*(-0.999 + 0.1*i4)^2)* + exp(-0.338234944*(-1.172 + i5)^2)*exp(-2.926463971*(-3.03 + i6)^2)*exp(- + 0.225625237*(-3.152 + i7)^2) + 0.130522863*exp(-17.86919673*(-0.5848 + 0.1 + *i1)^2)*exp(-12.62180682*(-0.6788 + 0.1*i2)^2)*exp(-12.64753115*(-0.8 + + 0.1*i3)^2)*exp(-2.232446513*(-1.298 + 0.1*i4)^2)*exp(-0.338234944*(-1.848 + + i5)^2)*exp(-2.926463971*(-3.828 + i6)^2)*exp(-0.225625237*(-2.636 + i7) + ^2) - 0.262717978*exp(-17.86919673*(-0.3303 + 0.1*i1)^2)*exp(-12.62180682* + (-0.5212 + 0.1*i2)^2)*exp(-12.64753115*(-0.497 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.395 + 0.1*i4)^2)*exp(-0.338234944*(-1.636 + i5)^2)*exp(- + 2.926463971*(-3.384 + i6)^2)*exp(-0.225625237*(-2.697 + i7)^2) - + 0.271857408*exp(-17.86919673*(-0.3061 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.6242 + 0.1*i2)^2)*exp(-12.64753115*(-0.6788 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.338 + 0.1*i4)^2)*exp(-0.338234944*(-1.859 + i5)^2)*exp(- + 2.926463971*(-3.758 + i6)^2)*exp(-0.225625237*(-4.273 + i7)^2) + + 0.110188531*exp(-17.86919673*(-0.5485 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4545 + 0.1*i2)^2)*exp(-12.64753115*(-0.8848 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.112 + 0.1*i4)^2)*exp(-0.338234944*(-1.515 + i5)^2)*exp(- + 2.926463971*(-3.101 + i6)^2)*exp(-0.225625237*(-4.333 + i7)^2) - + 0.003391406*exp(-17.86919673*(-0.4636 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7939 + 0.1*i2)^2)*exp(-12.64753115*(-0.7879 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.492 + 0.1*i4)^2)*exp(-0.338234944*(-1.707 + i5)^2)*exp(- + 2.926463971*(-3.97 + i6)^2)*exp(-0.225625237*(-4.03 + i7)^2) - 0.016227219 + *exp(-17.86919673*(-0.3455 + 0.1*i1)^2)*exp(-12.62180682*(-0.5818 + 0.1*i2 + )^2)*exp(-12.64753115*(-0.7455 + 0.1*i3)^2)*exp(-2.232446513*(-0.7404 + + 0.1*i4)^2)*exp(-0.338234944*(-1.687 + i5)^2)*exp(-2.926463971*(-3.929 + i6 + )^2)*exp(-0.225625237*(-3.788 + i7)^2) + 0.166673804*exp(-17.86919673*(- + 0.6 + 0.1*i1)^2)*exp(-12.62180682*(-0.7515 + 0.1*i2)^2)*exp(-12.64753115*( + -0.9455 + 0.1*i3)^2)*exp(-2.232446513*(-0.8616 + 0.1*i4)^2)*exp(- + 0.338234944*(-1.384 + i5)^2)*exp(-2.926463971*(-3.596 + i6)^2)*exp(- + 0.225625237*(-2.848 + i7)^2) - 0.478687721*exp(-17.86919673*(-0.3273 + 0.1 + *i1)^2)*exp(-12.62180682*(-0.4 + 0.1*i2)^2)*exp(-12.64753115*(-0.897 + 0.1 + *i3)^2)*exp(-2.232446513*(-1.12 + 0.1*i4)^2)*exp(-0.338234944*(-1.404 + i5 + )^2)*exp(-2.926463971*(-3.525 + i6)^2)*exp(-0.225625237*(-4.182 + i7)^2) + - 0.91074989*exp(-17.86919673*(-0.5212 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.497 + 0.1*i2)^2)*exp(-12.64753115*(-0.8909 + 0.1*i3)^2)*exp(-2.232446513 + *(-1.185 + 0.1*i4)^2)*exp(-0.338234944*(-1.737 + i5)^2)*exp(-2.926463971*( + -3.293 + i6)^2)*exp(-0.225625237*(-2.091 + i7)^2) - 0.045907088*exp(- + 17.86919673*(-0.4303 + 0.1*i1)^2)*exp(-12.62180682*(-0.4606 + 0.1*i2)^2)* + exp(-12.64753115*(-0.6242 + 0.1*i3)^2)*exp(-2.232446513*(-1.225 + 0.1*i4)^ + 2)*exp(-0.338234944*(-1.727 + i5)^2)*exp(-2.926463971*(-3.96 + i6)^2)*exp( + -0.225625237*(-2.424 + i7)^2) - 0.042602483*exp(-17.86919673*(-0.3121 + + 0.1*i1)^2)*exp(-12.62180682*(-0.8909 + 0.1*i2)^2)*exp(-12.64753115*(-0.903 + + 0.1*i3)^2)*exp(-2.232446513*(-1.387 + 0.1*i4)^2)*exp(-0.338234944*(- + 1.414 + i5)^2)*exp(-2.926463971*(-3.323 + i6)^2)*exp(-0.225625237*(-3.636 + + i7)^2) - 0.148374025*exp(-17.86919673*(-0.3424 + 0.1*i1)^2)*exp(- + 12.62180682*(-0.4485 + 0.1*i2)^2)*exp(-12.64753115*(-0.4182 + 0.1*i3)^2)* + exp(-2.232446513*(-0.9747 + 0.1*i4)^2)*exp(-0.338234944*(-1.566 + i5)^2)* + exp(-2.926463971*(-3.657 + i6)^2)*exp(-0.225625237*(-3.879 + i7)^2) - + 0.225186202*exp(-17.86919673*(-0.497 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7697 + 0.1*i2)^2)*exp(-12.64753115*(-0.7939 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.274 + 0.1*i4)^2)*exp(-0.338234944*(-1.141 + i5)^2)*exp(- + 2.926463971*(-4 + i6)^2)*exp(-0.225625237*(-2.515 + i7)^2) + 0.316986547* + exp(-17.86919673*(-0.4939 + 0.1*i1)^2)*exp(-12.62180682*(-0.5576 + 0.1*i2) + ^2)*exp(-12.64753115*(-0.4545 + 0.1*i3)^2)*exp(-2.232446513*(-1.177 + 0.1* + i4)^2)*exp(-0.338234944*(-1.96 + i5)^2)*exp(-2.926463971*(-3.818 + i6)^2)* + exp(-0.225625237*(-4 + i7)^2) - 0.162151629*exp(-17.86919673*(-0.5 + 0.1* + i1)^2)*exp(-12.62180682*(-0.9515 + 0.1*i2)^2)*exp(-12.64753115*(-0.4 + 0.1 + *i3)^2)*exp(-2.232446513*(-1.088 + 0.1*i4)^2)*exp(-0.338234944*(-1.455 + + i5)^2)*exp(-2.926463971*(-3.242 + i6)^2)*exp(-0.225625237*(-2.788 + i7)^2) + - 0.2937411*exp(-17.86919673*(-0.4182 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9455 + 0.1*i2)^2)*exp(-12.64753115*(-0.8364 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.258 + 0.1*i4)^2)*exp(-0.338234944*(-1.929 + i5)^2)*exp(- + 2.926463971*(-3.465 + i6)^2)*exp(-0.225625237*(-4.606 + i7)^2) + + 0.294582695*exp(-17.86919673*(-0.3636 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7818 + 0.1*i2)^2)*exp(-12.64753115*(-1 + 0.1*i3)^2)*exp(-2.232446513*(- + 0.9909 + 0.1*i4)^2)*exp(-0.338234944*(-1.535 + i5)^2)*exp(-2.926463971*(- + 3.768 + i6)^2)*exp(-0.225625237*(-4.667 + i7)^2) + 0.139746339*exp(- + 17.86919673*(-0.4091 + 0.1*i1)^2)*exp(-12.62180682*(-0.7212 + 0.1*i2)^2)* + exp(-12.64753115*(-0.9273 + 0.1*i3)^2)*exp(-2.232446513*(-1.371 + 0.1*i4)^ + 2)*exp(-0.338234944*(-1.04 + i5)^2)*exp(-2.926463971*(-3.747 + i6)^2)*exp( + -0.225625237*(-4.152 + i7)^2) + 0.296188594*exp(-17.86919673*(-0.4455 + + 0.1*i1)^2)*exp(-12.62180682*(-0.4242 + 0.1*i2)^2)*exp(-12.64753115*(- + 0.5879 + 0.1*i3)^2)*exp(-2.232446513*(-0.9182 + 0.1*i4)^2)*exp(- + 0.338234944*(-1.626 + i5)^2)*exp(-2.926463971*(-3 + i6)^2)*exp(- + 0.225625237*(-3.091 + i7)^2) - 0.209069307*exp(-17.86919673*(-0.3667 + 0.1 + *i1)^2)*exp(-12.62180682*(-0.8424 + 0.1*i2)^2)*exp(-12.64753115*(-0.8242 + + 0.1*i3)^2)*exp(-2.232446513*(-1.29 + 0.1*i4)^2)*exp(-0.338234944*(-2 + + i5)^2)*exp(-2.926463971*(-3.485 + i6)^2)*exp(-0.225625237*(-2.485 + i7)^2) + - 0.591098053*exp(-17.86919673*(-0.4 + 0.1*i1)^2)*exp(-12.62180682*(-0.6 + + 0.1*i2)^2)*exp(-12.64753115*(-0.4364 + 0.1*i3)^2)*exp(-2.232446513*(- + 1.056 + 0.1*i4)^2)*exp(-0.338234944*(-1.091 + i5)^2)*exp(-2.926463971*(- + 3.202 + i6)^2)*exp(-0.225625237*(-2.606 + i7)^2) - 0.100756502*exp(- + 17.86919673*(-0.5303 + 0.1*i1)^2)*exp(-12.62180682*(-0.8545 + 0.1*i2)^2)* + exp(-12.64753115*(-0.9212 + 0.1*i3)^2)*exp(-2.232446513*(-0.8778 + 0.1*i4) + ^2)*exp(-0.338234944*(-1.616 + i5)^2)*exp(-2.926463971*(-3.232 + i6)^2)* + exp(-0.225625237*(-4.727 + i7)^2) + 0.030800505*exp(-17.86919673*(-0.3879 + + 0.1*i1)^2)*exp(-12.62180682*(-0.5515 + 0.1*i2)^2)*exp(-12.64753115*(- + 0.5576 + 0.1*i3)^2)*exp(-2.232446513*(-0.7808 + 0.1*i4)^2)*exp(- + 0.338234944*(-1.444 + i5)^2)*exp(-2.926463971*(-3.677 + i6)^2)*exp(- + 0.225625237*(-2.03 + i7)^2) + 0.153590304*exp(-17.86919673*(-0.4515 + 0.1* + i1)^2)*exp(-12.62180682*(-0.7273 + 0.1*i2)^2)*exp(-12.64753115*(-0.8727 + + 0.1*i3)^2)*exp(-2.232446513*(-0.8131 + 0.1*i4)^2)*exp(-0.338234944*(-1.828 + + i5)^2)*exp(-2.926463971*(-3.717 + i6)^2)*exp(-0.225625237*(-2.061 + i7) + ^2) + 0.326636858*exp(-17.86919673*(-0.4818 + 0.1*i1)^2)*exp(-12.62180682* + (-0.4121 + 0.1*i2)^2)*exp(-12.64753115*(-0.5515 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.064 + 0.1*i4)^2)*exp(-0.338234944*(-1.202 + i5)^2)*exp(- + 2.926463971*(-3.404 + i6)^2)*exp(-0.225625237*(-4.788 + i7)^2) - + 0.08217976*exp(-17.86919673*(-0.5515 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8182 + 0.1*i2)^2)*exp(-12.64753115*(-0.9636 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.443 + 0.1*i4)^2)*exp(-0.338234944*(-1.606 + i5)^2)*exp(- + 2.926463971*(-3.263 + i6)^2)*exp(-0.225625237*(-3.667 + i7)^2) + + 0.052720668*exp(-17.86919673*(-0.4667 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.4727 + 0.1*i2)^2)*exp(-12.64753115*(-0.7818 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.136 + 0.1*i4)^2)*exp(-0.338234944*(-1.545 + i5)^2)*exp(- + 2.926463971*(-3.99 + i6)^2)*exp(-0.225625237*(-4.758 + i7)^2) - + 0.656298898*exp(-17.86919673*(-0.5606 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.7758 + 0.1*i2)^2)*exp(-12.64753115*(-0.5273 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.9263 + 0.1*i4)^2)*exp(-0.338234944*(-1.576 + i5)^2)*exp(- + 2.926463971*(-3.919 + i6)^2)*exp(-0.225625237*(-2.394 + i7)^2) + + 0.94159068*exp(-17.86919673*(-0.4333 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.5636 + 0.1*i2)^2)*exp(-12.64753115*(-0.9818 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.7081 + 0.1*i4)^2)*exp(-0.338234944*(-1.657 + i5)^2)*exp(- + 2.926463971*(-3.273 + i6)^2)*exp(-0.225625237*(-3.455 + i7)^2) + + 1.414101075*exp(-17.86919673*(-0.5333 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8303 + 0.1*i2)^2)*exp(-12.64753115*(-0.6061 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.9424 + 0.1*i4)^2)*exp(-0.338234944*(-1 + i5)^2)*exp(- + 2.926463971*(-3.545 + i6)^2)*exp(-0.225625237*(-2.303 + i7)^2) - + 0.12234883*exp(-17.86919673*(-0.3788 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.9152 + 0.1*i2)^2)*exp(-12.64753115*(-0.7515 + 0.1*i3)^2)*exp(- + 2.232446513*(-0.8455 + 0.1*i4)^2)*exp(-0.338234944*(-1.212 + i5)^2)*exp(- + 2.926463971*(-3.394 + i6)^2)*exp(-0.225625237*(-4.879 + i7)^2) - + 0.144532827*exp(-17.86919673*(-0.4909 + 0.1*i1)^2)*exp(-12.62180682*(- + 0.8727 + 0.1*i2)^2)*exp(-12.64753115*(-0.4424 + 0.1*i3)^2)*exp(- + 2.232446513*(-1.047 + 0.1*i4)^2)*exp(-0.338234944*(-1.02 + i5)^2)*exp(- + 2.926463971*(-3.556 + i6)^2)*exp(-0.225625237*(-4.303 + i7)^2)) + x8 + >= 2.91747921; + + -(-0.35125377*exp(-21.52996705*(-0.303 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.697 + 0.1*i2)^2)*exp(-12.73459431*(-0.8061 + 0.1*i3)^2)*exp(-3.155578786 + *(-0.9586 + 0.1*i4)^2)*exp(-1.220130357*(-1.758 + i5)^2)*exp(-0.505038737* + (-3.141 + i6)^2)*exp(-0.097628938*(-4.424 + i7)^2) - 0.106244746*exp(- + 21.52996705*(-0.5364 + 0.1*i1)^2)*exp(-12.6084759*(-0.9697 + 0.1*i2)^2)* + exp(-12.73459431*(-0.4909 + 0.1*i3)^2)*exp(-3.155578786*(-1.161 + 0.1*i4)^ + 2)*exp(-1.220130357*(-1.778 + i5)^2)*exp(-0.505038737*(-3.778 + i6)^2)* + exp(-0.097628938*(-4.091 + i7)^2) - 0.200834458*exp(-21.52996705*(-0.503 + + 0.1*i1)^2)*exp(-12.6084759*(-0.6182 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.4121 + 0.1*i3)^2)*exp(-3.155578786*(-1.419 + 0.1*i4)^2)*exp(-1.220130357 + *(-1.333 + i5)^2)*exp(-0.505038737*(-3.152 + i6)^2)*exp(-0.097628938*(- + 3.697 + i7)^2) + 0.172701216*exp(-21.52996705*(-0.4606 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.903 + 0.1*i2)^2)*exp(-12.73459431*(-0.7576 + 0.1*i3)^2)* + exp(-3.155578786*(-0.7727 + 0.1*i4)^2)*exp(-1.220130357*(-1.242 + i5)^2)* + exp(-0.505038737*(-3.98 + i6)^2)*exp(-0.097628938*(-3.424 + i7)^2) + + 0.03587411*exp(-21.52996705*(-0.3 + 0.1*i1)^2)*exp(-12.6084759*(-0.7636 + + 0.1*i2)^2)*exp(-12.73459431*(-0.8606 + 0.1*i3)^2)*exp(-3.155578786*(-1.153 + + 0.1*i4)^2)*exp(-1.220130357*(-1.556 + i5)^2)*exp(-0.505038737*(-3.939 + + i6)^2)*exp(-0.097628938*(-2.818 + i7)^2) - 0.199443016*exp(-21.52996705 + *(-0.5879 + 0.1*i1)^2)*exp(-12.6084759*(-0.703 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.4788 + 0.1*i3)^2)*exp(-3.155578786*(-1.039 + 0.1*i4)^2)* + exp(-1.220130357*(-1.646 + i5)^2)*exp(-0.505038737*(-3.222 + i6)^2)*exp(- + 0.097628938*(-4.636 + i7)^2) + 0.362279307*exp(-21.52996705*(-0.4121 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.4424 + 0.1*i2)^2)*exp(-12.73459431*(-0.5939 + + 0.1*i3)^2)*exp(-3.155578786*(-1.46 + 0.1*i4)^2)*exp(-1.220130357*(-1.232 + + i5)^2)*exp(-0.505038737*(-3.788 + i6)^2)*exp(-0.097628938*(-3.848 + i7) + ^2) + 0.403809601*exp(-21.52996705*(-0.5576 + 0.1*i1)^2)*exp(-12.6084759*( + -0.8848 + 0.1*i2)^2)*exp(-12.73459431*(-0.8121 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.128 + 0.1*i4)^2)*exp(-1.220130357*(-1.263 + i5)^2)*exp(- + 0.505038737*(-3.808 + i6)^2)*exp(-0.097628938*(-4.818 + i7)^2) - + 0.764155512*exp(-21.52996705*(-0.4273 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4848 + 0.1*i2)^2)*exp(-12.73459431*(-0.9697 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.9667 + 0.1*i4)^2)*exp(-1.220130357*(-1.364 + i5)^2)*exp(- + 0.505038737*(-3.869 + i6)^2)*exp(-0.097628938*(-2.667 + i7)^2) - + 0.688373166*exp(-21.52996705*(-0.5455 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4061 + 0.1*i2)^2)*exp(-12.73459431*(-0.6303 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.427 + 0.1*i4)^2)*exp(-1.220130357*(-1.747 + i5)^2)*exp(- + 0.505038737*(-3.444 + i6)^2)*exp(-0.097628938*(-3.576 + i7)^2) + + 0.261635786*exp(-21.52996705*(-0.5394 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5273 + 0.1*i2)^2)*exp(-12.73459431*(-0.5636 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.355 + 0.1*i4)^2)*exp(-1.220130357*(-1.253 + i5)^2)*exp(- + 0.505038737*(-3.566 + i6)^2)*exp(-0.097628938*(-2.121 + i7)^2) - + 0.515447268*exp(-21.52996705*(-0.5273 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8121 + 0.1*i2)^2)*exp(-12.73459431*(-0.8424 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.8535 + 0.1*i4)^2)*exp(-1.220130357*(-1.899 + i5)^2)*exp(- + 0.505038737*(-3.889 + i6)^2)*exp(-0.097628938*(-4.061 + i7)^2) + + 0.795611724*exp(-21.52996705*(-0.5727 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4909 + 0.1*i2)^2)*exp(-12.73459431*(-0.9333 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.306 + 0.1*i4)^2)*exp(-1.220130357*(-1.273 + i5)^2)*exp(- + 0.505038737*(-3.707 + i6)^2)*exp(-0.097628938*(-3.485 + i7)^2) - + 0.175887498*exp(-21.52996705*(-0.3091 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6364 + 0.1*i2)^2)*exp(-12.73459431*(-0.5758 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.282 + 0.1*i4)^2)*exp(-1.220130357*(-1.222 + i5)^2)*exp(- + 0.505038737*(-3.192 + i6)^2)*exp(-0.097628938*(-4.455 + i7)^2) + + 0.040880206*exp(-21.52996705*(-0.4364 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7394 + 0.1*i2)^2)*exp(-12.73459431*(-0.4485 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.403 + 0.1*i4)^2)*exp(-1.220130357*(-1.465 + i5)^2)*exp(- + 0.505038737*(-3.687 + i6)^2)*exp(-0.097628938*(-4.939 + i7)^2) + + 0.136465554*exp(-21.52996705*(-0.5636 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6485 + 0.1*i2)^2)*exp(-12.73459431*(-0.7273 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.346 + 0.1*i4)^2)*exp(-1.220130357*(-1.01 + i5)^2)*exp(- + 0.505038737*(-3.333 + i6)^2)*exp(-0.097628938*(-4.364 + i7)^2) - + 0.087935225*exp(-21.52996705*(-0.597 + 0.1*i1)^2)*exp(-12.6084759*(-0.7152 + + 0.1*i2)^2)*exp(-12.73459431*(-0.703 + 0.1*i3)^2)*exp(-3.155578786*(- + 1.209 + 0.1*i4)^2)*exp(-1.220130357*(-1.354 + i5)^2)*exp(-0.505038737*(- + 3.01 + i6)^2)*exp(-0.097628938*(-2.758 + i7)^2) - 0.048433908*exp(- + 21.52996705*(-0.5152 + 0.1*i1)^2)*exp(-12.6084759*(-0.6606 + 0.1*i2)^2)* + exp(-12.73459431*(-0.503 + 0.1*i3)^2)*exp(-3.155578786*(-0.7566 + 0.1*i4)^ + 2)*exp(-1.220130357*(-1.424 + i5)^2)*exp(-0.505038737*(-3.848 + i6)^2)* + exp(-0.097628938*(-4.576 + i7)^2) - 0.025504823*exp(-21.52996705*(-0.5758 + + 0.1*i1)^2)*exp(-12.6084759*(-0.5152 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.4303 + 0.1*i3)^2)*exp(-3.155578786*(-0.8697 + 0.1*i4)^2)*exp(- + 1.220130357*(-1.374 + i5)^2)*exp(-0.505038737*(-3.414 + i6)^2)*exp(- + 0.097628938*(-3.061 + i7)^2) - 0.767796684*exp(-21.52996705*(-0.3939 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.7091 + 0.1*i2)^2)*exp(-12.73459431*(-0.4242 + + 0.1*i3)^2)*exp(-3.155578786*(-0.8293 + 0.1*i4)^2)*exp(-1.220130357*(-1.434 + + i5)^2)*exp(-0.505038737*(-3.121 + i6)^2)*exp(-0.097628938*(-4.394 + i7) + ^2) + 0.015455073*exp(-21.52996705*(-0.403 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5333 + 0.1*i2)^2)*exp(-12.73459431*(-0.5152 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.233 + 0.1*i4)^2)*exp(-1.220130357*(-1.889 + i5)^2)*exp(- + 0.505038737*(-3.172 + i6)^2)*exp(-0.097628938*(-4.545 + i7)^2) + + 0.383001503*exp(-21.52996705*(-0.5061 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6121 + 0.1*i2)^2)*exp(-12.73459431*(-0.4606 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.144 + 0.1*i4)^2)*exp(-1.220130357*(-1.879 + i5)^2)*exp(- + 0.505038737*(-3.343 + i6)^2)*exp(-0.097628938*(-2.152 + i7)^2) + + 0.105861217*exp(-21.52996705*(-0.4152 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8242 + 0.1*i2)^2)*exp(-12.73459431*(-0.6545 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.411 + 0.1*i4)^2)*exp(-1.220130357*(-1.525 + i5)^2)*exp(- + 0.505038737*(-3.04 + i6)^2)*exp(-0.097628938*(-2.273 + i7)^2) + + 0.515130356*exp(-21.52996705*(-0.4545 + 0.1*i1)^2)*exp(-12.6084759*(-0.503 + + 0.1*i2)^2)*exp(-12.73459431*(-0.7152 + 0.1*i3)^2)*exp(-3.155578786*(- + 0.797 + 0.1*i4)^2)*exp(-1.220130357*(-1.798 + i5)^2)*exp(-0.505038737*(- + 3.424 + i6)^2)*exp(-0.097628938*(-4.97 + i7)^2) - 0.444617403*exp(- + 21.52996705*(-0.3606 + 0.1*i1)^2)*exp(-12.6084759*(-0.8 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.9394 + 0.1*i3)^2)*exp(-3.155578786*(-0.8212 + 0.1*i4)^2)* + exp(-1.220130357*(-1.101 + i5)^2)*exp(-0.505038737*(-3.535 + i6)^2)*exp(- + 0.097628938*(-2.909 + i7)^2) - 0.280674142*exp(-21.52996705*(-0.5818 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.9394 + 0.1*i2)^2)*exp(-12.73459431*(-0.6364 + + 0.1*i3)^2)*exp(-3.155578786*(-1.435 + 0.1*i4)^2)*exp(-1.220130357*(-1.313 + + i5)^2)*exp(-0.505038737*(-3.576 + i6)^2)*exp(-0.097628938*(-3.212 + i7) + ^2) - 0.334229154*exp(-21.52996705*(-0.4485 + 0.1*i1)^2)*exp(-12.6084759*( + -0.9273 + 0.1*i2)^2)*exp(-12.73459431*(-0.6 + 0.1*i3)^2)*exp(-3.155578786* + (-0.9505 + 0.1*i4)^2)*exp(-1.220130357*(-1.909 + i5)^2)*exp(-0.505038737*( + -3.051 + i6)^2)*exp(-0.097628938*(-3.97 + i7)^2) - 0.543074157*exp(- + 21.52996705*(-0.3394 + 0.1*i1)^2)*exp(-12.6084759*(-0.8788 + 0.1*i2)^2)* + exp(-12.73459431*(-0.4727 + 0.1*i3)^2)*exp(-3.155578786*(-0.7646 + 0.1*i4) + ^2)*exp(-1.220130357*(-1.293 + i5)^2)*exp(-0.505038737*(-3.616 + i6)^2)* + exp(-0.097628938*(-3.273 + i7)^2) - 0.056502759*exp(-21.52996705*(-0.3515 + + 0.1*i1)^2)*exp(-12.6084759*(-0.9576 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.8182 + 0.1*i3)^2)*exp(-3.155578786*(-0.7485 + 0.1*i4)^2)*exp(- + 1.220130357*(-1.768 + i5)^2)*exp(-0.505038737*(-3.505 + i6)^2)*exp(- + 0.097628938*(-3.394 + i7)^2) + 0.197876739*exp(-21.52996705*(-0.4061 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.6667 + 0.1*i2)^2)*exp(-12.73459431*(-0.9576 + + 0.1*i3)^2)*exp(-3.155578786*(-1.096 + 0.1*i4)^2)*exp(-1.220130357*(-1.131 + + i5)^2)*exp(-0.505038737*(-3.071 + i6)^2)*exp(-0.097628938*(-4.242 + i7) + ^2) + 0.414342363*exp(-21.52996705*(-0.5788 + 0.1*i1)^2)*exp(-12.6084759*( + -0.6545 + 0.1*i2)^2)*exp(-12.73459431*(-0.7697 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.9101 + 0.1*i4)^2)*exp(-1.220130357*(-1.97 + i5)^2)*exp(- + 0.505038737*(-3.162 + i6)^2)*exp(-0.097628938*(-3.364 + i7)^2) + + 0.226838487*exp(-21.52996705*(-0.4788 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9818 + 0.1*i2)^2)*exp(-12.73459431*(-0.9879 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.193 + 0.1*i4)^2)*exp(-1.220130357*(-1.586 + i5)^2)*exp(- + 0.505038737*(-3.798 + i6)^2)*exp(-0.097628938*(-3.03 + i7)^2) + + 0.167034746*exp(-21.52996705*(-0.3182 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5697 + 0.1*i2)^2)*exp(-12.73459431*(-0.7091 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.217 + 0.1*i4)^2)*exp(-1.220130357*(-1.061 + i5)^2)*exp(- + 0.505038737*(-3.646 + i6)^2)*exp(-0.097628938*(-2.455 + i7)^2) - + 0.636740748*exp(-21.52996705*(-0.3909 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8606 + 0.1*i2)^2)*exp(-12.73459431*(-0.5818 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.468 + 0.1*i4)^2)*exp(-1.220130357*(-1.03 + i5)^2)*exp(- + 0.505038737*(-3.455 + i6)^2)*exp(-0.097628938*(-3.242 + i7)^2) + + 0.280579179*exp(-21.52996705*(-0.5909 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6303 + 0.1*i2)^2)*exp(-12.73459431*(-0.5091 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.266 + 0.1*i4)^2)*exp(-1.220130357*(-1.303 + i5)^2)*exp(- + 0.505038737*(-3.899 + i6)^2)*exp(-0.097628938*(-3.909 + i7)^2) + + 0.280675426*exp(-21.52996705*(-0.5939 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6727 + 0.1*i2)^2)*exp(-12.73459431*(-0.7758 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.249 + 0.1*i4)^2)*exp(-1.220130357*(-1.818 + i5)^2)*exp(- + 0.505038737*(-3.586 + i6)^2)*exp(-0.097628938*(-4.848 + i7)^2) - + 0.120718177*exp(-21.52996705*(-0.5242 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8061 + 0.1*i2)^2)*exp(-12.73459431*(-0.5697 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.452 + 0.1*i4)^2)*exp(-1.220130357*(-1.949 + i5)^2)*exp(- + 0.505038737*(-3.253 + i6)^2)*exp(-0.097628938*(-3.606 + i7)^2) - + 0.071614678*exp(-21.52996705*(-0.5667 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9636 + 0.1*i2)^2)*exp(-12.73459431*(-0.6182 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.7242 + 0.1*i4)^2)*exp(-1.220130357*(-1.495 + i5)^2)*exp(- + 0.505038737*(-3.475 + i6)^2)*exp(-0.097628938*(-3.818 + i7)^2) + + 0.24895609*exp(-21.52996705*(-0.3364 + 0.1*i1)^2)*exp(-12.6084759*(-0.5091 + + 0.1*i2)^2)*exp(-12.73459431*(-0.697 + 0.1*i3)^2)*exp(-3.155578786*(- + 0.7323 + 0.1*i4)^2)*exp(-1.220130357*(-1.182 + i5)^2)*exp(-0.505038737*(- + 3.313 + i6)^2)*exp(-0.097628938*(-3.727 + i7)^2) + 0.176552587*exp(- + 21.52996705*(-0.4212 + 0.1*i1)^2)*exp(-12.6084759*(-0.6061 + 0.1*i2)^2)* + exp(-12.73459431*(-0.8485 + 0.1*i3)^2)*exp(-3.155578786*(-1.476 + 0.1*i4)^ + 2)*exp(-1.220130357*(-1.505 + i5)^2)*exp(-0.505038737*(-3.364 + i6)^2)* + exp(-0.097628938*(-5 + i7)^2) + 0.976643177*exp(-21.52996705*(-0.3697 + + 0.1*i1)^2)*exp(-12.6084759*(-0.8485 + 0.1*i2)^2)*exp(-12.73459431*(-0.5455 + + 0.1*i3)^2)*exp(-3.155578786*(-0.902 + 0.1*i4)^2)*exp(-1.220130357*(- + 1.788 + i5)^2)*exp(-0.505038737*(-3.697 + i6)^2)*exp(-0.097628938*(-4.909 + + i7)^2) + 0.320541362*exp(-21.52996705*(-0.5121 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.5758 + 0.1*i2)^2)*exp(-12.73459431*(-0.9091 + 0.1*i3)^2)* + exp(-3.155578786*(-0.8051 + 0.1*i4)^2)*exp(-1.220130357*(-1.152 + i5)^2)* + exp(-0.505038737*(-3.667 + i6)^2)*exp(-0.097628938*(-4.485 + i7)^2) + + 0.036267823*exp(-21.52996705*(-0.4697 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7455 + 0.1*i2)^2)*exp(-12.73459431*(-0.9515 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.33 + 0.1*i4)^2)*exp(-1.220130357*(-1.162 + i5)^2)*exp(- + 0.505038737*(-3.354 + i6)^2)*exp(-0.097628938*(-2.182 + i7)^2) - + 0.484795459*exp(-21.52996705*(-0.4758 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6848 + 0.1*i2)^2)*exp(-12.73459431*(-0.4848 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.7 + 0.1*i4)^2)*exp(-1.220130357*(-1.939 + i5)^2)*exp(- + 0.505038737*(-3.515 + i6)^2)*exp(-0.097628938*(-3.333 + i7)^2) - + 0.454836836*exp(-21.52996705*(-0.3152 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5879 + 0.1*i2)^2)*exp(-12.73459431*(-0.8667 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.031 + 0.1*i4)^2)*exp(-1.220130357*(-1.485 + i5)^2)*exp(- + 0.505038737*(-3.182 + i6)^2)*exp(-0.097628938*(-2.242 + i7)^2) + + 0.588829441*exp(-21.52996705*(-0.3818 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7333 + 0.1*i2)^2)*exp(-12.73459431*(-0.4061 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.201 + 0.1*i4)^2)*exp(-1.220130357*(-1.283 + i5)^2)*exp(- + 0.505038737*(-3.949 + i6)^2)*exp(-0.097628938*(-3 + i7)^2) - 0.744404733* + exp(-21.52996705*(-0.5182 + 0.1*i1)^2)*exp(-12.6084759*(-0.9939 + 0.1*i2)^ + 2)*exp(-12.73459431*(-0.8788 + 0.1*i3)^2)*exp(-3.155578786*(-1.072 + 0.1* + i4)^2)*exp(-1.220130357*(-1.081 + i5)^2)*exp(-0.505038737*(-3.303 + i6)^2) + *exp(-0.097628938*(-3.545 + i7)^2) - 0.379288663*exp(-21.52996705*(-0.4424 + + 0.1*i1)^2)*exp(-12.6084759*(-0.8364 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.5333 + 0.1*i3)^2)*exp(-3.155578786*(-1.484 + 0.1*i4)^2)*exp(-1.220130357 + *(-1.677 + i5)^2)*exp(-0.505038737*(-3.737 + i6)^2)*exp(-0.097628938*(- + 2.333 + i7)^2) + 0.273183945*exp(-21.52996705*(-0.397 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.5939 + 0.1*i2)^2)*exp(-12.73459431*(-0.8545 + 0.1*i3)^2)* + exp(-3.155578786*(-1.363 + 0.1*i4)^2)*exp(-1.220130357*(-1.869 + i5)^2)* + exp(-0.505038737*(-3.02 + i6)^2)*exp(-0.097628938*(-3.515 + i7)^2) + + 0.582966532*exp(-21.52996705*(-0.4879 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4788 + 0.1*i2)^2)*exp(-12.73459431*(-0.6121 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.8939 + 0.1*i4)^2)*exp(-1.220130357*(-1.051 + i5)^2)*exp(- + 0.505038737*(-3.879 + i6)^2)*exp(-0.097628938*(-3.182 + i7)^2) - + 0.024763698*exp(-21.52996705*(-0.3545 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4364 + 0.1*i2)^2)*exp(-12.73459431*(-0.7333 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.9828 + 0.1*i4)^2)*exp(-1.220130357*(-1.99 + i5)^2)*exp(- + 0.505038737*(-3.495 + i6)^2)*exp(-0.097628938*(-2.97 + i7)^2) - + 0.349758288*exp(-21.52996705*(-0.5424 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6909 + 0.1*i2)^2)*exp(-12.73459431*(-0.6727 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.7889 + 0.1*i4)^2)*exp(-1.220130357*(-1.121 + i5)^2)*exp(- + 0.505038737*(-3.091 + i6)^2)*exp(-0.097628938*(-4.121 + i7)^2) + + 0.458702268*exp(-21.52996705*(-0.4848 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7879 + 0.1*i2)^2)*exp(-12.73459431*(-0.6909 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.7162 + 0.1*i4)^2)*exp(-1.220130357*(-1.475 + i5)^2)*exp(- + 0.505038737*(-3.131 + i6)^2)*exp(-0.097628938*(-2.212 + i7)^2) + + 0.067060924*exp(-21.52996705*(-0.4394 + 0.1*i1)^2)*exp(-12.6084759*(-0.897 + + 0.1*i2)^2)*exp(-12.73459431*(-0.9758 + 0.1*i3)^2)*exp(-3.155578786*(- + 1.023 + 0.1*i4)^2)*exp(-1.220130357*(-1.667 + i5)^2)*exp(-0.505038737*(- + 3.061 + i6)^2)*exp(-0.097628938*(-2.879 + i7)^2) - 0.362839987*exp(- + 21.52996705*(-0.3848 + 0.1*i1)^2)*exp(-12.6084759*(-0.5394 + 0.1*i2)^2)* + exp(-12.73459431*(-0.9152 + 0.1*i3)^2)*exp(-3.155578786*(-1.5 + 0.1*i4)^2) + *exp(-1.220130357*(-1.596 + i5)^2)*exp(-0.505038737*(-3.636 + i6)^2)*exp(- + 0.097628938*(-2.727 + i7)^2) + 0.187371647*exp(-21.52996705*(-0.5545 + 0.1 + *i1)^2)*exp(-12.6084759*(-0.9758 + 0.1*i2)^2)*exp(-12.73459431*(-0.7212 + + 0.1*i3)^2)*exp(-3.155578786*(-1.08 + 0.1*i4)^2)*exp(-1.220130357*(-1.838 + + i5)^2)*exp(-0.505038737*(-3.434 + i6)^2)*exp(-0.097628938*(-2.364 + i7) + ^2) + 0.074433501*exp(-21.52996705*(-0.3758 + 0.1*i1)^2)*exp(-12.6084759*( + -0.8667 + 0.1*i2)^2)*exp(-12.73459431*(-0.5394 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.015 + 0.1*i4)^2)*exp(-1.220130357*(-1.919 + i5)^2)*exp(- + 0.505038737*(-3.909 + i6)^2)*exp(-0.097628938*(-2.939 + i7)^2) + + 0.650667838*exp(-21.52996705*(-0.3212 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7576 + 0.1*i2)^2)*exp(-12.73459431*(-0.5212 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.9343 + 0.1*i4)^2)*exp(-1.220130357*(-1.808 + i5)^2)*exp(- + 0.505038737*(-3.212 + i6)^2)*exp(-0.097628938*(-2.545 + i7)^2) + + 0.500469538*exp(-21.52996705*(-0.4727 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9333 + 0.1*i2)^2)*exp(-12.73459431*(-0.6485 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.322 + 0.1*i4)^2)*exp(-1.220130357*(-1.394 + i5)^2)*exp(- + 0.505038737*(-3.081 + i6)^2)*exp(-0.097628938*(-4.697 + i7)^2) + + 0.073587605*exp(-21.52996705*(-0.4576 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5455 + 0.1*i2)^2)*exp(-12.73459431*(-0.9939 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.169 + 0.1*i4)^2)*exp(-1.220130357*(-1.98 + i5)^2)*exp(- + 0.505038737*(-3.626 + i6)^2)*exp(-0.097628938*(-3.939 + i7)^2) + + 0.00322623*exp(-21.52996705*(-0.3242 + 0.1*i1)^2)*exp(-12.6084759*(-0.9212 + + 0.1*i2)^2)*exp(-12.73459431*(-0.4667 + 0.1*i3)^2)*exp(-3.155578786*(- + 1.314 + 0.1*i4)^2)*exp(-1.220130357*(-1.697 + i5)^2)*exp(-0.505038737*(- + 3.374 + i6)^2)*exp(-0.097628938*(-3.758 + i7)^2) - 0.035237873*exp(- + 21.52996705*(-0.5697 + 0.1*i1)^2)*exp(-12.6084759*(-0.4182 + 0.1*i2)^2)* + exp(-12.73459431*(-0.7394 + 0.1*i3)^2)*exp(-3.155578786*(-0.8374 + 0.1*i4) + ^2)*exp(-1.220130357*(-1.717 + i5)^2)*exp(-0.505038737*(-3.727 + i6)^2)* + exp(-0.097628938*(-3.303 + i7)^2) + 0.390929269*exp(-21.52996705*(-0.3727 + + 0.1*i1)^2)*exp(-12.6084759*(-0.9879 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.6848 + 0.1*i3)^2)*exp(-3.155578786*(-1.104 + 0.1*i4)^2)*exp(-1.220130357 + *(-1.343 + i5)^2)*exp(-0.505038737*(-3.606 + i6)^2)*exp(-0.097628938*(-2 + + i7)^2) - 1.028893211*exp(-21.52996705*(-0.5091 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.4667 + 0.1*i2)^2)*exp(-12.73459431*(-0.8303 + 0.1*i3)^2)* + exp(-3.155578786*(-0.8859 + 0.1*i4)^2)*exp(-1.220130357*(-1.111 + i5)^2)* + exp(-0.505038737*(-3.283 + i6)^2)*exp(-0.097628938*(-2.576 + i7)^2) - + 0.433352323*exp(-21.52996705*(-0.3485 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9091 + 0.1*i2)^2)*exp(-12.73459431*(-0.6606 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.999 + 0.1*i4)^2)*exp(-1.220130357*(-1.172 + i5)^2)*exp(- + 0.505038737*(-3.03 + i6)^2)*exp(-0.097628938*(-3.152 + i7)^2) - + 0.042051116*exp(-21.52996705*(-0.5848 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.6788 + 0.1*i2)^2)*exp(-12.73459431*(-0.8 + 0.1*i3)^2)*exp(-3.155578786*( + -1.298 + 0.1*i4)^2)*exp(-1.220130357*(-1.848 + i5)^2)*exp(-0.505038737*(- + 3.828 + i6)^2)*exp(-0.097628938*(-2.636 + i7)^2) - 0.524375077*exp(- + 21.52996705*(-0.3303 + 0.1*i1)^2)*exp(-12.6084759*(-0.5212 + 0.1*i2)^2)* + exp(-12.73459431*(-0.497 + 0.1*i3)^2)*exp(-3.155578786*(-1.395 + 0.1*i4)^2 + )*exp(-1.220130357*(-1.636 + i5)^2)*exp(-0.505038737*(-3.384 + i6)^2)*exp( + -0.097628938*(-2.697 + i7)^2) - 0.039263382*exp(-21.52996705*(-0.3061 + + 0.1*i1)^2)*exp(-12.6084759*(-0.6242 + 0.1*i2)^2)*exp(-12.73459431*(-0.6788 + + 0.1*i3)^2)*exp(-3.155578786*(-1.338 + 0.1*i4)^2)*exp(-1.220130357*(- + 1.859 + i5)^2)*exp(-0.505038737*(-3.758 + i6)^2)*exp(-0.097628938*(-4.273 + + i7)^2) - 0.856666533*exp(-21.52996705*(-0.5485 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.4545 + 0.1*i2)^2)*exp(-12.73459431*(-0.8848 + 0.1*i3)^2)* + exp(-3.155578786*(-1.112 + 0.1*i4)^2)*exp(-1.220130357*(-1.515 + i5)^2)* + exp(-0.505038737*(-3.101 + i6)^2)*exp(-0.097628938*(-4.333 + i7)^2) + + 0.414031533*exp(-21.52996705*(-0.4636 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7939 + 0.1*i2)^2)*exp(-12.73459431*(-0.7879 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.492 + 0.1*i4)^2)*exp(-1.220130357*(-1.707 + i5)^2)*exp(- + 0.505038737*(-3.97 + i6)^2)*exp(-0.097628938*(-4.03 + i7)^2) - 0.273031805 + *exp(-21.52996705*(-0.3455 + 0.1*i1)^2)*exp(-12.6084759*(-0.5818 + 0.1*i2) + ^2)*exp(-12.73459431*(-0.7455 + 0.1*i3)^2)*exp(-3.155578786*(-0.7404 + 0.1 + *i4)^2)*exp(-1.220130357*(-1.687 + i5)^2)*exp(-0.505038737*(-3.929 + i6)^2 + )*exp(-0.097628938*(-3.788 + i7)^2) + 0.17359616*exp(-21.52996705*(-0.6 + + 0.1*i1)^2)*exp(-12.6084759*(-0.7515 + 0.1*i2)^2)*exp(-12.73459431*(-0.9455 + + 0.1*i3)^2)*exp(-3.155578786*(-0.8616 + 0.1*i4)^2)*exp(-1.220130357*(- + 1.384 + i5)^2)*exp(-0.505038737*(-3.596 + i6)^2)*exp(-0.097628938*(-2.848 + + i7)^2) + 0.714173511*exp(-21.52996705*(-0.3273 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.4 + 0.1*i2)^2)*exp(-12.73459431*(-0.897 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.12 + 0.1*i4)^2)*exp(-1.220130357*(-1.404 + i5)^2)*exp(- + 0.505038737*(-3.525 + i6)^2)*exp(-0.097628938*(-4.182 + i7)^2) + + 0.47763085*exp(-21.52996705*(-0.5212 + 0.1*i1)^2)*exp(-12.6084759*(-0.497 + + 0.1*i2)^2)*exp(-12.73459431*(-0.8909 + 0.1*i3)^2)*exp(-3.155578786*(- + 1.185 + 0.1*i4)^2)*exp(-1.220130357*(-1.737 + i5)^2)*exp(-0.505038737*(- + 3.293 + i6)^2)*exp(-0.097628938*(-2.091 + i7)^2) + 0.248717826*exp(- + 21.52996705*(-0.4303 + 0.1*i1)^2)*exp(-12.6084759*(-0.4606 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6242 + 0.1*i3)^2)*exp(-3.155578786*(-1.225 + 0.1*i4)^ + 2)*exp(-1.220130357*(-1.727 + i5)^2)*exp(-0.505038737*(-3.96 + i6)^2)*exp( + -0.097628938*(-2.424 + i7)^2) - 0.126693752*exp(-21.52996705*(-0.3121 + + 0.1*i1)^2)*exp(-12.6084759*(-0.8909 + 0.1*i2)^2)*exp(-12.73459431*(-0.903 + + 0.1*i3)^2)*exp(-3.155578786*(-1.387 + 0.1*i4)^2)*exp(-1.220130357*(- + 1.414 + i5)^2)*exp(-0.505038737*(-3.323 + i6)^2)*exp(-0.097628938*(-3.636 + + i7)^2) - 0.20899547*exp(-21.52996705*(-0.3424 + 0.1*i1)^2)*exp(- + 12.6084759*(-0.4485 + 0.1*i2)^2)*exp(-12.73459431*(-0.4182 + 0.1*i3)^2)* + exp(-3.155578786*(-0.9747 + 0.1*i4)^2)*exp(-1.220130357*(-1.566 + i5)^2)* + exp(-0.505038737*(-3.657 + i6)^2)*exp(-0.097628938*(-3.879 + i7)^2) - + 0.438088389*exp(-21.52996705*(-0.497 + 0.1*i1)^2)*exp(-12.6084759*(-0.7697 + + 0.1*i2)^2)*exp(-12.73459431*(-0.7939 + 0.1*i3)^2)*exp(-3.155578786*(- + 1.274 + 0.1*i4)^2)*exp(-1.220130357*(-1.141 + i5)^2)*exp(-0.505038737*(-4 + + i6)^2)*exp(-0.097628938*(-2.515 + i7)^2) + 0.314071543*exp(-21.52996705 + *(-0.4939 + 0.1*i1)^2)*exp(-12.6084759*(-0.5576 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.4545 + 0.1*i3)^2)*exp(-3.155578786*(-1.177 + 0.1*i4)^2)* + exp(-1.220130357*(-1.96 + i5)^2)*exp(-0.505038737*(-3.818 + i6)^2)*exp(- + 0.097628938*(-4 + i7)^2) + 0.637802589*exp(-21.52996705*(-0.5 + 0.1*i1)^2) + *exp(-12.6084759*(-0.9515 + 0.1*i2)^2)*exp(-12.73459431*(-0.4 + 0.1*i3)^2) + *exp(-3.155578786*(-1.088 + 0.1*i4)^2)*exp(-1.220130357*(-1.455 + i5)^2)* + exp(-0.505038737*(-3.242 + i6)^2)*exp(-0.097628938*(-2.788 + i7)^2) - + 0.580906099*exp(-21.52996705*(-0.4182 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9455 + 0.1*i2)^2)*exp(-12.73459431*(-0.8364 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.258 + 0.1*i4)^2)*exp(-1.220130357*(-1.929 + i5)^2)*exp(- + 0.505038737*(-3.465 + i6)^2)*exp(-0.097628938*(-4.606 + i7)^2) + + 0.423718853*exp(-21.52996705*(-0.3636 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7818 + 0.1*i2)^2)*exp(-12.73459431*(-1 + 0.1*i3)^2)*exp(-3.155578786*(- + 0.9909 + 0.1*i4)^2)*exp(-1.220130357*(-1.535 + i5)^2)*exp(-0.505038737*(- + 3.768 + i6)^2)*exp(-0.097628938*(-4.667 + i7)^2) + 0.346674578*exp(- + 21.52996705*(-0.4091 + 0.1*i1)^2)*exp(-12.6084759*(-0.7212 + 0.1*i2)^2)* + exp(-12.73459431*(-0.9273 + 0.1*i3)^2)*exp(-3.155578786*(-1.371 + 0.1*i4)^ + 2)*exp(-1.220130357*(-1.04 + i5)^2)*exp(-0.505038737*(-3.747 + i6)^2)*exp( + -0.097628938*(-4.152 + i7)^2) + 0.362285701*exp(-21.52996705*(-0.4455 + + 0.1*i1)^2)*exp(-12.6084759*(-0.4242 + 0.1*i2)^2)*exp(-12.73459431*(-0.5879 + + 0.1*i3)^2)*exp(-3.155578786*(-0.9182 + 0.1*i4)^2)*exp(-1.220130357*(- + 1.626 + i5)^2)*exp(-0.505038737*(-3 + i6)^2)*exp(-0.097628938*(-3.091 + i7 + )^2) - 0.209094833*exp(-21.52996705*(-0.3667 + 0.1*i1)^2)*exp(-12.6084759* + (-0.8424 + 0.1*i2)^2)*exp(-12.73459431*(-0.8242 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.29 + 0.1*i4)^2)*exp(-1.220130357*(-2 + i5)^2)*exp(- + 0.505038737*(-3.485 + i6)^2)*exp(-0.097628938*(-2.485 + i7)^2) - + 0.284313771*exp(-21.52996705*(-0.4 + 0.1*i1)^2)*exp(-12.6084759*(-0.6 + + 0.1*i2)^2)*exp(-12.73459431*(-0.4364 + 0.1*i3)^2)*exp(-3.155578786*(-1.056 + + 0.1*i4)^2)*exp(-1.220130357*(-1.091 + i5)^2)*exp(-0.505038737*(-3.202 + + i6)^2)*exp(-0.097628938*(-2.606 + i7)^2) + 0.064702145*exp(-21.52996705 + *(-0.5303 + 0.1*i1)^2)*exp(-12.6084759*(-0.8545 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.9212 + 0.1*i3)^2)*exp(-3.155578786*(-0.8778 + 0.1*i4)^2)* + exp(-1.220130357*(-1.616 + i5)^2)*exp(-0.505038737*(-3.232 + i6)^2)*exp(- + 0.097628938*(-4.727 + i7)^2) - 0.0339692*exp(-21.52996705*(-0.3879 + 0.1* + i1)^2)*exp(-12.6084759*(-0.5515 + 0.1*i2)^2)*exp(-12.73459431*(-0.5576 + + 0.1*i3)^2)*exp(-3.155578786*(-0.7808 + 0.1*i4)^2)*exp(-1.220130357*(-1.444 + + i5)^2)*exp(-0.505038737*(-3.677 + i6)^2)*exp(-0.097628938*(-2.03 + i7)^ + 2) - 0.005022909*exp(-21.52996705*(-0.4515 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7273 + 0.1*i2)^2)*exp(-12.73459431*(-0.8727 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.8131 + 0.1*i4)^2)*exp(-1.220130357*(-1.828 + i5)^2)*exp(- + 0.505038737*(-3.717 + i6)^2)*exp(-0.097628938*(-2.061 + i7)^2) + + 0.165530375*exp(-21.52996705*(-0.4818 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4121 + 0.1*i2)^2)*exp(-12.73459431*(-0.5515 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.064 + 0.1*i4)^2)*exp(-1.220130357*(-1.202 + i5)^2)*exp(- + 0.505038737*(-3.404 + i6)^2)*exp(-0.097628938*(-4.788 + i7)^2) - + 0.145510512*exp(-21.52996705*(-0.5515 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8182 + 0.1*i2)^2)*exp(-12.73459431*(-0.9636 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.443 + 0.1*i4)^2)*exp(-1.220130357*(-1.606 + i5)^2)*exp(- + 0.505038737*(-3.263 + i6)^2)*exp(-0.097628938*(-3.667 + i7)^2) - + 0.633187461*exp(-21.52996705*(-0.4667 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.4727 + 0.1*i2)^2)*exp(-12.73459431*(-0.7818 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.136 + 0.1*i4)^2)*exp(-1.220130357*(-1.545 + i5)^2)*exp(- + 0.505038737*(-3.99 + i6)^2)*exp(-0.097628938*(-4.758 + i7)^2) - + 1.342191652*exp(-21.52996705*(-0.5606 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.7758 + 0.1*i2)^2)*exp(-12.73459431*(-0.5273 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.9263 + 0.1*i4)^2)*exp(-1.220130357*(-1.576 + i5)^2)*exp(- + 0.505038737*(-3.919 + i6)^2)*exp(-0.097628938*(-2.394 + i7)^2) + + 0.695992406*exp(-21.52996705*(-0.4333 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.5636 + 0.1*i2)^2)*exp(-12.73459431*(-0.9818 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.7081 + 0.1*i4)^2)*exp(-1.220130357*(-1.657 + i5)^2)*exp(- + 0.505038737*(-3.273 + i6)^2)*exp(-0.097628938*(-3.455 + i7)^2) + + 1.164868466*exp(-21.52996705*(-0.5333 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8303 + 0.1*i2)^2)*exp(-12.73459431*(-0.6061 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.9424 + 0.1*i4)^2)*exp(-1.220130357*(-1 + i5)^2)*exp(- + 0.505038737*(-3.545 + i6)^2)*exp(-0.097628938*(-2.303 + i7)^2) + + 0.052017603*exp(-21.52996705*(-0.3788 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.9152 + 0.1*i2)^2)*exp(-12.73459431*(-0.7515 + 0.1*i3)^2)*exp(- + 3.155578786*(-0.8455 + 0.1*i4)^2)*exp(-1.220130357*(-1.212 + i5)^2)*exp(- + 0.505038737*(-3.394 + i6)^2)*exp(-0.097628938*(-4.879 + i7)^2) - + 0.201242181*exp(-21.52996705*(-0.4909 + 0.1*i1)^2)*exp(-12.6084759*(- + 0.8727 + 0.1*i2)^2)*exp(-12.73459431*(-0.4424 + 0.1*i3)^2)*exp(- + 3.155578786*(-1.047 + 0.1*i4)^2)*exp(-1.220130357*(-1.02 + i5)^2)*exp(- + 0.505038737*(-3.556 + i6)^2)*exp(-0.097628938*(-4.303 + i7)^2)) + x8 + >= 3.642782345; + + -(-0.312065987*exp(-24.63411825*(-0.303 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.697 + 0.1*i2)^2)*exp(-12.57616598*(-0.8061 + 0.1*i3)^2)*exp(-3.71440674* + (-0.9586 + 0.1*i4)^2)*exp(-1.04737272*(-1.758 + i5)^2)*exp(-0.361999959*(- + 3.141 + i6)^2)*exp(-0.048567117*(-4.424 + i7)^2) - 0.357295222*exp(- + 24.63411825*(-0.5364 + 0.1*i1)^2)*exp(-12.73459431*(-0.9697 + 0.1*i2)^2)* + exp(-12.57616598*(-0.4909 + 0.1*i3)^2)*exp(-3.71440674*(-1.161 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.778 + i5)^2)*exp(-0.361999959*(-3.778 + i6)^2)*exp(- + 0.048567117*(-4.091 + i7)^2) - 0.772774411*exp(-24.63411825*(-0.503 + 0.1* + i1)^2)*exp(-12.73459431*(-0.6182 + 0.1*i2)^2)*exp(-12.57616598*(-0.4121 + + 0.1*i3)^2)*exp(-3.71440674*(-1.419 + 0.1*i4)^2)*exp(-1.04737272*(-1.333 + + i5)^2)*exp(-0.361999959*(-3.152 + i6)^2)*exp(-0.048567117*(-3.697 + i7)^2) + + 0.3105613*exp(-24.63411825*(-0.4606 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.903 + 0.1*i2)^2)*exp(-12.57616598*(-0.7576 + 0.1*i3)^2)*exp(-3.71440674* + (-0.7727 + 0.1*i4)^2)*exp(-1.04737272*(-1.242 + i5)^2)*exp(-0.361999959*(- + 3.98 + i6)^2)*exp(-0.048567117*(-3.424 + i7)^2) - 0.323150658*exp(- + 24.63411825*(-0.3 + 0.1*i1)^2)*exp(-12.73459431*(-0.7636 + 0.1*i2)^2)*exp( + -12.57616598*(-0.8606 + 0.1*i3)^2)*exp(-3.71440674*(-1.153 + 0.1*i4)^2)* + exp(-1.04737272*(-1.556 + i5)^2)*exp(-0.361999959*(-3.939 + i6)^2)*exp(- + 0.048567117*(-2.818 + i7)^2) - 0.258515247*exp(-24.63411825*(-0.5879 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.703 + 0.1*i2)^2)*exp(-12.57616598*(-0.4788 + + 0.1*i3)^2)*exp(-3.71440674*(-1.039 + 0.1*i4)^2)*exp(-1.04737272*(-1.646 + + i5)^2)*exp(-0.361999959*(-3.222 + i6)^2)*exp(-0.048567117*(-4.636 + i7)^2) + + 0.170493394*exp(-24.63411825*(-0.4121 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4424 + 0.1*i2)^2)*exp(-12.57616598*(-0.5939 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.46 + 0.1*i4)^2)*exp(-1.04737272*(-1.232 + i5)^2)*exp(-0.361999959*(- + 3.788 + i6)^2)*exp(-0.048567117*(-3.848 + i7)^2) + 0.52299478*exp(- + 24.63411825*(-0.5576 + 0.1*i1)^2)*exp(-12.73459431*(-0.8848 + 0.1*i2)^2)* + exp(-12.57616598*(-0.8121 + 0.1*i3)^2)*exp(-3.71440674*(-1.128 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.263 + i5)^2)*exp(-0.361999959*(-3.808 + i6)^2)*exp(- + 0.048567117*(-4.818 + i7)^2) - 0.630409239*exp(-24.63411825*(-0.4273 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.4848 + 0.1*i2)^2)*exp(-12.57616598*(-0.9697 + + 0.1*i3)^2)*exp(-3.71440674*(-0.9667 + 0.1*i4)^2)*exp(-1.04737272*(- + 1.364 + i5)^2)*exp(-0.361999959*(-3.869 + i6)^2)*exp(-0.048567117*(-2.667 + + i7)^2) - 1.067635384*exp(-24.63411825*(-0.5455 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.4061 + 0.1*i2)^2)*exp(-12.57616598*(-0.6303 + 0.1*i3)^2)* + exp(-3.71440674*(-1.427 + 0.1*i4)^2)*exp(-1.04737272*(-1.747 + i5)^2)*exp( + -0.361999959*(-3.444 + i6)^2)*exp(-0.048567117*(-3.576 + i7)^2) + + 0.75140214*exp(-24.63411825*(-0.5394 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5273 + 0.1*i2)^2)*exp(-12.57616598*(-0.5636 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.355 + 0.1*i4)^2)*exp(-1.04737272*(-1.253 + i5)^2)*exp(-0.361999959*(- + 3.566 + i6)^2)*exp(-0.048567117*(-2.121 + i7)^2) - 0.649675641*exp(- + 24.63411825*(-0.5273 + 0.1*i1)^2)*exp(-12.73459431*(-0.8121 + 0.1*i2)^2)* + exp(-12.57616598*(-0.8424 + 0.1*i3)^2)*exp(-3.71440674*(-0.8535 + 0.1*i4)^ + 2)*exp(-1.04737272*(-1.899 + i5)^2)*exp(-0.361999959*(-3.889 + i6)^2)*exp( + -0.048567117*(-4.061 + i7)^2) - 0.038277931*exp(-24.63411825*(-0.5727 + + 0.1*i1)^2)*exp(-12.73459431*(-0.4909 + 0.1*i2)^2)*exp(-12.57616598*(- + 0.9333 + 0.1*i3)^2)*exp(-3.71440674*(-1.306 + 0.1*i4)^2)*exp(-1.04737272*( + -1.273 + i5)^2)*exp(-0.361999959*(-3.707 + i6)^2)*exp(-0.048567117*(-3.485 + + i7)^2) - 0.456943073*exp(-24.63411825*(-0.3091 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.6364 + 0.1*i2)^2)*exp(-12.57616598*(-0.5758 + 0.1*i3)^2)* + exp(-3.71440674*(-1.282 + 0.1*i4)^2)*exp(-1.04737272*(-1.222 + i5)^2)*exp( + -0.361999959*(-3.192 + i6)^2)*exp(-0.048567117*(-4.455 + i7)^2) + + 0.58081135*exp(-24.63411825*(-0.4364 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.7394 + 0.1*i2)^2)*exp(-12.57616598*(-0.4485 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.403 + 0.1*i4)^2)*exp(-1.04737272*(-1.465 + i5)^2)*exp(-0.361999959*(- + 3.687 + i6)^2)*exp(-0.048567117*(-4.939 + i7)^2) + 0.46410436*exp(- + 24.63411825*(-0.5636 + 0.1*i1)^2)*exp(-12.73459431*(-0.6485 + 0.1*i2)^2)* + exp(-12.57616598*(-0.7273 + 0.1*i3)^2)*exp(-3.71440674*(-1.346 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.01 + i5)^2)*exp(-0.361999959*(-3.333 + i6)^2)*exp(- + 0.048567117*(-4.364 + i7)^2) - 0.185461534*exp(-24.63411825*(-0.597 + 0.1* + i1)^2)*exp(-12.73459431*(-0.7152 + 0.1*i2)^2)*exp(-12.57616598*(-0.703 + + 0.1*i3)^2)*exp(-3.71440674*(-1.209 + 0.1*i4)^2)*exp(-1.04737272*(-1.354 + + i5)^2)*exp(-0.361999959*(-3.01 + i6)^2)*exp(-0.048567117*(-2.758 + i7)^2) + + 0.941372813*exp(-24.63411825*(-0.5152 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6606 + 0.1*i2)^2)*exp(-12.57616598*(-0.503 + 0.1*i3)^2)*exp(-3.71440674* + (-0.7566 + 0.1*i4)^2)*exp(-1.04737272*(-1.424 + i5)^2)*exp(-0.361999959*(- + 3.848 + i6)^2)*exp(-0.048567117*(-4.576 + i7)^2) - 0.541064286*exp(- + 24.63411825*(-0.5758 + 0.1*i1)^2)*exp(-12.73459431*(-0.5152 + 0.1*i2)^2)* + exp(-12.57616598*(-0.4303 + 0.1*i3)^2)*exp(-3.71440674*(-0.8697 + 0.1*i4)^ + 2)*exp(-1.04737272*(-1.374 + i5)^2)*exp(-0.361999959*(-3.414 + i6)^2)*exp( + -0.048567117*(-3.061 + i7)^2) - 0.273734438*exp(-24.63411825*(-0.3939 + + 0.1*i1)^2)*exp(-12.73459431*(-0.7091 + 0.1*i2)^2)*exp(-12.57616598*(- + 0.4242 + 0.1*i3)^2)*exp(-3.71440674*(-0.8293 + 0.1*i4)^2)*exp(-1.04737272* + (-1.434 + i5)^2)*exp(-0.361999959*(-3.121 + i6)^2)*exp(-0.048567117*(- + 4.394 + i7)^2) - 0.188886283*exp(-24.63411825*(-0.403 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.5333 + 0.1*i2)^2)*exp(-12.57616598*(-0.5152 + 0.1*i3)^2)* + exp(-3.71440674*(-1.233 + 0.1*i4)^2)*exp(-1.04737272*(-1.889 + i5)^2)*exp( + -0.361999959*(-3.172 + i6)^2)*exp(-0.048567117*(-4.545 + i7)^2) + + 1.11288543*exp(-24.63411825*(-0.5061 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6121 + 0.1*i2)^2)*exp(-12.57616598*(-0.4606 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.144 + 0.1*i4)^2)*exp(-1.04737272*(-1.879 + i5)^2)*exp(-0.361999959*(- + 3.343 + i6)^2)*exp(-0.048567117*(-2.152 + i7)^2) + 0.493176357*exp(- + 24.63411825*(-0.4152 + 0.1*i1)^2)*exp(-12.73459431*(-0.8242 + 0.1*i2)^2)* + exp(-12.57616598*(-0.6545 + 0.1*i3)^2)*exp(-3.71440674*(-1.411 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.525 + i5)^2)*exp(-0.361999959*(-3.04 + i6)^2)*exp(- + 0.048567117*(-2.273 + i7)^2) + 0.493446682*exp(-24.63411825*(-0.4545 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.503 + 0.1*i2)^2)*exp(-12.57616598*(-0.7152 + + 0.1*i3)^2)*exp(-3.71440674*(-0.797 + 0.1*i4)^2)*exp(-1.04737272*(-1.798 + + i5)^2)*exp(-0.361999959*(-3.424 + i6)^2)*exp(-0.048567117*(-4.97 + i7)^2) + - 0.430121851*exp(-24.63411825*(-0.3606 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.8 + 0.1*i2)^2)*exp(-12.57616598*(-0.9394 + 0.1*i3)^2)*exp(-3.71440674*(- + 0.8212 + 0.1*i4)^2)*exp(-1.04737272*(-1.101 + i5)^2)*exp(-0.361999959*(- + 3.535 + i6)^2)*exp(-0.048567117*(-2.909 + i7)^2) + 0.081994816*exp(- + 24.63411825*(-0.5818 + 0.1*i1)^2)*exp(-12.73459431*(-0.9394 + 0.1*i2)^2)* + exp(-12.57616598*(-0.6364 + 0.1*i3)^2)*exp(-3.71440674*(-1.435 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.313 + i5)^2)*exp(-0.361999959*(-3.576 + i6)^2)*exp(- + 0.048567117*(-3.212 + i7)^2) - 0.271887472*exp(-24.63411825*(-0.4485 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.9273 + 0.1*i2)^2)*exp(-12.57616598*(-0.6 + + 0.1*i3)^2)*exp(-3.71440674*(-0.9505 + 0.1*i4)^2)*exp(-1.04737272*(-1.909 + + i5)^2)*exp(-0.361999959*(-3.051 + i6)^2)*exp(-0.048567117*(-3.97 + i7)^ + 2) - 1.06429544*exp(-24.63411825*(-0.3394 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.8788 + 0.1*i2)^2)*exp(-12.57616598*(-0.4727 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.7646 + 0.1*i4)^2)*exp(-1.04737272*(-1.293 + i5)^2)*exp(-0.361999959*( + -3.616 + i6)^2)*exp(-0.048567117*(-3.273 + i7)^2) - 0.365831496*exp(- + 24.63411825*(-0.3515 + 0.1*i1)^2)*exp(-12.73459431*(-0.9576 + 0.1*i2)^2)* + exp(-12.57616598*(-0.8182 + 0.1*i3)^2)*exp(-3.71440674*(-0.7485 + 0.1*i4)^ + 2)*exp(-1.04737272*(-1.768 + i5)^2)*exp(-0.361999959*(-3.505 + i6)^2)*exp( + -0.048567117*(-3.394 + i7)^2) + 0.318719295*exp(-24.63411825*(-0.4061 + + 0.1*i1)^2)*exp(-12.73459431*(-0.6667 + 0.1*i2)^2)*exp(-12.57616598*(- + 0.9576 + 0.1*i3)^2)*exp(-3.71440674*(-1.096 + 0.1*i4)^2)*exp(-1.04737272*( + -1.131 + i5)^2)*exp(-0.361999959*(-3.071 + i6)^2)*exp(-0.048567117*(-4.242 + + i7)^2) + 0.858392128*exp(-24.63411825*(-0.5788 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.6545 + 0.1*i2)^2)*exp(-12.57616598*(-0.7697 + 0.1*i3)^2)* + exp(-3.71440674*(-0.9101 + 0.1*i4)^2)*exp(-1.04737272*(-1.97 + i5)^2)*exp( + -0.361999959*(-3.162 + i6)^2)*exp(-0.048567117*(-3.364 + i7)^2) + + 0.457737972*exp(-24.63411825*(-0.4788 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9818 + 0.1*i2)^2)*exp(-12.57616598*(-0.9879 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.193 + 0.1*i4)^2)*exp(-1.04737272*(-1.586 + i5)^2)*exp(-0.361999959*(- + 3.798 + i6)^2)*exp(-0.048567117*(-3.03 + i7)^2) + 0.39833566*exp(- + 24.63411825*(-0.3182 + 0.1*i1)^2)*exp(-12.73459431*(-0.5697 + 0.1*i2)^2)* + exp(-12.57616598*(-0.7091 + 0.1*i3)^2)*exp(-3.71440674*(-1.217 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.061 + i5)^2)*exp(-0.361999959*(-3.646 + i6)^2)*exp(- + 0.048567117*(-2.455 + i7)^2) - 0.457199483*exp(-24.63411825*(-0.3909 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.8606 + 0.1*i2)^2)*exp(-12.57616598*(-0.5818 + + 0.1*i3)^2)*exp(-3.71440674*(-1.468 + 0.1*i4)^2)*exp(-1.04737272*(-1.03 + + i5)^2)*exp(-0.361999959*(-3.455 + i6)^2)*exp(-0.048567117*(-3.242 + i7) + ^2) + 0.47179625*exp(-24.63411825*(-0.5909 + 0.1*i1)^2)*exp(-12.73459431*( + -0.6303 + 0.1*i2)^2)*exp(-12.57616598*(-0.5091 + 0.1*i3)^2)*exp(- + 3.71440674*(-1.266 + 0.1*i4)^2)*exp(-1.04737272*(-1.303 + i5)^2)*exp(- + 0.361999959*(-3.899 + i6)^2)*exp(-0.048567117*(-3.909 + i7)^2) + + 0.691528123*exp(-24.63411825*(-0.5939 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6727 + 0.1*i2)^2)*exp(-12.57616598*(-0.7758 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.249 + 0.1*i4)^2)*exp(-1.04737272*(-1.818 + i5)^2)*exp(-0.361999959*(- + 3.586 + i6)^2)*exp(-0.048567117*(-4.848 + i7)^2) - 0.365021517*exp(- + 24.63411825*(-0.5242 + 0.1*i1)^2)*exp(-12.73459431*(-0.8061 + 0.1*i2)^2)* + exp(-12.57616598*(-0.5697 + 0.1*i3)^2)*exp(-3.71440674*(-1.452 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.949 + i5)^2)*exp(-0.361999959*(-3.253 + i6)^2)*exp(- + 0.048567117*(-3.606 + i7)^2) + 0.070850957*exp(-24.63411825*(-0.5667 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.9636 + 0.1*i2)^2)*exp(-12.57616598*(-0.6182 + + 0.1*i3)^2)*exp(-3.71440674*(-0.7242 + 0.1*i4)^2)*exp(-1.04737272*(- + 1.495 + i5)^2)*exp(-0.361999959*(-3.475 + i6)^2)*exp(-0.048567117*(-3.818 + + i7)^2) + 0.04854434*exp(-24.63411825*(-0.3364 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.5091 + 0.1*i2)^2)*exp(-12.57616598*(-0.697 + 0.1*i3)^2)* + exp(-3.71440674*(-0.7323 + 0.1*i4)^2)*exp(-1.04737272*(-1.182 + i5)^2)* + exp(-0.361999959*(-3.313 + i6)^2)*exp(-0.048567117*(-3.727 + i7)^2) + + 0.190837572*exp(-24.63411825*(-0.4212 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6061 + 0.1*i2)^2)*exp(-12.57616598*(-0.8485 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.476 + 0.1*i4)^2)*exp(-1.04737272*(-1.505 + i5)^2)*exp(-0.361999959*(- + 3.364 + i6)^2)*exp(-0.048567117*(-5 + i7)^2) + 1.01851563*exp(-24.63411825 + *(-0.3697 + 0.1*i1)^2)*exp(-12.73459431*(-0.8485 + 0.1*i2)^2)*exp(- + 12.57616598*(-0.5455 + 0.1*i3)^2)*exp(-3.71440674*(-0.902 + 0.1*i4)^2)* + exp(-1.04737272*(-1.788 + i5)^2)*exp(-0.361999959*(-3.697 + i6)^2)*exp(- + 0.048567117*(-4.909 + i7)^2) + 0.107827196*exp(-24.63411825*(-0.5121 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.5758 + 0.1*i2)^2)*exp(-12.57616598*(-0.9091 + + 0.1*i3)^2)*exp(-3.71440674*(-0.8051 + 0.1*i4)^2)*exp(-1.04737272*(- + 1.152 + i5)^2)*exp(-0.361999959*(-3.667 + i6)^2)*exp(-0.048567117*(-4.485 + + i7)^2) - 0.434819401*exp(-24.63411825*(-0.4697 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.7455 + 0.1*i2)^2)*exp(-12.57616598*(-0.9515 + 0.1*i3)^2)* + exp(-3.71440674*(-1.33 + 0.1*i4)^2)*exp(-1.04737272*(-1.162 + i5)^2)*exp(- + 0.361999959*(-3.354 + i6)^2)*exp(-0.048567117*(-2.182 + i7)^2) - + 1.395177119*exp(-24.63411825*(-0.4758 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6848 + 0.1*i2)^2)*exp(-12.57616598*(-0.4848 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.7 + 0.1*i4)^2)*exp(-1.04737272*(-1.939 + i5)^2)*exp(-0.361999959*(- + 3.515 + i6)^2)*exp(-0.048567117*(-3.333 + i7)^2) - 0.618141858*exp(- + 24.63411825*(-0.3152 + 0.1*i1)^2)*exp(-12.73459431*(-0.5879 + 0.1*i2)^2)* + exp(-12.57616598*(-0.8667 + 0.1*i3)^2)*exp(-3.71440674*(-1.031 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.485 + i5)^2)*exp(-0.361999959*(-3.182 + i6)^2)*exp(- + 0.048567117*(-2.242 + i7)^2) + 1.116680786*exp(-24.63411825*(-0.3818 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.7333 + 0.1*i2)^2)*exp(-12.57616598*(-0.4061 + + 0.1*i3)^2)*exp(-3.71440674*(-1.201 + 0.1*i4)^2)*exp(-1.04737272*(-1.283 + + i5)^2)*exp(-0.361999959*(-3.949 + i6)^2)*exp(-0.048567117*(-3 + i7)^2) + - 0.508041499*exp(-24.63411825*(-0.5182 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9939 + 0.1*i2)^2)*exp(-12.57616598*(-0.8788 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.072 + 0.1*i4)^2)*exp(-1.04737272*(-1.081 + i5)^2)*exp(-0.361999959*(- + 3.303 + i6)^2)*exp(-0.048567117*(-3.545 + i7)^2) - 1.000673635*exp(- + 24.63411825*(-0.4424 + 0.1*i1)^2)*exp(-12.73459431*(-0.8364 + 0.1*i2)^2)* + exp(-12.57616598*(-0.5333 + 0.1*i3)^2)*exp(-3.71440674*(-1.484 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.677 + i5)^2)*exp(-0.361999959*(-3.737 + i6)^2)*exp(- + 0.048567117*(-2.333 + i7)^2) - 0.074817205*exp(-24.63411825*(-0.397 + 0.1* + i1)^2)*exp(-12.73459431*(-0.5939 + 0.1*i2)^2)*exp(-12.57616598*(-0.8545 + + 0.1*i3)^2)*exp(-3.71440674*(-1.363 + 0.1*i4)^2)*exp(-1.04737272*(-1.869 + + i5)^2)*exp(-0.361999959*(-3.02 + i6)^2)*exp(-0.048567117*(-3.515 + i7)^2) + + 0.393190028*exp(-24.63411825*(-0.4879 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4788 + 0.1*i2)^2)*exp(-12.57616598*(-0.6121 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.8939 + 0.1*i4)^2)*exp(-1.04737272*(-1.051 + i5)^2)*exp(-0.361999959*( + -3.879 + i6)^2)*exp(-0.048567117*(-3.182 + i7)^2) - 0.772369077*exp(- + 24.63411825*(-0.3545 + 0.1*i1)^2)*exp(-12.73459431*(-0.4364 + 0.1*i2)^2)* + exp(-12.57616598*(-0.7333 + 0.1*i3)^2)*exp(-3.71440674*(-0.9828 + 0.1*i4)^ + 2)*exp(-1.04737272*(-1.99 + i5)^2)*exp(-0.361999959*(-3.495 + i6)^2)*exp(- + 0.048567117*(-2.97 + i7)^2) - 0.486253693*exp(-24.63411825*(-0.5424 + 0.1* + i1)^2)*exp(-12.73459431*(-0.6909 + 0.1*i2)^2)*exp(-12.57616598*(-0.6727 + + 0.1*i3)^2)*exp(-3.71440674*(-0.7889 + 0.1*i4)^2)*exp(-1.04737272*(-1.121 + + i5)^2)*exp(-0.361999959*(-3.091 + i6)^2)*exp(-0.048567117*(-4.121 + i7) + ^2) + 1.162642211*exp(-24.63411825*(-0.4848 + 0.1*i1)^2)*exp(-12.73459431* + (-0.7879 + 0.1*i2)^2)*exp(-12.57616598*(-0.6909 + 0.1*i3)^2)*exp(- + 3.71440674*(-0.7162 + 0.1*i4)^2)*exp(-1.04737272*(-1.475 + i5)^2)*exp(- + 0.361999959*(-3.131 + i6)^2)*exp(-0.048567117*(-2.212 + i7)^2) + + 0.044794669*exp(-24.63411825*(-0.4394 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.897 + 0.1*i2)^2)*exp(-12.57616598*(-0.9758 + 0.1*i3)^2)*exp(-3.71440674* + (-1.023 + 0.1*i4)^2)*exp(-1.04737272*(-1.667 + i5)^2)*exp(-0.361999959*(- + 3.061 + i6)^2)*exp(-0.048567117*(-2.879 + i7)^2) - 0.738808321*exp(- + 24.63411825*(-0.3848 + 0.1*i1)^2)*exp(-12.73459431*(-0.5394 + 0.1*i2)^2)* + exp(-12.57616598*(-0.9152 + 0.1*i3)^2)*exp(-3.71440674*(-1.5 + 0.1*i4)^2)* + exp(-1.04737272*(-1.596 + i5)^2)*exp(-0.361999959*(-3.636 + i6)^2)*exp(- + 0.048567117*(-2.727 + i7)^2) - 0.007786746*exp(-24.63411825*(-0.5545 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.9758 + 0.1*i2)^2)*exp(-12.57616598*(-0.7212 + + 0.1*i3)^2)*exp(-3.71440674*(-1.08 + 0.1*i4)^2)*exp(-1.04737272*(-1.838 + + i5)^2)*exp(-0.361999959*(-3.434 + i6)^2)*exp(-0.048567117*(-2.364 + i7) + ^2) + 0.527452927*exp(-24.63411825*(-0.3758 + 0.1*i1)^2)*exp(-12.73459431* + (-0.8667 + 0.1*i2)^2)*exp(-12.57616598*(-0.5394 + 0.1*i3)^2)*exp(- + 3.71440674*(-1.015 + 0.1*i4)^2)*exp(-1.04737272*(-1.919 + i5)^2)*exp(- + 0.361999959*(-3.909 + i6)^2)*exp(-0.048567117*(-2.939 + i7)^2) + + 0.247513595*exp(-24.63411825*(-0.3212 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.7576 + 0.1*i2)^2)*exp(-12.57616598*(-0.5212 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.9343 + 0.1*i4)^2)*exp(-1.04737272*(-1.808 + i5)^2)*exp(-0.361999959*( + -3.212 + i6)^2)*exp(-0.048567117*(-2.545 + i7)^2) + 0.242132357*exp(- + 24.63411825*(-0.4727 + 0.1*i1)^2)*exp(-12.73459431*(-0.9333 + 0.1*i2)^2)* + exp(-12.57616598*(-0.6485 + 0.1*i3)^2)*exp(-3.71440674*(-1.322 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.394 + i5)^2)*exp(-0.361999959*(-3.081 + i6)^2)*exp(- + 0.048567117*(-4.697 + i7)^2) - 0.091975204*exp(-24.63411825*(-0.4576 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.5455 + 0.1*i2)^2)*exp(-12.57616598*(-0.9939 + + 0.1*i3)^2)*exp(-3.71440674*(-1.169 + 0.1*i4)^2)*exp(-1.04737272*(-1.98 + + i5)^2)*exp(-0.361999959*(-3.626 + i6)^2)*exp(-0.048567117*(-3.939 + i7) + ^2) - 0.105896366*exp(-24.63411825*(-0.3242 + 0.1*i1)^2)*exp(-12.73459431* + (-0.9212 + 0.1*i2)^2)*exp(-12.57616598*(-0.4667 + 0.1*i3)^2)*exp(- + 3.71440674*(-1.314 + 0.1*i4)^2)*exp(-1.04737272*(-1.697 + i5)^2)*exp(- + 0.361999959*(-3.374 + i6)^2)*exp(-0.048567117*(-3.758 + i7)^2) - + 0.244947045*exp(-24.63411825*(-0.5697 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4182 + 0.1*i2)^2)*exp(-12.57616598*(-0.7394 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.8374 + 0.1*i4)^2)*exp(-1.04737272*(-1.717 + i5)^2)*exp(-0.361999959*( + -3.727 + i6)^2)*exp(-0.048567117*(-3.303 + i7)^2) - 0.439787187*exp(- + 24.63411825*(-0.3727 + 0.1*i1)^2)*exp(-12.73459431*(-0.9879 + 0.1*i2)^2)* + exp(-12.57616598*(-0.6848 + 0.1*i3)^2)*exp(-3.71440674*(-1.104 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.343 + i5)^2)*exp(-0.361999959*(-3.606 + i6)^2)*exp(- + 0.048567117*(-2 + i7)^2) - 0.930252753*exp(-24.63411825*(-0.5091 + 0.1*i1) + ^2)*exp(-12.73459431*(-0.4667 + 0.1*i2)^2)*exp(-12.57616598*(-0.8303 + 0.1 + *i3)^2)*exp(-3.71440674*(-0.8859 + 0.1*i4)^2)*exp(-1.04737272*(-1.111 + i5 + )^2)*exp(-0.361999959*(-3.283 + i6)^2)*exp(-0.048567117*(-2.576 + i7)^2) + + 0.252660321*exp(-24.63411825*(-0.3485 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9091 + 0.1*i2)^2)*exp(-12.57616598*(-0.6606 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.999 + 0.1*i4)^2)*exp(-1.04737272*(-1.172 + i5)^2)*exp(-0.361999959*(- + 3.03 + i6)^2)*exp(-0.048567117*(-3.152 + i7)^2) - 0.524839207*exp(- + 24.63411825*(-0.5848 + 0.1*i1)^2)*exp(-12.73459431*(-0.6788 + 0.1*i2)^2)* + exp(-12.57616598*(-0.8 + 0.1*i3)^2)*exp(-3.71440674*(-1.298 + 0.1*i4)^2)* + exp(-1.04737272*(-1.848 + i5)^2)*exp(-0.361999959*(-3.828 + i6)^2)*exp(- + 0.048567117*(-2.636 + i7)^2) - 0.239134395*exp(-24.63411825*(-0.3303 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.5212 + 0.1*i2)^2)*exp(-12.57616598*(-0.497 + + 0.1*i3)^2)*exp(-3.71440674*(-1.395 + 0.1*i4)^2)*exp(-1.04737272*(-1.636 + + i5)^2)*exp(-0.361999959*(-3.384 + i6)^2)*exp(-0.048567117*(-2.697 + i7)^2) + + 0.462245319*exp(-24.63411825*(-0.3061 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.6242 + 0.1*i2)^2)*exp(-12.57616598*(-0.6788 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.338 + 0.1*i4)^2)*exp(-1.04737272*(-1.859 + i5)^2)*exp(-0.361999959*(- + 3.758 + i6)^2)*exp(-0.048567117*(-4.273 + i7)^2) - 1.463389625*exp(- + 24.63411825*(-0.5485 + 0.1*i1)^2)*exp(-12.73459431*(-0.4545 + 0.1*i2)^2)* + exp(-12.57616598*(-0.8848 + 0.1*i3)^2)*exp(-3.71440674*(-1.112 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.515 + i5)^2)*exp(-0.361999959*(-3.101 + i6)^2)*exp(- + 0.048567117*(-4.333 + i7)^2) + 0.658237408*exp(-24.63411825*(-0.4636 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.7939 + 0.1*i2)^2)*exp(-12.57616598*(-0.7879 + + 0.1*i3)^2)*exp(-3.71440674*(-1.492 + 0.1*i4)^2)*exp(-1.04737272*(-1.707 + + i5)^2)*exp(-0.361999959*(-3.97 + i6)^2)*exp(-0.048567117*(-4.03 + i7)^2 + ) + 0.191580889*exp(-24.63411825*(-0.3455 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5818 + 0.1*i2)^2)*exp(-12.57616598*(-0.7455 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.7404 + 0.1*i4)^2)*exp(-1.04737272*(-1.687 + i5)^2)*exp(-0.361999959*( + -3.929 + i6)^2)*exp(-0.048567117*(-3.788 + i7)^2) + 0.321442029*exp(- + 24.63411825*(-0.6 + 0.1*i1)^2)*exp(-12.73459431*(-0.7515 + 0.1*i2)^2)*exp( + -12.57616598*(-0.9455 + 0.1*i3)^2)*exp(-3.71440674*(-0.8616 + 0.1*i4)^2)* + exp(-1.04737272*(-1.384 + i5)^2)*exp(-0.361999959*(-3.596 + i6)^2)*exp(- + 0.048567117*(-2.848 + i7)^2) + 1.43956691*exp(-24.63411825*(-0.3273 + 0.1* + i1)^2)*exp(-12.73459431*(-0.4 + 0.1*i2)^2)*exp(-12.57616598*(-0.897 + 0.1* + i3)^2)*exp(-3.71440674*(-1.12 + 0.1*i4)^2)*exp(-1.04737272*(-1.404 + i5)^2 + )*exp(-0.361999959*(-3.525 + i6)^2)*exp(-0.048567117*(-4.182 + i7)^2) + + 2.01735206*exp(-24.63411825*(-0.5212 + 0.1*i1)^2)*exp(-12.73459431*(-0.497 + + 0.1*i2)^2)*exp(-12.57616598*(-0.8909 + 0.1*i3)^2)*exp(-3.71440674*(- + 1.185 + 0.1*i4)^2)*exp(-1.04737272*(-1.737 + i5)^2)*exp(-0.361999959*(- + 3.293 + i6)^2)*exp(-0.048567117*(-2.091 + i7)^2) + 0.008609462*exp(- + 24.63411825*(-0.4303 + 0.1*i1)^2)*exp(-12.73459431*(-0.4606 + 0.1*i2)^2)* + exp(-12.57616598*(-0.6242 + 0.1*i3)^2)*exp(-3.71440674*(-1.225 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.727 + i5)^2)*exp(-0.361999959*(-3.96 + i6)^2)*exp(- + 0.048567117*(-2.424 + i7)^2) - 0.023066057*exp(-24.63411825*(-0.3121 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.8909 + 0.1*i2)^2)*exp(-12.57616598*(-0.903 + + 0.1*i3)^2)*exp(-3.71440674*(-1.387 + 0.1*i4)^2)*exp(-1.04737272*(-1.414 + + i5)^2)*exp(-0.361999959*(-3.323 + i6)^2)*exp(-0.048567117*(-3.636 + i7)^2) + - 0.227235834*exp(-24.63411825*(-0.3424 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4485 + 0.1*i2)^2)*exp(-12.57616598*(-0.4182 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.9747 + 0.1*i4)^2)*exp(-1.04737272*(-1.566 + i5)^2)*exp(-0.361999959*( + -3.657 + i6)^2)*exp(-0.048567117*(-3.879 + i7)^2) - 0.253442523*exp(- + 24.63411825*(-0.497 + 0.1*i1)^2)*exp(-12.73459431*(-0.7697 + 0.1*i2)^2)* + exp(-12.57616598*(-0.7939 + 0.1*i3)^2)*exp(-3.71440674*(-1.274 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.141 + i5)^2)*exp(-0.361999959*(-4 + i6)^2)*exp(- + 0.048567117*(-2.515 + i7)^2) + 0.264649582*exp(-24.63411825*(-0.4939 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.5576 + 0.1*i2)^2)*exp(-12.57616598*(-0.4545 + + 0.1*i3)^2)*exp(-3.71440674*(-1.177 + 0.1*i4)^2)*exp(-1.04737272*(-1.96 + + i5)^2)*exp(-0.361999959*(-3.818 + i6)^2)*exp(-0.048567117*(-4 + i7)^2) + + 2.057766336*exp(-24.63411825*(-0.5 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.9515 + 0.1*i2)^2)*exp(-12.57616598*(-0.4 + 0.1*i3)^2)*exp(-3.71440674*(- + 1.088 + 0.1*i4)^2)*exp(-1.04737272*(-1.455 + i5)^2)*exp(-0.361999959*(- + 3.242 + i6)^2)*exp(-0.048567117*(-2.788 + i7)^2) - 0.386314884*exp(- + 24.63411825*(-0.4182 + 0.1*i1)^2)*exp(-12.73459431*(-0.9455 + 0.1*i2)^2)* + exp(-12.57616598*(-0.8364 + 0.1*i3)^2)*exp(-3.71440674*(-1.258 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.929 + i5)^2)*exp(-0.361999959*(-3.465 + i6)^2)*exp(- + 0.048567117*(-4.606 + i7)^2) + 0.88402351*exp(-24.63411825*(-0.3636 + 0.1* + i1)^2)*exp(-12.73459431*(-0.7818 + 0.1*i2)^2)*exp(-12.57616598*(-1 + 0.1* + i3)^2)*exp(-3.71440674*(-0.9909 + 0.1*i4)^2)*exp(-1.04737272*(-1.535 + i5) + ^2)*exp(-0.361999959*(-3.768 + i6)^2)*exp(-0.048567117*(-4.667 + i7)^2) + + 0.551635134*exp(-24.63411825*(-0.4091 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.7212 + 0.1*i2)^2)*exp(-12.57616598*(-0.9273 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.371 + 0.1*i4)^2)*exp(-1.04737272*(-1.04 + i5)^2)*exp(-0.361999959*(- + 3.747 + i6)^2)*exp(-0.048567117*(-4.152 + i7)^2) + 0.590289016*exp(- + 24.63411825*(-0.4455 + 0.1*i1)^2)*exp(-12.73459431*(-0.4242 + 0.1*i2)^2)* + exp(-12.57616598*(-0.5879 + 0.1*i3)^2)*exp(-3.71440674*(-0.9182 + 0.1*i4)^ + 2)*exp(-1.04737272*(-1.626 + i5)^2)*exp(-0.361999959*(-3 + i6)^2)*exp(- + 0.048567117*(-3.091 + i7)^2) + 0.085811629*exp(-24.63411825*(-0.3667 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.8424 + 0.1*i2)^2)*exp(-12.57616598*(-0.8242 + + 0.1*i3)^2)*exp(-3.71440674*(-1.29 + 0.1*i4)^2)*exp(-1.04737272*(-2 + i5 + )^2)*exp(-0.361999959*(-3.485 + i6)^2)*exp(-0.048567117*(-2.485 + i7)^2) + - 0.768056146*exp(-24.63411825*(-0.4 + 0.1*i1)^2)*exp(-12.73459431*(-0.6 + + 0.1*i2)^2)*exp(-12.57616598*(-0.4364 + 0.1*i3)^2)*exp(-3.71440674*(- + 1.056 + 0.1*i4)^2)*exp(-1.04737272*(-1.091 + i5)^2)*exp(-0.361999959*(- + 3.202 + i6)^2)*exp(-0.048567117*(-2.606 + i7)^2) + 0.025811815*exp(- + 24.63411825*(-0.5303 + 0.1*i1)^2)*exp(-12.73459431*(-0.8545 + 0.1*i2)^2)* + exp(-12.57616598*(-0.9212 + 0.1*i3)^2)*exp(-3.71440674*(-0.8778 + 0.1*i4)^ + 2)*exp(-1.04737272*(-1.616 + i5)^2)*exp(-0.361999959*(-3.232 + i6)^2)*exp( + -0.048567117*(-4.727 + i7)^2) + 0.277715076*exp(-24.63411825*(-0.3879 + + 0.1*i1)^2)*exp(-12.73459431*(-0.5515 + 0.1*i2)^2)*exp(-12.57616598*(- + 0.5576 + 0.1*i3)^2)*exp(-3.71440674*(-0.7808 + 0.1*i4)^2)*exp(-1.04737272* + (-1.444 + i5)^2)*exp(-0.361999959*(-3.677 + i6)^2)*exp(-0.048567117*(-2.03 + + i7)^2) - 0.390826338*exp(-24.63411825*(-0.4515 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.7273 + 0.1*i2)^2)*exp(-12.57616598*(-0.8727 + 0.1*i3)^2)* + exp(-3.71440674*(-0.8131 + 0.1*i4)^2)*exp(-1.04737272*(-1.828 + i5)^2)* + exp(-0.361999959*(-3.717 + i6)^2)*exp(-0.048567117*(-2.061 + i7)^2) + + 0.624128263*exp(-24.63411825*(-0.4818 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.4121 + 0.1*i2)^2)*exp(-12.57616598*(-0.5515 + 0.1*i3)^2)*exp(-3.71440674 + *(-1.064 + 0.1*i4)^2)*exp(-1.04737272*(-1.202 + i5)^2)*exp(-0.361999959*(- + 3.404 + i6)^2)*exp(-0.048567117*(-4.788 + i7)^2) - 0.254723348*exp(- + 24.63411825*(-0.5515 + 0.1*i1)^2)*exp(-12.73459431*(-0.8182 + 0.1*i2)^2)* + exp(-12.57616598*(-0.9636 + 0.1*i3)^2)*exp(-3.71440674*(-1.443 + 0.1*i4)^2 + )*exp(-1.04737272*(-1.606 + i5)^2)*exp(-0.361999959*(-3.263 + i6)^2)*exp(- + 0.048567117*(-3.667 + i7)^2) - 0.911208013*exp(-24.63411825*(-0.4667 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.4727 + 0.1*i2)^2)*exp(-12.57616598*(-0.7818 + + 0.1*i3)^2)*exp(-3.71440674*(-1.136 + 0.1*i4)^2)*exp(-1.04737272*(-1.545 + + i5)^2)*exp(-0.361999959*(-3.99 + i6)^2)*exp(-0.048567117*(-4.758 + i7)^ + 2) - 1.961287818*exp(-24.63411825*(-0.5606 + 0.1*i1)^2)*exp(-12.73459431*( + -0.7758 + 0.1*i2)^2)*exp(-12.57616598*(-0.5273 + 0.1*i3)^2)*exp(- + 3.71440674*(-0.9263 + 0.1*i4)^2)*exp(-1.04737272*(-1.576 + i5)^2)*exp(- + 0.361999959*(-3.919 + i6)^2)*exp(-0.048567117*(-2.394 + i7)^2) + + 0.28633654*exp(-24.63411825*(-0.4333 + 0.1*i1)^2)*exp(-12.73459431*(- + 0.5636 + 0.1*i2)^2)*exp(-12.57616598*(-0.9818 + 0.1*i3)^2)*exp(-3.71440674 + *(-0.7081 + 0.1*i4)^2)*exp(-1.04737272*(-1.657 + i5)^2)*exp(-0.361999959*( + -3.273 + i6)^2)*exp(-0.048567117*(-3.455 + i7)^2) + 0.721463358*exp(- + 24.63411825*(-0.5333 + 0.1*i1)^2)*exp(-12.73459431*(-0.8303 + 0.1*i2)^2)* + exp(-12.57616598*(-0.6061 + 0.1*i3)^2)*exp(-3.71440674*(-0.9424 + 0.1*i4)^ + 2)*exp(-1.04737272*(-1 + i5)^2)*exp(-0.361999959*(-3.545 + i6)^2)*exp(- + 0.048567117*(-2.303 + i7)^2) - 0.077716139*exp(-24.63411825*(-0.3788 + 0.1 + *i1)^2)*exp(-12.73459431*(-0.9152 + 0.1*i2)^2)*exp(-12.57616598*(-0.7515 + + 0.1*i3)^2)*exp(-3.71440674*(-0.8455 + 0.1*i4)^2)*exp(-1.04737272*(- + 1.212 + i5)^2)*exp(-0.361999959*(-3.394 + i6)^2)*exp(-0.048567117*(-4.879 + + i7)^2) - 1.670825743*exp(-24.63411825*(-0.4909 + 0.1*i1)^2)*exp(- + 12.73459431*(-0.8727 + 0.1*i2)^2)*exp(-12.57616598*(-0.4424 + 0.1*i3)^2)* + exp(-3.71440674*(-1.047 + 0.1*i4)^2)*exp(-1.04737272*(-1.02 + i5)^2)*exp(- + 0.361999959*(-3.556 + i6)^2)*exp(-0.048567117*(-4.303 + i7)^2)) + x8 + >= 4.204952328; + + -(1.906228742*exp(-11.68525497*(-0.303 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.697 + 0.1*i2)^2)*exp(-12.73459431*(-0.8061 + 0.1*i3)^2)*exp(-1.274977144 + *(-0.9586 + 0.1*i4)^2)*exp(-0.156042645*(-1.758 + i5)^2)*exp(-0.009252024* + (-3.141 + i6)^2)*exp(-0.398864899*(-4.424 + i7)^2) + 3.849109515*exp(- + 11.68525497*(-0.5364 + 0.1*i1)^2)*exp(-12.69548048*(-0.9697 + 0.1*i2)^2)* + exp(-12.73459431*(-0.4909 + 0.1*i3)^2)*exp(-1.274977144*(-1.161 + 0.1*i4)^ + 2)*exp(-0.156042645*(-1.778 + i5)^2)*exp(-0.009252024*(-3.778 + i6)^2)* + exp(-0.398864899*(-4.091 + i7)^2) + 5.416311418*exp(-11.68525497*(-0.503 + + 0.1*i1)^2)*exp(-12.69548048*(-0.6182 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.4121 + 0.1*i3)^2)*exp(-1.274977144*(-1.419 + 0.1*i4)^2)*exp(-0.156042645 + *(-1.333 + i5)^2)*exp(-0.009252024*(-3.152 + i6)^2)*exp(-0.398864899*(- + 3.697 + i7)^2) + 6.60210435*exp(-11.68525497*(-0.4606 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.903 + 0.1*i2)^2)*exp(-12.73459431*(-0.7576 + 0.1*i3)^2)* + exp(-1.274977144*(-0.7727 + 0.1*i4)^2)*exp(-0.156042645*(-1.242 + i5)^2)* + exp(-0.009252024*(-3.98 + i6)^2)*exp(-0.398864899*(-3.424 + i7)^2) + + 1.753353939*exp(-11.68525497*(-0.3 + 0.1*i1)^2)*exp(-12.69548048*(-0.7636 + + 0.1*i2)^2)*exp(-12.73459431*(-0.8606 + 0.1*i3)^2)*exp(-1.274977144*(- + 1.153 + 0.1*i4)^2)*exp(-0.156042645*(-1.556 + i5)^2)*exp(-0.009252024*(- + 3.939 + i6)^2)*exp(-0.398864899*(-2.818 + i7)^2) + 5.160955191*exp(- + 11.68525497*(-0.5879 + 0.1*i1)^2)*exp(-12.69548048*(-0.703 + 0.1*i2)^2)* + exp(-12.73459431*(-0.4788 + 0.1*i3)^2)*exp(-1.274977144*(-1.039 + 0.1*i4)^ + 2)*exp(-0.156042645*(-1.646 + i5)^2)*exp(-0.009252024*(-3.222 + i6)^2)* + exp(-0.398864899*(-4.636 + i7)^2) + 4.252339338*exp(-11.68525497*(-0.4121 + + 0.1*i1)^2)*exp(-12.69548048*(-0.4424 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.5939 + 0.1*i3)^2)*exp(-1.274977144*(-1.46 + 0.1*i4)^2)*exp(-0.156042645* + (-1.232 + i5)^2)*exp(-0.009252024*(-3.788 + i6)^2)*exp(-0.398864899*(- + 3.848 + i7)^2) + 3.384562783*exp(-11.68525497*(-0.5576 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.8848 + 0.1*i2)^2)*exp(-12.73459431*(-0.8121 + 0.1*i3)^2)* + exp(-1.274977144*(-1.128 + 0.1*i4)^2)*exp(-0.156042645*(-1.263 + i5)^2)* + exp(-0.009252024*(-3.808 + i6)^2)*exp(-0.398864899*(-4.818 + i7)^2) - + 1.251715534*exp(-11.68525497*(-0.4273 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4848 + 0.1*i2)^2)*exp(-12.73459431*(-0.9697 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.9667 + 0.1*i4)^2)*exp(-0.156042645*(-1.364 + i5)^2)*exp(- + 0.009252024*(-3.869 + i6)^2)*exp(-0.398864899*(-2.667 + i7)^2) - + 0.543251331*exp(-11.68525497*(-0.5455 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4061 + 0.1*i2)^2)*exp(-12.73459431*(-0.6303 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.427 + 0.1*i4)^2)*exp(-0.156042645*(-1.747 + i5)^2)*exp(- + 0.009252024*(-3.444 + i6)^2)*exp(-0.398864899*(-3.576 + i7)^2) - + 5.486651258*exp(-11.68525497*(-0.5394 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5273 + 0.1*i2)^2)*exp(-12.73459431*(-0.5636 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.355 + 0.1*i4)^2)*exp(-0.156042645*(-1.253 + i5)^2)*exp(- + 0.009252024*(-3.566 + i6)^2)*exp(-0.398864899*(-2.121 + i7)^2) - + 0.437524012*exp(-11.68525497*(-0.5273 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.8121 + 0.1*i2)^2)*exp(-12.73459431*(-0.8424 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.8535 + 0.1*i4)^2)*exp(-0.156042645*(-1.899 + i5)^2)*exp(- + 0.009252024*(-3.889 + i6)^2)*exp(-0.398864899*(-4.061 + i7)^2) - + 2.011944263*exp(-11.68525497*(-0.5727 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4909 + 0.1*i2)^2)*exp(-12.73459431*(-0.9333 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.306 + 0.1*i4)^2)*exp(-0.156042645*(-1.273 + i5)^2)*exp(- + 0.009252024*(-3.707 + i6)^2)*exp(-0.398864899*(-3.485 + i7)^2) - + 2.425428224*exp(-11.68525497*(-0.3091 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6364 + 0.1*i2)^2)*exp(-12.73459431*(-0.5758 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.282 + 0.1*i4)^2)*exp(-0.156042645*(-1.222 + i5)^2)*exp(- + 0.009252024*(-3.192 + i6)^2)*exp(-0.398864899*(-4.455 + i7)^2) - + 0.247634639*exp(-11.68525497*(-0.4364 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7394 + 0.1*i2)^2)*exp(-12.73459431*(-0.4485 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.403 + 0.1*i4)^2)*exp(-0.156042645*(-1.465 + i5)^2)*exp(- + 0.009252024*(-3.687 + i6)^2)*exp(-0.398864899*(-4.939 + i7)^2) + + 2.40477874*exp(-11.68525497*(-0.5636 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6485 + 0.1*i2)^2)*exp(-12.73459431*(-0.7273 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.346 + 0.1*i4)^2)*exp(-0.156042645*(-1.01 + i5)^2)*exp(- + 0.009252024*(-3.333 + i6)^2)*exp(-0.398864899*(-4.364 + i7)^2) + + 6.298816443*exp(-11.68525497*(-0.597 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7152 + 0.1*i2)^2)*exp(-12.73459431*(-0.703 + 0.1*i3)^2)*exp(-1.274977144 + *(-1.209 + 0.1*i4)^2)*exp(-0.156042645*(-1.354 + i5)^2)*exp(-0.009252024*( + -3.01 + i6)^2)*exp(-0.398864899*(-2.758 + i7)^2) + 7.271631286*exp(- + 11.68525497*(-0.5152 + 0.1*i1)^2)*exp(-12.69548048*(-0.6606 + 0.1*i2)^2)* + exp(-12.73459431*(-0.503 + 0.1*i3)^2)*exp(-1.274977144*(-0.7566 + 0.1*i4)^ + 2)*exp(-0.156042645*(-1.424 + i5)^2)*exp(-0.009252024*(-3.848 + i6)^2)* + exp(-0.398864899*(-4.576 + i7)^2) + 7.809547596*exp(-11.68525497*(-0.5758 + + 0.1*i1)^2)*exp(-12.69548048*(-0.5152 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.4303 + 0.1*i3)^2)*exp(-1.274977144*(-0.8697 + 0.1*i4)^2)*exp(- + 0.156042645*(-1.374 + i5)^2)*exp(-0.009252024*(-3.414 + i6)^2)*exp(- + 0.398864899*(-3.061 + i7)^2) - 0.445070013*exp(-11.68525497*(-0.3939 + 0.1 + *i1)^2)*exp(-12.69548048*(-0.7091 + 0.1*i2)^2)*exp(-12.73459431*(-0.4242 + + 0.1*i3)^2)*exp(-1.274977144*(-0.8293 + 0.1*i4)^2)*exp(-0.156042645*(- + 1.434 + i5)^2)*exp(-0.009252024*(-3.121 + i6)^2)*exp(-0.398864899*(-4.394 + + i7)^2) - 0.790280158*exp(-11.68525497*(-0.403 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.5333 + 0.1*i2)^2)*exp(-12.73459431*(-0.5152 + 0.1*i3)^2)* + exp(-1.274977144*(-1.233 + 0.1*i4)^2)*exp(-0.156042645*(-1.889 + i5)^2)* + exp(-0.009252024*(-3.172 + i6)^2)*exp(-0.398864899*(-4.545 + i7)^2) + + 6.487216073*exp(-11.68525497*(-0.5061 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6121 + 0.1*i2)^2)*exp(-12.73459431*(-0.4606 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.144 + 0.1*i4)^2)*exp(-0.156042645*(-1.879 + i5)^2)*exp(- + 0.009252024*(-3.343 + i6)^2)*exp(-0.398864899*(-2.152 + i7)^2) + + 12.49209545*exp(-11.68525497*(-0.4152 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.8242 + 0.1*i2)^2)*exp(-12.73459431*(-0.6545 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.411 + 0.1*i4)^2)*exp(-0.156042645*(-1.525 + i5)^2)*exp(- + 0.009252024*(-3.04 + i6)^2)*exp(-0.398864899*(-2.273 + i7)^2) - + 4.436025051*exp(-11.68525497*(-0.4545 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.503 + 0.1*i2)^2)*exp(-12.73459431*(-0.7152 + 0.1*i3)^2)*exp(-1.274977144 + *(-0.797 + 0.1*i4)^2)*exp(-0.156042645*(-1.798 + i5)^2)*exp(-0.009252024*( + -3.424 + i6)^2)*exp(-0.398864899*(-4.97 + i7)^2) - 2.638927143*exp(- + 11.68525497*(-0.3606 + 0.1*i1)^2)*exp(-12.69548048*(-0.8 + 0.1*i2)^2)*exp( + -12.73459431*(-0.9394 + 0.1*i3)^2)*exp(-1.274977144*(-0.8212 + 0.1*i4)^2)* + exp(-0.156042645*(-1.101 + i5)^2)*exp(-0.009252024*(-3.535 + i6)^2)*exp(- + 0.398864899*(-2.909 + i7)^2) + 0.444553861*exp(-11.68525497*(-0.5818 + 0.1 + *i1)^2)*exp(-12.69548048*(-0.9394 + 0.1*i2)^2)*exp(-12.73459431*(-0.6364 + + 0.1*i3)^2)*exp(-1.274977144*(-1.435 + 0.1*i4)^2)*exp(-0.156042645*(- + 1.313 + i5)^2)*exp(-0.009252024*(-3.576 + i6)^2)*exp(-0.398864899*(-3.212 + + i7)^2) + 4.373737407*exp(-11.68525497*(-0.4485 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.9273 + 0.1*i2)^2)*exp(-12.73459431*(-0.6 + 0.1*i3)^2)*exp( + -1.274977144*(-0.9505 + 0.1*i4)^2)*exp(-0.156042645*(-1.909 + i5)^2)*exp(- + 0.009252024*(-3.051 + i6)^2)*exp(-0.398864899*(-3.97 + i7)^2) - + 1.444593341*exp(-11.68525497*(-0.3394 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.8788 + 0.1*i2)^2)*exp(-12.73459431*(-0.4727 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7646 + 0.1*i4)^2)*exp(-0.156042645*(-1.293 + i5)^2)*exp(- + 0.009252024*(-3.616 + i6)^2)*exp(-0.398864899*(-3.273 + i7)^2) - + 1.072054877*exp(-11.68525497*(-0.3515 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.9576 + 0.1*i2)^2)*exp(-12.73459431*(-0.8182 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7485 + 0.1*i4)^2)*exp(-0.156042645*(-1.768 + i5)^2)*exp(- + 0.009252024*(-3.505 + i6)^2)*exp(-0.398864899*(-3.394 + i7)^2) - + 4.307609016*exp(-11.68525497*(-0.4061 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6667 + 0.1*i2)^2)*exp(-12.73459431*(-0.9576 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.096 + 0.1*i4)^2)*exp(-0.156042645*(-1.131 + i5)^2)*exp(- + 0.009252024*(-3.071 + i6)^2)*exp(-0.398864899*(-4.242 + i7)^2) - + 0.620789813*exp(-11.68525497*(-0.5788 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6545 + 0.1*i2)^2)*exp(-12.73459431*(-0.7697 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.9101 + 0.1*i4)^2)*exp(-0.156042645*(-1.97 + i5)^2)*exp(- + 0.009252024*(-3.162 + i6)^2)*exp(-0.398864899*(-3.364 + i7)^2) - + 3.733959632*exp(-11.68525497*(-0.4788 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.9818 + 0.1*i2)^2)*exp(-12.73459431*(-0.9879 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.193 + 0.1*i4)^2)*exp(-0.156042645*(-1.586 + i5)^2)*exp(- + 0.009252024*(-3.798 + i6)^2)*exp(-0.398864899*(-3.03 + i7)^2) - 3.6790208* + exp(-11.68525497*(-0.3182 + 0.1*i1)^2)*exp(-12.69548048*(-0.5697 + 0.1*i2) + ^2)*exp(-12.73459431*(-0.7091 + 0.1*i3)^2)*exp(-1.274977144*(-1.217 + 0.1* + i4)^2)*exp(-0.156042645*(-1.061 + i5)^2)*exp(-0.009252024*(-3.646 + i6)^2) + *exp(-0.398864899*(-2.455 + i7)^2) + 1.96733303*exp(-11.68525497*(-0.3909 + + 0.1*i1)^2)*exp(-12.69548048*(-0.8606 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.5818 + 0.1*i3)^2)*exp(-1.274977144*(-1.468 + 0.1*i4)^2)*exp(-0.156042645 + *(-1.03 + i5)^2)*exp(-0.009252024*(-3.455 + i6)^2)*exp(-0.398864899*(- + 3.242 + i7)^2) - 6.546520025*exp(-11.68525497*(-0.5909 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.6303 + 0.1*i2)^2)*exp(-12.73459431*(-0.5091 + 0.1*i3)^2)* + exp(-1.274977144*(-1.266 + 0.1*i4)^2)*exp(-0.156042645*(-1.303 + i5)^2)* + exp(-0.009252024*(-3.899 + i6)^2)*exp(-0.398864899*(-3.909 + i7)^2) - + 3.453638528*exp(-11.68525497*(-0.5939 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6727 + 0.1*i2)^2)*exp(-12.73459431*(-0.7758 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.249 + 0.1*i4)^2)*exp(-0.156042645*(-1.818 + i5)^2)*exp(- + 0.009252024*(-3.586 + i6)^2)*exp(-0.398864899*(-4.848 + i7)^2) - + 3.682266527*exp(-11.68525497*(-0.5242 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.8061 + 0.1*i2)^2)*exp(-12.73459431*(-0.5697 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.452 + 0.1*i4)^2)*exp(-0.156042645*(-1.949 + i5)^2)*exp(- + 0.009252024*(-3.253 + i6)^2)*exp(-0.398864899*(-3.606 + i7)^2) + + 2.097526141*exp(-11.68525497*(-0.5667 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.9636 + 0.1*i2)^2)*exp(-12.73459431*(-0.6182 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7242 + 0.1*i4)^2)*exp(-0.156042645*(-1.495 + i5)^2)*exp(- + 0.009252024*(-3.475 + i6)^2)*exp(-0.398864899*(-3.818 + i7)^2) + + 4.511377549*exp(-11.68525497*(-0.3364 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5091 + 0.1*i2)^2)*exp(-12.73459431*(-0.697 + 0.1*i3)^2)*exp(-1.274977144 + *(-0.7323 + 0.1*i4)^2)*exp(-0.156042645*(-1.182 + i5)^2)*exp(-0.009252024* + (-3.313 + i6)^2)*exp(-0.398864899*(-3.727 + i7)^2) - 2.266839409*exp(- + 11.68525497*(-0.4212 + 0.1*i1)^2)*exp(-12.69548048*(-0.6061 + 0.1*i2)^2)* + exp(-12.73459431*(-0.8485 + 0.1*i3)^2)*exp(-1.274977144*(-1.476 + 0.1*i4)^ + 2)*exp(-0.156042645*(-1.505 + i5)^2)*exp(-0.009252024*(-3.364 + i6)^2)* + exp(-0.398864899*(-5 + i7)^2) - 2.391220095*exp(-11.68525497*(-0.3697 + + 0.1*i1)^2)*exp(-12.69548048*(-0.8485 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.5455 + 0.1*i3)^2)*exp(-1.274977144*(-0.902 + 0.1*i4)^2)*exp(-0.156042645 + *(-1.788 + i5)^2)*exp(-0.009252024*(-3.697 + i6)^2)*exp(-0.398864899*(- + 4.909 + i7)^2) + 4.277951532*exp(-11.68525497*(-0.5121 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.5758 + 0.1*i2)^2)*exp(-12.73459431*(-0.9091 + 0.1*i3)^2)* + exp(-1.274977144*(-0.8051 + 0.1*i4)^2)*exp(-0.156042645*(-1.152 + i5)^2)* + exp(-0.009252024*(-3.667 + i6)^2)*exp(-0.398864899*(-4.485 + i7)^2) + + 2.032312143*exp(-11.68525497*(-0.4697 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7455 + 0.1*i2)^2)*exp(-12.73459431*(-0.9515 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.33 + 0.1*i4)^2)*exp(-0.156042645*(-1.162 + i5)^2)*exp(- + 0.009252024*(-3.354 + i6)^2)*exp(-0.398864899*(-2.182 + i7)^2) + + 1.709942056*exp(-11.68525497*(-0.4758 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6848 + 0.1*i2)^2)*exp(-12.73459431*(-0.4848 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7 + 0.1*i4)^2)*exp(-0.156042645*(-1.939 + i5)^2)*exp(- + 0.009252024*(-3.515 + i6)^2)*exp(-0.398864899*(-3.333 + i7)^2) + + 2.017783202*exp(-11.68525497*(-0.3152 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5879 + 0.1*i2)^2)*exp(-12.73459431*(-0.8667 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.031 + 0.1*i4)^2)*exp(-0.156042645*(-1.485 + i5)^2)*exp(- + 0.009252024*(-3.182 + i6)^2)*exp(-0.398864899*(-2.242 + i7)^2) + + 0.446718321*exp(-11.68525497*(-0.3818 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7333 + 0.1*i2)^2)*exp(-12.73459431*(-0.4061 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.201 + 0.1*i4)^2)*exp(-0.156042645*(-1.283 + i5)^2)*exp(- + 0.009252024*(-3.949 + i6)^2)*exp(-0.398864899*(-3 + i7)^2) - 1.526900229* + exp(-11.68525497*(-0.5182 + 0.1*i1)^2)*exp(-12.69548048*(-0.9939 + 0.1*i2) + ^2)*exp(-12.73459431*(-0.8788 + 0.1*i3)^2)*exp(-1.274977144*(-1.072 + 0.1* + i4)^2)*exp(-0.156042645*(-1.081 + i5)^2)*exp(-0.009252024*(-3.303 + i6)^2) + *exp(-0.398864899*(-3.545 + i7)^2) - 15.01337685*exp(-11.68525497*(-0.4424 + + 0.1*i1)^2)*exp(-12.69548048*(-0.8364 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.5333 + 0.1*i3)^2)*exp(-1.274977144*(-1.484 + 0.1*i4)^2)*exp(-0.156042645 + *(-1.677 + i5)^2)*exp(-0.009252024*(-3.737 + i6)^2)*exp(-0.398864899*(- + 2.333 + i7)^2) - 3.088206297*exp(-11.68525497*(-0.397 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.5939 + 0.1*i2)^2)*exp(-12.73459431*(-0.8545 + 0.1*i3)^2)* + exp(-1.274977144*(-1.363 + 0.1*i4)^2)*exp(-0.156042645*(-1.869 + i5)^2)* + exp(-0.009252024*(-3.02 + i6)^2)*exp(-0.398864899*(-3.515 + i7)^2) - + 2.266165998*exp(-11.68525497*(-0.4879 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4788 + 0.1*i2)^2)*exp(-12.73459431*(-0.6121 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.8939 + 0.1*i4)^2)*exp(-0.156042645*(-1.051 + i5)^2)*exp(- + 0.009252024*(-3.879 + i6)^2)*exp(-0.398864899*(-3.182 + i7)^2) + + 4.151187553*exp(-11.68525497*(-0.3545 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4364 + 0.1*i2)^2)*exp(-12.73459431*(-0.7333 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.9828 + 0.1*i4)^2)*exp(-0.156042645*(-1.99 + i5)^2)*exp(- + 0.009252024*(-3.495 + i6)^2)*exp(-0.398864899*(-2.97 + i7)^2) - + 9.677655437*exp(-11.68525497*(-0.5424 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.6909 + 0.1*i2)^2)*exp(-12.73459431*(-0.6727 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7889 + 0.1*i4)^2)*exp(-0.156042645*(-1.121 + i5)^2)*exp(- + 0.009252024*(-3.091 + i6)^2)*exp(-0.398864899*(-4.121 + i7)^2) - + 9.118121177*exp(-11.68525497*(-0.4848 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7879 + 0.1*i2)^2)*exp(-12.73459431*(-0.6909 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7162 + 0.1*i4)^2)*exp(-0.156042645*(-1.475 + i5)^2)*exp(- + 0.009252024*(-3.131 + i6)^2)*exp(-0.398864899*(-2.212 + i7)^2) + + 7.605367985*exp(-11.68525497*(-0.4394 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.897 + 0.1*i2)^2)*exp(-12.73459431*(-0.9758 + 0.1*i3)^2)*exp(-1.274977144 + *(-1.023 + 0.1*i4)^2)*exp(-0.156042645*(-1.667 + i5)^2)*exp(-0.009252024*( + -3.061 + i6)^2)*exp(-0.398864899*(-2.879 + i7)^2) + 1.688017786*exp(- + 11.68525497*(-0.3848 + 0.1*i1)^2)*exp(-12.69548048*(-0.5394 + 0.1*i2)^2)* + exp(-12.73459431*(-0.9152 + 0.1*i3)^2)*exp(-1.274977144*(-1.5 + 0.1*i4)^2) + *exp(-0.156042645*(-1.596 + i5)^2)*exp(-0.009252024*(-3.636 + i6)^2)*exp(- + 0.398864899*(-2.727 + i7)^2) - 5.592814454*exp(-11.68525497*(-0.5545 + 0.1 + *i1)^2)*exp(-12.69548048*(-0.9758 + 0.1*i2)^2)*exp(-12.73459431*(-0.7212 + + 0.1*i3)^2)*exp(-1.274977144*(-1.08 + 0.1*i4)^2)*exp(-0.156042645*(- + 1.838 + i5)^2)*exp(-0.009252024*(-3.434 + i6)^2)*exp(-0.398864899*(-2.364 + + i7)^2) - 1.155155886*exp(-11.68525497*(-0.3758 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.8667 + 0.1*i2)^2)*exp(-12.73459431*(-0.5394 + 0.1*i3)^2)* + exp(-1.274977144*(-1.015 + 0.1*i4)^2)*exp(-0.156042645*(-1.919 + i5)^2)* + exp(-0.009252024*(-3.909 + i6)^2)*exp(-0.398864899*(-2.939 + i7)^2) + + 13.33814644*exp(-11.68525497*(-0.3212 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7576 + 0.1*i2)^2)*exp(-12.73459431*(-0.5212 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.9343 + 0.1*i4)^2)*exp(-0.156042645*(-1.808 + i5)^2)*exp(- + 0.009252024*(-3.212 + i6)^2)*exp(-0.398864899*(-2.545 + i7)^2) - + 7.080416313*exp(-11.68525497*(-0.4727 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.9333 + 0.1*i2)^2)*exp(-12.73459431*(-0.6485 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.322 + 0.1*i4)^2)*exp(-0.156042645*(-1.394 + i5)^2)*exp(- + 0.009252024*(-3.081 + i6)^2)*exp(-0.398864899*(-4.697 + i7)^2) + + 6.324570003*exp(-11.68525497*(-0.4576 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5455 + 0.1*i2)^2)*exp(-12.73459431*(-0.9939 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.169 + 0.1*i4)^2)*exp(-0.156042645*(-1.98 + i5)^2)*exp(- + 0.009252024*(-3.626 + i6)^2)*exp(-0.398864899*(-3.939 + i7)^2) + + 3.399245944*exp(-11.68525497*(-0.3242 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.9212 + 0.1*i2)^2)*exp(-12.73459431*(-0.4667 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.314 + 0.1*i4)^2)*exp(-0.156042645*(-1.697 + i5)^2)*exp(- + 0.009252024*(-3.374 + i6)^2)*exp(-0.398864899*(-3.758 + i7)^2) + + 3.727715511*exp(-11.68525497*(-0.5697 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4182 + 0.1*i2)^2)*exp(-12.73459431*(-0.7394 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.8374 + 0.1*i4)^2)*exp(-0.156042645*(-1.717 + i5)^2)*exp(- + 0.009252024*(-3.727 + i6)^2)*exp(-0.398864899*(-3.303 + i7)^2) + + 6.374165455*exp(-11.68525497*(-0.3727 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.9879 + 0.1*i2)^2)*exp(-12.73459431*(-0.6848 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.104 + 0.1*i4)^2)*exp(-0.156042645*(-1.343 + i5)^2)*exp(- + 0.009252024*(-3.606 + i6)^2)*exp(-0.398864899*(-2 + i7)^2) + 2.75713736* + exp(-11.68525497*(-0.5091 + 0.1*i1)^2)*exp(-12.69548048*(-0.4667 + 0.1*i2) + ^2)*exp(-12.73459431*(-0.8303 + 0.1*i3)^2)*exp(-1.274977144*(-0.8859 + 0.1 + *i4)^2)*exp(-0.156042645*(-1.111 + i5)^2)*exp(-0.009252024*(-3.283 + i6)^2 + )*exp(-0.398864899*(-2.576 + i7)^2) - 14.64489793*exp(-11.68525497*(- + 0.3485 + 0.1*i1)^2)*exp(-12.69548048*(-0.9091 + 0.1*i2)^2)*exp(- + 12.73459431*(-0.6606 + 0.1*i3)^2)*exp(-1.274977144*(-0.999 + 0.1*i4)^2)* + exp(-0.156042645*(-1.172 + i5)^2)*exp(-0.009252024*(-3.03 + i6)^2)*exp(- + 0.398864899*(-3.152 + i7)^2) - 1.24684049*exp(-11.68525497*(-0.5848 + 0.1* + i1)^2)*exp(-12.69548048*(-0.6788 + 0.1*i2)^2)*exp(-12.73459431*(-0.8 + 0.1 + *i3)^2)*exp(-1.274977144*(-1.298 + 0.1*i4)^2)*exp(-0.156042645*(-1.848 + + i5)^2)*exp(-0.009252024*(-3.828 + i6)^2)*exp(-0.398864899*(-2.636 + i7)^2) + - 1.051253804*exp(-11.68525497*(-0.3303 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5212 + 0.1*i2)^2)*exp(-12.73459431*(-0.497 + 0.1*i3)^2)*exp(-1.274977144 + *(-1.395 + 0.1*i4)^2)*exp(-0.156042645*(-1.636 + i5)^2)*exp(-0.009252024*( + -3.384 + i6)^2)*exp(-0.398864899*(-2.697 + i7)^2) + 1.777576127*exp(- + 11.68525497*(-0.3061 + 0.1*i1)^2)*exp(-12.69548048*(-0.6242 + 0.1*i2)^2)* + exp(-12.73459431*(-0.6788 + 0.1*i3)^2)*exp(-1.274977144*(-1.338 + 0.1*i4)^ + 2)*exp(-0.156042645*(-1.859 + i5)^2)*exp(-0.009252024*(-3.758 + i6)^2)* + exp(-0.398864899*(-4.273 + i7)^2) - 2.087373395*exp(-11.68525497*(-0.5485 + + 0.1*i1)^2)*exp(-12.69548048*(-0.4545 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.8848 + 0.1*i3)^2)*exp(-1.274977144*(-1.112 + 0.1*i4)^2)*exp(-0.156042645 + *(-1.515 + i5)^2)*exp(-0.009252024*(-3.101 + i6)^2)*exp(-0.398864899*(- + 4.333 + i7)^2) + 5.520095726*exp(-11.68525497*(-0.4636 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.7939 + 0.1*i2)^2)*exp(-12.73459431*(-0.7879 + 0.1*i3)^2)* + exp(-1.274977144*(-1.492 + 0.1*i4)^2)*exp(-0.156042645*(-1.707 + i5)^2)* + exp(-0.009252024*(-3.97 + i6)^2)*exp(-0.398864899*(-4.03 + i7)^2) - + 2.966186049*exp(-11.68525497*(-0.3455 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5818 + 0.1*i2)^2)*exp(-12.73459431*(-0.7455 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7404 + 0.1*i4)^2)*exp(-0.156042645*(-1.687 + i5)^2)*exp(- + 0.009252024*(-3.929 + i6)^2)*exp(-0.398864899*(-3.788 + i7)^2) - + 0.770835712*exp(-11.68525497*(-0.6 + 0.1*i1)^2)*exp(-12.69548048*(-0.7515 + + 0.1*i2)^2)*exp(-12.73459431*(-0.9455 + 0.1*i3)^2)*exp(-1.274977144*(- + 0.8616 + 0.1*i4)^2)*exp(-0.156042645*(-1.384 + i5)^2)*exp(-0.009252024*(- + 3.596 + i6)^2)*exp(-0.398864899*(-2.848 + i7)^2) - 8.25795794*exp(- + 11.68525497*(-0.3273 + 0.1*i1)^2)*exp(-12.69548048*(-0.4 + 0.1*i2)^2)*exp( + -12.73459431*(-0.897 + 0.1*i3)^2)*exp(-1.274977144*(-1.12 + 0.1*i4)^2)* + exp(-0.156042645*(-1.404 + i5)^2)*exp(-0.009252024*(-3.525 + i6)^2)*exp(- + 0.398864899*(-4.182 + i7)^2) - 0.0508726*exp(-11.68525497*(-0.5212 + 0.1* + i1)^2)*exp(-12.69548048*(-0.497 + 0.1*i2)^2)*exp(-12.73459431*(-0.8909 + + 0.1*i3)^2)*exp(-1.274977144*(-1.185 + 0.1*i4)^2)*exp(-0.156042645*(-1.737 + + i5)^2)*exp(-0.009252024*(-3.293 + i6)^2)*exp(-0.398864899*(-2.091 + i7) + ^2) + 4.749262851*exp(-11.68525497*(-0.4303 + 0.1*i1)^2)*exp(-12.69548048* + (-0.4606 + 0.1*i2)^2)*exp(-12.73459431*(-0.6242 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.225 + 0.1*i4)^2)*exp(-0.156042645*(-1.727 + i5)^2)*exp(- + 0.009252024*(-3.96 + i6)^2)*exp(-0.398864899*(-2.424 + i7)^2) + 0.86307682 + *exp(-11.68525497*(-0.3121 + 0.1*i1)^2)*exp(-12.69548048*(-0.8909 + 0.1*i2 + )^2)*exp(-12.73459431*(-0.903 + 0.1*i3)^2)*exp(-1.274977144*(-1.387 + 0.1* + i4)^2)*exp(-0.156042645*(-1.414 + i5)^2)*exp(-0.009252024*(-3.323 + i6)^2) + *exp(-0.398864899*(-3.636 + i7)^2) - 0.878360478*exp(-11.68525497*(-0.3424 + + 0.1*i1)^2)*exp(-12.69548048*(-0.4485 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.4182 + 0.1*i3)^2)*exp(-1.274977144*(-0.9747 + 0.1*i4)^2)*exp(- + 0.156042645*(-1.566 + i5)^2)*exp(-0.009252024*(-3.657 + i6)^2)*exp(- + 0.398864899*(-3.879 + i7)^2) - 8.960409575*exp(-11.68525497*(-0.497 + 0.1* + i1)^2)*exp(-12.69548048*(-0.7697 + 0.1*i2)^2)*exp(-12.73459431*(-0.7939 + + 0.1*i3)^2)*exp(-1.274977144*(-1.274 + 0.1*i4)^2)*exp(-0.156042645*(-1.141 + + i5)^2)*exp(-0.009252024*(-4 + i6)^2)*exp(-0.398864899*(-2.515 + i7)^2) + - 7.328693537*exp(-11.68525497*(-0.4939 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5576 + 0.1*i2)^2)*exp(-12.73459431*(-0.4545 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.177 + 0.1*i4)^2)*exp(-0.156042645*(-1.96 + i5)^2)*exp(- + 0.009252024*(-3.818 + i6)^2)*exp(-0.398864899*(-4 + i7)^2) - 4.642668389* + exp(-11.68525497*(-0.5 + 0.1*i1)^2)*exp(-12.69548048*(-0.9515 + 0.1*i2)^2) + *exp(-12.73459431*(-0.4 + 0.1*i3)^2)*exp(-1.274977144*(-1.088 + 0.1*i4)^2) + *exp(-0.156042645*(-1.455 + i5)^2)*exp(-0.009252024*(-3.242 + i6)^2)*exp(- + 0.398864899*(-2.788 + i7)^2) - 0.315333556*exp(-11.68525497*(-0.4182 + 0.1 + *i1)^2)*exp(-12.69548048*(-0.9455 + 0.1*i2)^2)*exp(-12.73459431*(-0.8364 + + 0.1*i3)^2)*exp(-1.274977144*(-1.258 + 0.1*i4)^2)*exp(-0.156042645*(- + 1.929 + i5)^2)*exp(-0.009252024*(-3.465 + i6)^2)*exp(-0.398864899*(-4.606 + + i7)^2) + 0.783837149*exp(-11.68525497*(-0.3636 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.7818 + 0.1*i2)^2)*exp(-12.73459431*(-1 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.9909 + 0.1*i4)^2)*exp(-0.156042645*(-1.535 + i5)^2)*exp(- + 0.009252024*(-3.768 + i6)^2)*exp(-0.398864899*(-4.667 + i7)^2) + + 1.096497185*exp(-11.68525497*(-0.4091 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7212 + 0.1*i2)^2)*exp(-12.73459431*(-0.9273 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.371 + 0.1*i4)^2)*exp(-0.156042645*(-1.04 + i5)^2)*exp(- + 0.009252024*(-3.747 + i6)^2)*exp(-0.398864899*(-4.152 + i7)^2) - + 6.767801104*exp(-11.68525497*(-0.4455 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4242 + 0.1*i2)^2)*exp(-12.73459431*(-0.5879 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.9182 + 0.1*i4)^2)*exp(-0.156042645*(-1.626 + i5)^2)*exp(- + 0.009252024*(-3 + i6)^2)*exp(-0.398864899*(-3.091 + i7)^2) - 3.936206841* + exp(-11.68525497*(-0.3667 + 0.1*i1)^2)*exp(-12.69548048*(-0.8424 + 0.1*i2) + ^2)*exp(-12.73459431*(-0.8242 + 0.1*i3)^2)*exp(-1.274977144*(-1.29 + 0.1* + i4)^2)*exp(-0.156042645*(-2 + i5)^2)*exp(-0.009252024*(-3.485 + i6)^2)* + exp(-0.398864899*(-2.485 + i7)^2) - 5.123281723*exp(-11.68525497*(-0.4 + + 0.1*i1)^2)*exp(-12.69548048*(-0.6 + 0.1*i2)^2)*exp(-12.73459431*(-0.4364 + + 0.1*i3)^2)*exp(-1.274977144*(-1.056 + 0.1*i4)^2)*exp(-0.156042645*(- + 1.091 + i5)^2)*exp(-0.009252024*(-3.202 + i6)^2)*exp(-0.398864899*(-2.606 + + i7)^2) - 3.645367249*exp(-11.68525497*(-0.5303 + 0.1*i1)^2)*exp(- + 12.69548048*(-0.8545 + 0.1*i2)^2)*exp(-12.73459431*(-0.9212 + 0.1*i3)^2)* + exp(-1.274977144*(-0.8778 + 0.1*i4)^2)*exp(-0.156042645*(-1.616 + i5)^2)* + exp(-0.009252024*(-3.232 + i6)^2)*exp(-0.398864899*(-4.727 + i7)^2) - + 5.448209813*exp(-11.68525497*(-0.3879 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5515 + 0.1*i2)^2)*exp(-12.73459431*(-0.5576 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7808 + 0.1*i4)^2)*exp(-0.156042645*(-1.444 + i5)^2)*exp(- + 0.009252024*(-3.677 + i6)^2)*exp(-0.398864899*(-2.03 + i7)^2) + + 0.878275491*exp(-11.68525497*(-0.4515 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7273 + 0.1*i2)^2)*exp(-12.73459431*(-0.8727 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.8131 + 0.1*i4)^2)*exp(-0.156042645*(-1.828 + i5)^2)*exp(- + 0.009252024*(-3.717 + i6)^2)*exp(-0.398864899*(-2.061 + i7)^2) - + 1.503195635*exp(-11.68525497*(-0.4818 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4121 + 0.1*i2)^2)*exp(-12.73459431*(-0.5515 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.064 + 0.1*i4)^2)*exp(-0.156042645*(-1.202 + i5)^2)*exp(- + 0.009252024*(-3.404 + i6)^2)*exp(-0.398864899*(-4.788 + i7)^2) - + 1.004830376*exp(-11.68525497*(-0.5515 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.8182 + 0.1*i2)^2)*exp(-12.73459431*(-0.9636 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.443 + 0.1*i4)^2)*exp(-0.156042645*(-1.606 + i5)^2)*exp(- + 0.009252024*(-3.263 + i6)^2)*exp(-0.398864899*(-3.667 + i7)^2) + + 10.31080266*exp(-11.68525497*(-0.4667 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.4727 + 0.1*i2)^2)*exp(-12.73459431*(-0.7818 + 0.1*i3)^2)*exp(- + 1.274977144*(-1.136 + 0.1*i4)^2)*exp(-0.156042645*(-1.545 + i5)^2)*exp(- + 0.009252024*(-3.99 + i6)^2)*exp(-0.398864899*(-4.758 + i7)^2) - + 6.489542408*exp(-11.68525497*(-0.5606 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.7758 + 0.1*i2)^2)*exp(-12.73459431*(-0.5273 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.9263 + 0.1*i4)^2)*exp(-0.156042645*(-1.576 + i5)^2)*exp(- + 0.009252024*(-3.919 + i6)^2)*exp(-0.398864899*(-2.394 + i7)^2) + + 0.646273326*exp(-11.68525497*(-0.4333 + 0.1*i1)^2)*exp(-12.69548048*(- + 0.5636 + 0.1*i2)^2)*exp(-12.73459431*(-0.9818 + 0.1*i3)^2)*exp(- + 1.274977144*(-0.7081 + 0.1*i4)^2)*exp(-0.156042645*(-1.657 + i5)^2)*exp(- + 0.009252024*(-3.273 + i6)^2)*exp(-0.398864899*(-3.455 + i7)^2) + 17.312159 + *exp(-11.68525497*(-0.5333 + 0.1*i1)^2)*exp(-12.69548048*(-0.8303 + 0.1*i2 + )^2)*exp(-12.73459431*(-0.6061 + 0.1*i3)^2)*exp(-1.274977144*(-0.9424 + + 0.1*i4)^2)*exp(-0.156042645*(-1 + i5)^2)*exp(-0.009252024*(-3.545 + i6)^2) + *exp(-0.398864899*(-2.303 + i7)^2) + 1.751599962*exp(-11.68525497*(-0.3788 + + 0.1*i1)^2)*exp(-12.69548048*(-0.9152 + 0.1*i2)^2)*exp(-12.73459431*(- + 0.7515 + 0.1*i3)^2)*exp(-1.274977144*(-0.8455 + 0.1*i4)^2)*exp(- + 0.156042645*(-1.212 + i5)^2)*exp(-0.009252024*(-3.394 + i6)^2)*exp(- + 0.398864899*(-4.879 + i7)^2) + 1.528598503*exp(-11.68525497*(-0.4909 + 0.1 + *i1)^2)*exp(-12.69548048*(-0.8727 + 0.1*i2)^2)*exp(-12.73459431*(-0.4424 + + 0.1*i3)^2)*exp(-1.274977144*(-1.047 + 0.1*i4)^2)*exp(-0.156042645*(- + 1.02 + i5)^2)*exp(-0.009252024*(-3.556 + i6)^2)*exp(-0.398864899*(-4.303 + + i7)^2)) + x8 >= 3.618770376; + + -(0.642584674*exp(-23.87501814*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.697 + 0.1*i2)^2)*exp(-12.77672619*(-0.8061 + 0.1*i3)^2)*exp(-0.371719276 + *(-0.9586 + 0.1*i4)^2)*exp(-0.79987609*(-1.758 + i5)^2)*exp(-0.105506332*( + -3.141 + i6)^2)*exp(-0.387741131*(-4.424 + i7)^2) + 0.393247267*exp(- + 23.87501814*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(-0.9697 + 0.1*i2)^2)* + exp(-12.77672619*(-0.4909 + 0.1*i3)^2)*exp(-0.371719276*(-1.161 + 0.1*i4)^ + 2)*exp(-0.79987609*(-1.778 + i5)^2)*exp(-0.105506332*(-3.778 + i6)^2)*exp( + -0.387741131*(-4.091 + i7)^2) - 0.458029422*exp(-23.87501814*(-0.503 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-12.77672619*(-0.4121 + + 0.1*i3)^2)*exp(-0.371719276*(-1.419 + 0.1*i4)^2)*exp(-0.79987609*(- + 1.333 + i5)^2)*exp(-0.105506332*(-3.152 + i6)^2)*exp(-0.387741131*(-3.697 + + i7)^2) + 4.335554208*exp(-23.87501814*(-0.4606 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.903 + 0.1*i2)^2)*exp(-12.77672619*(-0.7576 + 0.1*i3)^2)* + exp(-0.371719276*(-0.7727 + 0.1*i4)^2)*exp(-0.79987609*(-1.242 + i5)^2)* + exp(-0.105506332*(-3.98 + i6)^2)*exp(-0.387741131*(-3.424 + i7)^2) - + 0.626418066*exp(-23.87501814*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + + 0.1*i2)^2)*exp(-12.77672619*(-0.8606 + 0.1*i3)^2)*exp(-0.371719276*(- + 1.153 + 0.1*i4)^2)*exp(-0.79987609*(-1.556 + i5)^2)*exp(-0.105506332*(- + 3.939 + i6)^2)*exp(-0.387741131*(-2.818 + i7)^2) + 2.711294235*exp(- + 23.87501814*(-0.5879 + 0.1*i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)* + exp(-12.77672619*(-0.4788 + 0.1*i3)^2)*exp(-0.371719276*(-1.039 + 0.1*i4)^ + 2)*exp(-0.79987609*(-1.646 + i5)^2)*exp(-0.105506332*(-3.222 + i6)^2)*exp( + -0.387741131*(-4.636 + i7)^2) + 4.434759645*exp(-23.87501814*(-0.4121 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4424 + 0.1*i2)^2)*exp(-12.77672619*(- + 0.5939 + 0.1*i3)^2)*exp(-0.371719276*(-1.46 + 0.1*i4)^2)*exp(-0.79987609*( + -1.232 + i5)^2)*exp(-0.105506332*(-3.788 + i6)^2)*exp(-0.387741131*(-3.848 + + i7)^2) + 1.63223903*exp(-23.87501814*(-0.5576 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8848 + 0.1*i2)^2)*exp(-12.77672619*(-0.8121 + 0.1*i3)^2)* + exp(-0.371719276*(-1.128 + 0.1*i4)^2)*exp(-0.79987609*(-1.263 + i5)^2)* + exp(-0.105506332*(-3.808 + i6)^2)*exp(-0.387741131*(-4.818 + i7)^2) + + 1.197571604*exp(-23.87501814*(-0.4273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4848 + 0.1*i2)^2)*exp(-12.77672619*(-0.9697 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9667 + 0.1*i4)^2)*exp(-0.79987609*(-1.364 + i5)^2)*exp(- + 0.105506332*(-3.869 + i6)^2)*exp(-0.387741131*(-2.667 + i7)^2) - + 0.221950053*exp(-23.87501814*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4061 + 0.1*i2)^2)*exp(-12.77672619*(-0.6303 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.427 + 0.1*i4)^2)*exp(-0.79987609*(-1.747 + i5)^2)*exp(- + 0.105506332*(-3.444 + i6)^2)*exp(-0.387741131*(-3.576 + i7)^2) - + 1.348573489*exp(-23.87501814*(-0.5394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5273 + 0.1*i2)^2)*exp(-12.77672619*(-0.5636 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.355 + 0.1*i4)^2)*exp(-0.79987609*(-1.253 + i5)^2)*exp(- + 0.105506332*(-3.566 + i6)^2)*exp(-0.387741131*(-2.121 + i7)^2) - + 2.181210667*exp(-23.87501814*(-0.5273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8121 + 0.1*i2)^2)*exp(-12.77672619*(-0.8424 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.8535 + 0.1*i4)^2)*exp(-0.79987609*(-1.899 + i5)^2)*exp(- + 0.105506332*(-3.889 + i6)^2)*exp(-0.387741131*(-4.061 + i7)^2) - + 1.691496596*exp(-23.87501814*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-12.77672619*(-0.9333 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.306 + 0.1*i4)^2)*exp(-0.79987609*(-1.273 + i5)^2)*exp(- + 0.105506332*(-3.707 + i6)^2)*exp(-0.387741131*(-3.485 + i7)^2) - + 0.917307311*exp(-23.87501814*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6364 + 0.1*i2)^2)*exp(-12.77672619*(-0.5758 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.282 + 0.1*i4)^2)*exp(-0.79987609*(-1.222 + i5)^2)*exp(- + 0.105506332*(-3.192 + i6)^2)*exp(-0.387741131*(-4.455 + i7)^2) - + 0.951885383*exp(-23.87501814*(-0.4364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7394 + 0.1*i2)^2)*exp(-12.77672619*(-0.4485 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.403 + 0.1*i4)^2)*exp(-0.79987609*(-1.465 + i5)^2)*exp(- + 0.105506332*(-3.687 + i6)^2)*exp(-0.387741131*(-4.939 + i7)^2) + + 1.012518852*exp(-23.87501814*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-12.77672619*(-0.7273 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.346 + 0.1*i4)^2)*exp(-0.79987609*(-1.01 + i5)^2)*exp(- + 0.105506332*(-3.333 + i6)^2)*exp(-0.387741131*(-4.364 + i7)^2) + + 2.724606472*exp(-23.87501814*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7152 + 0.1*i2)^2)*exp(-12.77672619*(-0.703 + 0.1*i3)^2)*exp(-0.371719276 + *(-1.209 + 0.1*i4)^2)*exp(-0.79987609*(-1.354 + i5)^2)*exp(-0.105506332*(- + 3.01 + i6)^2)*exp(-0.387741131*(-2.758 + i7)^2) + 5.431060653*exp(- + 23.87501814*(-0.5152 + 0.1*i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)* + exp(-12.77672619*(-0.503 + 0.1*i3)^2)*exp(-0.371719276*(-0.7566 + 0.1*i4)^ + 2)*exp(-0.79987609*(-1.424 + i5)^2)*exp(-0.105506332*(-3.848 + i6)^2)*exp( + -0.387741131*(-4.576 + i7)^2) + 1.358514235*exp(-23.87501814*(-0.5758 + + 0.1*i1)^2)*exp(-12.56111847*(-0.5152 + 0.1*i2)^2)*exp(-12.77672619*(- + 0.4303 + 0.1*i3)^2)*exp(-0.371719276*(-0.8697 + 0.1*i4)^2)*exp(-0.79987609 + *(-1.374 + i5)^2)*exp(-0.105506332*(-3.414 + i6)^2)*exp(-0.387741131*(- + 3.061 + i7)^2) - 0.789765675*exp(-23.87501814*(-0.3939 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7091 + 0.1*i2)^2)*exp(-12.77672619*(-0.4242 + 0.1*i3)^2)* + exp(-0.371719276*(-0.8293 + 0.1*i4)^2)*exp(-0.79987609*(-1.434 + i5)^2)* + exp(-0.105506332*(-3.121 + i6)^2)*exp(-0.387741131*(-4.394 + i7)^2) - + 1.162019926*exp(-23.87501814*(-0.403 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5333 + 0.1*i2)^2)*exp(-12.77672619*(-0.5152 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.233 + 0.1*i4)^2)*exp(-0.79987609*(-1.889 + i5)^2)*exp(- + 0.105506332*(-3.172 + i6)^2)*exp(-0.387741131*(-4.545 + i7)^2) + + 2.617603054*exp(-23.87501814*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-12.77672619*(-0.4606 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.144 + 0.1*i4)^2)*exp(-0.79987609*(-1.879 + i5)^2)*exp(- + 0.105506332*(-3.343 + i6)^2)*exp(-0.387741131*(-2.152 + i7)^2) + + 6.741086876*exp(-23.87501814*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8242 + 0.1*i2)^2)*exp(-12.77672619*(-0.6545 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.411 + 0.1*i4)^2)*exp(-0.79987609*(-1.525 + i5)^2)*exp(- + 0.105506332*(-3.04 + i6)^2)*exp(-0.387741131*(-2.273 + i7)^2) - + 1.541200458*exp(-23.87501814*(-0.4545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.503 + 0.1*i2)^2)*exp(-12.77672619*(-0.7152 + 0.1*i3)^2)*exp(-0.371719276 + *(-0.797 + 0.1*i4)^2)*exp(-0.79987609*(-1.798 + i5)^2)*exp(-0.105506332*(- + 3.424 + i6)^2)*exp(-0.387741131*(-4.97 + i7)^2) - 1.632608634*exp(- + 23.87501814*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(-0.8 + 0.1*i2)^2)*exp( + -12.77672619*(-0.9394 + 0.1*i3)^2)*exp(-0.371719276*(-0.8212 + 0.1*i4)^2)* + exp(-0.79987609*(-1.101 + i5)^2)*exp(-0.105506332*(-3.535 + i6)^2)*exp(- + 0.387741131*(-2.909 + i7)^2) - 2.721301973*exp(-23.87501814*(-0.5818 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)*exp(-12.77672619*(-0.6364 + + 0.1*i3)^2)*exp(-0.371719276*(-1.435 + 0.1*i4)^2)*exp(-0.79987609*(- + 1.313 + i5)^2)*exp(-0.105506332*(-3.576 + i6)^2)*exp(-0.387741131*(-3.212 + + i7)^2) + 5.017005131*exp(-23.87501814*(-0.4485 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-12.77672619*(-0.6 + 0.1*i3)^2)*exp( + -0.371719276*(-0.9505 + 0.1*i4)^2)*exp(-0.79987609*(-1.909 + i5)^2)*exp(- + 0.105506332*(-3.051 + i6)^2)*exp(-0.387741131*(-3.97 + i7)^2) - + 4.201804359*exp(-23.87501814*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8788 + 0.1*i2)^2)*exp(-12.77672619*(-0.4727 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7646 + 0.1*i4)^2)*exp(-0.79987609*(-1.293 + i5)^2)*exp(- + 0.105506332*(-3.616 + i6)^2)*exp(-0.387741131*(-3.273 + i7)^2) - + 2.946374325*exp(-23.87501814*(-0.3515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9576 + 0.1*i2)^2)*exp(-12.77672619*(-0.8182 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7485 + 0.1*i4)^2)*exp(-0.79987609*(-1.768 + i5)^2)*exp(- + 0.105506332*(-3.505 + i6)^2)*exp(-0.387741131*(-3.394 + i7)^2) - + 1.923802921*exp(-23.87501814*(-0.4061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6667 + 0.1*i2)^2)*exp(-12.77672619*(-0.9576 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.096 + 0.1*i4)^2)*exp(-0.79987609*(-1.131 + i5)^2)*exp(- + 0.105506332*(-3.071 + i6)^2)*exp(-0.387741131*(-4.242 + i7)^2) - + 1.616159551*exp(-23.87501814*(-0.5788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6545 + 0.1*i2)^2)*exp(-12.77672619*(-0.7697 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9101 + 0.1*i4)^2)*exp(-0.79987609*(-1.97 + i5)^2)*exp(- + 0.105506332*(-3.162 + i6)^2)*exp(-0.387741131*(-3.364 + i7)^2) - + 1.997972405*exp(-23.87501814*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9818 + 0.1*i2)^2)*exp(-12.77672619*(-0.9879 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.193 + 0.1*i4)^2)*exp(-0.79987609*(-1.586 + i5)^2)*exp(- + 0.105506332*(-3.798 + i6)^2)*exp(-0.387741131*(-3.03 + i7)^2) - + 0.800918875*exp(-23.87501814*(-0.3182 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5697 + 0.1*i2)^2)*exp(-12.77672619*(-0.7091 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.217 + 0.1*i4)^2)*exp(-0.79987609*(-1.061 + i5)^2)*exp(- + 0.105506332*(-3.646 + i6)^2)*exp(-0.387741131*(-2.455 + i7)^2) + + 0.921162676*exp(-23.87501814*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-12.77672619*(-0.5818 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.468 + 0.1*i4)^2)*exp(-0.79987609*(-1.03 + i5)^2)*exp(- + 0.105506332*(-3.455 + i6)^2)*exp(-0.387741131*(-3.242 + i7)^2) - + 3.514376018*exp(-23.87501814*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6303 + 0.1*i2)^2)*exp(-12.77672619*(-0.5091 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.266 + 0.1*i4)^2)*exp(-0.79987609*(-1.303 + i5)^2)*exp(- + 0.105506332*(-3.899 + i6)^2)*exp(-0.387741131*(-3.909 + i7)^2) - + 1.892038711*exp(-23.87501814*(-0.5939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6727 + 0.1*i2)^2)*exp(-12.77672619*(-0.7758 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.249 + 0.1*i4)^2)*exp(-0.79987609*(-1.818 + i5)^2)*exp(- + 0.105506332*(-3.586 + i6)^2)*exp(-0.387741131*(-4.848 + i7)^2) - + 2.353352226*exp(-23.87501814*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-12.77672619*(-0.5697 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.452 + 0.1*i4)^2)*exp(-0.79987609*(-1.949 + i5)^2)*exp(- + 0.105506332*(-3.253 + i6)^2)*exp(-0.387741131*(-3.606 + i7)^2) + + 1.652335375*exp(-23.87501814*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9636 + 0.1*i2)^2)*exp(-12.77672619*(-0.6182 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7242 + 0.1*i4)^2)*exp(-0.79987609*(-1.495 + i5)^2)*exp(- + 0.105506332*(-3.475 + i6)^2)*exp(-0.387741131*(-3.818 + i7)^2) + + 2.387997956*exp(-23.87501814*(-0.3364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5091 + 0.1*i2)^2)*exp(-12.77672619*(-0.697 + 0.1*i3)^2)*exp(-0.371719276 + *(-0.7323 + 0.1*i4)^2)*exp(-0.79987609*(-1.182 + i5)^2)*exp(-0.105506332*( + -3.313 + i6)^2)*exp(-0.387741131*(-3.727 + i7)^2) - 0.136722757*exp(- + 23.87501814*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(-0.6061 + 0.1*i2)^2)* + exp(-12.77672619*(-0.8485 + 0.1*i3)^2)*exp(-0.371719276*(-1.476 + 0.1*i4)^ + 2)*exp(-0.79987609*(-1.505 + i5)^2)*exp(-0.105506332*(-3.364 + i6)^2)*exp( + -0.387741131*(-5 + i7)^2) - 0.034307721*exp(-23.87501814*(-0.3697 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(-12.77672619*(-0.5455 + + 0.1*i3)^2)*exp(-0.371719276*(-0.902 + 0.1*i4)^2)*exp(-0.79987609*(-1.788 + + i5)^2)*exp(-0.105506332*(-3.697 + i6)^2)*exp(-0.387741131*(-4.909 + i7) + ^2) + 1.632212435*exp(-23.87501814*(-0.5121 + 0.1*i1)^2)*exp(-12.56111847* + (-0.5758 + 0.1*i2)^2)*exp(-12.77672619*(-0.9091 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.8051 + 0.1*i4)^2)*exp(-0.79987609*(-1.152 + i5)^2)*exp(- + 0.105506332*(-3.667 + i6)^2)*exp(-0.387741131*(-4.485 + i7)^2) + + 2.635401105*exp(-23.87501814*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-12.77672619*(-0.9515 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.33 + 0.1*i4)^2)*exp(-0.79987609*(-1.162 + i5)^2)*exp(- + 0.105506332*(-3.354 + i6)^2)*exp(-0.387741131*(-2.182 + i7)^2) + + 0.338534869*exp(-23.87501814*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6848 + 0.1*i2)^2)*exp(-12.77672619*(-0.4848 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7 + 0.1*i4)^2)*exp(-0.79987609*(-1.939 + i5)^2)*exp(- + 0.105506332*(-3.515 + i6)^2)*exp(-0.387741131*(-3.333 + i7)^2) + + 2.50658923*exp(-23.87501814*(-0.3152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5879 + 0.1*i2)^2)*exp(-12.77672619*(-0.8667 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.031 + 0.1*i4)^2)*exp(-0.79987609*(-1.485 + i5)^2)*exp(- + 0.105506332*(-3.182 + i6)^2)*exp(-0.387741131*(-2.242 + i7)^2) + + 4.817697255*exp(-23.87501814*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-12.77672619*(-0.4061 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.201 + 0.1*i4)^2)*exp(-0.79987609*(-1.283 + i5)^2)*exp(- + 0.105506332*(-3.949 + i6)^2)*exp(-0.387741131*(-3 + i7)^2) - 2.228592897* + exp(-23.87501814*(-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2) + ^2)*exp(-12.77672619*(-0.8788 + 0.1*i3)^2)*exp(-0.371719276*(-1.072 + 0.1* + i4)^2)*exp(-0.79987609*(-1.081 + i5)^2)*exp(-0.105506332*(-3.303 + i6)^2)* + exp(-0.387741131*(-3.545 + i7)^2) - 12.12009433*exp(-23.87501814*(-0.4424 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-12.77672619*(- + 0.5333 + 0.1*i3)^2)*exp(-0.371719276*(-1.484 + 0.1*i4)^2)*exp(-0.79987609* + (-1.677 + i5)^2)*exp(-0.105506332*(-3.737 + i6)^2)*exp(-0.387741131*(- + 2.333 + i7)^2) - 0.37627396*exp(-23.87501814*(-0.397 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5939 + 0.1*i2)^2)*exp(-12.77672619*(-0.8545 + 0.1*i3)^2)* + exp(-0.371719276*(-1.363 + 0.1*i4)^2)*exp(-0.79987609*(-1.869 + i5)^2)* + exp(-0.105506332*(-3.02 + i6)^2)*exp(-0.387741131*(-3.515 + i7)^2) - + 2.265406692*exp(-23.87501814*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4788 + 0.1*i2)^2)*exp(-12.77672619*(-0.6121 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.8939 + 0.1*i4)^2)*exp(-0.79987609*(-1.051 + i5)^2)*exp(- + 0.105506332*(-3.879 + i6)^2)*exp(-0.387741131*(-3.182 + i7)^2) + + 2.812070071*exp(-23.87501814*(-0.3545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4364 + 0.1*i2)^2)*exp(-12.77672619*(-0.7333 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9828 + 0.1*i4)^2)*exp(-0.79987609*(-1.99 + i5)^2)*exp(- + 0.105506332*(-3.495 + i6)^2)*exp(-0.387741131*(-2.97 + i7)^2) - + 5.331320437*exp(-23.87501814*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-12.77672619*(-0.6727 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7889 + 0.1*i4)^2)*exp(-0.79987609*(-1.121 + i5)^2)*exp(- + 0.105506332*(-3.091 + i6)^2)*exp(-0.387741131*(-4.121 + i7)^2) - + 3.650659302*exp(-23.87501814*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7879 + 0.1*i2)^2)*exp(-12.77672619*(-0.6909 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7162 + 0.1*i4)^2)*exp(-0.79987609*(-1.475 + i5)^2)*exp(- + 0.105506332*(-3.131 + i6)^2)*exp(-0.387741131*(-2.212 + i7)^2) + + 3.679127528*exp(-23.87501814*(-0.4394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.897 + 0.1*i2)^2)*exp(-12.77672619*(-0.9758 + 0.1*i3)^2)*exp(-0.371719276 + *(-1.023 + 0.1*i4)^2)*exp(-0.79987609*(-1.667 + i5)^2)*exp(-0.105506332*(- + 3.061 + i6)^2)*exp(-0.387741131*(-2.879 + i7)^2) - 1.341133046*exp(- + 23.87501814*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(-0.5394 + 0.1*i2)^2)* + exp(-12.77672619*(-0.9152 + 0.1*i3)^2)*exp(-0.371719276*(-1.5 + 0.1*i4)^2) + *exp(-0.79987609*(-1.596 + i5)^2)*exp(-0.105506332*(-3.636 + i6)^2)*exp(- + 0.387741131*(-2.727 + i7)^2) - 0.892881001*exp(-23.87501814*(-0.5545 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)*exp(-12.77672619*(-0.7212 + + 0.1*i3)^2)*exp(-0.371719276*(-1.08 + 0.1*i4)^2)*exp(-0.79987609*(-1.838 + + i5)^2)*exp(-0.105506332*(-3.434 + i6)^2)*exp(-0.387741131*(-2.364 + i7) + ^2) - 0.440001653*exp(-23.87501814*(-0.3758 + 0.1*i1)^2)*exp(-12.56111847* + (-0.8667 + 0.1*i2)^2)*exp(-12.77672619*(-0.5394 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.015 + 0.1*i4)^2)*exp(-0.79987609*(-1.919 + i5)^2)*exp(- + 0.105506332*(-3.909 + i6)^2)*exp(-0.387741131*(-2.939 + i7)^2) + + 11.08677554*exp(-23.87501814*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-12.77672619*(-0.5212 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9343 + 0.1*i4)^2)*exp(-0.79987609*(-1.808 + i5)^2)*exp(- + 0.105506332*(-3.212 + i6)^2)*exp(-0.387741131*(-2.545 + i7)^2) - + 3.395406054*exp(-23.87501814*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9333 + 0.1*i2)^2)*exp(-12.77672619*(-0.6485 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.322 + 0.1*i4)^2)*exp(-0.79987609*(-1.394 + i5)^2)*exp(- + 0.105506332*(-3.081 + i6)^2)*exp(-0.387741131*(-4.697 + i7)^2) + + 1.903610965*exp(-23.87501814*(-0.4576 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5455 + 0.1*i2)^2)*exp(-12.77672619*(-0.9939 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.169 + 0.1*i4)^2)*exp(-0.79987609*(-1.98 + i5)^2)*exp(- + 0.105506332*(-3.626 + i6)^2)*exp(-0.387741131*(-3.939 + i7)^2) + + 0.291226405*exp(-23.87501814*(-0.3242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9212 + 0.1*i2)^2)*exp(-12.77672619*(-0.4667 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.314 + 0.1*i4)^2)*exp(-0.79987609*(-1.697 + i5)^2)*exp(- + 0.105506332*(-3.374 + i6)^2)*exp(-0.387741131*(-3.758 + i7)^2) + + 2.415667735*exp(-23.87501814*(-0.5697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4182 + 0.1*i2)^2)*exp(-12.77672619*(-0.7394 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.8374 + 0.1*i4)^2)*exp(-0.79987609*(-1.717 + i5)^2)*exp(- + 0.105506332*(-3.727 + i6)^2)*exp(-0.387741131*(-3.303 + i7)^2) + + 4.590007396*exp(-23.87501814*(-0.3727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9879 + 0.1*i2)^2)*exp(-12.77672619*(-0.6848 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.104 + 0.1*i4)^2)*exp(-0.79987609*(-1.343 + i5)^2)*exp(- + 0.105506332*(-3.606 + i6)^2)*exp(-0.387741131*(-2 + i7)^2) + 1.531075672* + exp(-23.87501814*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(-0.4667 + 0.1*i2) + ^2)*exp(-12.77672619*(-0.8303 + 0.1*i3)^2)*exp(-0.371719276*(-0.8859 + 0.1 + *i4)^2)*exp(-0.79987609*(-1.111 + i5)^2)*exp(-0.105506332*(-3.283 + i6)^2) + *exp(-0.387741131*(-2.576 + i7)^2) - 6.694283316*exp(-23.87501814*(-0.3485 + + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)*exp(-12.77672619*(- + 0.6606 + 0.1*i3)^2)*exp(-0.371719276*(-0.999 + 0.1*i4)^2)*exp(-0.79987609* + (-1.172 + i5)^2)*exp(-0.105506332*(-3.03 + i6)^2)*exp(-0.387741131*(-3.152 + + i7)^2) + 0.904599646*exp(-23.87501814*(-0.5848 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-12.77672619*(-0.8 + 0.1*i3)^2)*exp( + -0.371719276*(-1.298 + 0.1*i4)^2)*exp(-0.79987609*(-1.848 + i5)^2)*exp(- + 0.105506332*(-3.828 + i6)^2)*exp(-0.387741131*(-2.636 + i7)^2) - + 3.707770142*exp(-23.87501814*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5212 + 0.1*i2)^2)*exp(-12.77672619*(-0.497 + 0.1*i3)^2)*exp(-0.371719276 + *(-1.395 + 0.1*i4)^2)*exp(-0.79987609*(-1.636 + i5)^2)*exp(-0.105506332*(- + 3.384 + i6)^2)*exp(-0.387741131*(-2.697 + i7)^2) + 1.074058784*exp(- + 23.87501814*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(-0.6242 + 0.1*i2)^2)* + exp(-12.77672619*(-0.6788 + 0.1*i3)^2)*exp(-0.371719276*(-1.338 + 0.1*i4)^ + 2)*exp(-0.79987609*(-1.859 + i5)^2)*exp(-0.105506332*(-3.758 + i6)^2)*exp( + -0.387741131*(-4.273 + i7)^2) + 1.376772472*exp(-23.87501814*(-0.5485 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4545 + 0.1*i2)^2)*exp(-12.77672619*(- + 0.8848 + 0.1*i3)^2)*exp(-0.371719276*(-1.112 + 0.1*i4)^2)*exp(-0.79987609* + (-1.515 + i5)^2)*exp(-0.105506332*(-3.101 + i6)^2)*exp(-0.387741131*(- + 4.333 + i7)^2) + 3.599878538*exp(-23.87501814*(-0.4636 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7939 + 0.1*i2)^2)*exp(-12.77672619*(-0.7879 + 0.1*i3)^2)* + exp(-0.371719276*(-1.492 + 0.1*i4)^2)*exp(-0.79987609*(-1.707 + i5)^2)* + exp(-0.105506332*(-3.97 + i6)^2)*exp(-0.387741131*(-4.03 + i7)^2) - + 4.111829753*exp(-23.87501814*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5818 + 0.1*i2)^2)*exp(-12.77672619*(-0.7455 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7404 + 0.1*i4)^2)*exp(-0.79987609*(-1.687 + i5)^2)*exp(- + 0.105506332*(-3.929 + i6)^2)*exp(-0.387741131*(-3.788 + i7)^2) - + 0.59199082*exp(-23.87501814*(-0.6 + 0.1*i1)^2)*exp(-12.56111847*(-0.7515 + + 0.1*i2)^2)*exp(-12.77672619*(-0.9455 + 0.1*i3)^2)*exp(-0.371719276*(- + 0.8616 + 0.1*i4)^2)*exp(-0.79987609*(-1.384 + i5)^2)*exp(-0.105506332*(- + 3.596 + i6)^2)*exp(-0.387741131*(-2.848 + i7)^2) - 4.01749783*exp(- + 23.87501814*(-0.3273 + 0.1*i1)^2)*exp(-12.56111847*(-0.4 + 0.1*i2)^2)*exp( + -12.77672619*(-0.897 + 0.1*i3)^2)*exp(-0.371719276*(-1.12 + 0.1*i4)^2)* + exp(-0.79987609*(-1.404 + i5)^2)*exp(-0.105506332*(-3.525 + i6)^2)*exp(- + 0.387741131*(-4.182 + i7)^2) - 0.049922134*exp(-23.87501814*(-0.5212 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.497 + 0.1*i2)^2)*exp(-12.77672619*(-0.8909 + + 0.1*i3)^2)*exp(-0.371719276*(-1.185 + 0.1*i4)^2)*exp(-0.79987609*(-1.737 + + i5)^2)*exp(-0.105506332*(-3.293 + i6)^2)*exp(-0.387741131*(-2.091 + i7) + ^2) + 1.204745535*exp(-23.87501814*(-0.4303 + 0.1*i1)^2)*exp(-12.56111847* + (-0.4606 + 0.1*i2)^2)*exp(-12.77672619*(-0.6242 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.225 + 0.1*i4)^2)*exp(-0.79987609*(-1.727 + i5)^2)*exp(- + 0.105506332*(-3.96 + i6)^2)*exp(-0.387741131*(-2.424 + i7)^2) + + 2.335521565*exp(-23.87501814*(-0.3121 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8909 + 0.1*i2)^2)*exp(-12.77672619*(-0.903 + 0.1*i3)^2)*exp(-0.371719276 + *(-1.387 + 0.1*i4)^2)*exp(-0.79987609*(-1.414 + i5)^2)*exp(-0.105506332*(- + 3.323 + i6)^2)*exp(-0.387741131*(-3.636 + i7)^2) - 0.975064678*exp(- + 23.87501814*(-0.3424 + 0.1*i1)^2)*exp(-12.56111847*(-0.4485 + 0.1*i2)^2)* + exp(-12.77672619*(-0.4182 + 0.1*i3)^2)*exp(-0.371719276*(-0.9747 + 0.1*i4) + ^2)*exp(-0.79987609*(-1.566 + i5)^2)*exp(-0.105506332*(-3.657 + i6)^2)* + exp(-0.387741131*(-3.879 + i7)^2) - 7.167800959*exp(-23.87501814*(-0.497 + + 0.1*i1)^2)*exp(-12.56111847*(-0.7697 + 0.1*i2)^2)*exp(-12.77672619*(- + 0.7939 + 0.1*i3)^2)*exp(-0.371719276*(-1.274 + 0.1*i4)^2)*exp(-0.79987609* + (-1.141 + i5)^2)*exp(-0.105506332*(-4 + i6)^2)*exp(-0.387741131*(-2.515 + + i7)^2) - 2.077614816*exp(-23.87501814*(-0.4939 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5576 + 0.1*i2)^2)*exp(-12.77672619*(-0.4545 + 0.1*i3)^2)* + exp(-0.371719276*(-1.177 + 0.1*i4)^2)*exp(-0.79987609*(-1.96 + i5)^2)*exp( + -0.105506332*(-3.818 + i6)^2)*exp(-0.387741131*(-4 + i7)^2) - 1.767348036* + exp(-23.87501814*(-0.5 + 0.1*i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2) + *exp(-12.77672619*(-0.4 + 0.1*i3)^2)*exp(-0.371719276*(-1.088 + 0.1*i4)^2) + *exp(-0.79987609*(-1.455 + i5)^2)*exp(-0.105506332*(-3.242 + i6)^2)*exp(- + 0.387741131*(-2.788 + i7)^2) - 1.157865515*exp(-23.87501814*(-0.4182 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9455 + 0.1*i2)^2)*exp(-12.77672619*(-0.8364 + + 0.1*i3)^2)*exp(-0.371719276*(-1.258 + 0.1*i4)^2)*exp(-0.79987609*(- + 1.929 + i5)^2)*exp(-0.105506332*(-3.465 + i6)^2)*exp(-0.387741131*(-4.606 + + i7)^2) + 0.281927096*exp(-23.87501814*(-0.3636 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7818 + 0.1*i2)^2)*exp(-12.77672619*(-1 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9909 + 0.1*i4)^2)*exp(-0.79987609*(-1.535 + i5)^2)*exp(- + 0.105506332*(-3.768 + i6)^2)*exp(-0.387741131*(-4.667 + i7)^2) + + 1.171998746*exp(-23.87501814*(-0.4091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7212 + 0.1*i2)^2)*exp(-12.77672619*(-0.9273 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.371 + 0.1*i4)^2)*exp(-0.79987609*(-1.04 + i5)^2)*exp(- + 0.105506332*(-3.747 + i6)^2)*exp(-0.387741131*(-4.152 + i7)^2) - + 1.578705366*exp(-23.87501814*(-0.4455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4242 + 0.1*i2)^2)*exp(-12.77672619*(-0.5879 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9182 + 0.1*i4)^2)*exp(-0.79987609*(-1.626 + i5)^2)*exp(- + 0.105506332*(-3 + i6)^2)*exp(-0.387741131*(-3.091 + i7)^2) - 2.281653578* + exp(-23.87501814*(-0.3667 + 0.1*i1)^2)*exp(-12.56111847*(-0.8424 + 0.1*i2) + ^2)*exp(-12.77672619*(-0.8242 + 0.1*i3)^2)*exp(-0.371719276*(-1.29 + 0.1* + i4)^2)*exp(-0.79987609*(-2 + i5)^2)*exp(-0.105506332*(-3.485 + i6)^2)*exp( + -0.387741131*(-2.485 + i7)^2) - 2.074724479*exp(-23.87501814*(-0.4 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6 + 0.1*i2)^2)*exp(-12.77672619*(-0.4364 + 0.1 + *i3)^2)*exp(-0.371719276*(-1.056 + 0.1*i4)^2)*exp(-0.79987609*(-1.091 + i5 + )^2)*exp(-0.105506332*(-3.202 + i6)^2)*exp(-0.387741131*(-2.606 + i7)^2) + - 1.145777042*exp(-23.87501814*(-0.5303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8545 + 0.1*i2)^2)*exp(-12.77672619*(-0.9212 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.8778 + 0.1*i4)^2)*exp(-0.79987609*(-1.616 + i5)^2)*exp(- + 0.105506332*(-3.232 + i6)^2)*exp(-0.387741131*(-4.727 + i7)^2) - + 2.922318458*exp(-23.87501814*(-0.3879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5515 + 0.1*i2)^2)*exp(-12.77672619*(-0.5576 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7808 + 0.1*i4)^2)*exp(-0.79987609*(-1.444 + i5)^2)*exp(- + 0.105506332*(-3.677 + i6)^2)*exp(-0.387741131*(-2.03 + i7)^2) - + 0.478291542*exp(-23.87501814*(-0.4515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7273 + 0.1*i2)^2)*exp(-12.77672619*(-0.8727 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.8131 + 0.1*i4)^2)*exp(-0.79987609*(-1.828 + i5)^2)*exp(- + 0.105506332*(-3.717 + i6)^2)*exp(-0.387741131*(-2.061 + i7)^2) - + 2.385838433*exp(-23.87501814*(-0.4818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4121 + 0.1*i2)^2)*exp(-12.77672619*(-0.5515 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.064 + 0.1*i4)^2)*exp(-0.79987609*(-1.202 + i5)^2)*exp(- + 0.105506332*(-3.404 + i6)^2)*exp(-0.387741131*(-4.788 + i7)^2) + + 0.974073085*exp(-23.87501814*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-12.77672619*(-0.9636 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.443 + 0.1*i4)^2)*exp(-0.79987609*(-1.606 + i5)^2)*exp(- + 0.105506332*(-3.263 + i6)^2)*exp(-0.387741131*(-3.667 + i7)^2) + + 3.545949417*exp(-23.87501814*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4727 + 0.1*i2)^2)*exp(-12.77672619*(-0.7818 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.136 + 0.1*i4)^2)*exp(-0.79987609*(-1.545 + i5)^2)*exp(- + 0.105506332*(-3.99 + i6)^2)*exp(-0.387741131*(-4.758 + i7)^2) + + 0.203193243*exp(-23.87501814*(-0.5606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7758 + 0.1*i2)^2)*exp(-12.77672619*(-0.5273 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9263 + 0.1*i4)^2)*exp(-0.79987609*(-1.576 + i5)^2)*exp(- + 0.105506332*(-3.919 + i6)^2)*exp(-0.387741131*(-2.394 + i7)^2) + + 1.106030462*exp(-23.87501814*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-12.77672619*(-0.9818 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.7081 + 0.1*i4)^2)*exp(-0.79987609*(-1.657 + i5)^2)*exp(- + 0.105506332*(-3.273 + i6)^2)*exp(-0.387741131*(-3.455 + i7)^2) + + 9.374962153*exp(-23.87501814*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8303 + 0.1*i2)^2)*exp(-12.77672619*(-0.6061 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.9424 + 0.1*i4)^2)*exp(-0.79987609*(-1 + i5)^2)*exp(- + 0.105506332*(-3.545 + i6)^2)*exp(-0.387741131*(-2.303 + i7)^2) + + 1.083622166*exp(-23.87501814*(-0.3788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9152 + 0.1*i2)^2)*exp(-12.77672619*(-0.7515 + 0.1*i3)^2)*exp(- + 0.371719276*(-0.8455 + 0.1*i4)^2)*exp(-0.79987609*(-1.212 + i5)^2)*exp(- + 0.105506332*(-3.394 + i6)^2)*exp(-0.387741131*(-4.879 + i7)^2) + + 1.201192739*exp(-23.87501814*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-12.77672619*(-0.4424 + 0.1*i3)^2)*exp(- + 0.371719276*(-1.047 + 0.1*i4)^2)*exp(-0.79987609*(-1.02 + i5)^2)*exp(- + 0.105506332*(-3.556 + i6)^2)*exp(-0.387741131*(-4.303 + i7)^2)) + x8 + >= 3.737345944; + + -(0.680672034*exp(-16.86217887*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.697 + 0.1*i2)^2)*exp(-10.23065883*(-0.8061 + 0.1*i3)^2)*exp(-0.250901437 + *(-0.9586 + 0.1*i4)^2)*exp(-0.443953997*(-1.758 + i5)^2)*exp(-0.239135549* + (-3.141 + i6)^2)*exp(-0.306875089*(-4.424 + i7)^2) - 0.826898279*exp(- + 16.86217887*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(-0.9697 + 0.1*i2)^2)* + exp(-10.23065883*(-0.4909 + 0.1*i3)^2)*exp(-0.250901437*(-1.161 + 0.1*i4)^ + 2)*exp(-0.443953997*(-1.778 + i5)^2)*exp(-0.239135549*(-3.778 + i6)^2)* + exp(-0.306875089*(-4.091 + i7)^2) + 1.861988154*exp(-16.86217887*(-0.503 + + 0.1*i1)^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-10.23065883*(- + 0.4121 + 0.1*i3)^2)*exp(-0.250901437*(-1.419 + 0.1*i4)^2)*exp(-0.443953997 + *(-1.333 + i5)^2)*exp(-0.239135549*(-3.152 + i6)^2)*exp(-0.306875089*(- + 3.697 + i7)^2) + 0.427738374*exp(-16.86217887*(-0.4606 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.903 + 0.1*i2)^2)*exp(-10.23065883*(-0.7576 + 0.1*i3)^2)* + exp(-0.250901437*(-0.7727 + 0.1*i4)^2)*exp(-0.443953997*(-1.242 + i5)^2)* + exp(-0.239135549*(-3.98 + i6)^2)*exp(-0.306875089*(-3.424 + i7)^2) + + 0.987897998*exp(-16.86217887*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + + 0.1*i2)^2)*exp(-10.23065883*(-0.8606 + 0.1*i3)^2)*exp(-0.250901437*(- + 1.153 + 0.1*i4)^2)*exp(-0.443953997*(-1.556 + i5)^2)*exp(-0.239135549*(- + 3.939 + i6)^2)*exp(-0.306875089*(-2.818 + i7)^2) + 0.698367952*exp(- + 16.86217887*(-0.5879 + 0.1*i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)* + exp(-10.23065883*(-0.4788 + 0.1*i3)^2)*exp(-0.250901437*(-1.039 + 0.1*i4)^ + 2)*exp(-0.443953997*(-1.646 + i5)^2)*exp(-0.239135549*(-3.222 + i6)^2)* + exp(-0.306875089*(-4.636 + i7)^2) + 6.990830983*exp(-16.86217887*(-0.4121 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4424 + 0.1*i2)^2)*exp(-10.23065883*(- + 0.5939 + 0.1*i3)^2)*exp(-0.250901437*(-1.46 + 0.1*i4)^2)*exp(-0.443953997* + (-1.232 + i5)^2)*exp(-0.239135549*(-3.788 + i6)^2)*exp(-0.306875089*(- + 3.848 + i7)^2) + 0.901748067*exp(-16.86217887*(-0.5576 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8848 + 0.1*i2)^2)*exp(-10.23065883*(-0.8121 + 0.1*i3)^2)* + exp(-0.250901437*(-1.128 + 0.1*i4)^2)*exp(-0.443953997*(-1.263 + i5)^2)* + exp(-0.239135549*(-3.808 + i6)^2)*exp(-0.306875089*(-4.818 + i7)^2) + + 0.63664233*exp(-16.86217887*(-0.4273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4848 + 0.1*i2)^2)*exp(-10.23065883*(-0.9697 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.9667 + 0.1*i4)^2)*exp(-0.443953997*(-1.364 + i5)^2)*exp(- + 0.239135549*(-3.869 + i6)^2)*exp(-0.306875089*(-2.667 + i7)^2) - + 1.251949401*exp(-16.86217887*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4061 + 0.1*i2)^2)*exp(-10.23065883*(-0.6303 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.427 + 0.1*i4)^2)*exp(-0.443953997*(-1.747 + i5)^2)*exp(- + 0.239135549*(-3.444 + i6)^2)*exp(-0.306875089*(-3.576 + i7)^2) + + 0.911363663*exp(-16.86217887*(-0.5394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5273 + 0.1*i2)^2)*exp(-10.23065883*(-0.5636 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.355 + 0.1*i4)^2)*exp(-0.443953997*(-1.253 + i5)^2)*exp(- + 0.239135549*(-3.566 + i6)^2)*exp(-0.306875089*(-2.121 + i7)^2) - + 4.106995621*exp(-16.86217887*(-0.5273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8121 + 0.1*i2)^2)*exp(-10.23065883*(-0.8424 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.8535 + 0.1*i4)^2)*exp(-0.443953997*(-1.899 + i5)^2)*exp(- + 0.239135549*(-3.889 + i6)^2)*exp(-0.306875089*(-4.061 + i7)^2) - + 2.471642534*exp(-16.86217887*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-10.23065883*(-0.9333 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.306 + 0.1*i4)^2)*exp(-0.443953997*(-1.273 + i5)^2)*exp(- + 0.239135549*(-3.707 + i6)^2)*exp(-0.306875089*(-3.485 + i7)^2) + + 0.221830032*exp(-16.86217887*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6364 + 0.1*i2)^2)*exp(-10.23065883*(-0.5758 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.282 + 0.1*i4)^2)*exp(-0.443953997*(-1.222 + i5)^2)*exp(- + 0.239135549*(-3.192 + i6)^2)*exp(-0.306875089*(-4.455 + i7)^2) - + 2.14355186*exp(-16.86217887*(-0.4364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7394 + 0.1*i2)^2)*exp(-10.23065883*(-0.4485 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.403 + 0.1*i4)^2)*exp(-0.443953997*(-1.465 + i5)^2)*exp(- + 0.239135549*(-3.687 + i6)^2)*exp(-0.306875089*(-4.939 + i7)^2) + + 2.533756755*exp(-16.86217887*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-10.23065883*(-0.7273 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.346 + 0.1*i4)^2)*exp(-0.443953997*(-1.01 + i5)^2)*exp(- + 0.239135549*(-3.333 + i6)^2)*exp(-0.306875089*(-4.364 + i7)^2) + + 0.936139973*exp(-16.86217887*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7152 + 0.1*i2)^2)*exp(-10.23065883*(-0.703 + 0.1*i3)^2)*exp(-0.250901437 + *(-1.209 + 0.1*i4)^2)*exp(-0.443953997*(-1.354 + i5)^2)*exp(-0.239135549*( + -3.01 + i6)^2)*exp(-0.306875089*(-2.758 + i7)^2) + 5.110574979*exp(- + 16.86217887*(-0.5152 + 0.1*i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)* + exp(-10.23065883*(-0.503 + 0.1*i3)^2)*exp(-0.250901437*(-0.7566 + 0.1*i4)^ + 2)*exp(-0.443953997*(-1.424 + i5)^2)*exp(-0.239135549*(-3.848 + i6)^2)* + exp(-0.306875089*(-4.576 + i7)^2) + 1.017615521*exp(-16.86217887*(-0.5758 + + 0.1*i1)^2)*exp(-12.56111847*(-0.5152 + 0.1*i2)^2)*exp(-10.23065883*(- + 0.4303 + 0.1*i3)^2)*exp(-0.250901437*(-0.8697 + 0.1*i4)^2)*exp(- + 0.443953997*(-1.374 + i5)^2)*exp(-0.239135549*(-3.414 + i6)^2)*exp(- + 0.306875089*(-3.061 + i7)^2) - 1.677762741*exp(-16.86217887*(-0.3939 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.7091 + 0.1*i2)^2)*exp(-10.23065883*(-0.4242 + + 0.1*i3)^2)*exp(-0.250901437*(-0.8293 + 0.1*i4)^2)*exp(-0.443953997*(- + 1.434 + i5)^2)*exp(-0.239135549*(-3.121 + i6)^2)*exp(-0.306875089*(-4.394 + + i7)^2) - 0.690173351*exp(-16.86217887*(-0.403 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5333 + 0.1*i2)^2)*exp(-10.23065883*(-0.5152 + 0.1*i3)^2)* + exp(-0.250901437*(-1.233 + 0.1*i4)^2)*exp(-0.443953997*(-1.889 + i5)^2)* + exp(-0.239135549*(-3.172 + i6)^2)*exp(-0.306875089*(-4.545 + i7)^2) + + 1.53178427*exp(-16.86217887*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-10.23065883*(-0.4606 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.144 + 0.1*i4)^2)*exp(-0.443953997*(-1.879 + i5)^2)*exp(- + 0.239135549*(-3.343 + i6)^2)*exp(-0.306875089*(-2.152 + i7)^2) - + 1.711026883*exp(-16.86217887*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8242 + 0.1*i2)^2)*exp(-10.23065883*(-0.6545 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.411 + 0.1*i4)^2)*exp(-0.443953997*(-1.525 + i5)^2)*exp(- + 0.239135549*(-3.04 + i6)^2)*exp(-0.306875089*(-2.273 + i7)^2) - + 1.321433279*exp(-16.86217887*(-0.4545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.503 + 0.1*i2)^2)*exp(-10.23065883*(-0.7152 + 0.1*i3)^2)*exp(-0.250901437 + *(-0.797 + 0.1*i4)^2)*exp(-0.443953997*(-1.798 + i5)^2)*exp(-0.239135549*( + -3.424 + i6)^2)*exp(-0.306875089*(-4.97 + i7)^2) - 3.610715022*exp(- + 16.86217887*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(-0.8 + 0.1*i2)^2)*exp( + -10.23065883*(-0.9394 + 0.1*i3)^2)*exp(-0.250901437*(-0.8212 + 0.1*i4)^2)* + exp(-0.443953997*(-1.101 + i5)^2)*exp(-0.239135549*(-3.535 + i6)^2)*exp(- + 0.306875089*(-2.909 + i7)^2) - 4.215137506*exp(-16.86217887*(-0.5818 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)*exp(-10.23065883*(-0.6364 + + 0.1*i3)^2)*exp(-0.250901437*(-1.435 + 0.1*i4)^2)*exp(-0.443953997*(- + 1.313 + i5)^2)*exp(-0.239135549*(-3.576 + i6)^2)*exp(-0.306875089*(-3.212 + + i7)^2) - 0.654090153*exp(-16.86217887*(-0.4485 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-10.23065883*(-0.6 + 0.1*i3)^2)*exp( + -0.250901437*(-0.9505 + 0.1*i4)^2)*exp(-0.443953997*(-1.909 + i5)^2)*exp(- + 0.239135549*(-3.051 + i6)^2)*exp(-0.306875089*(-3.97 + i7)^2) + 0.80907507 + *exp(-16.86217887*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(-0.8788 + 0.1*i2 + )^2)*exp(-10.23065883*(-0.4727 + 0.1*i3)^2)*exp(-0.250901437*(-0.7646 + + 0.1*i4)^2)*exp(-0.443953997*(-1.293 + i5)^2)*exp(-0.239135549*(-3.616 + i6 + )^2)*exp(-0.306875089*(-3.273 + i7)^2) + 1.322116098*exp(-16.86217887*(- + 0.3515 + 0.1*i1)^2)*exp(-12.56111847*(-0.9576 + 0.1*i2)^2)*exp(- + 10.23065883*(-0.8182 + 0.1*i3)^2)*exp(-0.250901437*(-0.7485 + 0.1*i4)^2)* + exp(-0.443953997*(-1.768 + i5)^2)*exp(-0.239135549*(-3.505 + i6)^2)*exp(- + 0.306875089*(-3.394 + i7)^2) - 2.363391435*exp(-16.86217887*(-0.4061 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6667 + 0.1*i2)^2)*exp(-10.23065883*(-0.9576 + + 0.1*i3)^2)*exp(-0.250901437*(-1.096 + 0.1*i4)^2)*exp(-0.443953997*(- + 1.131 + i5)^2)*exp(-0.239135549*(-3.071 + i6)^2)*exp(-0.306875089*(-4.242 + + i7)^2) + 1.483771191*exp(-16.86217887*(-0.5788 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.6545 + 0.1*i2)^2)*exp(-10.23065883*(-0.7697 + 0.1*i3)^2)* + exp(-0.250901437*(-0.9101 + 0.1*i4)^2)*exp(-0.443953997*(-1.97 + i5)^2)* + exp(-0.239135549*(-3.162 + i6)^2)*exp(-0.306875089*(-3.364 + i7)^2) - + 1.248279573*exp(-16.86217887*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9818 + 0.1*i2)^2)*exp(-10.23065883*(-0.9879 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.193 + 0.1*i4)^2)*exp(-0.443953997*(-1.586 + i5)^2)*exp(- + 0.239135549*(-3.798 + i6)^2)*exp(-0.306875089*(-3.03 + i7)^2) - + 2.137263486*exp(-16.86217887*(-0.3182 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5697 + 0.1*i2)^2)*exp(-10.23065883*(-0.7091 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.217 + 0.1*i4)^2)*exp(-0.443953997*(-1.061 + i5)^2)*exp(- + 0.239135549*(-3.646 + i6)^2)*exp(-0.306875089*(-2.455 + i7)^2) + + 1.239232884*exp(-16.86217887*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-10.23065883*(-0.5818 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.468 + 0.1*i4)^2)*exp(-0.443953997*(-1.03 + i5)^2)*exp(- + 0.239135549*(-3.455 + i6)^2)*exp(-0.306875089*(-3.242 + i7)^2) - + 2.748554221*exp(-16.86217887*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6303 + 0.1*i2)^2)*exp(-10.23065883*(-0.5091 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.266 + 0.1*i4)^2)*exp(-0.443953997*(-1.303 + i5)^2)*exp(- + 0.239135549*(-3.899 + i6)^2)*exp(-0.306875089*(-3.909 + i7)^2) - + 2.542079412*exp(-16.86217887*(-0.5939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6727 + 0.1*i2)^2)*exp(-10.23065883*(-0.7758 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.249 + 0.1*i4)^2)*exp(-0.443953997*(-1.818 + i5)^2)*exp(- + 0.239135549*(-3.586 + i6)^2)*exp(-0.306875089*(-4.848 + i7)^2) + + 0.368355364*exp(-16.86217887*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-10.23065883*(-0.5697 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.452 + 0.1*i4)^2)*exp(-0.443953997*(-1.949 + i5)^2)*exp(- + 0.239135549*(-3.253 + i6)^2)*exp(-0.306875089*(-3.606 + i7)^2) + + 7.362776799*exp(-16.86217887*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9636 + 0.1*i2)^2)*exp(-10.23065883*(-0.6182 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.7242 + 0.1*i4)^2)*exp(-0.443953997*(-1.495 + i5)^2)*exp(- + 0.239135549*(-3.475 + i6)^2)*exp(-0.306875089*(-3.818 + i7)^2) + + 0.527059384*exp(-16.86217887*(-0.3364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5091 + 0.1*i2)^2)*exp(-10.23065883*(-0.697 + 0.1*i3)^2)*exp(-0.250901437 + *(-0.7323 + 0.1*i4)^2)*exp(-0.443953997*(-1.182 + i5)^2)*exp(-0.239135549* + (-3.313 + i6)^2)*exp(-0.306875089*(-3.727 + i7)^2) + 1.237006148*exp(- + 16.86217887*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(-0.6061 + 0.1*i2)^2)* + exp(-10.23065883*(-0.8485 + 0.1*i3)^2)*exp(-0.250901437*(-1.476 + 0.1*i4)^ + 2)*exp(-0.443953997*(-1.505 + i5)^2)*exp(-0.239135549*(-3.364 + i6)^2)* + exp(-0.306875089*(-5 + i7)^2) + 2.972398897*exp(-16.86217887*(-0.3697 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(-10.23065883*(- + 0.5455 + 0.1*i3)^2)*exp(-0.250901437*(-0.902 + 0.1*i4)^2)*exp(-0.443953997 + *(-1.788 + i5)^2)*exp(-0.239135549*(-3.697 + i6)^2)*exp(-0.306875089*(- + 4.909 + i7)^2) + 0.390595913*exp(-16.86217887*(-0.5121 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5758 + 0.1*i2)^2)*exp(-10.23065883*(-0.9091 + 0.1*i3)^2)* + exp(-0.250901437*(-0.8051 + 0.1*i4)^2)*exp(-0.443953997*(-1.152 + i5)^2)* + exp(-0.239135549*(-3.667 + i6)^2)*exp(-0.306875089*(-4.485 + i7)^2) + + 3.689420796*exp(-16.86217887*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-10.23065883*(-0.9515 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.33 + 0.1*i4)^2)*exp(-0.443953997*(-1.162 + i5)^2)*exp(- + 0.239135549*(-3.354 + i6)^2)*exp(-0.306875089*(-2.182 + i7)^2) - + 0.09397796*exp(-16.86217887*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6848 + 0.1*i2)^2)*exp(-10.23065883*(-0.4848 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.7 + 0.1*i4)^2)*exp(-0.443953997*(-1.939 + i5)^2)*exp(- + 0.239135549*(-3.515 + i6)^2)*exp(-0.306875089*(-3.333 + i7)^2) + + 5.542725315*exp(-16.86217887*(-0.3152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5879 + 0.1*i2)^2)*exp(-10.23065883*(-0.8667 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.031 + 0.1*i4)^2)*exp(-0.443953997*(-1.485 + i5)^2)*exp(- + 0.239135549*(-3.182 + i6)^2)*exp(-0.306875089*(-2.242 + i7)^2) - + 2.093126829*exp(-16.86217887*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-10.23065883*(-0.4061 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.201 + 0.1*i4)^2)*exp(-0.443953997*(-1.283 + i5)^2)*exp(- + 0.239135549*(-3.949 + i6)^2)*exp(-0.306875089*(-3 + i7)^2) - 2.188180612* + exp(-16.86217887*(-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2) + ^2)*exp(-10.23065883*(-0.8788 + 0.1*i3)^2)*exp(-0.250901437*(-1.072 + 0.1* + i4)^2)*exp(-0.443953997*(-1.081 + i5)^2)*exp(-0.239135549*(-3.303 + i6)^2) + *exp(-0.306875089*(-3.545 + i7)^2) - 2.433951942*exp(-16.86217887*(-0.4424 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-10.23065883*(- + 0.5333 + 0.1*i3)^2)*exp(-0.250901437*(-1.484 + 0.1*i4)^2)*exp(-0.443953997 + *(-1.677 + i5)^2)*exp(-0.239135549*(-3.737 + i6)^2)*exp(-0.306875089*(- + 2.333 + i7)^2) - 2.99568481*exp(-16.86217887*(-0.397 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5939 + 0.1*i2)^2)*exp(-10.23065883*(-0.8545 + 0.1*i3)^2)* + exp(-0.250901437*(-1.363 + 0.1*i4)^2)*exp(-0.443953997*(-1.869 + i5)^2)* + exp(-0.239135549*(-3.02 + i6)^2)*exp(-0.306875089*(-3.515 + i7)^2) - + 2.880549545*exp(-16.86217887*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4788 + 0.1*i2)^2)*exp(-10.23065883*(-0.6121 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.8939 + 0.1*i4)^2)*exp(-0.443953997*(-1.051 + i5)^2)*exp(- + 0.239135549*(-3.879 + i6)^2)*exp(-0.306875089*(-3.182 + i7)^2) + + 4.443555946*exp(-16.86217887*(-0.3545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4364 + 0.1*i2)^2)*exp(-10.23065883*(-0.7333 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.9828 + 0.1*i4)^2)*exp(-0.443953997*(-1.99 + i5)^2)*exp(- + 0.239135549*(-3.495 + i6)^2)*exp(-0.306875089*(-2.97 + i7)^2) - + 7.668149305*exp(-16.86217887*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-10.23065883*(-0.6727 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.7889 + 0.1*i4)^2)*exp(-0.443953997*(-1.121 + i5)^2)*exp(- + 0.239135549*(-3.091 + i6)^2)*exp(-0.306875089*(-4.121 + i7)^2) - + 4.825135586*exp(-16.86217887*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7879 + 0.1*i2)^2)*exp(-10.23065883*(-0.6909 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.7162 + 0.1*i4)^2)*exp(-0.443953997*(-1.475 + i5)^2)*exp(- + 0.239135549*(-3.131 + i6)^2)*exp(-0.306875089*(-2.212 + i7)^2) + + 4.472066313*exp(-16.86217887*(-0.4394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.897 + 0.1*i2)^2)*exp(-10.23065883*(-0.9758 + 0.1*i3)^2)*exp(-0.250901437 + *(-1.023 + 0.1*i4)^2)*exp(-0.443953997*(-1.667 + i5)^2)*exp(-0.239135549*( + -3.061 + i6)^2)*exp(-0.306875089*(-2.879 + i7)^2) - 4.83809144*exp(- + 16.86217887*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(-0.5394 + 0.1*i2)^2)* + exp(-10.23065883*(-0.9152 + 0.1*i3)^2)*exp(-0.250901437*(-1.5 + 0.1*i4)^2) + *exp(-0.443953997*(-1.596 + i5)^2)*exp(-0.239135549*(-3.636 + i6)^2)*exp(- + 0.306875089*(-2.727 + i7)^2) - 0.53972511*exp(-16.86217887*(-0.5545 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)*exp(-10.23065883*(-0.7212 + + 0.1*i3)^2)*exp(-0.250901437*(-1.08 + 0.1*i4)^2)*exp(-0.443953997*(-1.838 + + i5)^2)*exp(-0.239135549*(-3.434 + i6)^2)*exp(-0.306875089*(-2.364 + i7) + ^2) - 4.549176096*exp(-16.86217887*(-0.3758 + 0.1*i1)^2)*exp(-12.56111847* + (-0.8667 + 0.1*i2)^2)*exp(-10.23065883*(-0.5394 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.015 + 0.1*i4)^2)*exp(-0.443953997*(-1.919 + i5)^2)*exp(- + 0.239135549*(-3.909 + i6)^2)*exp(-0.306875089*(-2.939 + i7)^2) + + 17.62479115*exp(-16.86217887*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-10.23065883*(-0.5212 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.9343 + 0.1*i4)^2)*exp(-0.443953997*(-1.808 + i5)^2)*exp(- + 0.239135549*(-3.212 + i6)^2)*exp(-0.306875089*(-2.545 + i7)^2) - + 2.673357682*exp(-16.86217887*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9333 + 0.1*i2)^2)*exp(-10.23065883*(-0.6485 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.322 + 0.1*i4)^2)*exp(-0.443953997*(-1.394 + i5)^2)*exp(- + 0.239135549*(-3.081 + i6)^2)*exp(-0.306875089*(-4.697 + i7)^2) + + 1.517298153*exp(-16.86217887*(-0.4576 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5455 + 0.1*i2)^2)*exp(-10.23065883*(-0.9939 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.169 + 0.1*i4)^2)*exp(-0.443953997*(-1.98 + i5)^2)*exp(- + 0.239135549*(-3.626 + i6)^2)*exp(-0.306875089*(-3.939 + i7)^2) - + 2.096301268*exp(-16.86217887*(-0.3242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9212 + 0.1*i2)^2)*exp(-10.23065883*(-0.4667 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.314 + 0.1*i4)^2)*exp(-0.443953997*(-1.697 + i5)^2)*exp(- + 0.239135549*(-3.374 + i6)^2)*exp(-0.306875089*(-3.758 + i7)^2) - + 0.292082939*exp(-16.86217887*(-0.5697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4182 + 0.1*i2)^2)*exp(-10.23065883*(-0.7394 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.8374 + 0.1*i4)^2)*exp(-0.443953997*(-1.717 + i5)^2)*exp(- + 0.239135549*(-3.727 + i6)^2)*exp(-0.306875089*(-3.303 + i7)^2) + + 2.55835874*exp(-16.86217887*(-0.3727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9879 + 0.1*i2)^2)*exp(-10.23065883*(-0.6848 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.104 + 0.1*i4)^2)*exp(-0.443953997*(-1.343 + i5)^2)*exp(- + 0.239135549*(-3.606 + i6)^2)*exp(-0.306875089*(-2 + i7)^2) + 2.239717215* + exp(-16.86217887*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(-0.4667 + 0.1*i2) + ^2)*exp(-10.23065883*(-0.8303 + 0.1*i3)^2)*exp(-0.250901437*(-0.8859 + 0.1 + *i4)^2)*exp(-0.443953997*(-1.111 + i5)^2)*exp(-0.239135549*(-3.283 + i6)^2 + )*exp(-0.306875089*(-2.576 + i7)^2) - 5.377833194*exp(-16.86217887*(- + 0.3485 + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)*exp(- + 10.23065883*(-0.6606 + 0.1*i3)^2)*exp(-0.250901437*(-0.999 + 0.1*i4)^2)* + exp(-0.443953997*(-1.172 + i5)^2)*exp(-0.239135549*(-3.03 + i6)^2)*exp(- + 0.306875089*(-3.152 + i7)^2) + 1.696560473*exp(-16.86217887*(-0.5848 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-10.23065883*(-0.8 + + 0.1*i3)^2)*exp(-0.250901437*(-1.298 + 0.1*i4)^2)*exp(-0.443953997*(-1.848 + + i5)^2)*exp(-0.239135549*(-3.828 + i6)^2)*exp(-0.306875089*(-2.636 + i7) + ^2) - 2.688833467*exp(-16.86217887*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847* + (-0.5212 + 0.1*i2)^2)*exp(-10.23065883*(-0.497 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.395 + 0.1*i4)^2)*exp(-0.443953997*(-1.636 + i5)^2)*exp(- + 0.239135549*(-3.384 + i6)^2)*exp(-0.306875089*(-2.697 + i7)^2) - + 0.625321028*exp(-16.86217887*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6242 + 0.1*i2)^2)*exp(-10.23065883*(-0.6788 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.338 + 0.1*i4)^2)*exp(-0.443953997*(-1.859 + i5)^2)*exp(- + 0.239135549*(-3.758 + i6)^2)*exp(-0.306875089*(-4.273 + i7)^2) + + 3.393026946*exp(-16.86217887*(-0.5485 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4545 + 0.1*i2)^2)*exp(-10.23065883*(-0.8848 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.112 + 0.1*i4)^2)*exp(-0.443953997*(-1.515 + i5)^2)*exp(- + 0.239135549*(-3.101 + i6)^2)*exp(-0.306875089*(-4.333 + i7)^2) + + 5.681778526*exp(-16.86217887*(-0.4636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7939 + 0.1*i2)^2)*exp(-10.23065883*(-0.7879 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.492 + 0.1*i4)^2)*exp(-0.443953997*(-1.707 + i5)^2)*exp(- + 0.239135549*(-3.97 + i6)^2)*exp(-0.306875089*(-4.03 + i7)^2) - 2.673040297 + *exp(-16.86217887*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(-0.5818 + 0.1*i2 + )^2)*exp(-10.23065883*(-0.7455 + 0.1*i3)^2)*exp(-0.250901437*(-0.7404 + + 0.1*i4)^2)*exp(-0.443953997*(-1.687 + i5)^2)*exp(-0.239135549*(-3.929 + i6 + )^2)*exp(-0.306875089*(-3.788 + i7)^2) - 1.971251621*exp(-16.86217887*(- + 0.6 + 0.1*i1)^2)*exp(-12.56111847*(-0.7515 + 0.1*i2)^2)*exp(-10.23065883*( + -0.9455 + 0.1*i3)^2)*exp(-0.250901437*(-0.8616 + 0.1*i4)^2)*exp(- + 0.443953997*(-1.384 + i5)^2)*exp(-0.239135549*(-3.596 + i6)^2)*exp(- + 0.306875089*(-2.848 + i7)^2) - 4.596102896*exp(-16.86217887*(-0.3273 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.4 + 0.1*i2)^2)*exp(-10.23065883*(-0.897 + 0.1 + *i3)^2)*exp(-0.250901437*(-1.12 + 0.1*i4)^2)*exp(-0.443953997*(-1.404 + i5 + )^2)*exp(-0.239135549*(-3.525 + i6)^2)*exp(-0.306875089*(-4.182 + i7)^2) + - 0.460261806*exp(-16.86217887*(-0.5212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.497 + 0.1*i2)^2)*exp(-10.23065883*(-0.8909 + 0.1*i3)^2)*exp(-0.250901437 + *(-1.185 + 0.1*i4)^2)*exp(-0.443953997*(-1.737 + i5)^2)*exp(-0.239135549*( + -3.293 + i6)^2)*exp(-0.306875089*(-2.091 + i7)^2) - 0.61519437*exp(- + 16.86217887*(-0.4303 + 0.1*i1)^2)*exp(-12.56111847*(-0.4606 + 0.1*i2)^2)* + exp(-10.23065883*(-0.6242 + 0.1*i3)^2)*exp(-0.250901437*(-1.225 + 0.1*i4)^ + 2)*exp(-0.443953997*(-1.727 + i5)^2)*exp(-0.239135549*(-3.96 + i6)^2)*exp( + -0.306875089*(-2.424 + i7)^2) + 1.711239931*exp(-16.86217887*(-0.3121 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8909 + 0.1*i2)^2)*exp(-10.23065883*(-0.903 + + 0.1*i3)^2)*exp(-0.250901437*(-1.387 + 0.1*i4)^2)*exp(-0.443953997*(- + 1.414 + i5)^2)*exp(-0.239135549*(-3.323 + i6)^2)*exp(-0.306875089*(-3.636 + + i7)^2) - 1.643131129*exp(-16.86217887*(-0.3424 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.4485 + 0.1*i2)^2)*exp(-10.23065883*(-0.4182 + 0.1*i3)^2)* + exp(-0.250901437*(-0.9747 + 0.1*i4)^2)*exp(-0.443953997*(-1.566 + i5)^2)* + exp(-0.239135549*(-3.657 + i6)^2)*exp(-0.306875089*(-3.879 + i7)^2) - + 4.659492185*exp(-16.86217887*(-0.497 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7697 + 0.1*i2)^2)*exp(-10.23065883*(-0.7939 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.274 + 0.1*i4)^2)*exp(-0.443953997*(-1.141 + i5)^2)*exp(- + 0.239135549*(-4 + i6)^2)*exp(-0.306875089*(-2.515 + i7)^2) - 1.629274278* + exp(-16.86217887*(-0.4939 + 0.1*i1)^2)*exp(-12.56111847*(-0.5576 + 0.1*i2) + ^2)*exp(-10.23065883*(-0.4545 + 0.1*i3)^2)*exp(-0.250901437*(-1.177 + 0.1* + i4)^2)*exp(-0.443953997*(-1.96 + i5)^2)*exp(-0.239135549*(-3.818 + i6)^2)* + exp(-0.306875089*(-4 + i7)^2) - 4.542129309*exp(-16.86217887*(-0.5 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2)*exp(-10.23065883*(-0.4 + 0.1 + *i3)^2)*exp(-0.250901437*(-1.088 + 0.1*i4)^2)*exp(-0.443953997*(-1.455 + + i5)^2)*exp(-0.239135549*(-3.242 + i6)^2)*exp(-0.306875089*(-2.788 + i7)^2) + - 0.836145778*exp(-16.86217887*(-0.4182 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9455 + 0.1*i2)^2)*exp(-10.23065883*(-0.8364 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.258 + 0.1*i4)^2)*exp(-0.443953997*(-1.929 + i5)^2)*exp(- + 0.239135549*(-3.465 + i6)^2)*exp(-0.306875089*(-4.606 + i7)^2) - + 0.601023858*exp(-16.86217887*(-0.3636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7818 + 0.1*i2)^2)*exp(-10.23065883*(-1 + 0.1*i3)^2)*exp(-0.250901437*(- + 0.9909 + 0.1*i4)^2)*exp(-0.443953997*(-1.535 + i5)^2)*exp(-0.239135549*(- + 3.768 + i6)^2)*exp(-0.306875089*(-4.667 + i7)^2) + 3.126201581*exp(- + 16.86217887*(-0.4091 + 0.1*i1)^2)*exp(-12.56111847*(-0.7212 + 0.1*i2)^2)* + exp(-10.23065883*(-0.9273 + 0.1*i3)^2)*exp(-0.250901437*(-1.371 + 0.1*i4)^ + 2)*exp(-0.443953997*(-1.04 + i5)^2)*exp(-0.239135549*(-3.747 + i6)^2)*exp( + -0.306875089*(-4.152 + i7)^2) + 0.31781252*exp(-16.86217887*(-0.4455 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.4242 + 0.1*i2)^2)*exp(-10.23065883*(-0.5879 + + 0.1*i3)^2)*exp(-0.250901437*(-0.9182 + 0.1*i4)^2)*exp(-0.443953997*(- + 1.626 + i5)^2)*exp(-0.239135549*(-3 + i6)^2)*exp(-0.306875089*(-3.091 + i7 + )^2) - 3.837982384*exp(-16.86217887*(-0.3667 + 0.1*i1)^2)*exp(-12.56111847 + *(-0.8424 + 0.1*i2)^2)*exp(-10.23065883*(-0.8242 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.29 + 0.1*i4)^2)*exp(-0.443953997*(-2 + i5)^2)*exp(- + 0.239135549*(-3.485 + i6)^2)*exp(-0.306875089*(-2.485 + i7)^2) - + 4.142363205*exp(-16.86217887*(-0.4 + 0.1*i1)^2)*exp(-12.56111847*(-0.6 + + 0.1*i2)^2)*exp(-10.23065883*(-0.4364 + 0.1*i3)^2)*exp(-0.250901437*(-1.056 + + 0.1*i4)^2)*exp(-0.443953997*(-1.091 + i5)^2)*exp(-0.239135549*(-3.202 + + i6)^2)*exp(-0.306875089*(-2.606 + i7)^2) + 0.203012347*exp(-16.86217887 + *(-0.5303 + 0.1*i1)^2)*exp(-12.56111847*(-0.8545 + 0.1*i2)^2)*exp(- + 10.23065883*(-0.9212 + 0.1*i3)^2)*exp(-0.250901437*(-0.8778 + 0.1*i4)^2)* + exp(-0.443953997*(-1.616 + i5)^2)*exp(-0.239135549*(-3.232 + i6)^2)*exp(- + 0.306875089*(-4.727 + i7)^2) - 2.543248579*exp(-16.86217887*(-0.3879 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.5515 + 0.1*i2)^2)*exp(-10.23065883*(-0.5576 + + 0.1*i3)^2)*exp(-0.250901437*(-0.7808 + 0.1*i4)^2)*exp(-0.443953997*(- + 1.444 + i5)^2)*exp(-0.239135549*(-3.677 + i6)^2)*exp(-0.306875089*(-2.03 + + i7)^2) + 0.693336944*exp(-16.86217887*(-0.4515 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7273 + 0.1*i2)^2)*exp(-10.23065883*(-0.8727 + 0.1*i3)^2)* + exp(-0.250901437*(-0.8131 + 0.1*i4)^2)*exp(-0.443953997*(-1.828 + i5)^2)* + exp(-0.239135549*(-3.717 + i6)^2)*exp(-0.306875089*(-2.061 + i7)^2) - + 2.825781367*exp(-16.86217887*(-0.4818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4121 + 0.1*i2)^2)*exp(-10.23065883*(-0.5515 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.064 + 0.1*i4)^2)*exp(-0.443953997*(-1.202 + i5)^2)*exp(- + 0.239135549*(-3.404 + i6)^2)*exp(-0.306875089*(-4.788 + i7)^2) + + 0.450366511*exp(-16.86217887*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-10.23065883*(-0.9636 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.443 + 0.1*i4)^2)*exp(-0.443953997*(-1.606 + i5)^2)*exp(- + 0.239135549*(-3.263 + i6)^2)*exp(-0.306875089*(-3.667 + i7)^2) + + 2.890529835*exp(-16.86217887*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4727 + 0.1*i2)^2)*exp(-10.23065883*(-0.7818 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.136 + 0.1*i4)^2)*exp(-0.443953997*(-1.545 + i5)^2)*exp(- + 0.239135549*(-3.99 + i6)^2)*exp(-0.306875089*(-4.758 + i7)^2) - + 4.171903218*exp(-16.86217887*(-0.5606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7758 + 0.1*i2)^2)*exp(-10.23065883*(-0.5273 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.9263 + 0.1*i4)^2)*exp(-0.443953997*(-1.576 + i5)^2)*exp(- + 0.239135549*(-3.919 + i6)^2)*exp(-0.306875089*(-2.394 + i7)^2) + + 3.096385609*exp(-16.86217887*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-10.23065883*(-0.9818 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.7081 + 0.1*i4)^2)*exp(-0.443953997*(-1.657 + i5)^2)*exp(- + 0.239135549*(-3.273 + i6)^2)*exp(-0.306875089*(-3.455 + i7)^2) + + 13.5559418*exp(-16.86217887*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8303 + 0.1*i2)^2)*exp(-10.23065883*(-0.6061 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.9424 + 0.1*i4)^2)*exp(-0.443953997*(-1 + i5)^2)*exp(- + 0.239135549*(-3.545 + i6)^2)*exp(-0.306875089*(-2.303 + i7)^2) + + 0.065068181*exp(-16.86217887*(-0.3788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9152 + 0.1*i2)^2)*exp(-10.23065883*(-0.7515 + 0.1*i3)^2)*exp(- + 0.250901437*(-0.8455 + 0.1*i4)^2)*exp(-0.443953997*(-1.212 + i5)^2)*exp(- + 0.239135549*(-3.394 + i6)^2)*exp(-0.306875089*(-4.879 + i7)^2) + + 4.198216178*exp(-16.86217887*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-10.23065883*(-0.4424 + 0.1*i3)^2)*exp(- + 0.250901437*(-1.047 + 0.1*i4)^2)*exp(-0.443953997*(-1.02 + i5)^2)*exp(- + 0.239135549*(-3.556 + i6)^2)*exp(-0.306875089*(-4.303 + i7)^2)) + x8 + >= 4.202401161; + + -(0.253139846*exp(-18.36893807*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.697 + 0.1*i2)^2)*exp(-9.823088771*(-0.8061 + 0.1*i3)^2)*exp(-1.010268744 + *(-0.9586 + 0.1*i4)^2)*exp(-0.797258714*(-1.758 + i5)^2)*exp(-2.847610014* + (-3.141 + i6)^2)*exp(-0.507231314*(-4.424 + i7)^2) - 0.002888845*exp(- + 18.36893807*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(-0.9697 + 0.1*i2)^2)* + exp(-9.823088771*(-0.4909 + 0.1*i3)^2)*exp(-1.010268744*(-1.161 + 0.1*i4)^ + 2)*exp(-0.797258714*(-1.778 + i5)^2)*exp(-2.847610014*(-3.778 + i6)^2)* + exp(-0.507231314*(-4.091 + i7)^2) + 0.60824027*exp(-18.36893807*(-0.503 + + 0.1*i1)^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.4121 + 0.1*i3)^2)*exp(-1.010268744*(-1.419 + 0.1*i4)^2)*exp(-0.797258714 + *(-1.333 + i5)^2)*exp(-2.847610014*(-3.152 + i6)^2)*exp(-0.507231314*(- + 3.697 + i7)^2) - 0.476177766*exp(-18.36893807*(-0.4606 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.903 + 0.1*i2)^2)*exp(-9.823088771*(-0.7576 + 0.1*i3)^2)* + exp(-1.010268744*(-0.7727 + 0.1*i4)^2)*exp(-0.797258714*(-1.242 + i5)^2)* + exp(-2.847610014*(-3.98 + i6)^2)*exp(-0.507231314*(-3.424 + i7)^2) + + 2.789774685*exp(-18.36893807*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + + 0.1*i2)^2)*exp(-9.823088771*(-0.8606 + 0.1*i3)^2)*exp(-1.010268744*(- + 1.153 + 0.1*i4)^2)*exp(-0.797258714*(-1.556 + i5)^2)*exp(-2.847610014*(- + 3.939 + i6)^2)*exp(-0.507231314*(-2.818 + i7)^2) + 0.864037742*exp(- + 18.36893807*(-0.5879 + 0.1*i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)* + exp(-9.823088771*(-0.4788 + 0.1*i3)^2)*exp(-1.010268744*(-1.039 + 0.1*i4)^ + 2)*exp(-0.797258714*(-1.646 + i5)^2)*exp(-2.847610014*(-3.222 + i6)^2)* + exp(-0.507231314*(-4.636 + i7)^2) + 1.794624556*exp(-18.36893807*(-0.4121 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4424 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.5939 + 0.1*i3)^2)*exp(-1.010268744*(-1.46 + 0.1*i4)^2)*exp(-0.797258714* + (-1.232 + i5)^2)*exp(-2.847610014*(-3.788 + i6)^2)*exp(-0.507231314*(- + 3.848 + i7)^2) + 0.49062112*exp(-18.36893807*(-0.5576 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8848 + 0.1*i2)^2)*exp(-9.823088771*(-0.8121 + 0.1*i3)^2)* + exp(-1.010268744*(-1.128 + 0.1*i4)^2)*exp(-0.797258714*(-1.263 + i5)^2)* + exp(-2.847610014*(-3.808 + i6)^2)*exp(-0.507231314*(-4.818 + i7)^2) - + 1.6451684*exp(-18.36893807*(-0.4273 + 0.1*i1)^2)*exp(-12.56111847*(-0.4848 + + 0.1*i2)^2)*exp(-9.823088771*(-0.9697 + 0.1*i3)^2)*exp(-1.010268744*(- + 0.9667 + 0.1*i4)^2)*exp(-0.797258714*(-1.364 + i5)^2)*exp(-2.847610014*(- + 3.869 + i6)^2)*exp(-0.507231314*(-2.667 + i7)^2) - 0.279340868*exp(- + 18.36893807*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(-0.4061 + 0.1*i2)^2)* + exp(-9.823088771*(-0.6303 + 0.1*i3)^2)*exp(-1.010268744*(-1.427 + 0.1*i4)^ + 2)*exp(-0.797258714*(-1.747 + i5)^2)*exp(-2.847610014*(-3.444 + i6)^2)* + exp(-0.507231314*(-3.576 + i7)^2) + 0.498953124*exp(-18.36893807*(-0.5394 + + 0.1*i1)^2)*exp(-12.56111847*(-0.5273 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.5636 + 0.1*i3)^2)*exp(-1.010268744*(-1.355 + 0.1*i4)^2)*exp(-0.797258714 + *(-1.253 + i5)^2)*exp(-2.847610014*(-3.566 + i6)^2)*exp(-0.507231314*(- + 2.121 + i7)^2) - 2.013041663*exp(-18.36893807*(-0.5273 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8121 + 0.1*i2)^2)*exp(-9.823088771*(-0.8424 + 0.1*i3)^2)* + exp(-1.010268744*(-0.8535 + 0.1*i4)^2)*exp(-0.797258714*(-1.899 + i5)^2)* + exp(-2.847610014*(-3.889 + i6)^2)*exp(-0.507231314*(-4.061 + i7)^2) + + 0.786580173*exp(-18.36893807*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-9.823088771*(-0.9333 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.306 + 0.1*i4)^2)*exp(-0.797258714*(-1.273 + i5)^2)*exp(- + 2.847610014*(-3.707 + i6)^2)*exp(-0.507231314*(-3.485 + i7)^2) + + 0.030379816*exp(-18.36893807*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6364 + 0.1*i2)^2)*exp(-9.823088771*(-0.5758 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.282 + 0.1*i4)^2)*exp(-0.797258714*(-1.222 + i5)^2)*exp(- + 2.847610014*(-3.192 + i6)^2)*exp(-0.507231314*(-4.455 + i7)^2) + + 0.673832166*exp(-18.36893807*(-0.4364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7394 + 0.1*i2)^2)*exp(-9.823088771*(-0.4485 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.403 + 0.1*i4)^2)*exp(-0.797258714*(-1.465 + i5)^2)*exp(- + 2.847610014*(-3.687 + i6)^2)*exp(-0.507231314*(-4.939 + i7)^2) - + 0.660238138*exp(-18.36893807*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-9.823088771*(-0.7273 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.346 + 0.1*i4)^2)*exp(-0.797258714*(-1.01 + i5)^2)*exp(- + 2.847610014*(-3.333 + i6)^2)*exp(-0.507231314*(-4.364 + i7)^2) + + 0.690724536*exp(-18.36893807*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7152 + 0.1*i2)^2)*exp(-9.823088771*(-0.703 + 0.1*i3)^2)*exp(-1.010268744 + *(-1.209 + 0.1*i4)^2)*exp(-0.797258714*(-1.354 + i5)^2)*exp(-2.847610014*( + -3.01 + i6)^2)*exp(-0.507231314*(-2.758 + i7)^2) + 0.518610049*exp(- + 18.36893807*(-0.5152 + 0.1*i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)* + exp(-9.823088771*(-0.503 + 0.1*i3)^2)*exp(-1.010268744*(-0.7566 + 0.1*i4)^ + 2)*exp(-0.797258714*(-1.424 + i5)^2)*exp(-2.847610014*(-3.848 + i6)^2)* + exp(-0.507231314*(-4.576 + i7)^2) - 0.182889138*exp(-18.36893807*(-0.5758 + + 0.1*i1)^2)*exp(-12.56111847*(-0.5152 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.4303 + 0.1*i3)^2)*exp(-1.010268744*(-0.8697 + 0.1*i4)^2)*exp(- + 0.797258714*(-1.374 + i5)^2)*exp(-2.847610014*(-3.414 + i6)^2)*exp(- + 0.507231314*(-3.061 + i7)^2) + 0.927631343*exp(-18.36893807*(-0.3939 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.7091 + 0.1*i2)^2)*exp(-9.823088771*(-0.4242 + + 0.1*i3)^2)*exp(-1.010268744*(-0.8293 + 0.1*i4)^2)*exp(-0.797258714*(- + 1.434 + i5)^2)*exp(-2.847610014*(-3.121 + i6)^2)*exp(-0.507231314*(-4.394 + + i7)^2) - 1.05559652*exp(-18.36893807*(-0.403 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5333 + 0.1*i2)^2)*exp(-9.823088771*(-0.5152 + 0.1*i3)^2)* + exp(-1.010268744*(-1.233 + 0.1*i4)^2)*exp(-0.797258714*(-1.889 + i5)^2)* + exp(-2.847610014*(-3.172 + i6)^2)*exp(-0.507231314*(-4.545 + i7)^2) - + 1.75347375*exp(-18.36893807*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-9.823088771*(-0.4606 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.144 + 0.1*i4)^2)*exp(-0.797258714*(-1.879 + i5)^2)*exp(- + 2.847610014*(-3.343 + i6)^2)*exp(-0.507231314*(-2.152 + i7)^2) + + 1.125682117*exp(-18.36893807*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8242 + 0.1*i2)^2)*exp(-9.823088771*(-0.6545 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.411 + 0.1*i4)^2)*exp(-0.797258714*(-1.525 + i5)^2)*exp(- + 2.847610014*(-3.04 + i6)^2)*exp(-0.507231314*(-2.273 + i7)^2) - + 0.252556902*exp(-18.36893807*(-0.4545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.503 + 0.1*i2)^2)*exp(-9.823088771*(-0.7152 + 0.1*i3)^2)*exp(-1.010268744 + *(-0.797 + 0.1*i4)^2)*exp(-0.797258714*(-1.798 + i5)^2)*exp(-2.847610014*( + -3.424 + i6)^2)*exp(-0.507231314*(-4.97 + i7)^2) - 3.006963736*exp(- + 18.36893807*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(-0.8 + 0.1*i2)^2)*exp( + -9.823088771*(-0.9394 + 0.1*i3)^2)*exp(-1.010268744*(-0.8212 + 0.1*i4)^2)* + exp(-0.797258714*(-1.101 + i5)^2)*exp(-2.847610014*(-3.535 + i6)^2)*exp(- + 0.507231314*(-2.909 + i7)^2) - 1.196655235*exp(-18.36893807*(-0.5818 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)*exp(-9.823088771*(-0.6364 + + 0.1*i3)^2)*exp(-1.010268744*(-1.435 + 0.1*i4)^2)*exp(-0.797258714*(- + 1.313 + i5)^2)*exp(-2.847610014*(-3.576 + i6)^2)*exp(-0.507231314*(-3.212 + + i7)^2) - 1.122133573*exp(-18.36893807*(-0.4485 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-9.823088771*(-0.6 + 0.1*i3)^2)*exp( + -1.010268744*(-0.9505 + 0.1*i4)^2)*exp(-0.797258714*(-1.909 + i5)^2)*exp(- + 2.847610014*(-3.051 + i6)^2)*exp(-0.507231314*(-3.97 + i7)^2) - + 0.158618529*exp(-18.36893807*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8788 + 0.1*i2)^2)*exp(-9.823088771*(-0.4727 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.7646 + 0.1*i4)^2)*exp(-0.797258714*(-1.293 + i5)^2)*exp(- + 2.847610014*(-3.616 + i6)^2)*exp(-0.507231314*(-3.273 + i7)^2) + + 1.639321728*exp(-18.36893807*(-0.3515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9576 + 0.1*i2)^2)*exp(-9.823088771*(-0.8182 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.7485 + 0.1*i4)^2)*exp(-0.797258714*(-1.768 + i5)^2)*exp(- + 2.847610014*(-3.505 + i6)^2)*exp(-0.507231314*(-3.394 + i7)^2) + + 0.43973166*exp(-18.36893807*(-0.4061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6667 + 0.1*i2)^2)*exp(-9.823088771*(-0.9576 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.096 + 0.1*i4)^2)*exp(-0.797258714*(-1.131 + i5)^2)*exp(- + 2.847610014*(-3.071 + i6)^2)*exp(-0.507231314*(-4.242 + i7)^2) + + 0.124688476*exp(-18.36893807*(-0.5788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6545 + 0.1*i2)^2)*exp(-9.823088771*(-0.7697 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.9101 + 0.1*i4)^2)*exp(-0.797258714*(-1.97 + i5)^2)*exp(- + 2.847610014*(-3.162 + i6)^2)*exp(-0.507231314*(-3.364 + i7)^2) + + 0.958709081*exp(-18.36893807*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9818 + 0.1*i2)^2)*exp(-9.823088771*(-0.9879 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.193 + 0.1*i4)^2)*exp(-0.797258714*(-1.586 + i5)^2)*exp(- + 2.847610014*(-3.798 + i6)^2)*exp(-0.507231314*(-3.03 + i7)^2) - + 0.572035185*exp(-18.36893807*(-0.3182 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5697 + 0.1*i2)^2)*exp(-9.823088771*(-0.7091 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.217 + 0.1*i4)^2)*exp(-0.797258714*(-1.061 + i5)^2)*exp(- + 2.847610014*(-3.646 + i6)^2)*exp(-0.507231314*(-2.455 + i7)^2) + + 1.034849398*exp(-18.36893807*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-9.823088771*(-0.5818 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.468 + 0.1*i4)^2)*exp(-0.797258714*(-1.03 + i5)^2)*exp(- + 2.847610014*(-3.455 + i6)^2)*exp(-0.507231314*(-3.242 + i7)^2) - + 0.998333897*exp(-18.36893807*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6303 + 0.1*i2)^2)*exp(-9.823088771*(-0.5091 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.266 + 0.1*i4)^2)*exp(-0.797258714*(-1.303 + i5)^2)*exp(- + 2.847610014*(-3.899 + i6)^2)*exp(-0.507231314*(-3.909 + i7)^2) - + 0.679237168*exp(-18.36893807*(-0.5939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6727 + 0.1*i2)^2)*exp(-9.823088771*(-0.7758 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.249 + 0.1*i4)^2)*exp(-0.797258714*(-1.818 + i5)^2)*exp(- + 2.847610014*(-3.586 + i6)^2)*exp(-0.507231314*(-4.848 + i7)^2) - + 0.793538858*exp(-18.36893807*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-9.823088771*(-0.5697 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.452 + 0.1*i4)^2)*exp(-0.797258714*(-1.949 + i5)^2)*exp(- + 2.847610014*(-3.253 + i6)^2)*exp(-0.507231314*(-3.606 + i7)^2) + + 3.692981911*exp(-18.36893807*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9636 + 0.1*i2)^2)*exp(-9.823088771*(-0.6182 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.7242 + 0.1*i4)^2)*exp(-0.797258714*(-1.495 + i5)^2)*exp(- + 2.847610014*(-3.475 + i6)^2)*exp(-0.507231314*(-3.818 + i7)^2) + + 0.081834824*exp(-18.36893807*(-0.3364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5091 + 0.1*i2)^2)*exp(-9.823088771*(-0.697 + 0.1*i3)^2)*exp(-1.010268744 + *(-0.7323 + 0.1*i4)^2)*exp(-0.797258714*(-1.182 + i5)^2)*exp(-2.847610014* + (-3.313 + i6)^2)*exp(-0.507231314*(-3.727 + i7)^2) + 1.819808519*exp(- + 18.36893807*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(-0.6061 + 0.1*i2)^2)* + exp(-9.823088771*(-0.8485 + 0.1*i3)^2)*exp(-1.010268744*(-1.476 + 0.1*i4)^ + 2)*exp(-0.797258714*(-1.505 + i5)^2)*exp(-2.847610014*(-3.364 + i6)^2)* + exp(-0.507231314*(-5 + i7)^2) + 0.789794802*exp(-18.36893807*(-0.3697 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.5455 + 0.1*i3)^2)*exp(-1.010268744*(-0.902 + 0.1*i4)^2)*exp(-0.797258714 + *(-1.788 + i5)^2)*exp(-2.847610014*(-3.697 + i6)^2)*exp(-0.507231314*(- + 4.909 + i7)^2) + 0.599589594*exp(-18.36893807*(-0.5121 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5758 + 0.1*i2)^2)*exp(-9.823088771*(-0.9091 + 0.1*i3)^2)* + exp(-1.010268744*(-0.8051 + 0.1*i4)^2)*exp(-0.797258714*(-1.152 + i5)^2)* + exp(-2.847610014*(-3.667 + i6)^2)*exp(-0.507231314*(-4.485 + i7)^2) + + 0.513150672*exp(-18.36893807*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-9.823088771*(-0.9515 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.33 + 0.1*i4)^2)*exp(-0.797258714*(-1.162 + i5)^2)*exp(- + 2.847610014*(-3.354 + i6)^2)*exp(-0.507231314*(-2.182 + i7)^2) + + 0.394216205*exp(-18.36893807*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6848 + 0.1*i2)^2)*exp(-9.823088771*(-0.4848 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.7 + 0.1*i4)^2)*exp(-0.797258714*(-1.939 + i5)^2)*exp(- + 2.847610014*(-3.515 + i6)^2)*exp(-0.507231314*(-3.333 + i7)^2) + + 3.472055227*exp(-18.36893807*(-0.3152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5879 + 0.1*i2)^2)*exp(-9.823088771*(-0.8667 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.031 + 0.1*i4)^2)*exp(-0.797258714*(-1.485 + i5)^2)*exp(- + 2.847610014*(-3.182 + i6)^2)*exp(-0.507231314*(-2.242 + i7)^2) + + 1.785468444*exp(-18.36893807*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-9.823088771*(-0.4061 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.201 + 0.1*i4)^2)*exp(-0.797258714*(-1.283 + i5)^2)*exp(- + 2.847610014*(-3.949 + i6)^2)*exp(-0.507231314*(-3 + i7)^2) - 1.013123336* + exp(-18.36893807*(-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2) + ^2)*exp(-9.823088771*(-0.8788 + 0.1*i3)^2)*exp(-1.010268744*(-1.072 + 0.1* + i4)^2)*exp(-0.797258714*(-1.081 + i5)^2)*exp(-2.847610014*(-3.303 + i6)^2) + *exp(-0.507231314*(-3.545 + i7)^2) - 0.028182665*exp(-18.36893807*(-0.4424 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.5333 + 0.1*i3)^2)*exp(-1.010268744*(-1.484 + 0.1*i4)^2)*exp(-0.797258714 + *(-1.677 + i5)^2)*exp(-2.847610014*(-3.737 + i6)^2)*exp(-0.507231314*(- + 2.333 + i7)^2) - 2.877036468*exp(-18.36893807*(-0.397 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5939 + 0.1*i2)^2)*exp(-9.823088771*(-0.8545 + 0.1*i3)^2)* + exp(-1.010268744*(-1.363 + 0.1*i4)^2)*exp(-0.797258714*(-1.869 + i5)^2)* + exp(-2.847610014*(-3.02 + i6)^2)*exp(-0.507231314*(-3.515 + i7)^2) - + 1.553681168*exp(-18.36893807*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4788 + 0.1*i2)^2)*exp(-9.823088771*(-0.6121 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.8939 + 0.1*i4)^2)*exp(-0.797258714*(-1.051 + i5)^2)*exp(- + 2.847610014*(-3.879 + i6)^2)*exp(-0.507231314*(-3.182 + i7)^2) + + 2.405822367*exp(-18.36893807*(-0.3545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4364 + 0.1*i2)^2)*exp(-9.823088771*(-0.7333 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.9828 + 0.1*i4)^2)*exp(-0.797258714*(-1.99 + i5)^2)*exp(- + 2.847610014*(-3.495 + i6)^2)*exp(-0.507231314*(-2.97 + i7)^2) - + 2.499539418*exp(-18.36893807*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-9.823088771*(-0.6727 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.7889 + 0.1*i4)^2)*exp(-0.797258714*(-1.121 + i5)^2)*exp(- + 2.847610014*(-3.091 + i6)^2)*exp(-0.507231314*(-4.121 + i7)^2) - + 0.94154552*exp(-18.36893807*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7879 + 0.1*i2)^2)*exp(-9.823088771*(-0.6909 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.7162 + 0.1*i4)^2)*exp(-0.797258714*(-1.475 + i5)^2)*exp(- + 2.847610014*(-3.131 + i6)^2)*exp(-0.507231314*(-2.212 + i7)^2) + + 0.848729421*exp(-18.36893807*(-0.4394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.897 + 0.1*i2)^2)*exp(-9.823088771*(-0.9758 + 0.1*i3)^2)*exp(-1.010268744 + *(-1.023 + 0.1*i4)^2)*exp(-0.797258714*(-1.667 + i5)^2)*exp(-2.847610014*( + -3.061 + i6)^2)*exp(-0.507231314*(-2.879 + i7)^2) - 1.926307699*exp(- + 18.36893807*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(-0.5394 + 0.1*i2)^2)* + exp(-9.823088771*(-0.9152 + 0.1*i3)^2)*exp(-1.010268744*(-1.5 + 0.1*i4)^2) + *exp(-0.797258714*(-1.596 + i5)^2)*exp(-2.847610014*(-3.636 + i6)^2)*exp(- + 0.507231314*(-2.727 + i7)^2) - 0.797126592*exp(-18.36893807*(-0.5545 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)*exp(-9.823088771*(-0.7212 + + 0.1*i3)^2)*exp(-1.010268744*(-1.08 + 0.1*i4)^2)*exp(-0.797258714*(- + 1.838 + i5)^2)*exp(-2.847610014*(-3.434 + i6)^2)*exp(-0.507231314*(-2.364 + + i7)^2) - 0.961689389*exp(-18.36893807*(-0.3758 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8667 + 0.1*i2)^2)*exp(-9.823088771*(-0.5394 + 0.1*i3)^2)* + exp(-1.010268744*(-1.015 + 0.1*i4)^2)*exp(-0.797258714*(-1.919 + i5)^2)* + exp(-2.847610014*(-3.909 + i6)^2)*exp(-0.507231314*(-2.939 + i7)^2) + + 6.634183756*exp(-18.36893807*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-9.823088771*(-0.5212 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.9343 + 0.1*i4)^2)*exp(-0.797258714*(-1.808 + i5)^2)*exp(- + 2.847610014*(-3.212 + i6)^2)*exp(-0.507231314*(-2.545 + i7)^2) + + 0.631433283*exp(-18.36893807*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9333 + 0.1*i2)^2)*exp(-9.823088771*(-0.6485 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.322 + 0.1*i4)^2)*exp(-0.797258714*(-1.394 + i5)^2)*exp(- + 2.847610014*(-3.081 + i6)^2)*exp(-0.507231314*(-4.697 + i7)^2) + + 0.033381389*exp(-18.36893807*(-0.4576 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5455 + 0.1*i2)^2)*exp(-9.823088771*(-0.9939 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.169 + 0.1*i4)^2)*exp(-0.797258714*(-1.98 + i5)^2)*exp(- + 2.847610014*(-3.626 + i6)^2)*exp(-0.507231314*(-3.939 + i7)^2) - + 0.941060645*exp(-18.36893807*(-0.3242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9212 + 0.1*i2)^2)*exp(-9.823088771*(-0.4667 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.314 + 0.1*i4)^2)*exp(-0.797258714*(-1.697 + i5)^2)*exp(- + 2.847610014*(-3.374 + i6)^2)*exp(-0.507231314*(-3.758 + i7)^2) - + 1.367103361*exp(-18.36893807*(-0.5697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4182 + 0.1*i2)^2)*exp(-9.823088771*(-0.7394 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.8374 + 0.1*i4)^2)*exp(-0.797258714*(-1.717 + i5)^2)*exp(- + 2.847610014*(-3.727 + i6)^2)*exp(-0.507231314*(-3.303 + i7)^2) - + 1.541980867*exp(-18.36893807*(-0.3727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9879 + 0.1*i2)^2)*exp(-9.823088771*(-0.6848 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.104 + 0.1*i4)^2)*exp(-0.797258714*(-1.343 + i5)^2)*exp(- + 2.847610014*(-3.606 + i6)^2)*exp(-0.507231314*(-2 + i7)^2) + 0.693043676* + exp(-18.36893807*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(-0.4667 + 0.1*i2) + ^2)*exp(-9.823088771*(-0.8303 + 0.1*i3)^2)*exp(-1.010268744*(-0.8859 + 0.1 + *i4)^2)*exp(-0.797258714*(-1.111 + i5)^2)*exp(-2.847610014*(-3.283 + i6)^2 + )*exp(-0.507231314*(-2.576 + i7)^2) - 2.105448083*exp(-18.36893807*(- + 0.3485 + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)*exp(- + 9.823088771*(-0.6606 + 0.1*i3)^2)*exp(-1.010268744*(-0.999 + 0.1*i4)^2)* + exp(-0.797258714*(-1.172 + i5)^2)*exp(-2.847610014*(-3.03 + i6)^2)*exp(- + 0.507231314*(-3.152 + i7)^2) + 0.473173125*exp(-18.36893807*(-0.5848 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-9.823088771*(-0.8 + + 0.1*i3)^2)*exp(-1.010268744*(-1.298 + 0.1*i4)^2)*exp(-0.797258714*(-1.848 + + i5)^2)*exp(-2.847610014*(-3.828 + i6)^2)*exp(-0.507231314*(-2.636 + i7) + ^2) - 0.741592476*exp(-18.36893807*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847* + (-0.5212 + 0.1*i2)^2)*exp(-9.823088771*(-0.497 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.395 + 0.1*i4)^2)*exp(-0.797258714*(-1.636 + i5)^2)*exp(- + 2.847610014*(-3.384 + i6)^2)*exp(-0.507231314*(-2.697 + i7)^2) - + 0.151571143*exp(-18.36893807*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6242 + 0.1*i2)^2)*exp(-9.823088771*(-0.6788 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.338 + 0.1*i4)^2)*exp(-0.797258714*(-1.859 + i5)^2)*exp(- + 2.847610014*(-3.758 + i6)^2)*exp(-0.507231314*(-4.273 + i7)^2) + + 1.08386583*exp(-18.36893807*(-0.5485 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4545 + 0.1*i2)^2)*exp(-9.823088771*(-0.8848 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.112 + 0.1*i4)^2)*exp(-0.797258714*(-1.515 + i5)^2)*exp(- + 2.847610014*(-3.101 + i6)^2)*exp(-0.507231314*(-4.333 + i7)^2) + + 0.440704323*exp(-18.36893807*(-0.4636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7939 + 0.1*i2)^2)*exp(-9.823088771*(-0.7879 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.492 + 0.1*i4)^2)*exp(-0.797258714*(-1.707 + i5)^2)*exp(- + 2.847610014*(-3.97 + i6)^2)*exp(-0.507231314*(-4.03 + i7)^2) - 0.575025214 + *exp(-18.36893807*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(-0.5818 + 0.1*i2 + )^2)*exp(-9.823088771*(-0.7455 + 0.1*i3)^2)*exp(-1.010268744*(-0.7404 + + 0.1*i4)^2)*exp(-0.797258714*(-1.687 + i5)^2)*exp(-2.847610014*(-3.929 + i6 + )^2)*exp(-0.507231314*(-3.788 + i7)^2) - 0.225856664*exp(-18.36893807*(- + 0.6 + 0.1*i1)^2)*exp(-12.56111847*(-0.7515 + 0.1*i2)^2)*exp(-9.823088771*( + -0.9455 + 0.1*i3)^2)*exp(-1.010268744*(-0.8616 + 0.1*i4)^2)*exp(- + 0.797258714*(-1.384 + i5)^2)*exp(-2.847610014*(-3.596 + i6)^2)*exp(- + 0.507231314*(-2.848 + i7)^2) - 1.585415031*exp(-18.36893807*(-0.3273 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.4 + 0.1*i2)^2)*exp(-9.823088771*(-0.897 + 0.1 + *i3)^2)*exp(-1.010268744*(-1.12 + 0.1*i4)^2)*exp(-0.797258714*(-1.404 + i5 + )^2)*exp(-2.847610014*(-3.525 + i6)^2)*exp(-0.507231314*(-4.182 + i7)^2) + + 0.250121009*exp(-18.36893807*(-0.5212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.497 + 0.1*i2)^2)*exp(-9.823088771*(-0.8909 + 0.1*i3)^2)*exp(-1.010268744 + *(-1.185 + 0.1*i4)^2)*exp(-0.797258714*(-1.737 + i5)^2)*exp(-2.847610014*( + -3.293 + i6)^2)*exp(-0.507231314*(-2.091 + i7)^2) + 0.310339493*exp(- + 18.36893807*(-0.4303 + 0.1*i1)^2)*exp(-12.56111847*(-0.4606 + 0.1*i2)^2)* + exp(-9.823088771*(-0.6242 + 0.1*i3)^2)*exp(-1.010268744*(-1.225 + 0.1*i4)^ + 2)*exp(-0.797258714*(-1.727 + i5)^2)*exp(-2.847610014*(-3.96 + i6)^2)*exp( + -0.507231314*(-2.424 + i7)^2) + 1.982720123*exp(-18.36893807*(-0.3121 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8909 + 0.1*i2)^2)*exp(-9.823088771*(-0.903 + + 0.1*i3)^2)*exp(-1.010268744*(-1.387 + 0.1*i4)^2)*exp(-0.797258714*(- + 1.414 + i5)^2)*exp(-2.847610014*(-3.323 + i6)^2)*exp(-0.507231314*(-3.636 + + i7)^2) - 1.570742024*exp(-18.36893807*(-0.3424 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.4485 + 0.1*i2)^2)*exp(-9.823088771*(-0.4182 + 0.1*i3)^2)* + exp(-1.010268744*(-0.9747 + 0.1*i4)^2)*exp(-0.797258714*(-1.566 + i5)^2)* + exp(-2.847610014*(-3.657 + i6)^2)*exp(-0.507231314*(-3.879 + i7)^2) - + 1.281123115*exp(-18.36893807*(-0.497 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7697 + 0.1*i2)^2)*exp(-9.823088771*(-0.7939 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.274 + 0.1*i4)^2)*exp(-0.797258714*(-1.141 + i5)^2)*exp(- + 2.847610014*(-4 + i6)^2)*exp(-0.507231314*(-2.515 + i7)^2) - 0.994318359* + exp(-18.36893807*(-0.4939 + 0.1*i1)^2)*exp(-12.56111847*(-0.5576 + 0.1*i2) + ^2)*exp(-9.823088771*(-0.4545 + 0.1*i3)^2)*exp(-1.010268744*(-1.177 + 0.1* + i4)^2)*exp(-0.797258714*(-1.96 + i5)^2)*exp(-2.847610014*(-3.818 + i6)^2)* + exp(-0.507231314*(-4 + i7)^2) - 2.412086625*exp(-18.36893807*(-0.5 + 0.1* + i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2)*exp(-9.823088771*(-0.4 + 0.1 + *i3)^2)*exp(-1.010268744*(-1.088 + 0.1*i4)^2)*exp(-0.797258714*(-1.455 + + i5)^2)*exp(-2.847610014*(-3.242 + i6)^2)*exp(-0.507231314*(-2.788 + i7)^2) + - 0.637358274*exp(-18.36893807*(-0.4182 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9455 + 0.1*i2)^2)*exp(-9.823088771*(-0.8364 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.258 + 0.1*i4)^2)*exp(-0.797258714*(-1.929 + i5)^2)*exp(- + 2.847610014*(-3.465 + i6)^2)*exp(-0.507231314*(-4.606 + i7)^2) + + 0.885815159*exp(-18.36893807*(-0.3636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7818 + 0.1*i2)^2)*exp(-9.823088771*(-1 + 0.1*i3)^2)*exp(-1.010268744*(- + 0.9909 + 0.1*i4)^2)*exp(-0.797258714*(-1.535 + i5)^2)*exp(-2.847610014*(- + 3.768 + i6)^2)*exp(-0.507231314*(-4.667 + i7)^2) + 0.042493519*exp(- + 18.36893807*(-0.4091 + 0.1*i1)^2)*exp(-12.56111847*(-0.7212 + 0.1*i2)^2)* + exp(-9.823088771*(-0.9273 + 0.1*i3)^2)*exp(-1.010268744*(-1.371 + 0.1*i4)^ + 2)*exp(-0.797258714*(-1.04 + i5)^2)*exp(-2.847610014*(-3.747 + i6)^2)*exp( + -0.507231314*(-4.152 + i7)^2) + 0.478223974*exp(-18.36893807*(-0.4455 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4242 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.5879 + 0.1*i3)^2)*exp(-1.010268744*(-0.9182 + 0.1*i4)^2)*exp(- + 0.797258714*(-1.626 + i5)^2)*exp(-2.847610014*(-3 + i6)^2)*exp(- + 0.507231314*(-3.091 + i7)^2) - 3.938792773*exp(-18.36893807*(-0.3667 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.8424 + 0.1*i2)^2)*exp(-9.823088771*(-0.8242 + + 0.1*i3)^2)*exp(-1.010268744*(-1.29 + 0.1*i4)^2)*exp(-0.797258714*(-2 + + i5)^2)*exp(-2.847610014*(-3.485 + i6)^2)*exp(-0.507231314*(-2.485 + i7)^2) + - 3.13300675*exp(-18.36893807*(-0.4 + 0.1*i1)^2)*exp(-12.56111847*(-0.6 + + 0.1*i2)^2)*exp(-9.823088771*(-0.4364 + 0.1*i3)^2)*exp(-1.010268744*(- + 1.056 + 0.1*i4)^2)*exp(-0.797258714*(-1.091 + i5)^2)*exp(-2.847610014*(- + 3.202 + i6)^2)*exp(-0.507231314*(-2.606 + i7)^2) - 0.633977309*exp(- + 18.36893807*(-0.5303 + 0.1*i1)^2)*exp(-12.56111847*(-0.8545 + 0.1*i2)^2)* + exp(-9.823088771*(-0.9212 + 0.1*i3)^2)*exp(-1.010268744*(-0.8778 + 0.1*i4) + ^2)*exp(-0.797258714*(-1.616 + i5)^2)*exp(-2.847610014*(-3.232 + i6)^2)* + exp(-0.507231314*(-4.727 + i7)^2) - 0.479527984*exp(-18.36893807*(-0.3879 + + 0.1*i1)^2)*exp(-12.56111847*(-0.5515 + 0.1*i2)^2)*exp(-9.823088771*(- + 0.5576 + 0.1*i3)^2)*exp(-1.010268744*(-0.7808 + 0.1*i4)^2)*exp(- + 0.797258714*(-1.444 + i5)^2)*exp(-2.847610014*(-3.677 + i6)^2)*exp(- + 0.507231314*(-2.03 + i7)^2) + 1.879682948*exp(-18.36893807*(-0.4515 + 0.1* + i1)^2)*exp(-12.56111847*(-0.7273 + 0.1*i2)^2)*exp(-9.823088771*(-0.8727 + + 0.1*i3)^2)*exp(-1.010268744*(-0.8131 + 0.1*i4)^2)*exp(-0.797258714*(-1.828 + + i5)^2)*exp(-2.847610014*(-3.717 + i6)^2)*exp(-0.507231314*(-2.061 + i7) + ^2) - 0.381478438*exp(-18.36893807*(-0.4818 + 0.1*i1)^2)*exp(-12.56111847* + (-0.4121 + 0.1*i2)^2)*exp(-9.823088771*(-0.5515 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.064 + 0.1*i4)^2)*exp(-0.797258714*(-1.202 + i5)^2)*exp(- + 2.847610014*(-3.404 + i6)^2)*exp(-0.507231314*(-4.788 + i7)^2) + + 0.231344191*exp(-18.36893807*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-9.823088771*(-0.9636 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.443 + 0.1*i4)^2)*exp(-0.797258714*(-1.606 + i5)^2)*exp(- + 2.847610014*(-3.263 + i6)^2)*exp(-0.507231314*(-3.667 + i7)^2) + + 1.591521419*exp(-18.36893807*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4727 + 0.1*i2)^2)*exp(-9.823088771*(-0.7818 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.136 + 0.1*i4)^2)*exp(-0.797258714*(-1.545 + i5)^2)*exp(- + 2.847610014*(-3.99 + i6)^2)*exp(-0.507231314*(-4.758 + i7)^2) + + 0.260514872*exp(-18.36893807*(-0.5606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7758 + 0.1*i2)^2)*exp(-9.823088771*(-0.5273 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.9263 + 0.1*i4)^2)*exp(-0.797258714*(-1.576 + i5)^2)*exp(- + 2.847610014*(-3.919 + i6)^2)*exp(-0.507231314*(-2.394 + i7)^2) + + 0.791127788*exp(-18.36893807*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-9.823088771*(-0.9818 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.7081 + 0.1*i4)^2)*exp(-0.797258714*(-1.657 + i5)^2)*exp(- + 2.847610014*(-3.273 + i6)^2)*exp(-0.507231314*(-3.455 + i7)^2) + + 2.38805562*exp(-18.36893807*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8303 + 0.1*i2)^2)*exp(-9.823088771*(-0.6061 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.9424 + 0.1*i4)^2)*exp(-0.797258714*(-1 + i5)^2)*exp(- + 2.847610014*(-3.545 + i6)^2)*exp(-0.507231314*(-2.303 + i7)^2) - + 0.159141313*exp(-18.36893807*(-0.3788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9152 + 0.1*i2)^2)*exp(-9.823088771*(-0.7515 + 0.1*i3)^2)*exp(- + 1.010268744*(-0.8455 + 0.1*i4)^2)*exp(-0.797258714*(-1.212 + i5)^2)*exp(- + 2.847610014*(-3.394 + i6)^2)*exp(-0.507231314*(-4.879 + i7)^2) + + 0.568397508*exp(-18.36893807*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-9.823088771*(-0.4424 + 0.1*i3)^2)*exp(- + 1.010268744*(-1.047 + 0.1*i4)^2)*exp(-0.797258714*(-1.02 + i5)^2)*exp(- + 2.847610014*(-3.556 + i6)^2)*exp(-0.507231314*(-4.303 + i7)^2)) + x8 + >= 4.094863584; + + -(0.332125112*exp(-10.09474981*(-0.5364 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9697 + 0.1*i2)^2)*exp(-4.076105657*(-0.4909 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.161 + 0.1*i4)^2)*exp(-1.181833241*(-1.778 + i5)^2)*exp(- + 1.694720423*(-3.778 + i6)^2)*exp(-0.508146304*(-4.091 + i7)^2) - + 0.008508043*exp(-10.09474981*(-0.303 + 0.1*i1)^2)*exp(-12.59555367*(-0.697 + + 0.1*i2)^2)*exp(-4.076105657*(-0.8061 + 0.1*i3)^2)*exp(-1.073106648*(- + 0.9586 + 0.1*i4)^2)*exp(-1.181833241*(-1.758 + i5)^2)*exp(-1.694720423*(- + 3.141 + i6)^2)*exp(-0.508146304*(-4.424 + i7)^2) + 0.163627387*exp(- + 10.09474981*(-0.503 + 0.1*i1)^2)*exp(-12.59555367*(-0.6182 + 0.1*i2)^2)* + exp(-4.076105657*(-0.4121 + 0.1*i3)^2)*exp(-1.073106648*(-1.419 + 0.1*i4)^ + 2)*exp(-1.181833241*(-1.333 + i5)^2)*exp(-1.694720423*(-3.152 + i6)^2)* + exp(-0.508146304*(-3.697 + i7)^2) - 0.079488115*exp(-10.09474981*(-0.4606 + + 0.1*i1)^2)*exp(-12.59555367*(-0.903 + 0.1*i2)^2)*exp(-4.076105657*(- + 0.7576 + 0.1*i3)^2)*exp(-1.073106648*(-0.7727 + 0.1*i4)^2)*exp(- + 1.181833241*(-1.242 + i5)^2)*exp(-1.694720423*(-3.98 + i6)^2)*exp(- + 0.508146304*(-3.424 + i7)^2) + 0.452168366*exp(-10.09474981*(-0.3 + 0.1*i1 + )^2)*exp(-12.59555367*(-0.7636 + 0.1*i2)^2)*exp(-4.076105657*(-0.8606 + + 0.1*i3)^2)*exp(-1.073106648*(-1.153 + 0.1*i4)^2)*exp(-1.181833241*(-1.556 + + i5)^2)*exp(-1.694720423*(-3.939 + i6)^2)*exp(-0.508146304*(-2.818 + i7) + ^2) + 1.732787245*exp(-10.09474981*(-0.5879 + 0.1*i1)^2)*exp(-12.59555367* + (-0.703 + 0.1*i2)^2)*exp(-4.076105657*(-0.4788 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.039 + 0.1*i4)^2)*exp(-1.181833241*(-1.646 + i5)^2)*exp(- + 1.694720423*(-3.222 + i6)^2)*exp(-0.508146304*(-4.636 + i7)^2) + + 2.064856245*exp(-10.09474981*(-0.4121 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4424 + 0.1*i2)^2)*exp(-4.076105657*(-0.5939 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.46 + 0.1*i4)^2)*exp(-1.181833241*(-1.232 + i5)^2)*exp(- + 1.694720423*(-3.788 + i6)^2)*exp(-0.508146304*(-3.848 + i7)^2) + + 0.211472967*exp(-10.09474981*(-0.5576 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8848 + 0.1*i2)^2)*exp(-4.076105657*(-0.8121 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.128 + 0.1*i4)^2)*exp(-1.181833241*(-1.263 + i5)^2)*exp(- + 1.694720423*(-3.808 + i6)^2)*exp(-0.508146304*(-4.818 + i7)^2) - + 2.111659202*exp(-10.09474981*(-0.4273 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4848 + 0.1*i2)^2)*exp(-4.076105657*(-0.9697 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.9667 + 0.1*i4)^2)*exp(-1.181833241*(-1.364 + i5)^2)*exp(- + 1.694720423*(-3.869 + i6)^2)*exp(-0.508146304*(-2.667 + i7)^2) - + 0.37710379*exp(-10.09474981*(-0.5455 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4061 + 0.1*i2)^2)*exp(-4.076105657*(-0.6303 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.427 + 0.1*i4)^2)*exp(-1.181833241*(-1.747 + i5)^2)*exp(- + 1.694720423*(-3.444 + i6)^2)*exp(-0.508146304*(-3.576 + i7)^2) + + 0.796969404*exp(-10.09474981*(-0.5394 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.5273 + 0.1*i2)^2)*exp(-4.076105657*(-0.5636 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.355 + 0.1*i4)^2)*exp(-1.181833241*(-1.253 + i5)^2)*exp(- + 1.694720423*(-3.566 + i6)^2)*exp(-0.508146304*(-2.121 + i7)^2) - + 3.137015293*exp(-10.09474981*(-0.5273 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8121 + 0.1*i2)^2)*exp(-4.076105657*(-0.8424 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.8535 + 0.1*i4)^2)*exp(-1.181833241*(-1.899 + i5)^2)*exp(- + 1.694720423*(-3.889 + i6)^2)*exp(-0.508146304*(-4.061 + i7)^2) - + 0.292985046*exp(-10.09474981*(-0.5727 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4909 + 0.1*i2)^2)*exp(-4.076105657*(-0.9333 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.306 + 0.1*i4)^2)*exp(-1.181833241*(-1.273 + i5)^2)*exp(- + 1.694720423*(-3.707 + i6)^2)*exp(-0.508146304*(-3.485 + i7)^2) - + 1.305238549*exp(-10.09474981*(-0.3091 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6364 + 0.1*i2)^2)*exp(-4.076105657*(-0.5758 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.282 + 0.1*i4)^2)*exp(-1.181833241*(-1.222 + i5)^2)*exp(- + 1.694720423*(-3.192 + i6)^2)*exp(-0.508146304*(-4.455 + i7)^2) + + 0.168215589*exp(-10.09474981*(-0.4364 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7394 + 0.1*i2)^2)*exp(-4.076105657*(-0.4485 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.403 + 0.1*i4)^2)*exp(-1.181833241*(-1.465 + i5)^2)*exp(- + 1.694720423*(-3.687 + i6)^2)*exp(-0.508146304*(-4.939 + i7)^2) - + 0.621151368*exp(-10.09474981*(-0.5636 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6485 + 0.1*i2)^2)*exp(-4.076105657*(-0.7273 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.346 + 0.1*i4)^2)*exp(-1.181833241*(-1.01 + i5)^2)*exp(- + 1.694720423*(-3.333 + i6)^2)*exp(-0.508146304*(-4.364 + i7)^2) + + 1.405636942*exp(-10.09474981*(-0.597 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7152 + 0.1*i2)^2)*exp(-4.076105657*(-0.703 + 0.1*i3)^2)*exp(-1.073106648 + *(-1.209 + 0.1*i4)^2)*exp(-1.181833241*(-1.354 + i5)^2)*exp(-1.694720423*( + -3.01 + i6)^2)*exp(-0.508146304*(-2.758 + i7)^2) + 1.05899597*exp(- + 10.09474981*(-0.5152 + 0.1*i1)^2)*exp(-12.59555367*(-0.6606 + 0.1*i2)^2)* + exp(-4.076105657*(-0.503 + 0.1*i3)^2)*exp(-1.073106648*(-0.7566 + 0.1*i4)^ + 2)*exp(-1.181833241*(-1.424 + i5)^2)*exp(-1.694720423*(-3.848 + i6)^2)* + exp(-0.508146304*(-4.576 + i7)^2) - 0.057717305*exp(-10.09474981*(-0.5758 + + 0.1*i1)^2)*exp(-12.59555367*(-0.5152 + 0.1*i2)^2)*exp(-4.076105657*(- + 0.4303 + 0.1*i3)^2)*exp(-1.073106648*(-0.8697 + 0.1*i4)^2)*exp(- + 1.181833241*(-1.374 + i5)^2)*exp(-1.694720423*(-3.414 + i6)^2)*exp(- + 0.508146304*(-3.061 + i7)^2) + 3.010236067*exp(-10.09474981*(-0.3939 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.7091 + 0.1*i2)^2)*exp(-4.076105657*(-0.4242 + + 0.1*i3)^2)*exp(-1.073106648*(-0.8293 + 0.1*i4)^2)*exp(-1.181833241*(- + 1.434 + i5)^2)*exp(-1.694720423*(-3.121 + i6)^2)*exp(-0.508146304*(-4.394 + + i7)^2) - 0.863510801*exp(-10.09474981*(-0.403 + 0.1*i1)^2)*exp(- + 12.59555367*(-0.5333 + 0.1*i2)^2)*exp(-4.076105657*(-0.5152 + 0.1*i3)^2)* + exp(-1.073106648*(-1.233 + 0.1*i4)^2)*exp(-1.181833241*(-1.889 + i5)^2)* + exp(-1.694720423*(-3.172 + i6)^2)*exp(-0.508146304*(-4.545 + i7)^2) - + 3.689887557*exp(-10.09474981*(-0.5061 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6121 + 0.1*i2)^2)*exp(-4.076105657*(-0.4606 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.144 + 0.1*i4)^2)*exp(-1.181833241*(-1.879 + i5)^2)*exp(- + 1.694720423*(-3.343 + i6)^2)*exp(-0.508146304*(-2.152 + i7)^2) + + 2.378053984*exp(-10.09474981*(-0.4152 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8242 + 0.1*i2)^2)*exp(-4.076105657*(-0.6545 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.411 + 0.1*i4)^2)*exp(-1.181833241*(-1.525 + i5)^2)*exp(- + 1.694720423*(-3.04 + i6)^2)*exp(-0.508146304*(-2.273 + i7)^2) - 0.87084508 + *exp(-10.09474981*(-0.4545 + 0.1*i1)^2)*exp(-12.59555367*(-0.503 + 0.1*i2) + ^2)*exp(-4.076105657*(-0.7152 + 0.1*i3)^2)*exp(-1.073106648*(-0.797 + 0.1* + i4)^2)*exp(-1.181833241*(-1.798 + i5)^2)*exp(-1.694720423*(-3.424 + i6)^2) + *exp(-0.508146304*(-4.97 + i7)^2) - 1.83518054*exp(-10.09474981*(-0.3606 + + 0.1*i1)^2)*exp(-12.59555367*(-0.8 + 0.1*i2)^2)*exp(-4.076105657*(- + 0.9394 + 0.1*i3)^2)*exp(-1.073106648*(-0.8212 + 0.1*i4)^2)*exp(- + 1.181833241*(-1.101 + i5)^2)*exp(-1.694720423*(-3.535 + i6)^2)*exp(- + 0.508146304*(-2.909 + i7)^2) + 0.121278298*exp(-10.09474981*(-0.5818 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.9394 + 0.1*i2)^2)*exp(-4.076105657*(-0.6364 + + 0.1*i3)^2)*exp(-1.073106648*(-1.435 + 0.1*i4)^2)*exp(-1.181833241*(- + 1.313 + i5)^2)*exp(-1.694720423*(-3.576 + i6)^2)*exp(-0.508146304*(-3.212 + + i7)^2) - 2.026056342*exp(-10.09474981*(-0.4485 + 0.1*i1)^2)*exp(- + 12.59555367*(-0.9273 + 0.1*i2)^2)*exp(-4.076105657*(-0.6 + 0.1*i3)^2)*exp( + -1.073106648*(-0.9505 + 0.1*i4)^2)*exp(-1.181833241*(-1.909 + i5)^2)*exp(- + 1.694720423*(-3.051 + i6)^2)*exp(-0.508146304*(-3.97 + i7)^2) - + 0.051283428*exp(-10.09474981*(-0.3394 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8788 + 0.1*i2)^2)*exp(-4.076105657*(-0.4727 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.7646 + 0.1*i4)^2)*exp(-1.181833241*(-1.293 + i5)^2)*exp(- + 1.694720423*(-3.616 + i6)^2)*exp(-0.508146304*(-3.273 + i7)^2) + + 2.361106806*exp(-10.09474981*(-0.3515 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9576 + 0.1*i2)^2)*exp(-4.076105657*(-0.8182 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.7485 + 0.1*i4)^2)*exp(-1.181833241*(-1.768 + i5)^2)*exp(- + 1.694720423*(-3.505 + i6)^2)*exp(-0.508146304*(-3.394 + i7)^2) + + 1.476117272*exp(-10.09474981*(-0.4061 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6667 + 0.1*i2)^2)*exp(-4.076105657*(-0.9576 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.096 + 0.1*i4)^2)*exp(-1.181833241*(-1.131 + i5)^2)*exp(- + 1.694720423*(-3.071 + i6)^2)*exp(-0.508146304*(-4.242 + i7)^2) + + 0.292944275*exp(-10.09474981*(-0.5788 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6545 + 0.1*i2)^2)*exp(-4.076105657*(-0.7697 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.9101 + 0.1*i4)^2)*exp(-1.181833241*(-1.97 + i5)^2)*exp(- + 1.694720423*(-3.162 + i6)^2)*exp(-0.508146304*(-3.364 + i7)^2) + + 0.65167944*exp(-10.09474981*(-0.4788 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9818 + 0.1*i2)^2)*exp(-4.076105657*(-0.9879 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.193 + 0.1*i4)^2)*exp(-1.181833241*(-1.586 + i5)^2)*exp(- + 1.694720423*(-3.798 + i6)^2)*exp(-0.508146304*(-3.03 + i7)^2) - + 1.046825827*exp(-10.09474981*(-0.3182 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.5697 + 0.1*i2)^2)*exp(-4.076105657*(-0.7091 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.217 + 0.1*i4)^2)*exp(-1.181833241*(-1.061 + i5)^2)*exp(- + 1.694720423*(-3.646 + i6)^2)*exp(-0.508146304*(-2.455 + i7)^2) + + 0.524048182*exp(-10.09474981*(-0.3909 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8606 + 0.1*i2)^2)*exp(-4.076105657*(-0.5818 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.468 + 0.1*i4)^2)*exp(-1.181833241*(-1.03 + i5)^2)*exp(- + 1.694720423*(-3.455 + i6)^2)*exp(-0.508146304*(-3.242 + i7)^2) - + 1.392368494*exp(-10.09474981*(-0.5909 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6303 + 0.1*i2)^2)*exp(-4.076105657*(-0.5091 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.266 + 0.1*i4)^2)*exp(-1.181833241*(-1.303 + i5)^2)*exp(- + 1.694720423*(-3.899 + i6)^2)*exp(-0.508146304*(-3.909 + i7)^2) - + 0.981873982*exp(-10.09474981*(-0.5939 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6727 + 0.1*i2)^2)*exp(-4.076105657*(-0.7758 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.249 + 0.1*i4)^2)*exp(-1.181833241*(-1.818 + i5)^2)*exp(- + 1.694720423*(-3.586 + i6)^2)*exp(-0.508146304*(-4.848 + i7)^2) - + 0.427308919*exp(-10.09474981*(-0.5242 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8061 + 0.1*i2)^2)*exp(-4.076105657*(-0.5697 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.452 + 0.1*i4)^2)*exp(-1.181833241*(-1.949 + i5)^2)*exp(- + 1.694720423*(-3.253 + i6)^2)*exp(-0.508146304*(-3.606 + i7)^2) + 3.4427151 + *exp(-10.09474981*(-0.5667 + 0.1*i1)^2)*exp(-12.59555367*(-0.9636 + 0.1*i2 + )^2)*exp(-4.076105657*(-0.6182 + 0.1*i3)^2)*exp(-1.073106648*(-0.7242 + + 0.1*i4)^2)*exp(-1.181833241*(-1.495 + i5)^2)*exp(-1.694720423*(-3.475 + i6 + )^2)*exp(-0.508146304*(-3.818 + i7)^2) + 1.002923384*exp(-10.09474981*(- + 0.3364 + 0.1*i1)^2)*exp(-12.59555367*(-0.5091 + 0.1*i2)^2)*exp(- + 4.076105657*(-0.697 + 0.1*i3)^2)*exp(-1.073106648*(-0.7323 + 0.1*i4)^2)* + exp(-1.181833241*(-1.182 + i5)^2)*exp(-1.694720423*(-3.313 + i6)^2)*exp(- + 0.508146304*(-3.727 + i7)^2) + 1.643418918*exp(-10.09474981*(-0.4212 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.6061 + 0.1*i2)^2)*exp(-4.076105657*(-0.8485 + + 0.1*i3)^2)*exp(-1.073106648*(-1.476 + 0.1*i4)^2)*exp(-1.181833241*(- + 1.505 + i5)^2)*exp(-1.694720423*(-3.364 + i6)^2)*exp(-0.508146304*(-5 + i7 + )^2) + 0.184469776*exp(-10.09474981*(-0.3697 + 0.1*i1)^2)*exp(-12.59555367 + *(-0.8485 + 0.1*i2)^2)*exp(-4.076105657*(-0.5455 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.902 + 0.1*i4)^2)*exp(-1.181833241*(-1.788 + i5)^2)*exp(- + 1.694720423*(-3.697 + i6)^2)*exp(-0.508146304*(-4.909 + i7)^2) + + 1.076364176*exp(-10.09474981*(-0.5121 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.5758 + 0.1*i2)^2)*exp(-4.076105657*(-0.9091 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.8051 + 0.1*i4)^2)*exp(-1.181833241*(-1.152 + i5)^2)*exp(- + 1.694720423*(-3.667 + i6)^2)*exp(-0.508146304*(-4.485 + i7)^2) + + 0.484613951*exp(-10.09474981*(-0.4697 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7455 + 0.1*i2)^2)*exp(-4.076105657*(-0.9515 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.33 + 0.1*i4)^2)*exp(-1.181833241*(-1.162 + i5)^2)*exp(- + 1.694720423*(-3.354 + i6)^2)*exp(-0.508146304*(-2.182 + i7)^2) + + 1.04432046*exp(-10.09474981*(-0.4758 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6848 + 0.1*i2)^2)*exp(-4.076105657*(-0.4848 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.7 + 0.1*i4)^2)*exp(-1.181833241*(-1.939 + i5)^2)*exp(- + 1.694720423*(-3.515 + i6)^2)*exp(-0.508146304*(-3.333 + i7)^2) + + 4.687161138*exp(-10.09474981*(-0.3152 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.5879 + 0.1*i2)^2)*exp(-4.076105657*(-0.8667 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.031 + 0.1*i4)^2)*exp(-1.181833241*(-1.485 + i5)^2)*exp(- + 1.694720423*(-3.182 + i6)^2)*exp(-0.508146304*(-2.242 + i7)^2) + + 2.841199334*exp(-10.09474981*(-0.3818 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7333 + 0.1*i2)^2)*exp(-4.076105657*(-0.4061 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.201 + 0.1*i4)^2)*exp(-1.181833241*(-1.283 + i5)^2)*exp(- + 1.694720423*(-3.949 + i6)^2)*exp(-0.508146304*(-3 + i7)^2) - 1.735293463* + exp(-10.09474981*(-0.5182 + 0.1*i1)^2)*exp(-12.59555367*(-0.9939 + 0.1*i2) + ^2)*exp(-4.076105657*(-0.8788 + 0.1*i3)^2)*exp(-1.073106648*(-1.072 + 0.1* + i4)^2)*exp(-1.181833241*(-1.081 + i5)^2)*exp(-1.694720423*(-3.303 + i6)^2) + *exp(-0.508146304*(-3.545 + i7)^2) + 0.354324755*exp(-10.09474981*(-0.4424 + + 0.1*i1)^2)*exp(-12.59555367*(-0.8364 + 0.1*i2)^2)*exp(-4.076105657*(- + 0.5333 + 0.1*i3)^2)*exp(-1.073106648*(-1.484 + 0.1*i4)^2)*exp(-1.181833241 + *(-1.677 + i5)^2)*exp(-1.694720423*(-3.737 + i6)^2)*exp(-0.508146304*(- + 2.333 + i7)^2) - 2.601841819*exp(-10.09474981*(-0.397 + 0.1*i1)^2)*exp(- + 12.59555367*(-0.5939 + 0.1*i2)^2)*exp(-4.076105657*(-0.8545 + 0.1*i3)^2)* + exp(-1.073106648*(-1.363 + 0.1*i4)^2)*exp(-1.181833241*(-1.869 + i5)^2)* + exp(-1.694720423*(-3.02 + i6)^2)*exp(-0.508146304*(-3.515 + i7)^2) - + 0.902331785*exp(-10.09474981*(-0.4879 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4788 + 0.1*i2)^2)*exp(-4.076105657*(-0.6121 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.8939 + 0.1*i4)^2)*exp(-1.181833241*(-1.051 + i5)^2)*exp(- + 1.694720423*(-3.879 + i6)^2)*exp(-0.508146304*(-3.182 + i7)^2) + + 2.242225307*exp(-10.09474981*(-0.3545 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4364 + 0.1*i2)^2)*exp(-4.076105657*(-0.7333 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.9828 + 0.1*i4)^2)*exp(-1.181833241*(-1.99 + i5)^2)*exp(- + 1.694720423*(-3.495 + i6)^2)*exp(-0.508146304*(-2.97 + i7)^2) - + 3.885965274*exp(-10.09474981*(-0.5424 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6909 + 0.1*i2)^2)*exp(-4.076105657*(-0.6727 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.7889 + 0.1*i4)^2)*exp(-1.181833241*(-1.121 + i5)^2)*exp(- + 1.694720423*(-3.091 + i6)^2)*exp(-0.508146304*(-4.121 + i7)^2) - + 2.96513413*exp(-10.09474981*(-0.4848 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7879 + 0.1*i2)^2)*exp(-4.076105657*(-0.6909 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.7162 + 0.1*i4)^2)*exp(-1.181833241*(-1.475 + i5)^2)*exp(- + 1.694720423*(-3.131 + i6)^2)*exp(-0.508146304*(-2.212 + i7)^2) + + 0.925935052*exp(-10.09474981*(-0.4394 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.897 + 0.1*i2)^2)*exp(-4.076105657*(-0.9758 + 0.1*i3)^2)*exp(-1.073106648 + *(-1.023 + 0.1*i4)^2)*exp(-1.181833241*(-1.667 + i5)^2)*exp(-1.694720423*( + -3.061 + i6)^2)*exp(-0.508146304*(-2.879 + i7)^2) - 1.54928208*exp(- + 10.09474981*(-0.3848 + 0.1*i1)^2)*exp(-12.59555367*(-0.5394 + 0.1*i2)^2)* + exp(-4.076105657*(-0.9152 + 0.1*i3)^2)*exp(-1.073106648*(-1.5 + 0.1*i4)^2) + *exp(-1.181833241*(-1.596 + i5)^2)*exp(-1.694720423*(-3.636 + i6)^2)*exp(- + 0.508146304*(-2.727 + i7)^2) + 0.061098191*exp(-10.09474981*(-0.5545 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.9758 + 0.1*i2)^2)*exp(-4.076105657*(-0.7212 + + 0.1*i3)^2)*exp(-1.073106648*(-1.08 + 0.1*i4)^2)*exp(-1.181833241*(- + 1.838 + i5)^2)*exp(-1.694720423*(-3.434 + i6)^2)*exp(-0.508146304*(-2.364 + + i7)^2) + 0.738133518*exp(-10.09474981*(-0.3758 + 0.1*i1)^2)*exp(- + 12.59555367*(-0.8667 + 0.1*i2)^2)*exp(-4.076105657*(-0.5394 + 0.1*i3)^2)* + exp(-1.073106648*(-1.015 + 0.1*i4)^2)*exp(-1.181833241*(-1.919 + i5)^2)* + exp(-1.694720423*(-3.909 + i6)^2)*exp(-0.508146304*(-2.939 + i7)^2) + + 6.452769864*exp(-10.09474981*(-0.3212 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7576 + 0.1*i2)^2)*exp(-4.076105657*(-0.5212 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.9343 + 0.1*i4)^2)*exp(-1.181833241*(-1.808 + i5)^2)*exp(- + 1.694720423*(-3.212 + i6)^2)*exp(-0.508146304*(-2.545 + i7)^2) + + 0.293291495*exp(-10.09474981*(-0.4727 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9333 + 0.1*i2)^2)*exp(-4.076105657*(-0.6485 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.322 + 0.1*i4)^2)*exp(-1.181833241*(-1.394 + i5)^2)*exp(- + 1.694720423*(-3.081 + i6)^2)*exp(-0.508146304*(-4.697 + i7)^2) + + 0.853461496*exp(-10.09474981*(-0.4576 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.5455 + 0.1*i2)^2)*exp(-4.076105657*(-0.9939 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.169 + 0.1*i4)^2)*exp(-1.181833241*(-1.98 + i5)^2)*exp(- + 1.694720423*(-3.626 + i6)^2)*exp(-0.508146304*(-3.939 + i7)^2) - + 2.015788669*exp(-10.09474981*(-0.3242 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9212 + 0.1*i2)^2)*exp(-4.076105657*(-0.4667 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.314 + 0.1*i4)^2)*exp(-1.181833241*(-1.697 + i5)^2)*exp(- + 1.694720423*(-3.374 + i6)^2)*exp(-0.508146304*(-3.758 + i7)^2) - + 1.24494778*exp(-10.09474981*(-0.5697 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4182 + 0.1*i2)^2)*exp(-4.076105657*(-0.7394 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.8374 + 0.1*i4)^2)*exp(-1.181833241*(-1.717 + i5)^2)*exp(- + 1.694720423*(-3.727 + i6)^2)*exp(-0.508146304*(-3.303 + i7)^2) - + 2.365863621*exp(-10.09474981*(-0.3727 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9879 + 0.1*i2)^2)*exp(-4.076105657*(-0.6848 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.104 + 0.1*i4)^2)*exp(-1.181833241*(-1.343 + i5)^2)*exp(- + 1.694720423*(-3.606 + i6)^2)*exp(-0.508146304*(-2 + i7)^2) + 1.975669369* + exp(-10.09474981*(-0.5091 + 0.1*i1)^2)*exp(-12.59555367*(-0.4667 + 0.1*i2) + ^2)*exp(-4.076105657*(-0.8303 + 0.1*i3)^2)*exp(-1.073106648*(-0.8859 + 0.1 + *i4)^2)*exp(-1.181833241*(-1.111 + i5)^2)*exp(-1.694720423*(-3.283 + i6)^2 + )*exp(-0.508146304*(-2.576 + i7)^2) - 1.826482828*exp(-10.09474981*(- + 0.3485 + 0.1*i1)^2)*exp(-12.59555367*(-0.9091 + 0.1*i2)^2)*exp(- + 4.076105657*(-0.6606 + 0.1*i3)^2)*exp(-1.073106648*(-0.999 + 0.1*i4)^2)* + exp(-1.181833241*(-1.172 + i5)^2)*exp(-1.694720423*(-3.03 + i6)^2)*exp(- + 0.508146304*(-3.152 + i7)^2) + 0.754773912*exp(-10.09474981*(-0.5848 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.6788 + 0.1*i2)^2)*exp(-4.076105657*(-0.8 + + 0.1*i3)^2)*exp(-1.073106648*(-1.298 + 0.1*i4)^2)*exp(-1.181833241*(-1.848 + + i5)^2)*exp(-1.694720423*(-3.828 + i6)^2)*exp(-0.508146304*(-2.636 + i7) + ^2) - 0.474003447*exp(-10.09474981*(-0.3303 + 0.1*i1)^2)*exp(-12.59555367* + (-0.5212 + 0.1*i2)^2)*exp(-4.076105657*(-0.497 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.395 + 0.1*i4)^2)*exp(-1.181833241*(-1.636 + i5)^2)*exp(- + 1.694720423*(-3.384 + i6)^2)*exp(-0.508146304*(-2.697 + i7)^2) + + 0.749731572*exp(-10.09474981*(-0.3061 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.6242 + 0.1*i2)^2)*exp(-4.076105657*(-0.6788 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.338 + 0.1*i4)^2)*exp(-1.181833241*(-1.859 + i5)^2)*exp(- + 1.694720423*(-3.758 + i6)^2)*exp(-0.508146304*(-4.273 + i7)^2) + + 1.108442713*exp(-10.09474981*(-0.5485 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4545 + 0.1*i2)^2)*exp(-4.076105657*(-0.8848 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.112 + 0.1*i4)^2)*exp(-1.181833241*(-1.515 + i5)^2)*exp(- + 1.694720423*(-3.101 + i6)^2)*exp(-0.508146304*(-4.333 + i7)^2) + + 0.233679754*exp(-10.09474981*(-0.4636 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7939 + 0.1*i2)^2)*exp(-4.076105657*(-0.7879 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.492 + 0.1*i4)^2)*exp(-1.181833241*(-1.707 + i5)^2)*exp(- + 1.694720423*(-3.97 + i6)^2)*exp(-0.508146304*(-4.03 + i7)^2) - 0.986227862 + *exp(-10.09474981*(-0.3455 + 0.1*i1)^2)*exp(-12.59555367*(-0.5818 + 0.1*i2 + )^2)*exp(-4.076105657*(-0.7455 + 0.1*i3)^2)*exp(-1.073106648*(-0.7404 + + 0.1*i4)^2)*exp(-1.181833241*(-1.687 + i5)^2)*exp(-1.694720423*(-3.929 + i6 + )^2)*exp(-0.508146304*(-3.788 + i7)^2) + 0.370039062*exp(-10.09474981*(- + 0.6 + 0.1*i1)^2)*exp(-12.59555367*(-0.7515 + 0.1*i2)^2)*exp(-4.076105657*( + -0.9455 + 0.1*i3)^2)*exp(-1.073106648*(-0.8616 + 0.1*i4)^2)*exp(- + 1.181833241*(-1.384 + i5)^2)*exp(-1.694720423*(-3.596 + i6)^2)*exp(- + 0.508146304*(-2.848 + i7)^2) - 1.772251271*exp(-10.09474981*(-0.3273 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.4 + 0.1*i2)^2)*exp(-4.076105657*(-0.897 + 0.1 + *i3)^2)*exp(-1.073106648*(-1.12 + 0.1*i4)^2)*exp(-1.181833241*(-1.404 + i5 + )^2)*exp(-1.694720423*(-3.525 + i6)^2)*exp(-0.508146304*(-4.182 + i7)^2) + - 1.072542209*exp(-10.09474981*(-0.5212 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.497 + 0.1*i2)^2)*exp(-4.076105657*(-0.8909 + 0.1*i3)^2)*exp(-1.073106648 + *(-1.185 + 0.1*i4)^2)*exp(-1.181833241*(-1.737 + i5)^2)*exp(-1.694720423*( + -3.293 + i6)^2)*exp(-0.508146304*(-2.091 + i7)^2) + 1.16580092*exp(- + 10.09474981*(-0.4303 + 0.1*i1)^2)*exp(-12.59555367*(-0.4606 + 0.1*i2)^2)* + exp(-4.076105657*(-0.6242 + 0.1*i3)^2)*exp(-1.073106648*(-1.225 + 0.1*i4)^ + 2)*exp(-1.181833241*(-1.727 + i5)^2)*exp(-1.694720423*(-3.96 + i6)^2)*exp( + -0.508146304*(-2.424 + i7)^2) + 1.29149656*exp(-10.09474981*(-0.3121 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.8909 + 0.1*i2)^2)*exp(-4.076105657*(-0.903 + + 0.1*i3)^2)*exp(-1.073106648*(-1.387 + 0.1*i4)^2)*exp(-1.181833241*(-1.414 + + i5)^2)*exp(-1.694720423*(-3.323 + i6)^2)*exp(-0.508146304*(-3.636 + i7) + ^2) - 2.010537878*exp(-10.09474981*(-0.3424 + 0.1*i1)^2)*exp(-12.59555367* + (-0.4485 + 0.1*i2)^2)*exp(-4.076105657*(-0.4182 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.9747 + 0.1*i4)^2)*exp(-1.181833241*(-1.566 + i5)^2)*exp(- + 1.694720423*(-3.657 + i6)^2)*exp(-0.508146304*(-3.879 + i7)^2) - + 1.965318864*exp(-10.09474981*(-0.497 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7697 + 0.1*i2)^2)*exp(-4.076105657*(-0.7939 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.274 + 0.1*i4)^2)*exp(-1.181833241*(-1.141 + i5)^2)*exp(- + 1.694720423*(-4 + i6)^2)*exp(-0.508146304*(-2.515 + i7)^2) - 0.957651015* + exp(-10.09474981*(-0.4939 + 0.1*i1)^2)*exp(-12.59555367*(-0.5576 + 0.1*i2) + ^2)*exp(-4.076105657*(-0.4545 + 0.1*i3)^2)*exp(-1.073106648*(-1.177 + 0.1* + i4)^2)*exp(-1.181833241*(-1.96 + i5)^2)*exp(-1.694720423*(-3.818 + i6)^2)* + exp(-0.508146304*(-4 + i7)^2) - 2.350542662*exp(-10.09474981*(-0.5 + 0.1* + i1)^2)*exp(-12.59555367*(-0.9515 + 0.1*i2)^2)*exp(-4.076105657*(-0.4 + 0.1 + *i3)^2)*exp(-1.073106648*(-1.088 + 0.1*i4)^2)*exp(-1.181833241*(-1.455 + + i5)^2)*exp(-1.694720423*(-3.242 + i6)^2)*exp(-0.508146304*(-2.788 + i7)^2) + + 1.453191418*exp(-10.09474981*(-0.4182 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9455 + 0.1*i2)^2)*exp(-4.076105657*(-0.8364 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.258 + 0.1*i4)^2)*exp(-1.181833241*(-1.929 + i5)^2)*exp(- + 1.694720423*(-3.465 + i6)^2)*exp(-0.508146304*(-4.606 + i7)^2) + + 0.434551449*exp(-10.09474981*(-0.3636 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7818 + 0.1*i2)^2)*exp(-4.076105657*(-1 + 0.1*i3)^2)*exp(-1.073106648*(- + 0.9909 + 0.1*i4)^2)*exp(-1.181833241*(-1.535 + i5)^2)*exp(-1.694720423*(- + 3.768 + i6)^2)*exp(-0.508146304*(-4.667 + i7)^2) + 0.335620323*exp(- + 10.09474981*(-0.4091 + 0.1*i1)^2)*exp(-12.59555367*(-0.7212 + 0.1*i2)^2)* + exp(-4.076105657*(-0.9273 + 0.1*i3)^2)*exp(-1.073106648*(-1.371 + 0.1*i4)^ + 2)*exp(-1.181833241*(-1.04 + i5)^2)*exp(-1.694720423*(-3.747 + i6)^2)*exp( + -0.508146304*(-4.152 + i7)^2) + 0.170150124*exp(-10.09474981*(-0.4455 + + 0.1*i1)^2)*exp(-12.59555367*(-0.4242 + 0.1*i2)^2)*exp(-4.076105657*(- + 0.5879 + 0.1*i3)^2)*exp(-1.073106648*(-0.9182 + 0.1*i4)^2)*exp(- + 1.181833241*(-1.626 + i5)^2)*exp(-1.694720423*(-3 + i6)^2)*exp(- + 0.508146304*(-3.091 + i7)^2) - 4.852526805*exp(-10.09474981*(-0.3667 + 0.1 + *i1)^2)*exp(-12.59555367*(-0.8424 + 0.1*i2)^2)*exp(-4.076105657*(-0.8242 + + 0.1*i3)^2)*exp(-1.073106648*(-1.29 + 0.1*i4)^2)*exp(-1.181833241*(-2 + + i5)^2)*exp(-1.694720423*(-3.485 + i6)^2)*exp(-0.508146304*(-2.485 + i7)^2) + - 2.421445577*exp(-10.09474981*(-0.4 + 0.1*i1)^2)*exp(-12.59555367*(-0.6 + + 0.1*i2)^2)*exp(-4.076105657*(-0.4364 + 0.1*i3)^2)*exp(-1.073106648*(- + 1.056 + 0.1*i4)^2)*exp(-1.181833241*(-1.091 + i5)^2)*exp(-1.694720423*(- + 3.202 + i6)^2)*exp(-0.508146304*(-2.606 + i7)^2) - 1.421687638*exp(- + 10.09474981*(-0.5303 + 0.1*i1)^2)*exp(-12.59555367*(-0.8545 + 0.1*i2)^2)* + exp(-4.076105657*(-0.9212 + 0.1*i3)^2)*exp(-1.073106648*(-0.8778 + 0.1*i4) + ^2)*exp(-1.181833241*(-1.616 + i5)^2)*exp(-1.694720423*(-3.232 + i6)^2)* + exp(-0.508146304*(-4.727 + i7)^2) - 0.376618615*exp(-10.09474981*(-0.3879 + + 0.1*i1)^2)*exp(-12.59555367*(-0.5515 + 0.1*i2)^2)*exp(-4.076105657*(- + 0.5576 + 0.1*i3)^2)*exp(-1.073106648*(-0.7808 + 0.1*i4)^2)*exp(- + 1.181833241*(-1.444 + i5)^2)*exp(-1.694720423*(-3.677 + i6)^2)*exp(- + 0.508146304*(-2.03 + i7)^2) + 2.254067657*exp(-10.09474981*(-0.4515 + 0.1* + i1)^2)*exp(-12.59555367*(-0.7273 + 0.1*i2)^2)*exp(-4.076105657*(-0.8727 + + 0.1*i3)^2)*exp(-1.073106648*(-0.8131 + 0.1*i4)^2)*exp(-1.181833241*(-1.828 + + i5)^2)*exp(-1.694720423*(-3.717 + i6)^2)*exp(-0.508146304*(-2.061 + i7) + ^2) - 0.733524653*exp(-10.09474981*(-0.4818 + 0.1*i1)^2)*exp(-12.59555367* + (-0.4121 + 0.1*i2)^2)*exp(-4.076105657*(-0.5515 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.064 + 0.1*i4)^2)*exp(-1.181833241*(-1.202 + i5)^2)*exp(- + 1.694720423*(-3.404 + i6)^2)*exp(-0.508146304*(-4.788 + i7)^2) - + 0.185198805*exp(-10.09474981*(-0.5515 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8182 + 0.1*i2)^2)*exp(-4.076105657*(-0.9636 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.443 + 0.1*i4)^2)*exp(-1.181833241*(-1.606 + i5)^2)*exp(- + 1.694720423*(-3.263 + i6)^2)*exp(-0.508146304*(-3.667 + i7)^2) + + 2.119344332*exp(-10.09474981*(-0.4667 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.4727 + 0.1*i2)^2)*exp(-4.076105657*(-0.7818 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.136 + 0.1*i4)^2)*exp(-1.181833241*(-1.545 + i5)^2)*exp(- + 1.694720423*(-3.99 + i6)^2)*exp(-0.508146304*(-4.758 + i7)^2) - + 0.130897061*exp(-10.09474981*(-0.5606 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.7758 + 0.1*i2)^2)*exp(-4.076105657*(-0.5273 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.9263 + 0.1*i4)^2)*exp(-1.181833241*(-1.576 + i5)^2)*exp(- + 1.694720423*(-3.919 + i6)^2)*exp(-0.508146304*(-2.394 + i7)^2) - + 0.49804702*exp(-10.09474981*(-0.4333 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.5636 + 0.1*i2)^2)*exp(-4.076105657*(-0.9818 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.7081 + 0.1*i4)^2)*exp(-1.181833241*(-1.657 + i5)^2)*exp(- + 1.694720423*(-3.273 + i6)^2)*exp(-0.508146304*(-3.455 + i7)^2) + + 2.113833749*exp(-10.09474981*(-0.5333 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8303 + 0.1*i2)^2)*exp(-4.076105657*(-0.6061 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.9424 + 0.1*i4)^2)*exp(-1.181833241*(-1 + i5)^2)*exp(- + 1.694720423*(-3.545 + i6)^2)*exp(-0.508146304*(-2.303 + i7)^2) + + 0.487755924*exp(-10.09474981*(-0.3788 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.9152 + 0.1*i2)^2)*exp(-4.076105657*(-0.7515 + 0.1*i3)^2)*exp(- + 1.073106648*(-0.8455 + 0.1*i4)^2)*exp(-1.181833241*(-1.212 + i5)^2)*exp(- + 1.694720423*(-3.394 + i6)^2)*exp(-0.508146304*(-4.879 + i7)^2) - + 0.070933791*exp(-10.09474981*(-0.4909 + 0.1*i1)^2)*exp(-12.59555367*(- + 0.8727 + 0.1*i2)^2)*exp(-4.076105657*(-0.4424 + 0.1*i3)^2)*exp(- + 1.073106648*(-1.047 + 0.1*i4)^2)*exp(-1.181833241*(-1.02 + i5)^2)*exp(- + 1.694720423*(-3.556 + i6)^2)*exp(-0.508146304*(-4.303 + i7)^2)) + x8 + >= 4.220428249; + + -(2.810998849*exp(-11.16228861*(-0.303 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.697 + 0.1*i2)^2)*exp(-6.162794247*(-0.8061 + 0.1*i3)^2)*exp(-1.187498413 + *(-0.9586 + 0.1*i4)^2)*exp(-0.349308172*(-1.758 + i5)^2)*exp(-2.601176658* + (-3.141 + i6)^2)*exp(-0.51054458*(-4.424 + i7)^2) - 2.792595181*exp(- + 11.16228861*(-0.5364 + 0.1*i1)^2)*exp(-10.05218407*(-0.9697 + 0.1*i2)^2)* + exp(-6.162794247*(-0.4909 + 0.1*i3)^2)*exp(-1.187498413*(-1.161 + 0.1*i4)^ + 2)*exp(-0.349308172*(-1.778 + i5)^2)*exp(-2.601176658*(-3.778 + i6)^2)* + exp(-0.51054458*(-4.091 + i7)^2) + 0.682976849*exp(-11.16228861*(-0.503 + + 0.1*i1)^2)*exp(-10.05218407*(-0.6182 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.4121 + 0.1*i3)^2)*exp(-1.187498413*(-1.419 + 0.1*i4)^2)*exp(-0.349308172 + *(-1.333 + i5)^2)*exp(-2.601176658*(-3.152 + i6)^2)*exp(-0.51054458*(- + 3.697 + i7)^2) - 1.245105458*exp(-11.16228861*(-0.4606 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.903 + 0.1*i2)^2)*exp(-6.162794247*(-0.7576 + 0.1*i3)^2)* + exp(-1.187498413*(-0.7727 + 0.1*i4)^2)*exp(-0.349308172*(-1.242 + i5)^2)* + exp(-2.601176658*(-3.98 + i6)^2)*exp(-0.51054458*(-3.424 + i7)^2) + + 0.052675426*exp(-11.16228861*(-0.3 + 0.1*i1)^2)*exp(-10.05218407*(-0.7636 + + 0.1*i2)^2)*exp(-6.162794247*(-0.8606 + 0.1*i3)^2)*exp(-1.187498413*(- + 1.153 + 0.1*i4)^2)*exp(-0.349308172*(-1.556 + i5)^2)*exp(-2.601176658*(- + 3.939 + i6)^2)*exp(-0.51054458*(-2.818 + i7)^2) + 0.757081658*exp(- + 11.16228861*(-0.5879 + 0.1*i1)^2)*exp(-10.05218407*(-0.703 + 0.1*i2)^2)* + exp(-6.162794247*(-0.4788 + 0.1*i3)^2)*exp(-1.187498413*(-1.039 + 0.1*i4)^ + 2)*exp(-0.349308172*(-1.646 + i5)^2)*exp(-2.601176658*(-3.222 + i6)^2)* + exp(-0.51054458*(-4.636 + i7)^2) + 0.678830535*exp(-11.16228861*(-0.4121 + + 0.1*i1)^2)*exp(-10.05218407*(-0.4424 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.5939 + 0.1*i3)^2)*exp(-1.187498413*(-1.46 + 0.1*i4)^2)*exp(-0.349308172* + (-1.232 + i5)^2)*exp(-2.601176658*(-3.788 + i6)^2)*exp(-0.51054458*(-3.848 + + i7)^2) + 1.095351636*exp(-11.16228861*(-0.5576 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.8848 + 0.1*i2)^2)*exp(-6.162794247*(-0.8121 + 0.1*i3)^2)* + exp(-1.187498413*(-1.128 + 0.1*i4)^2)*exp(-0.349308172*(-1.263 + i5)^2)* + exp(-2.601176658*(-3.808 + i6)^2)*exp(-0.51054458*(-4.818 + i7)^2) - + 2.718289897*exp(-11.16228861*(-0.4273 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.4848 + 0.1*i2)^2)*exp(-6.162794247*(-0.9697 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.9667 + 0.1*i4)^2)*exp(-0.349308172*(-1.364 + i5)^2)*exp(- + 2.601176658*(-3.869 + i6)^2)*exp(-0.51054458*(-2.667 + i7)^2) - + 1.223742077*exp(-11.16228861*(-0.5455 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.4061 + 0.1*i2)^2)*exp(-6.162794247*(-0.6303 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.427 + 0.1*i4)^2)*exp(-0.349308172*(-1.747 + i5)^2)*exp(- + 2.601176658*(-3.444 + i6)^2)*exp(-0.51054458*(-3.576 + i7)^2) + 1.27180455 + *exp(-11.16228861*(-0.5394 + 0.1*i1)^2)*exp(-10.05218407*(-0.5273 + 0.1*i2 + )^2)*exp(-6.162794247*(-0.5636 + 0.1*i3)^2)*exp(-1.187498413*(-1.355 + 0.1 + *i4)^2)*exp(-0.349308172*(-1.253 + i5)^2)*exp(-2.601176658*(-3.566 + i6)^2 + )*exp(-0.51054458*(-2.121 + i7)^2) - 2.836619781*exp(-11.16228861*(-0.5273 + + 0.1*i1)^2)*exp(-10.05218407*(-0.8121 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.8424 + 0.1*i3)^2)*exp(-1.187498413*(-0.8535 + 0.1*i4)^2)*exp(- + 0.349308172*(-1.899 + i5)^2)*exp(-2.601176658*(-3.889 + i6)^2)*exp(- + 0.51054458*(-4.061 + i7)^2) + 1.114852852*exp(-11.16228861*(-0.5727 + 0.1* + i1)^2)*exp(-10.05218407*(-0.4909 + 0.1*i2)^2)*exp(-6.162794247*(-0.9333 + + 0.1*i3)^2)*exp(-1.187498413*(-1.306 + 0.1*i4)^2)*exp(-0.349308172*(-1.273 + + i5)^2)*exp(-2.601176658*(-3.707 + i6)^2)*exp(-0.51054458*(-3.485 + i7)^ + 2) - 2.0058016*exp(-11.16228861*(-0.3091 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.6364 + 0.1*i2)^2)*exp(-6.162794247*(-0.5758 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.282 + 0.1*i4)^2)*exp(-0.349308172*(-1.222 + i5)^2)*exp(- + 2.601176658*(-3.192 + i6)^2)*exp(-0.51054458*(-4.455 + i7)^2) + + 0.638243432*exp(-11.16228861*(-0.4364 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.7394 + 0.1*i2)^2)*exp(-6.162794247*(-0.4485 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.403 + 0.1*i4)^2)*exp(-0.349308172*(-1.465 + i5)^2)*exp(- + 2.601176658*(-3.687 + i6)^2)*exp(-0.51054458*(-4.939 + i7)^2) - 0.05960273 + *exp(-11.16228861*(-0.5636 + 0.1*i1)^2)*exp(-10.05218407*(-0.6485 + 0.1*i2 + )^2)*exp(-6.162794247*(-0.7273 + 0.1*i3)^2)*exp(-1.187498413*(-1.346 + 0.1 + *i4)^2)*exp(-0.349308172*(-1.01 + i5)^2)*exp(-2.601176658*(-3.333 + i6)^2) + *exp(-0.51054458*(-4.364 + i7)^2) + 3.540039148*exp(-11.16228861*(-0.597 + + 0.1*i1)^2)*exp(-10.05218407*(-0.7152 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.703 + 0.1*i3)^2)*exp(-1.187498413*(-1.209 + 0.1*i4)^2)*exp(-0.349308172* + (-1.354 + i5)^2)*exp(-2.601176658*(-3.01 + i6)^2)*exp(-0.51054458*(-2.758 + + i7)^2) + 0.889861898*exp(-11.16228861*(-0.5152 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.6606 + 0.1*i2)^2)*exp(-6.162794247*(-0.503 + 0.1*i3)^2)* + exp(-1.187498413*(-0.7566 + 0.1*i4)^2)*exp(-0.349308172*(-1.424 + i5)^2)* + exp(-2.601176658*(-3.848 + i6)^2)*exp(-0.51054458*(-4.576 + i7)^2) - + 0.625100941*exp(-11.16228861*(-0.5758 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5152 + 0.1*i2)^2)*exp(-6.162794247*(-0.4303 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.8697 + 0.1*i4)^2)*exp(-0.349308172*(-1.374 + i5)^2)*exp(- + 2.601176658*(-3.414 + i6)^2)*exp(-0.51054458*(-3.061 + i7)^2) + + 3.130781158*exp(-11.16228861*(-0.3939 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.7091 + 0.1*i2)^2)*exp(-6.162794247*(-0.4242 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.8293 + 0.1*i4)^2)*exp(-0.349308172*(-1.434 + i5)^2)*exp(- + 2.601176658*(-3.121 + i6)^2)*exp(-0.51054458*(-4.394 + i7)^2) - + 0.688911319*exp(-11.16228861*(-0.403 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5333 + 0.1*i2)^2)*exp(-6.162794247*(-0.5152 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.233 + 0.1*i4)^2)*exp(-0.349308172*(-1.889 + i5)^2)*exp(- + 2.601176658*(-3.172 + i6)^2)*exp(-0.51054458*(-4.545 + i7)^2) - + 2.081089876*exp(-11.16228861*(-0.5061 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.6121 + 0.1*i2)^2)*exp(-6.162794247*(-0.4606 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.144 + 0.1*i4)^2)*exp(-0.349308172*(-1.879 + i5)^2)*exp(- + 2.601176658*(-3.343 + i6)^2)*exp(-0.51054458*(-2.152 + i7)^2) + + 0.371911325*exp(-11.16228861*(-0.4152 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.8242 + 0.1*i2)^2)*exp(-6.162794247*(-0.6545 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.411 + 0.1*i4)^2)*exp(-0.349308172*(-1.525 + i5)^2)*exp(- + 2.601176658*(-3.04 + i6)^2)*exp(-0.51054458*(-2.273 + i7)^2) - 1.529537276 + *exp(-11.16228861*(-0.4545 + 0.1*i1)^2)*exp(-10.05218407*(-0.503 + 0.1*i2) + ^2)*exp(-6.162794247*(-0.7152 + 0.1*i3)^2)*exp(-1.187498413*(-0.797 + 0.1* + i4)^2)*exp(-0.349308172*(-1.798 + i5)^2)*exp(-2.601176658*(-3.424 + i6)^2) + *exp(-0.51054458*(-4.97 + i7)^2) + 0.586180526*exp(-11.16228861*(-0.3606 + + 0.1*i1)^2)*exp(-10.05218407*(-0.8 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.9394 + 0.1*i3)^2)*exp(-1.187498413*(-0.8212 + 0.1*i4)^2)*exp(- + 0.349308172*(-1.101 + i5)^2)*exp(-2.601176658*(-3.535 + i6)^2)*exp(- + 0.51054458*(-2.909 + i7)^2) - 0.310370735*exp(-11.16228861*(-0.5818 + 0.1* + i1)^2)*exp(-10.05218407*(-0.9394 + 0.1*i2)^2)*exp(-6.162794247*(-0.6364 + + 0.1*i3)^2)*exp(-1.187498413*(-1.435 + 0.1*i4)^2)*exp(-0.349308172*(-1.313 + + i5)^2)*exp(-2.601176658*(-3.576 + i6)^2)*exp(-0.51054458*(-3.212 + i7)^ + 2) - 3.418943435*exp(-11.16228861*(-0.4485 + 0.1*i1)^2)*exp(-10.05218407*( + -0.9273 + 0.1*i2)^2)*exp(-6.162794247*(-0.6 + 0.1*i3)^2)*exp(-1.187498413* + (-0.9505 + 0.1*i4)^2)*exp(-0.349308172*(-1.909 + i5)^2)*exp(-2.601176658*( + -3.051 + i6)^2)*exp(-0.51054458*(-3.97 + i7)^2) + 0.235899387*exp(- + 11.16228861*(-0.3394 + 0.1*i1)^2)*exp(-10.05218407*(-0.8788 + 0.1*i2)^2)* + exp(-6.162794247*(-0.4727 + 0.1*i3)^2)*exp(-1.187498413*(-0.7646 + 0.1*i4) + ^2)*exp(-0.349308172*(-1.293 + i5)^2)*exp(-2.601176658*(-3.616 + i6)^2)* + exp(-0.51054458*(-3.273 + i7)^2) + 0.607278918*exp(-11.16228861*(-0.3515 + + 0.1*i1)^2)*exp(-10.05218407*(-0.9576 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.8182 + 0.1*i3)^2)*exp(-1.187498413*(-0.7485 + 0.1*i4)^2)*exp(- + 0.349308172*(-1.768 + i5)^2)*exp(-2.601176658*(-3.505 + i6)^2)*exp(- + 0.51054458*(-3.394 + i7)^2) + 0.165980226*exp(-11.16228861*(-0.4061 + 0.1* + i1)^2)*exp(-10.05218407*(-0.6667 + 0.1*i2)^2)*exp(-6.162794247*(-0.9576 + + 0.1*i3)^2)*exp(-1.187498413*(-1.096 + 0.1*i4)^2)*exp(-0.349308172*(-1.131 + + i5)^2)*exp(-2.601176658*(-3.071 + i6)^2)*exp(-0.51054458*(-4.242 + i7)^ + 2) - 0.458617798*exp(-11.16228861*(-0.5788 + 0.1*i1)^2)*exp(-10.05218407*( + -0.6545 + 0.1*i2)^2)*exp(-6.162794247*(-0.7697 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.9101 + 0.1*i4)^2)*exp(-0.349308172*(-1.97 + i5)^2)*exp(- + 2.601176658*(-3.162 + i6)^2)*exp(-0.51054458*(-3.364 + i7)^2) + + 1.663680744*exp(-11.16228861*(-0.4788 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.9818 + 0.1*i2)^2)*exp(-6.162794247*(-0.9879 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.193 + 0.1*i4)^2)*exp(-0.349308172*(-1.586 + i5)^2)*exp(- + 2.601176658*(-3.798 + i6)^2)*exp(-0.51054458*(-3.03 + i7)^2) + 0.06294563* + exp(-11.16228861*(-0.3182 + 0.1*i1)^2)*exp(-10.05218407*(-0.5697 + 0.1*i2) + ^2)*exp(-6.162794247*(-0.7091 + 0.1*i3)^2)*exp(-1.187498413*(-1.217 + 0.1* + i4)^2)*exp(-0.349308172*(-1.061 + i5)^2)*exp(-2.601176658*(-3.646 + i6)^2) + *exp(-0.51054458*(-2.455 + i7)^2) + 1.01146486*exp(-11.16228861*(-0.3909 + + 0.1*i1)^2)*exp(-10.05218407*(-0.8606 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.5818 + 0.1*i3)^2)*exp(-1.187498413*(-1.468 + 0.1*i4)^2)*exp(-0.349308172 + *(-1.03 + i5)^2)*exp(-2.601176658*(-3.455 + i6)^2)*exp(-0.51054458*(-3.242 + + i7)^2) - 0.296912749*exp(-11.16228861*(-0.5909 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.6303 + 0.1*i2)^2)*exp(-6.162794247*(-0.5091 + 0.1*i3)^2)* + exp(-1.187498413*(-1.266 + 0.1*i4)^2)*exp(-0.349308172*(-1.303 + i5)^2)* + exp(-2.601176658*(-3.899 + i6)^2)*exp(-0.51054458*(-3.909 + i7)^2) - + 1.328823797*exp(-11.16228861*(-0.5939 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.6727 + 0.1*i2)^2)*exp(-6.162794247*(-0.7758 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.249 + 0.1*i4)^2)*exp(-0.349308172*(-1.818 + i5)^2)*exp(- + 2.601176658*(-3.586 + i6)^2)*exp(-0.51054458*(-4.848 + i7)^2) - + 1.721317412*exp(-11.16228861*(-0.5242 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.8061 + 0.1*i2)^2)*exp(-6.162794247*(-0.5697 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.452 + 0.1*i4)^2)*exp(-0.349308172*(-1.949 + i5)^2)*exp(- + 2.601176658*(-3.253 + i6)^2)*exp(-0.51054458*(-3.606 + i7)^2) + + 5.816816161*exp(-11.16228861*(-0.5667 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.9636 + 0.1*i2)^2)*exp(-6.162794247*(-0.6182 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.7242 + 0.1*i4)^2)*exp(-0.349308172*(-1.495 + i5)^2)*exp(- + 2.601176658*(-3.475 + i6)^2)*exp(-0.51054458*(-3.818 + i7)^2) - + 0.974355528*exp(-11.16228861*(-0.3364 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5091 + 0.1*i2)^2)*exp(-6.162794247*(-0.697 + 0.1*i3)^2)*exp(-1.187498413 + *(-0.7323 + 0.1*i4)^2)*exp(-0.349308172*(-1.182 + i5)^2)*exp(-2.601176658* + (-3.313 + i6)^2)*exp(-0.51054458*(-3.727 + i7)^2) + 1.71695743*exp(- + 11.16228861*(-0.4212 + 0.1*i1)^2)*exp(-10.05218407*(-0.6061 + 0.1*i2)^2)* + exp(-6.162794247*(-0.8485 + 0.1*i3)^2)*exp(-1.187498413*(-1.476 + 0.1*i4)^ + 2)*exp(-0.349308172*(-1.505 + i5)^2)*exp(-2.601176658*(-3.364 + i6)^2)* + exp(-0.51054458*(-5 + i7)^2) - 0.559406457*exp(-11.16228861*(-0.3697 + 0.1 + *i1)^2)*exp(-10.05218407*(-0.8485 + 0.1*i2)^2)*exp(-6.162794247*(-0.5455 + + 0.1*i3)^2)*exp(-1.187498413*(-0.902 + 0.1*i4)^2)*exp(-0.349308172*(- + 1.788 + i5)^2)*exp(-2.601176658*(-3.697 + i6)^2)*exp(-0.51054458*(-4.909 + + i7)^2) + 1.577145632*exp(-11.16228861*(-0.5121 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.5758 + 0.1*i2)^2)*exp(-6.162794247*(-0.9091 + 0.1*i3)^2)* + exp(-1.187498413*(-0.8051 + 0.1*i4)^2)*exp(-0.349308172*(-1.152 + i5)^2)* + exp(-2.601176658*(-3.667 + i6)^2)*exp(-0.51054458*(-4.485 + i7)^2) + + 0.83333806*exp(-11.16228861*(-0.4697 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.7455 + 0.1*i2)^2)*exp(-6.162794247*(-0.9515 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.33 + 0.1*i4)^2)*exp(-0.349308172*(-1.162 + i5)^2)*exp(- + 2.601176658*(-3.354 + i6)^2)*exp(-0.51054458*(-2.182 + i7)^2) + + 3.333692704*exp(-11.16228861*(-0.4758 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.6848 + 0.1*i2)^2)*exp(-6.162794247*(-0.4848 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.7 + 0.1*i4)^2)*exp(-0.349308172*(-1.939 + i5)^2)*exp(- + 2.601176658*(-3.515 + i6)^2)*exp(-0.51054458*(-3.333 + i7)^2) + + 4.622817492*exp(-11.16228861*(-0.3152 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5879 + 0.1*i2)^2)*exp(-6.162794247*(-0.8667 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.031 + 0.1*i4)^2)*exp(-0.349308172*(-1.485 + i5)^2)*exp(- + 2.601176658*(-3.182 + i6)^2)*exp(-0.51054458*(-2.242 + i7)^2) + + 0.257439396*exp(-11.16228861*(-0.3818 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.7333 + 0.1*i2)^2)*exp(-6.162794247*(-0.4061 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.201 + 0.1*i4)^2)*exp(-0.349308172*(-1.283 + i5)^2)*exp(- + 2.601176658*(-3.949 + i6)^2)*exp(-0.51054458*(-3 + i7)^2) - 2.946595166* + exp(-11.16228861*(-0.5182 + 0.1*i1)^2)*exp(-10.05218407*(-0.9939 + 0.1*i2) + ^2)*exp(-6.162794247*(-0.8788 + 0.1*i3)^2)*exp(-1.187498413*(-1.072 + 0.1* + i4)^2)*exp(-0.349308172*(-1.081 + i5)^2)*exp(-2.601176658*(-3.303 + i6)^2) + *exp(-0.51054458*(-3.545 + i7)^2) + 1.02569686*exp(-11.16228861*(-0.4424 + + 0.1*i1)^2)*exp(-10.05218407*(-0.8364 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.5333 + 0.1*i3)^2)*exp(-1.187498413*(-1.484 + 0.1*i4)^2)*exp(-0.349308172 + *(-1.677 + i5)^2)*exp(-2.601176658*(-3.737 + i6)^2)*exp(-0.51054458*(- + 2.333 + i7)^2) - 2.238577515*exp(-11.16228861*(-0.397 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.5939 + 0.1*i2)^2)*exp(-6.162794247*(-0.8545 + 0.1*i3)^2)* + exp(-1.187498413*(-1.363 + 0.1*i4)^2)*exp(-0.349308172*(-1.869 + i5)^2)* + exp(-2.601176658*(-3.02 + i6)^2)*exp(-0.51054458*(-3.515 + i7)^2) - + 0.474416465*exp(-11.16228861*(-0.4879 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.4788 + 0.1*i2)^2)*exp(-6.162794247*(-0.6121 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.8939 + 0.1*i4)^2)*exp(-0.349308172*(-1.051 + i5)^2)*exp(- + 2.601176658*(-3.879 + i6)^2)*exp(-0.51054458*(-3.182 + i7)^2) + + 0.611064147*exp(-11.16228861*(-0.3545 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.4364 + 0.1*i2)^2)*exp(-6.162794247*(-0.7333 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.9828 + 0.1*i4)^2)*exp(-0.349308172*(-1.99 + i5)^2)*exp(- + 2.601176658*(-3.495 + i6)^2)*exp(-0.51054458*(-2.97 + i7)^2) - 3.367786914 + *exp(-11.16228861*(-0.5424 + 0.1*i1)^2)*exp(-10.05218407*(-0.6909 + 0.1*i2 + )^2)*exp(-6.162794247*(-0.6727 + 0.1*i3)^2)*exp(-1.187498413*(-0.7889 + + 0.1*i4)^2)*exp(-0.349308172*(-1.121 + i5)^2)*exp(-2.601176658*(-3.091 + i6 + )^2)*exp(-0.51054458*(-4.121 + i7)^2) - 2.872750654*exp(-11.16228861*(- + 0.4848 + 0.1*i1)^2)*exp(-10.05218407*(-0.7879 + 0.1*i2)^2)*exp(- + 6.162794247*(-0.6909 + 0.1*i3)^2)*exp(-1.187498413*(-0.7162 + 0.1*i4)^2)* + exp(-0.349308172*(-1.475 + i5)^2)*exp(-2.601176658*(-3.131 + i6)^2)*exp(- + 0.51054458*(-2.212 + i7)^2) + 1.523732747*exp(-11.16228861*(-0.4394 + 0.1* + i1)^2)*exp(-10.05218407*(-0.897 + 0.1*i2)^2)*exp(-6.162794247*(-0.9758 + + 0.1*i3)^2)*exp(-1.187498413*(-1.023 + 0.1*i4)^2)*exp(-0.349308172*(-1.667 + + i5)^2)*exp(-2.601176658*(-3.061 + i6)^2)*exp(-0.51054458*(-2.879 + i7)^ + 2) - 0.462308291*exp(-11.16228861*(-0.3848 + 0.1*i1)^2)*exp(-10.05218407*( + -0.5394 + 0.1*i2)^2)*exp(-6.162794247*(-0.9152 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.5 + 0.1*i4)^2)*exp(-0.349308172*(-1.596 + i5)^2)*exp(- + 2.601176658*(-3.636 + i6)^2)*exp(-0.51054458*(-2.727 + i7)^2) + + 1.900054056*exp(-11.16228861*(-0.5545 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.9758 + 0.1*i2)^2)*exp(-6.162794247*(-0.7212 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.08 + 0.1*i4)^2)*exp(-0.349308172*(-1.838 + i5)^2)*exp(- + 2.601176658*(-3.434 + i6)^2)*exp(-0.51054458*(-2.364 + i7)^2) + + 1.305276851*exp(-11.16228861*(-0.3758 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.8667 + 0.1*i2)^2)*exp(-6.162794247*(-0.5394 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.015 + 0.1*i4)^2)*exp(-0.349308172*(-1.919 + i5)^2)*exp(- + 2.601176658*(-3.909 + i6)^2)*exp(-0.51054458*(-2.939 + i7)^2) + 4.78672804 + *exp(-11.16228861*(-0.3212 + 0.1*i1)^2)*exp(-10.05218407*(-0.7576 + 0.1*i2 + )^2)*exp(-6.162794247*(-0.5212 + 0.1*i3)^2)*exp(-1.187498413*(-0.9343 + + 0.1*i4)^2)*exp(-0.349308172*(-1.808 + i5)^2)*exp(-2.601176658*(-3.212 + i6 + )^2)*exp(-0.51054458*(-2.545 + i7)^2) + 1.197706516*exp(-11.16228861*(- + 0.4727 + 0.1*i1)^2)*exp(-10.05218407*(-0.9333 + 0.1*i2)^2)*exp(- + 6.162794247*(-0.6485 + 0.1*i3)^2)*exp(-1.187498413*(-1.322 + 0.1*i4)^2)* + exp(-0.349308172*(-1.394 + i5)^2)*exp(-2.601176658*(-3.081 + i6)^2)*exp(- + 0.51054458*(-4.697 + i7)^2) - 1.437217753*exp(-11.16228861*(-0.4576 + 0.1* + i1)^2)*exp(-10.05218407*(-0.5455 + 0.1*i2)^2)*exp(-6.162794247*(-0.9939 + + 0.1*i3)^2)*exp(-1.187498413*(-1.169 + 0.1*i4)^2)*exp(-0.349308172*(-1.98 + + i5)^2)*exp(-2.601176658*(-3.626 + i6)^2)*exp(-0.51054458*(-3.939 + i7)^ + 2) + 0.042692959*exp(-11.16228861*(-0.3242 + 0.1*i1)^2)*exp(-10.05218407*( + -0.9212 + 0.1*i2)^2)*exp(-6.162794247*(-0.4667 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.314 + 0.1*i4)^2)*exp(-0.349308172*(-1.697 + i5)^2)*exp(- + 2.601176658*(-3.374 + i6)^2)*exp(-0.51054458*(-3.758 + i7)^2) + + 0.014857976*exp(-11.16228861*(-0.5697 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.4182 + 0.1*i2)^2)*exp(-6.162794247*(-0.7394 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.8374 + 0.1*i4)^2)*exp(-0.349308172*(-1.717 + i5)^2)*exp(- + 2.601176658*(-3.727 + i6)^2)*exp(-0.51054458*(-3.303 + i7)^2) - + 3.876600967*exp(-11.16228861*(-0.3727 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.9879 + 0.1*i2)^2)*exp(-6.162794247*(-0.6848 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.104 + 0.1*i4)^2)*exp(-0.349308172*(-1.343 + i5)^2)*exp(- + 2.601176658*(-3.606 + i6)^2)*exp(-0.51054458*(-2 + i7)^2) + 1.163076393* + exp(-11.16228861*(-0.5091 + 0.1*i1)^2)*exp(-10.05218407*(-0.4667 + 0.1*i2) + ^2)*exp(-6.162794247*(-0.8303 + 0.1*i3)^2)*exp(-1.187498413*(-0.8859 + 0.1 + *i4)^2)*exp(-0.349308172*(-1.111 + i5)^2)*exp(-2.601176658*(-3.283 + i6)^2 + )*exp(-0.51054458*(-2.576 + i7)^2) - 0.998295773*exp(-11.16228861*(-0.3485 + + 0.1*i1)^2)*exp(-10.05218407*(-0.9091 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.6606 + 0.1*i3)^2)*exp(-1.187498413*(-0.999 + 0.1*i4)^2)*exp(-0.349308172 + *(-1.172 + i5)^2)*exp(-2.601176658*(-3.03 + i6)^2)*exp(-0.51054458*(-3.152 + + i7)^2) - 0.978747748*exp(-11.16228861*(-0.5848 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.6788 + 0.1*i2)^2)*exp(-6.162794247*(-0.8 + 0.1*i3)^2)*exp( + -1.187498413*(-1.298 + 0.1*i4)^2)*exp(-0.349308172*(-1.848 + i5)^2)*exp(- + 2.601176658*(-3.828 + i6)^2)*exp(-0.51054458*(-2.636 + i7)^2) + + 2.274372236*exp(-11.16228861*(-0.3303 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5212 + 0.1*i2)^2)*exp(-6.162794247*(-0.497 + 0.1*i3)^2)*exp(-1.187498413 + *(-1.395 + 0.1*i4)^2)*exp(-0.349308172*(-1.636 + i5)^2)*exp(-2.601176658*( + -3.384 + i6)^2)*exp(-0.51054458*(-2.697 + i7)^2) + 0.721497207*exp(- + 11.16228861*(-0.3061 + 0.1*i1)^2)*exp(-10.05218407*(-0.6242 + 0.1*i2)^2)* + exp(-6.162794247*(-0.6788 + 0.1*i3)^2)*exp(-1.187498413*(-1.338 + 0.1*i4)^ + 2)*exp(-0.349308172*(-1.859 + i5)^2)*exp(-2.601176658*(-3.758 + i6)^2)* + exp(-0.51054458*(-4.273 + i7)^2) + 0.107187558*exp(-11.16228861*(-0.5485 + + 0.1*i1)^2)*exp(-10.05218407*(-0.4545 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.8848 + 0.1*i3)^2)*exp(-1.187498413*(-1.112 + 0.1*i4)^2)*exp(-0.349308172 + *(-1.515 + i5)^2)*exp(-2.601176658*(-3.101 + i6)^2)*exp(-0.51054458*(- + 4.333 + i7)^2) + 1.461327958*exp(-11.16228861*(-0.4636 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.7939 + 0.1*i2)^2)*exp(-6.162794247*(-0.7879 + 0.1*i3)^2)* + exp(-1.187498413*(-1.492 + 0.1*i4)^2)*exp(-0.349308172*(-1.707 + i5)^2)* + exp(-2.601176658*(-3.97 + i6)^2)*exp(-0.51054458*(-4.03 + i7)^2) - + 0.657239639*exp(-11.16228861*(-0.3455 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5818 + 0.1*i2)^2)*exp(-6.162794247*(-0.7455 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.7404 + 0.1*i4)^2)*exp(-0.349308172*(-1.687 + i5)^2)*exp(- + 2.601176658*(-3.929 + i6)^2)*exp(-0.51054458*(-3.788 + i7)^2) - + 1.696282005*exp(-11.16228861*(-0.6 + 0.1*i1)^2)*exp(-10.05218407*(-0.7515 + + 0.1*i2)^2)*exp(-6.162794247*(-0.9455 + 0.1*i3)^2)*exp(-1.187498413*(- + 0.8616 + 0.1*i4)^2)*exp(-0.349308172*(-1.384 + i5)^2)*exp(-2.601176658*(- + 3.596 + i6)^2)*exp(-0.51054458*(-2.848 + i7)^2) - 0.168895369*exp(- + 11.16228861*(-0.3273 + 0.1*i1)^2)*exp(-10.05218407*(-0.4 + 0.1*i2)^2)*exp( + -6.162794247*(-0.897 + 0.1*i3)^2)*exp(-1.187498413*(-1.12 + 0.1*i4)^2)* + exp(-0.349308172*(-1.404 + i5)^2)*exp(-2.601176658*(-3.525 + i6)^2)*exp(- + 0.51054458*(-4.182 + i7)^2) - 2.788948688*exp(-11.16228861*(-0.5212 + 0.1* + i1)^2)*exp(-10.05218407*(-0.497 + 0.1*i2)^2)*exp(-6.162794247*(-0.8909 + + 0.1*i3)^2)*exp(-1.187498413*(-1.185 + 0.1*i4)^2)*exp(-0.349308172*(-1.737 + + i5)^2)*exp(-2.601176658*(-3.293 + i6)^2)*exp(-0.51054458*(-2.091 + i7)^ + 2) - 0.670157256*exp(-11.16228861*(-0.4303 + 0.1*i1)^2)*exp(-10.05218407*( + -0.4606 + 0.1*i2)^2)*exp(-6.162794247*(-0.6242 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.225 + 0.1*i4)^2)*exp(-0.349308172*(-1.727 + i5)^2)*exp(- + 2.601176658*(-3.96 + i6)^2)*exp(-0.51054458*(-2.424 + i7)^2) - 1.033983591 + *exp(-11.16228861*(-0.3121 + 0.1*i1)^2)*exp(-10.05218407*(-0.8909 + 0.1*i2 + )^2)*exp(-6.162794247*(-0.903 + 0.1*i3)^2)*exp(-1.187498413*(-1.387 + 0.1* + i4)^2)*exp(-0.349308172*(-1.414 + i5)^2)*exp(-2.601176658*(-3.323 + i6)^2) + *exp(-0.51054458*(-3.636 + i7)^2) - 1.716080867*exp(-11.16228861*(-0.3424 + + 0.1*i1)^2)*exp(-10.05218407*(-0.4485 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.4182 + 0.1*i3)^2)*exp(-1.187498413*(-0.9747 + 0.1*i4)^2)*exp(- + 0.349308172*(-1.566 + i5)^2)*exp(-2.601176658*(-3.657 + i6)^2)*exp(- + 0.51054458*(-3.879 + i7)^2) + 0.131043843*exp(-11.16228861*(-0.497 + 0.1* + i1)^2)*exp(-10.05218407*(-0.7697 + 0.1*i2)^2)*exp(-6.162794247*(-0.7939 + + 0.1*i3)^2)*exp(-1.187498413*(-1.274 + 0.1*i4)^2)*exp(-0.349308172*(-1.141 + + i5)^2)*exp(-2.601176658*(-4 + i6)^2)*exp(-0.51054458*(-2.515 + i7)^2) + - 1.360092798*exp(-11.16228861*(-0.4939 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5576 + 0.1*i2)^2)*exp(-6.162794247*(-0.4545 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.177 + 0.1*i4)^2)*exp(-0.349308172*(-1.96 + i5)^2)*exp(- + 2.601176658*(-3.818 + i6)^2)*exp(-0.51054458*(-4 + i7)^2) - 1.723995699* + exp(-11.16228861*(-0.5 + 0.1*i1)^2)*exp(-10.05218407*(-0.9515 + 0.1*i2)^2) + *exp(-6.162794247*(-0.4 + 0.1*i3)^2)*exp(-1.187498413*(-1.088 + 0.1*i4)^2) + *exp(-0.349308172*(-1.455 + i5)^2)*exp(-2.601176658*(-3.242 + i6)^2)*exp(- + 0.51054458*(-2.788 + i7)^2) + 1.181482022*exp(-11.16228861*(-0.4182 + 0.1* + i1)^2)*exp(-10.05218407*(-0.9455 + 0.1*i2)^2)*exp(-6.162794247*(-0.8364 + + 0.1*i3)^2)*exp(-1.187498413*(-1.258 + 0.1*i4)^2)*exp(-0.349308172*(-1.929 + + i5)^2)*exp(-2.601176658*(-3.465 + i6)^2)*exp(-0.51054458*(-4.606 + i7)^ + 2) + 0.733101772*exp(-11.16228861*(-0.3636 + 0.1*i1)^2)*exp(-10.05218407*( + -0.7818 + 0.1*i2)^2)*exp(-6.162794247*(-1 + 0.1*i3)^2)*exp(-1.187498413*(- + 0.9909 + 0.1*i4)^2)*exp(-0.349308172*(-1.535 + i5)^2)*exp(-2.601176658*(- + 3.768 + i6)^2)*exp(-0.51054458*(-4.667 + i7)^2) - 0.767234223*exp(- + 11.16228861*(-0.4091 + 0.1*i1)^2)*exp(-10.05218407*(-0.7212 + 0.1*i2)^2)* + exp(-6.162794247*(-0.9273 + 0.1*i3)^2)*exp(-1.187498413*(-1.371 + 0.1*i4)^ + 2)*exp(-0.349308172*(-1.04 + i5)^2)*exp(-2.601176658*(-3.747 + i6)^2)*exp( + -0.51054458*(-4.152 + i7)^2) + 1.117808254*exp(-11.16228861*(-0.4455 + 0.1 + *i1)^2)*exp(-10.05218407*(-0.4242 + 0.1*i2)^2)*exp(-6.162794247*(-0.5879 + + 0.1*i3)^2)*exp(-1.187498413*(-0.9182 + 0.1*i4)^2)*exp(-0.349308172*(- + 1.626 + i5)^2)*exp(-2.601176658*(-3 + i6)^2)*exp(-0.51054458*(-3.091 + i7) + ^2) - 3.20346415*exp(-11.16228861*(-0.3667 + 0.1*i1)^2)*exp(-10.05218407*( + -0.8424 + 0.1*i2)^2)*exp(-6.162794247*(-0.8242 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.29 + 0.1*i4)^2)*exp(-0.349308172*(-2 + i5)^2)*exp(- + 2.601176658*(-3.485 + i6)^2)*exp(-0.51054458*(-2.485 + i7)^2) - 5.40602877 + *exp(-11.16228861*(-0.4 + 0.1*i1)^2)*exp(-10.05218407*(-0.6 + 0.1*i2)^2)* + exp(-6.162794247*(-0.4364 + 0.1*i3)^2)*exp(-1.187498413*(-1.056 + 0.1*i4)^ + 2)*exp(-0.349308172*(-1.091 + i5)^2)*exp(-2.601176658*(-3.202 + i6)^2)* + exp(-0.51054458*(-2.606 + i7)^2) - 0.876861077*exp(-11.16228861*(-0.5303 + + 0.1*i1)^2)*exp(-10.05218407*(-0.8545 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.9212 + 0.1*i3)^2)*exp(-1.187498413*(-0.8778 + 0.1*i4)^2)*exp(- + 0.349308172*(-1.616 + i5)^2)*exp(-2.601176658*(-3.232 + i6)^2)*exp(- + 0.51054458*(-4.727 + i7)^2) + 0.579237584*exp(-11.16228861*(-0.3879 + 0.1* + i1)^2)*exp(-10.05218407*(-0.5515 + 0.1*i2)^2)*exp(-6.162794247*(-0.5576 + + 0.1*i3)^2)*exp(-1.187498413*(-0.7808 + 0.1*i4)^2)*exp(-0.349308172*(-1.444 + + i5)^2)*exp(-2.601176658*(-3.677 + i6)^2)*exp(-0.51054458*(-2.03 + i7)^2 + ) + 3.460602895*exp(-11.16228861*(-0.4515 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.7273 + 0.1*i2)^2)*exp(-6.162794247*(-0.8727 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.8131 + 0.1*i4)^2)*exp(-0.349308172*(-1.828 + i5)^2)*exp(- + 2.601176658*(-3.717 + i6)^2)*exp(-0.51054458*(-2.061 + i7)^2) + + 0.541566892*exp(-11.16228861*(-0.4818 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.4121 + 0.1*i2)^2)*exp(-6.162794247*(-0.5515 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.064 + 0.1*i4)^2)*exp(-0.349308172*(-1.202 + i5)^2)*exp(- + 2.601176658*(-3.404 + i6)^2)*exp(-0.51054458*(-4.788 + i7)^2) + 1.2246243* + exp(-11.16228861*(-0.5515 + 0.1*i1)^2)*exp(-10.05218407*(-0.8182 + 0.1*i2) + ^2)*exp(-6.162794247*(-0.9636 + 0.1*i3)^2)*exp(-1.187498413*(-1.443 + 0.1* + i4)^2)*exp(-0.349308172*(-1.606 + i5)^2)*exp(-2.601176658*(-3.263 + i6)^2) + *exp(-0.51054458*(-3.667 + i7)^2) + 1.35504089*exp(-11.16228861*(-0.4667 + + 0.1*i1)^2)*exp(-10.05218407*(-0.4727 + 0.1*i2)^2)*exp(-6.162794247*(- + 0.7818 + 0.1*i3)^2)*exp(-1.187498413*(-1.136 + 0.1*i4)^2)*exp(-0.349308172 + *(-1.545 + i5)^2)*exp(-2.601176658*(-3.99 + i6)^2)*exp(-0.51054458*(-4.758 + + i7)^2) + 0.269700939*exp(-11.16228861*(-0.5606 + 0.1*i1)^2)*exp(- + 10.05218407*(-0.7758 + 0.1*i2)^2)*exp(-6.162794247*(-0.5273 + 0.1*i3)^2)* + exp(-1.187498413*(-0.9263 + 0.1*i4)^2)*exp(-0.349308172*(-1.576 + i5)^2)* + exp(-2.601176658*(-3.919 + i6)^2)*exp(-0.51054458*(-2.394 + i7)^2) + + 0.063941469*exp(-11.16228861*(-0.4333 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.5636 + 0.1*i2)^2)*exp(-6.162794247*(-0.9818 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.7081 + 0.1*i4)^2)*exp(-0.349308172*(-1.657 + i5)^2)*exp(- + 2.601176658*(-3.273 + i6)^2)*exp(-0.51054458*(-3.455 + i7)^2) - + 0.531574123*exp(-11.16228861*(-0.5333 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.8303 + 0.1*i2)^2)*exp(-6.162794247*(-0.6061 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.9424 + 0.1*i4)^2)*exp(-0.349308172*(-1 + i5)^2)*exp(- + 2.601176658*(-3.545 + i6)^2)*exp(-0.51054458*(-2.303 + i7)^2) - + 0.686861866*exp(-11.16228861*(-0.3788 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.9152 + 0.1*i2)^2)*exp(-6.162794247*(-0.7515 + 0.1*i3)^2)*exp(- + 1.187498413*(-0.8455 + 0.1*i4)^2)*exp(-0.349308172*(-1.212 + i5)^2)*exp(- + 2.601176658*(-3.394 + i6)^2)*exp(-0.51054458*(-4.879 + i7)^2) + + 1.495672567*exp(-11.16228861*(-0.4909 + 0.1*i1)^2)*exp(-10.05218407*(- + 0.8727 + 0.1*i2)^2)*exp(-6.162794247*(-0.4424 + 0.1*i3)^2)*exp(- + 1.187498413*(-1.047 + 0.1*i4)^2)*exp(-0.349308172*(-1.02 + i5)^2)*exp(- + 2.601176658*(-3.556 + i6)^2)*exp(-0.51054458*(-4.303 + i7)^2)) + x8 + >= 4.703960395; + + -(0.690865*exp(-1.91293523*(-0.303 + 0.1*i1)^2)*exp(-6.1479345*(-0.697 + + 0.1*i2)^2)*exp(-0.584466271*(-0.8061 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.9586 + 0.1*i4)^2)*exp(-0.003850099*(-1.758 + i5)^2)*exp(-0.313523466*(- + 3.141 + i6)^2)*exp(-0.024294577*(-4.424 + i7)^2) - 2.822532505*exp(- + 1.91293523*(-0.5364 + 0.1*i1)^2)*exp(-6.1479345*(-0.9697 + 0.1*i2)^2)*exp( + -0.584466271*(-0.4909 + 0.1*i3)^2)*exp(-0.104614361*(-1.161 + 0.1*i4)^2)* + exp(-0.003850099*(-1.778 + i5)^2)*exp(-0.313523466*(-3.778 + i6)^2)*exp(- + 0.024294577*(-4.091 + i7)^2) + 0.594344915*exp(-1.91293523*(-0.503 + 0.1* + i1)^2)*exp(-6.1479345*(-0.6182 + 0.1*i2)^2)*exp(-0.584466271*(-0.4121 + + 0.1*i3)^2)*exp(-0.104614361*(-1.419 + 0.1*i4)^2)*exp(-0.003850099*(-1.333 + + i5)^2)*exp(-0.313523466*(-3.152 + i6)^2)*exp(-0.024294577*(-3.697 + i7) + ^2) + 0.558143031*exp(-1.91293523*(-0.4606 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.903 + 0.1*i2)^2)*exp(-0.584466271*(-0.7576 + 0.1*i3)^2)*exp(-0.104614361 + *(-0.7727 + 0.1*i4)^2)*exp(-0.003850099*(-1.242 + i5)^2)*exp(-0.313523466* + (-3.98 + i6)^2)*exp(-0.024294577*(-3.424 + i7)^2) - 1.567665045*exp(- + 1.91293523*(-0.3 + 0.1*i1)^2)*exp(-6.1479345*(-0.7636 + 0.1*i2)^2)*exp(- + 0.584466271*(-0.8606 + 0.1*i3)^2)*exp(-0.104614361*(-1.153 + 0.1*i4)^2)* + exp(-0.003850099*(-1.556 + i5)^2)*exp(-0.313523466*(-3.939 + i6)^2)*exp(- + 0.024294577*(-2.818 + i7)^2) - 9.193685546*exp(-1.91293523*(-0.5879 + 0.1* + i1)^2)*exp(-6.1479345*(-0.703 + 0.1*i2)^2)*exp(-0.584466271*(-0.4788 + 0.1 + *i3)^2)*exp(-0.104614361*(-1.039 + 0.1*i4)^2)*exp(-0.003850099*(-1.646 + + i5)^2)*exp(-0.313523466*(-3.222 + i6)^2)*exp(-0.024294577*(-4.636 + i7)^2) + + 2.299137099*exp(-1.91293523*(-0.4121 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.4424 + 0.1*i2)^2)*exp(-0.584466271*(-0.5939 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.46 + 0.1*i4)^2)*exp(-0.003850099*(-1.232 + i5)^2)*exp(- + 0.313523466*(-3.788 + i6)^2)*exp(-0.024294577*(-3.848 + i7)^2) - + 0.349638938*exp(-1.91293523*(-0.5576 + 0.1*i1)^2)*exp(-6.1479345*(-0.8848 + + 0.1*i2)^2)*exp(-0.584466271*(-0.8121 + 0.1*i3)^2)*exp(-0.104614361*(- + 1.128 + 0.1*i4)^2)*exp(-0.003850099*(-1.263 + i5)^2)*exp(-0.313523466*(- + 3.808 + i6)^2)*exp(-0.024294577*(-4.818 + i7)^2) + 4.19570766*exp(- + 1.91293523*(-0.4273 + 0.1*i1)^2)*exp(-6.1479345*(-0.4848 + 0.1*i2)^2)*exp( + -0.584466271*(-0.9697 + 0.1*i3)^2)*exp(-0.104614361*(-0.9667 + 0.1*i4)^2)* + exp(-0.003850099*(-1.364 + i5)^2)*exp(-0.313523466*(-3.869 + i6)^2)*exp(- + 0.024294577*(-2.667 + i7)^2) - 0.878198502*exp(-1.91293523*(-0.5455 + 0.1* + i1)^2)*exp(-6.1479345*(-0.4061 + 0.1*i2)^2)*exp(-0.584466271*(-0.6303 + + 0.1*i3)^2)*exp(-0.104614361*(-1.427 + 0.1*i4)^2)*exp(-0.003850099*(-1.747 + + i5)^2)*exp(-0.313523466*(-3.444 + i6)^2)*exp(-0.024294577*(-3.576 + i7) + ^2) - 3.739608825*exp(-1.91293523*(-0.5394 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.5273 + 0.1*i2)^2)*exp(-0.584466271*(-0.5636 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.355 + 0.1*i4)^2)*exp(-0.003850099*(-1.253 + i5)^2)*exp(- + 0.313523466*(-3.566 + i6)^2)*exp(-0.024294577*(-2.121 + i7)^2) - + 1.237102528*exp(-1.91293523*(-0.5273 + 0.1*i1)^2)*exp(-6.1479345*(-0.8121 + + 0.1*i2)^2)*exp(-0.584466271*(-0.8424 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.8535 + 0.1*i4)^2)*exp(-0.003850099*(-1.899 + i5)^2)*exp(-0.313523466*(- + 3.889 + i6)^2)*exp(-0.024294577*(-4.061 + i7)^2) + 1.667102704*exp(- + 1.91293523*(-0.5727 + 0.1*i1)^2)*exp(-6.1479345*(-0.4909 + 0.1*i2)^2)*exp( + -0.584466271*(-0.9333 + 0.1*i3)^2)*exp(-0.104614361*(-1.306 + 0.1*i4)^2)* + exp(-0.003850099*(-1.273 + i5)^2)*exp(-0.313523466*(-3.707 + i6)^2)*exp(- + 0.024294577*(-3.485 + i7)^2) - 2.911129727*exp(-1.91293523*(-0.3091 + 0.1* + i1)^2)*exp(-6.1479345*(-0.6364 + 0.1*i2)^2)*exp(-0.584466271*(-0.5758 + + 0.1*i3)^2)*exp(-0.104614361*(-1.282 + 0.1*i4)^2)*exp(-0.003850099*(-1.222 + + i5)^2)*exp(-0.313523466*(-3.192 + i6)^2)*exp(-0.024294577*(-4.455 + i7) + ^2) - 2.01182536*exp(-1.91293523*(-0.4364 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.7394 + 0.1*i2)^2)*exp(-0.584466271*(-0.4485 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.403 + 0.1*i4)^2)*exp(-0.003850099*(-1.465 + i5)^2)*exp(- + 0.313523466*(-3.687 + i6)^2)*exp(-0.024294577*(-4.939 + i7)^2) - + 7.943914433*exp(-1.91293523*(-0.5636 + 0.1*i1)^2)*exp(-6.1479345*(-0.6485 + + 0.1*i2)^2)*exp(-0.584466271*(-0.7273 + 0.1*i3)^2)*exp(-0.104614361*(- + 1.346 + 0.1*i4)^2)*exp(-0.003850099*(-1.01 + i5)^2)*exp(-0.313523466*(- + 3.333 + i6)^2)*exp(-0.024294577*(-4.364 + i7)^2) + 3.129605852*exp(- + 1.91293523*(-0.597 + 0.1*i1)^2)*exp(-6.1479345*(-0.7152 + 0.1*i2)^2)*exp(- + 0.584466271*(-0.703 + 0.1*i3)^2)*exp(-0.104614361*(-1.209 + 0.1*i4)^2)* + exp(-0.003850099*(-1.354 + i5)^2)*exp(-0.313523466*(-3.01 + i6)^2)*exp(- + 0.024294577*(-2.758 + i7)^2) - 4.163270151*exp(-1.91293523*(-0.5152 + 0.1* + i1)^2)*exp(-6.1479345*(-0.6606 + 0.1*i2)^2)*exp(-0.584466271*(-0.503 + 0.1 + *i3)^2)*exp(-0.104614361*(-0.7566 + 0.1*i4)^2)*exp(-0.003850099*(-1.424 + + i5)^2)*exp(-0.313523466*(-3.848 + i6)^2)*exp(-0.024294577*(-4.576 + i7)^2) + + 2.256369319*exp(-1.91293523*(-0.5758 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.5152 + 0.1*i2)^2)*exp(-0.584466271*(-0.4303 + 0.1*i3)^2)*exp(- + 0.104614361*(-0.8697 + 0.1*i4)^2)*exp(-0.003850099*(-1.374 + i5)^2)*exp(- + 0.313523466*(-3.414 + i6)^2)*exp(-0.024294577*(-3.061 + i7)^2) + + 2.926289637*exp(-1.91293523*(-0.3939 + 0.1*i1)^2)*exp(-6.1479345*(-0.7091 + + 0.1*i2)^2)*exp(-0.584466271*(-0.4242 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.8293 + 0.1*i4)^2)*exp(-0.003850099*(-1.434 + i5)^2)*exp(-0.313523466*(- + 3.121 + i6)^2)*exp(-0.024294577*(-4.394 + i7)^2) - 2.288944841*exp(- + 1.91293523*(-0.403 + 0.1*i1)^2)*exp(-6.1479345*(-0.5333 + 0.1*i2)^2)*exp(- + 0.584466271*(-0.5152 + 0.1*i3)^2)*exp(-0.104614361*(-1.233 + 0.1*i4)^2)* + exp(-0.003850099*(-1.889 + i5)^2)*exp(-0.313523466*(-3.172 + i6)^2)*exp(- + 0.024294577*(-4.545 + i7)^2) + 5.108605086*exp(-1.91293523*(-0.5061 + 0.1* + i1)^2)*exp(-6.1479345*(-0.6121 + 0.1*i2)^2)*exp(-0.584466271*(-0.4606 + + 0.1*i3)^2)*exp(-0.104614361*(-1.144 + 0.1*i4)^2)*exp(-0.003850099*(-1.879 + + i5)^2)*exp(-0.313523466*(-3.343 + i6)^2)*exp(-0.024294577*(-2.152 + i7) + ^2) - 8.664703533*exp(-1.91293523*(-0.4152 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.8242 + 0.1*i2)^2)*exp(-0.584466271*(-0.6545 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.411 + 0.1*i4)^2)*exp(-0.003850099*(-1.525 + i5)^2)*exp(- + 0.313523466*(-3.04 + i6)^2)*exp(-0.024294577*(-2.273 + i7)^2) - + 0.708295377*exp(-1.91293523*(-0.4545 + 0.1*i1)^2)*exp(-6.1479345*(-0.503 + + 0.1*i2)^2)*exp(-0.584466271*(-0.7152 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.797 + 0.1*i4)^2)*exp(-0.003850099*(-1.798 + i5)^2)*exp(-0.313523466*(- + 3.424 + i6)^2)*exp(-0.024294577*(-4.97 + i7)^2) - 4.0404195*exp(- + 1.91293523*(-0.3606 + 0.1*i1)^2)*exp(-6.1479345*(-0.8 + 0.1*i2)^2)*exp(- + 0.584466271*(-0.9394 + 0.1*i3)^2)*exp(-0.104614361*(-0.8212 + 0.1*i4)^2)* + exp(-0.003850099*(-1.101 + i5)^2)*exp(-0.313523466*(-3.535 + i6)^2)*exp(- + 0.024294577*(-2.909 + i7)^2) + 2.503972229*exp(-1.91293523*(-0.5818 + 0.1* + i1)^2)*exp(-6.1479345*(-0.9394 + 0.1*i2)^2)*exp(-0.584466271*(-0.6364 + + 0.1*i3)^2)*exp(-0.104614361*(-1.435 + 0.1*i4)^2)*exp(-0.003850099*(-1.313 + + i5)^2)*exp(-0.313523466*(-3.576 + i6)^2)*exp(-0.024294577*(-3.212 + i7) + ^2) - 2.009234741*exp(-1.91293523*(-0.4485 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.9273 + 0.1*i2)^2)*exp(-0.584466271*(-0.6 + 0.1*i3)^2)*exp(-0.104614361*( + -0.9505 + 0.1*i4)^2)*exp(-0.003850099*(-1.909 + i5)^2)*exp(-0.313523466*(- + 3.051 + i6)^2)*exp(-0.024294577*(-3.97 + i7)^2) - 4.325038831*exp(- + 1.91293523*(-0.3394 + 0.1*i1)^2)*exp(-6.1479345*(-0.8788 + 0.1*i2)^2)*exp( + -0.584466271*(-0.4727 + 0.1*i3)^2)*exp(-0.104614361*(-0.7646 + 0.1*i4)^2)* + exp(-0.003850099*(-1.293 + i5)^2)*exp(-0.313523466*(-3.616 + i6)^2)*exp(- + 0.024294577*(-3.273 + i7)^2) - 2.133133425*exp(-1.91293523*(-0.3515 + 0.1* + i1)^2)*exp(-6.1479345*(-0.9576 + 0.1*i2)^2)*exp(-0.584466271*(-0.8182 + + 0.1*i3)^2)*exp(-0.104614361*(-0.7485 + 0.1*i4)^2)*exp(-0.003850099*(-1.768 + + i5)^2)*exp(-0.313523466*(-3.505 + i6)^2)*exp(-0.024294577*(-3.394 + i7) + ^2) - 3.261500965*exp(-1.91293523*(-0.4061 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.6667 + 0.1*i2)^2)*exp(-0.584466271*(-0.9576 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.096 + 0.1*i4)^2)*exp(-0.003850099*(-1.131 + i5)^2)*exp(- + 0.313523466*(-3.071 + i6)^2)*exp(-0.024294577*(-4.242 + i7)^2) - + 9.612568951*exp(-1.91293523*(-0.5788 + 0.1*i1)^2)*exp(-6.1479345*(-0.6545 + + 0.1*i2)^2)*exp(-0.584466271*(-0.7697 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.9101 + 0.1*i4)^2)*exp(-0.003850099*(-1.97 + i5)^2)*exp(-0.313523466*(- + 3.162 + i6)^2)*exp(-0.024294577*(-3.364 + i7)^2) - 1.346616377*exp(- + 1.91293523*(-0.4788 + 0.1*i1)^2)*exp(-6.1479345*(-0.9818 + 0.1*i2)^2)*exp( + -0.584466271*(-0.9879 + 0.1*i3)^2)*exp(-0.104614361*(-1.193 + 0.1*i4)^2)* + exp(-0.003850099*(-1.586 + i5)^2)*exp(-0.313523466*(-3.798 + i6)^2)*exp(- + 0.024294577*(-3.03 + i7)^2) + 10.29124508*exp(-1.91293523*(-0.3182 + 0.1* + i1)^2)*exp(-6.1479345*(-0.5697 + 0.1*i2)^2)*exp(-0.584466271*(-0.7091 + + 0.1*i3)^2)*exp(-0.104614361*(-1.217 + 0.1*i4)^2)*exp(-0.003850099*(-1.061 + + i5)^2)*exp(-0.313523466*(-3.646 + i6)^2)*exp(-0.024294577*(-2.455 + i7) + ^2) + 4.688129586*exp(-1.91293523*(-0.3909 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.8606 + 0.1*i2)^2)*exp(-0.584466271*(-0.5818 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.468 + 0.1*i4)^2)*exp(-0.003850099*(-1.03 + i5)^2)*exp(- + 0.313523466*(-3.455 + i6)^2)*exp(-0.024294577*(-3.242 + i7)^2) + + 0.245194522*exp(-1.91293523*(-0.5909 + 0.1*i1)^2)*exp(-6.1479345*(-0.6303 + + 0.1*i2)^2)*exp(-0.584466271*(-0.5091 + 0.1*i3)^2)*exp(-0.104614361*(- + 1.266 + 0.1*i4)^2)*exp(-0.003850099*(-1.303 + i5)^2)*exp(-0.313523466*(- + 3.899 + i6)^2)*exp(-0.024294577*(-3.909 + i7)^2) + 9.814071776*exp(- + 1.91293523*(-0.5939 + 0.1*i1)^2)*exp(-6.1479345*(-0.6727 + 0.1*i2)^2)*exp( + -0.584466271*(-0.7758 + 0.1*i3)^2)*exp(-0.104614361*(-1.249 + 0.1*i4)^2)* + exp(-0.003850099*(-1.818 + i5)^2)*exp(-0.313523466*(-3.586 + i6)^2)*exp(- + 0.024294577*(-4.848 + i7)^2) + 9.155543105*exp(-1.91293523*(-0.5242 + 0.1* + i1)^2)*exp(-6.1479345*(-0.8061 + 0.1*i2)^2)*exp(-0.584466271*(-0.5697 + + 0.1*i3)^2)*exp(-0.104614361*(-1.452 + 0.1*i4)^2)*exp(-0.003850099*(-1.949 + + i5)^2)*exp(-0.313523466*(-3.253 + i6)^2)*exp(-0.024294577*(-3.606 + i7) + ^2) + 3.289209036*exp(-1.91293523*(-0.5667 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.9636 + 0.1*i2)^2)*exp(-0.584466271*(-0.6182 + 0.1*i3)^2)*exp(- + 0.104614361*(-0.7242 + 0.1*i4)^2)*exp(-0.003850099*(-1.495 + i5)^2)*exp(- + 0.313523466*(-3.475 + i6)^2)*exp(-0.024294577*(-3.818 + i7)^2) - + 0.199248059*exp(-1.91293523*(-0.3364 + 0.1*i1)^2)*exp(-6.1479345*(-0.5091 + + 0.1*i2)^2)*exp(-0.584466271*(-0.697 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.7323 + 0.1*i4)^2)*exp(-0.003850099*(-1.182 + i5)^2)*exp(-0.313523466*(- + 3.313 + i6)^2)*exp(-0.024294577*(-3.727 + i7)^2) + 2.666081744*exp(- + 1.91293523*(-0.4212 + 0.1*i1)^2)*exp(-6.1479345*(-0.6061 + 0.1*i2)^2)*exp( + -0.584466271*(-0.8485 + 0.1*i3)^2)*exp(-0.104614361*(-1.476 + 0.1*i4)^2)* + exp(-0.003850099*(-1.505 + i5)^2)*exp(-0.313523466*(-3.364 + i6)^2)*exp(- + 0.024294577*(-5 + i7)^2) + 4.228685445*exp(-1.91293523*(-0.3697 + 0.1*i1)^ + 2)*exp(-6.1479345*(-0.8485 + 0.1*i2)^2)*exp(-0.584466271*(-0.5455 + 0.1*i3 + )^2)*exp(-0.104614361*(-0.902 + 0.1*i4)^2)*exp(-0.003850099*(-1.788 + i5)^ + 2)*exp(-0.313523466*(-3.697 + i6)^2)*exp(-0.024294577*(-4.909 + i7)^2) + + 1.931723115*exp(-1.91293523*(-0.5121 + 0.1*i1)^2)*exp(-6.1479345*(-0.5758 + + 0.1*i2)^2)*exp(-0.584466271*(-0.9091 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.8051 + 0.1*i4)^2)*exp(-0.003850099*(-1.152 + i5)^2)*exp(-0.313523466*(- + 3.667 + i6)^2)*exp(-0.024294577*(-4.485 + i7)^2) + 3.163811827*exp(- + 1.91293523*(-0.4697 + 0.1*i1)^2)*exp(-6.1479345*(-0.7455 + 0.1*i2)^2)*exp( + -0.584466271*(-0.9515 + 0.1*i3)^2)*exp(-0.104614361*(-1.33 + 0.1*i4)^2)* + exp(-0.003850099*(-1.162 + i5)^2)*exp(-0.313523466*(-3.354 + i6)^2)*exp(- + 0.024294577*(-2.182 + i7)^2) + 0.22850533*exp(-1.91293523*(-0.4758 + 0.1* + i1)^2)*exp(-6.1479345*(-0.6848 + 0.1*i2)^2)*exp(-0.584466271*(-0.4848 + + 0.1*i3)^2)*exp(-0.104614361*(-0.7 + 0.1*i4)^2)*exp(-0.003850099*(-1.939 + + i5)^2)*exp(-0.313523466*(-3.515 + i6)^2)*exp(-0.024294577*(-3.333 + i7)^2) + - 0.989918979*exp(-1.91293523*(-0.3152 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.5879 + 0.1*i2)^2)*exp(-0.584466271*(-0.8667 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.031 + 0.1*i4)^2)*exp(-0.003850099*(-1.485 + i5)^2)*exp(- + 0.313523466*(-3.182 + i6)^2)*exp(-0.024294577*(-2.242 + i7)^2) - + 1.142808385*exp(-1.91293523*(-0.3818 + 0.1*i1)^2)*exp(-6.1479345*(-0.7333 + + 0.1*i2)^2)*exp(-0.584466271*(-0.4061 + 0.1*i3)^2)*exp(-0.104614361*(- + 1.201 + 0.1*i4)^2)*exp(-0.003850099*(-1.283 + i5)^2)*exp(-0.313523466*(- + 3.949 + i6)^2)*exp(-0.024294577*(-3 + i7)^2) - 0.138539737*exp(-1.91293523 + *(-0.5182 + 0.1*i1)^2)*exp(-6.1479345*(-0.9939 + 0.1*i2)^2)*exp(- + 0.584466271*(-0.8788 + 0.1*i3)^2)*exp(-0.104614361*(-1.072 + 0.1*i4)^2)* + exp(-0.003850099*(-1.081 + i5)^2)*exp(-0.313523466*(-3.303 + i6)^2)*exp(- + 0.024294577*(-3.545 + i7)^2) - 5.15412682*exp(-1.91293523*(-0.4424 + 0.1* + i1)^2)*exp(-6.1479345*(-0.8364 + 0.1*i2)^2)*exp(-0.584466271*(-0.5333 + + 0.1*i3)^2)*exp(-0.104614361*(-1.484 + 0.1*i4)^2)*exp(-0.003850099*(-1.677 + + i5)^2)*exp(-0.313523466*(-3.737 + i6)^2)*exp(-0.024294577*(-2.333 + i7) + ^2) + 6.640356943*exp(-1.91293523*(-0.397 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.5939 + 0.1*i2)^2)*exp(-0.584466271*(-0.8545 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.363 + 0.1*i4)^2)*exp(-0.003850099*(-1.869 + i5)^2)*exp(- + 0.313523466*(-3.02 + i6)^2)*exp(-0.024294577*(-3.515 + i7)^2) - + 7.403140267*exp(-1.91293523*(-0.4879 + 0.1*i1)^2)*exp(-6.1479345*(-0.4788 + + 0.1*i2)^2)*exp(-0.584466271*(-0.6121 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.8939 + 0.1*i4)^2)*exp(-0.003850099*(-1.051 + i5)^2)*exp(-0.313523466*(- + 3.879 + i6)^2)*exp(-0.024294577*(-3.182 + i7)^2) - 4.034839956*exp(- + 1.91293523*(-0.3545 + 0.1*i1)^2)*exp(-6.1479345*(-0.4364 + 0.1*i2)^2)*exp( + -0.584466271*(-0.7333 + 0.1*i3)^2)*exp(-0.104614361*(-0.9828 + 0.1*i4)^2)* + exp(-0.003850099*(-1.99 + i5)^2)*exp(-0.313523466*(-3.495 + i6)^2)*exp(- + 0.024294577*(-2.97 + i7)^2) + 11.29168368*exp(-1.91293523*(-0.5424 + 0.1* + i1)^2)*exp(-6.1479345*(-0.6909 + 0.1*i2)^2)*exp(-0.584466271*(-0.6727 + + 0.1*i3)^2)*exp(-0.104614361*(-0.7889 + 0.1*i4)^2)*exp(-0.003850099*(-1.121 + + i5)^2)*exp(-0.313523466*(-3.091 + i6)^2)*exp(-0.024294577*(-4.121 + i7) + ^2) - 3.011624449*exp(-1.91293523*(-0.4848 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.7879 + 0.1*i2)^2)*exp(-0.584466271*(-0.6909 + 0.1*i3)^2)*exp(- + 0.104614361*(-0.7162 + 0.1*i4)^2)*exp(-0.003850099*(-1.475 + i5)^2)*exp(- + 0.313523466*(-3.131 + i6)^2)*exp(-0.024294577*(-2.212 + i7)^2) + + 7.054376647*exp(-1.91293523*(-0.4394 + 0.1*i1)^2)*exp(-6.1479345*(-0.897 + + 0.1*i2)^2)*exp(-0.584466271*(-0.9758 + 0.1*i3)^2)*exp(-0.104614361*(- + 1.023 + 0.1*i4)^2)*exp(-0.003850099*(-1.667 + i5)^2)*exp(-0.313523466*(- + 3.061 + i6)^2)*exp(-0.024294577*(-2.879 + i7)^2) - 10.56164755*exp(- + 1.91293523*(-0.3848 + 0.1*i1)^2)*exp(-6.1479345*(-0.5394 + 0.1*i2)^2)*exp( + -0.584466271*(-0.9152 + 0.1*i3)^2)*exp(-0.104614361*(-1.5 + 0.1*i4)^2)* + exp(-0.003850099*(-1.596 + i5)^2)*exp(-0.313523466*(-3.636 + i6)^2)*exp(- + 0.024294577*(-2.727 + i7)^2) - 6.615657531*exp(-1.91293523*(-0.5545 + 0.1* + i1)^2)*exp(-6.1479345*(-0.9758 + 0.1*i2)^2)*exp(-0.584466271*(-0.7212 + + 0.1*i3)^2)*exp(-0.104614361*(-1.08 + 0.1*i4)^2)*exp(-0.003850099*(-1.838 + + i5)^2)*exp(-0.313523466*(-3.434 + i6)^2)*exp(-0.024294577*(-2.364 + i7) + ^2) + 1.889253775*exp(-1.91293523*(-0.3758 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.8667 + 0.1*i2)^2)*exp(-0.584466271*(-0.5394 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.015 + 0.1*i4)^2)*exp(-0.003850099*(-1.919 + i5)^2)*exp(- + 0.313523466*(-3.909 + i6)^2)*exp(-0.024294577*(-2.939 + i7)^2) + + 4.468379481*exp(-1.91293523*(-0.3212 + 0.1*i1)^2)*exp(-6.1479345*(-0.7576 + + 0.1*i2)^2)*exp(-0.584466271*(-0.5212 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.9343 + 0.1*i4)^2)*exp(-0.003850099*(-1.808 + i5)^2)*exp(-0.313523466*(- + 3.212 + i6)^2)*exp(-0.024294577*(-2.545 + i7)^2) - 1.229781301*exp(- + 1.91293523*(-0.4727 + 0.1*i1)^2)*exp(-6.1479345*(-0.9333 + 0.1*i2)^2)*exp( + -0.584466271*(-0.6485 + 0.1*i3)^2)*exp(-0.104614361*(-1.322 + 0.1*i4)^2)* + exp(-0.003850099*(-1.394 + i5)^2)*exp(-0.313523466*(-3.081 + i6)^2)*exp(- + 0.024294577*(-4.697 + i7)^2) - 0.715793228*exp(-1.91293523*(-0.4576 + 0.1* + i1)^2)*exp(-6.1479345*(-0.5455 + 0.1*i2)^2)*exp(-0.584466271*(-0.9939 + + 0.1*i3)^2)*exp(-0.104614361*(-1.169 + 0.1*i4)^2)*exp(-0.003850099*(-1.98 + + i5)^2)*exp(-0.313523466*(-3.626 + i6)^2)*exp(-0.024294577*(-3.939 + i7) + ^2) - 3.51663392*exp(-1.91293523*(-0.3242 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.9212 + 0.1*i2)^2)*exp(-0.584466271*(-0.4667 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.314 + 0.1*i4)^2)*exp(-0.003850099*(-1.697 + i5)^2)*exp(- + 0.313523466*(-3.374 + i6)^2)*exp(-0.024294577*(-3.758 + i7)^2) + + 2.297968538*exp(-1.91293523*(-0.5697 + 0.1*i1)^2)*exp(-6.1479345*(-0.4182 + + 0.1*i2)^2)*exp(-0.584466271*(-0.7394 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.8374 + 0.1*i4)^2)*exp(-0.003850099*(-1.717 + i5)^2)*exp(-0.313523466*(- + 3.727 + i6)^2)*exp(-0.024294577*(-3.303 + i7)^2) + 4.79430874*exp(- + 1.91293523*(-0.3727 + 0.1*i1)^2)*exp(-6.1479345*(-0.9879 + 0.1*i2)^2)*exp( + -0.584466271*(-0.6848 + 0.1*i3)^2)*exp(-0.104614361*(-1.104 + 0.1*i4)^2)* + exp(-0.003850099*(-1.343 + i5)^2)*exp(-0.313523466*(-3.606 + i6)^2)*exp(- + 0.024294577*(-2 + i7)^2) + 0.319808033*exp(-1.91293523*(-0.5091 + 0.1*i1)^ + 2)*exp(-6.1479345*(-0.4667 + 0.1*i2)^2)*exp(-0.584466271*(-0.8303 + 0.1*i3 + )^2)*exp(-0.104614361*(-0.8859 + 0.1*i4)^2)*exp(-0.003850099*(-1.111 + i5) + ^2)*exp(-0.313523466*(-3.283 + i6)^2)*exp(-0.024294577*(-2.576 + i7)^2) - + 0.955809602*exp(-1.91293523*(-0.3485 + 0.1*i1)^2)*exp(-6.1479345*(-0.9091 + + 0.1*i2)^2)*exp(-0.584466271*(-0.6606 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.999 + 0.1*i4)^2)*exp(-0.003850099*(-1.172 + i5)^2)*exp(-0.313523466*(- + 3.03 + i6)^2)*exp(-0.024294577*(-3.152 + i7)^2) - 7.025130514*exp(- + 1.91293523*(-0.5848 + 0.1*i1)^2)*exp(-6.1479345*(-0.6788 + 0.1*i2)^2)*exp( + -0.584466271*(-0.8 + 0.1*i3)^2)*exp(-0.104614361*(-1.298 + 0.1*i4)^2)*exp( + -0.003850099*(-1.848 + i5)^2)*exp(-0.313523466*(-3.828 + i6)^2)*exp(- + 0.024294577*(-2.636 + i7)^2) - 1.597941553*exp(-1.91293523*(-0.3303 + 0.1* + i1)^2)*exp(-6.1479345*(-0.5212 + 0.1*i2)^2)*exp(-0.584466271*(-0.497 + 0.1 + *i3)^2)*exp(-0.104614361*(-1.395 + 0.1*i4)^2)*exp(-0.003850099*(-1.636 + + i5)^2)*exp(-0.313523466*(-3.384 + i6)^2)*exp(-0.024294577*(-2.697 + i7)^2) + - 0.666830483*exp(-1.91293523*(-0.3061 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.6242 + 0.1*i2)^2)*exp(-0.584466271*(-0.6788 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.338 + 0.1*i4)^2)*exp(-0.003850099*(-1.859 + i5)^2)*exp(- + 0.313523466*(-3.758 + i6)^2)*exp(-0.024294577*(-4.273 + i7)^2) - + 1.316308557*exp(-1.91293523*(-0.5485 + 0.1*i1)^2)*exp(-6.1479345*(-0.4545 + + 0.1*i2)^2)*exp(-0.584466271*(-0.8848 + 0.1*i3)^2)*exp(-0.104614361*(- + 1.112 + 0.1*i4)^2)*exp(-0.003850099*(-1.515 + i5)^2)*exp(-0.313523466*(- + 3.101 + i6)^2)*exp(-0.024294577*(-4.333 + i7)^2) - 4.240045403*exp(- + 1.91293523*(-0.4636 + 0.1*i1)^2)*exp(-6.1479345*(-0.7939 + 0.1*i2)^2)*exp( + -0.584466271*(-0.7879 + 0.1*i3)^2)*exp(-0.104614361*(-1.492 + 0.1*i4)^2)* + exp(-0.003850099*(-1.707 + i5)^2)*exp(-0.313523466*(-3.97 + i6)^2)*exp(- + 0.024294577*(-4.03 + i7)^2) + 1.793883604*exp(-1.91293523*(-0.3455 + 0.1* + i1)^2)*exp(-6.1479345*(-0.5818 + 0.1*i2)^2)*exp(-0.584466271*(-0.7455 + + 0.1*i3)^2)*exp(-0.104614361*(-0.7404 + 0.1*i4)^2)*exp(-0.003850099*(-1.687 + + i5)^2)*exp(-0.313523466*(-3.929 + i6)^2)*exp(-0.024294577*(-3.788 + i7) + ^2) + 5.582979659*exp(-1.91293523*(-0.6 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.7515 + 0.1*i2)^2)*exp(-0.584466271*(-0.9455 + 0.1*i3)^2)*exp(- + 0.104614361*(-0.8616 + 0.1*i4)^2)*exp(-0.003850099*(-1.384 + i5)^2)*exp(- + 0.313523466*(-3.596 + i6)^2)*exp(-0.024294577*(-2.848 + i7)^2) + + 2.134504575*exp(-1.91293523*(-0.3273 + 0.1*i1)^2)*exp(-6.1479345*(-0.4 + + 0.1*i2)^2)*exp(-0.584466271*(-0.897 + 0.1*i3)^2)*exp(-0.104614361*(-1.12 + + 0.1*i4)^2)*exp(-0.003850099*(-1.404 + i5)^2)*exp(-0.313523466*(-3.525 + + i6)^2)*exp(-0.024294577*(-4.182 + i7)^2) + 3.598390634*exp(-1.91293523* + (-0.5212 + 0.1*i1)^2)*exp(-6.1479345*(-0.497 + 0.1*i2)^2)*exp(-0.584466271 + *(-0.8909 + 0.1*i3)^2)*exp(-0.104614361*(-1.185 + 0.1*i4)^2)*exp(- + 0.003850099*(-1.737 + i5)^2)*exp(-0.313523466*(-3.293 + i6)^2)*exp(- + 0.024294577*(-2.091 + i7)^2) + 2.995839221*exp(-1.91293523*(-0.4303 + 0.1* + i1)^2)*exp(-6.1479345*(-0.4606 + 0.1*i2)^2)*exp(-0.584466271*(-0.6242 + + 0.1*i3)^2)*exp(-0.104614361*(-1.225 + 0.1*i4)^2)*exp(-0.003850099*(-1.727 + + i5)^2)*exp(-0.313523466*(-3.96 + i6)^2)*exp(-0.024294577*(-2.424 + i7)^ + 2) - 2.870715178*exp(-1.91293523*(-0.3121 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.8909 + 0.1*i2)^2)*exp(-0.584466271*(-0.903 + 0.1*i3)^2)*exp(-0.104614361 + *(-1.387 + 0.1*i4)^2)*exp(-0.003850099*(-1.414 + i5)^2)*exp(-0.313523466*( + -3.323 + i6)^2)*exp(-0.024294577*(-3.636 + i7)^2) - 0.61694576*exp(- + 1.91293523*(-0.3424 + 0.1*i1)^2)*exp(-6.1479345*(-0.4485 + 0.1*i2)^2)*exp( + -0.584466271*(-0.4182 + 0.1*i3)^2)*exp(-0.104614361*(-0.9747 + 0.1*i4)^2)* + exp(-0.003850099*(-1.566 + i5)^2)*exp(-0.313523466*(-3.657 + i6)^2)*exp(- + 0.024294577*(-3.879 + i7)^2) + 5.730861646*exp(-1.91293523*(-0.497 + 0.1* + i1)^2)*exp(-6.1479345*(-0.7697 + 0.1*i2)^2)*exp(-0.584466271*(-0.7939 + + 0.1*i3)^2)*exp(-0.104614361*(-1.274 + 0.1*i4)^2)*exp(-0.003850099*(-1.141 + + i5)^2)*exp(-0.313523466*(-4 + i6)^2)*exp(-0.024294577*(-2.515 + i7)^2) + + 7.822343908*exp(-1.91293523*(-0.4939 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.5576 + 0.1*i2)^2)*exp(-0.584466271*(-0.4545 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.177 + 0.1*i4)^2)*exp(-0.003850099*(-1.96 + i5)^2)*exp(- + 0.313523466*(-3.818 + i6)^2)*exp(-0.024294577*(-4 + i7)^2) + 4.269735665* + exp(-1.91293523*(-0.5 + 0.1*i1)^2)*exp(-6.1479345*(-0.9515 + 0.1*i2)^2)* + exp(-0.584466271*(-0.4 + 0.1*i3)^2)*exp(-0.104614361*(-1.088 + 0.1*i4)^2)* + exp(-0.003850099*(-1.455 + i5)^2)*exp(-0.313523466*(-3.242 + i6)^2)*exp(- + 0.024294577*(-2.788 + i7)^2) + 3.730836767*exp(-1.91293523*(-0.4182 + 0.1* + i1)^2)*exp(-6.1479345*(-0.9455 + 0.1*i2)^2)*exp(-0.584466271*(-0.8364 + + 0.1*i3)^2)*exp(-0.104614361*(-1.258 + 0.1*i4)^2)*exp(-0.003850099*(-1.929 + + i5)^2)*exp(-0.313523466*(-3.465 + i6)^2)*exp(-0.024294577*(-4.606 + i7) + ^2) - 0.762352248*exp(-1.91293523*(-0.3636 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.7818 + 0.1*i2)^2)*exp(-0.584466271*(-1 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.9909 + 0.1*i4)^2)*exp(-0.003850099*(-1.535 + i5)^2)*exp(-0.313523466*(- + 3.768 + i6)^2)*exp(-0.024294577*(-4.667 + i7)^2) + 3.406194278*exp(- + 1.91293523*(-0.4091 + 0.1*i1)^2)*exp(-6.1479345*(-0.7212 + 0.1*i2)^2)*exp( + -0.584466271*(-0.9273 + 0.1*i3)^2)*exp(-0.104614361*(-1.371 + 0.1*i4)^2)* + exp(-0.003850099*(-1.04 + i5)^2)*exp(-0.313523466*(-3.747 + i6)^2)*exp(- + 0.024294577*(-4.152 + i7)^2) + 0.658168534*exp(-1.91293523*(-0.4455 + 0.1* + i1)^2)*exp(-6.1479345*(-0.4242 + 0.1*i2)^2)*exp(-0.584466271*(-0.5879 + + 0.1*i3)^2)*exp(-0.104614361*(-0.9182 + 0.1*i4)^2)*exp(-0.003850099*(-1.626 + + i5)^2)*exp(-0.313523466*(-3 + i6)^2)*exp(-0.024294577*(-3.091 + i7)^2) + + 4.989564796*exp(-1.91293523*(-0.3667 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.8424 + 0.1*i2)^2)*exp(-0.584466271*(-0.8242 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.29 + 0.1*i4)^2)*exp(-0.003850099*(-2 + i5)^2)*exp(- + 0.313523466*(-3.485 + i6)^2)*exp(-0.024294577*(-2.485 + i7)^2) - + 3.381938052*exp(-1.91293523*(-0.4 + 0.1*i1)^2)*exp(-6.1479345*(-0.6 + 0.1* + i2)^2)*exp(-0.584466271*(-0.4364 + 0.1*i3)^2)*exp(-0.104614361*(-1.056 + + 0.1*i4)^2)*exp(-0.003850099*(-1.091 + i5)^2)*exp(-0.313523466*(-3.202 + i6 + )^2)*exp(-0.024294577*(-2.606 + i7)^2) - 4.285412585*exp(-1.91293523*(- + 0.5303 + 0.1*i1)^2)*exp(-6.1479345*(-0.8545 + 0.1*i2)^2)*exp(-0.584466271* + (-0.9212 + 0.1*i3)^2)*exp(-0.104614361*(-0.8778 + 0.1*i4)^2)*exp(- + 0.003850099*(-1.616 + i5)^2)*exp(-0.313523466*(-3.232 + i6)^2)*exp(- + 0.024294577*(-4.727 + i7)^2) - 3.352011019*exp(-1.91293523*(-0.3879 + 0.1* + i1)^2)*exp(-6.1479345*(-0.5515 + 0.1*i2)^2)*exp(-0.584466271*(-0.5576 + + 0.1*i3)^2)*exp(-0.104614361*(-0.7808 + 0.1*i4)^2)*exp(-0.003850099*(-1.444 + + i5)^2)*exp(-0.313523466*(-3.677 + i6)^2)*exp(-0.024294577*(-2.03 + i7)^ + 2) - 2.047729881*exp(-1.91293523*(-0.4515 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.7273 + 0.1*i2)^2)*exp(-0.584466271*(-0.8727 + 0.1*i3)^2)*exp(- + 0.104614361*(-0.8131 + 0.1*i4)^2)*exp(-0.003850099*(-1.828 + i5)^2)*exp(- + 0.313523466*(-3.717 + i6)^2)*exp(-0.024294577*(-2.061 + i7)^2) + + 2.425455358*exp(-1.91293523*(-0.4818 + 0.1*i1)^2)*exp(-6.1479345*(-0.4121 + + 0.1*i2)^2)*exp(-0.584466271*(-0.5515 + 0.1*i3)^2)*exp(-0.104614361*(- + 1.064 + 0.1*i4)^2)*exp(-0.003850099*(-1.202 + i5)^2)*exp(-0.313523466*(- + 3.404 + i6)^2)*exp(-0.024294577*(-4.788 + i7)^2) - 3.750463625*exp(- + 1.91293523*(-0.5515 + 0.1*i1)^2)*exp(-6.1479345*(-0.8182 + 0.1*i2)^2)*exp( + -0.584466271*(-0.9636 + 0.1*i3)^2)*exp(-0.104614361*(-1.443 + 0.1*i4)^2)* + exp(-0.003850099*(-1.606 + i5)^2)*exp(-0.313523466*(-3.263 + i6)^2)*exp(- + 0.024294577*(-3.667 + i7)^2) - 4.769811627*exp(-1.91293523*(-0.4667 + 0.1* + i1)^2)*exp(-6.1479345*(-0.4727 + 0.1*i2)^2)*exp(-0.584466271*(-0.7818 + + 0.1*i3)^2)*exp(-0.104614361*(-1.136 + 0.1*i4)^2)*exp(-0.003850099*(-1.545 + + i5)^2)*exp(-0.313523466*(-3.99 + i6)^2)*exp(-0.024294577*(-4.758 + i7)^ + 2) + 3.423399128*exp(-1.91293523*(-0.5606 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.7758 + 0.1*i2)^2)*exp(-0.584466271*(-0.5273 + 0.1*i3)^2)*exp(- + 0.104614361*(-0.9263 + 0.1*i4)^2)*exp(-0.003850099*(-1.576 + i5)^2)*exp(- + 0.313523466*(-3.919 + i6)^2)*exp(-0.024294577*(-2.394 + i7)^2) - + 2.219157729*exp(-1.91293523*(-0.4333 + 0.1*i1)^2)*exp(-6.1479345*(-0.5636 + + 0.1*i2)^2)*exp(-0.584466271*(-0.9818 + 0.1*i3)^2)*exp(-0.104614361*(- + 0.7081 + 0.1*i4)^2)*exp(-0.003850099*(-1.657 + i5)^2)*exp(-0.313523466*(- + 3.273 + i6)^2)*exp(-0.024294577*(-3.455 + i7)^2) - 4.270816014*exp(- + 1.91293523*(-0.5333 + 0.1*i1)^2)*exp(-6.1479345*(-0.8303 + 0.1*i2)^2)*exp( + -0.584466271*(-0.6061 + 0.1*i3)^2)*exp(-0.104614361*(-0.9424 + 0.1*i4)^2)* + exp(-0.003850099*(-1 + i5)^2)*exp(-0.313523466*(-3.545 + i6)^2)*exp(- + 0.024294577*(-2.303 + i7)^2) + 1.286487149*exp(-1.91293523*(-0.3788 + 0.1* + i1)^2)*exp(-6.1479345*(-0.9152 + 0.1*i2)^2)*exp(-0.584466271*(-0.7515 + + 0.1*i3)^2)*exp(-0.104614361*(-0.8455 + 0.1*i4)^2)*exp(-0.003850099*(-1.212 + + i5)^2)*exp(-0.313523466*(-3.394 + i6)^2)*exp(-0.024294577*(-4.879 + i7) + ^2) - 0.184915741*exp(-1.91293523*(-0.4909 + 0.1*i1)^2)*exp(-6.1479345*(- + 0.8727 + 0.1*i2)^2)*exp(-0.584466271*(-0.4424 + 0.1*i3)^2)*exp(- + 0.104614361*(-1.047 + 0.1*i4)^2)*exp(-0.003850099*(-1.02 + i5)^2)*exp(- + 0.313523466*(-3.556 + i6)^2)*exp(-0.024294577*(-4.303 + i7)^2) - 0.045*i3) + >= 0.350268824; + + -(-1.268003766*exp(-2.410878268*(-0.303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.697 + 0.1*i2)^2)*exp(-0.516964088*(-0.8061 + 0.1*i3)^2)*exp(-0.052289233 + *(-0.9586 + 0.1*i4)^2)*exp(-0.72511327*(-1.758 + i5)^2)*exp(-0.122117046*( + -3.141 + i6)^2)*exp(-0.011759283*(-4.424 + i7)^2) - 0.093538173*exp(- + 2.410878268*(-0.5364 + 0.1*i1)^2)*exp(-12.56111847*(-0.9697 + 0.1*i2)^2)* + exp(-0.516964088*(-0.4909 + 0.1*i3)^2)*exp(-0.052289233*(-1.161 + 0.1*i4)^ + 2)*exp(-0.72511327*(-1.778 + i5)^2)*exp(-0.122117046*(-3.778 + i6)^2)*exp( + -0.011759283*(-4.091 + i7)^2) - 3.585808659*exp(-2.410878268*(-0.503 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6182 + 0.1*i2)^2)*exp(-0.516964088*(-0.4121 + + 0.1*i3)^2)*exp(-0.052289233*(-1.419 + 0.1*i4)^2)*exp(-0.72511327*(- + 1.333 + i5)^2)*exp(-0.122117046*(-3.152 + i6)^2)*exp(-0.011759283*(-3.697 + + i7)^2) - 0.067269083*exp(-2.410878268*(-0.4606 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.903 + 0.1*i2)^2)*exp(-0.516964088*(-0.7576 + 0.1*i3)^2)* + exp(-0.052289233*(-0.7727 + 0.1*i4)^2)*exp(-0.72511327*(-1.242 + i5)^2)* + exp(-0.122117046*(-3.98 + i6)^2)*exp(-0.011759283*(-3.424 + i7)^2) + + 1.404468281*exp(-2.410878268*(-0.3 + 0.1*i1)^2)*exp(-12.56111847*(-0.7636 + + 0.1*i2)^2)*exp(-0.516964088*(-0.8606 + 0.1*i3)^2)*exp(-0.052289233*(- + 1.153 + 0.1*i4)^2)*exp(-0.72511327*(-1.556 + i5)^2)*exp(-0.122117046*(- + 3.939 + i6)^2)*exp(-0.011759283*(-2.818 + i7)^2) - 0.189468211*exp(- + 2.410878268*(-0.5879 + 0.1*i1)^2)*exp(-12.56111847*(-0.703 + 0.1*i2)^2)* + exp(-0.516964088*(-0.4788 + 0.1*i3)^2)*exp(-0.052289233*(-1.039 + 0.1*i4)^ + 2)*exp(-0.72511327*(-1.646 + i5)^2)*exp(-0.122117046*(-3.222 + i6)^2)*exp( + -0.011759283*(-4.636 + i7)^2) + 1.570366667*exp(-2.410878268*(-0.4121 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4424 + 0.1*i2)^2)*exp(-0.516964088*(- + 0.5939 + 0.1*i3)^2)*exp(-0.052289233*(-1.46 + 0.1*i4)^2)*exp(-0.72511327*( + -1.232 + i5)^2)*exp(-0.122117046*(-3.788 + i6)^2)*exp(-0.011759283*(-3.848 + + i7)^2) - 1.260303966*exp(-2.410878268*(-0.5576 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.8848 + 0.1*i2)^2)*exp(-0.516964088*(-0.8121 + 0.1*i3)^2)* + exp(-0.052289233*(-1.128 + 0.1*i4)^2)*exp(-0.72511327*(-1.263 + i5)^2)* + exp(-0.122117046*(-3.808 + i6)^2)*exp(-0.011759283*(-4.818 + i7)^2) + + 2.15942569*exp(-2.410878268*(-0.4273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4848 + 0.1*i2)^2)*exp(-0.516964088*(-0.9697 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.9667 + 0.1*i4)^2)*exp(-0.72511327*(-1.364 + i5)^2)*exp(- + 0.122117046*(-3.869 + i6)^2)*exp(-0.011759283*(-2.667 + i7)^2) + + 1.378532146*exp(-2.410878268*(-0.5455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4061 + 0.1*i2)^2)*exp(-0.516964088*(-0.6303 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.427 + 0.1*i4)^2)*exp(-0.72511327*(-1.747 + i5)^2)*exp(- + 0.122117046*(-3.444 + i6)^2)*exp(-0.011759283*(-3.576 + i7)^2) - + 2.423486526*exp(-2.410878268*(-0.5394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5273 + 0.1*i2)^2)*exp(-0.516964088*(-0.5636 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.355 + 0.1*i4)^2)*exp(-0.72511327*(-1.253 + i5)^2)*exp(- + 0.122117046*(-3.566 + i6)^2)*exp(-0.011759283*(-2.121 + i7)^2) + + 1.60828237*exp(-2.410878268*(-0.5273 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8121 + 0.1*i2)^2)*exp(-0.516964088*(-0.8424 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.8535 + 0.1*i4)^2)*exp(-0.72511327*(-1.899 + i5)^2)*exp(- + 0.122117046*(-3.889 + i6)^2)*exp(-0.011759283*(-4.061 + i7)^2) - + 0.049545127*exp(-2.410878268*(-0.5727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4909 + 0.1*i2)^2)*exp(-0.516964088*(-0.9333 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.306 + 0.1*i4)^2)*exp(-0.72511327*(-1.273 + i5)^2)*exp(- + 0.122117046*(-3.707 + i6)^2)*exp(-0.011759283*(-3.485 + i7)^2) - + 1.83832648*exp(-2.410878268*(-0.3091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6364 + 0.1*i2)^2)*exp(-0.516964088*(-0.5758 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.282 + 0.1*i4)^2)*exp(-0.72511327*(-1.222 + i5)^2)*exp(- + 0.122117046*(-3.192 + i6)^2)*exp(-0.011759283*(-4.455 + i7)^2) - + 0.908943253*exp(-2.410878268*(-0.4364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7394 + 0.1*i2)^2)*exp(-0.516964088*(-0.4485 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.403 + 0.1*i4)^2)*exp(-0.72511327*(-1.465 + i5)^2)*exp(- + 0.122117046*(-3.687 + i6)^2)*exp(-0.011759283*(-4.939 + i7)^2) - + 1.120794486*exp(-2.410878268*(-0.5636 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6485 + 0.1*i2)^2)*exp(-0.516964088*(-0.7273 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.346 + 0.1*i4)^2)*exp(-0.72511327*(-1.01 + i5)^2)*exp(- + 0.122117046*(-3.333 + i6)^2)*exp(-0.011759283*(-4.364 + i7)^2) + + 3.169068649*exp(-2.410878268*(-0.597 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7152 + 0.1*i2)^2)*exp(-0.516964088*(-0.703 + 0.1*i3)^2)*exp(-0.052289233 + *(-1.209 + 0.1*i4)^2)*exp(-0.72511327*(-1.354 + i5)^2)*exp(-0.122117046*(- + 3.01 + i6)^2)*exp(-0.011759283*(-2.758 + i7)^2) - 1.427279821*exp(- + 2.410878268*(-0.5152 + 0.1*i1)^2)*exp(-12.56111847*(-0.6606 + 0.1*i2)^2)* + exp(-0.516964088*(-0.503 + 0.1*i3)^2)*exp(-0.052289233*(-0.7566 + 0.1*i4)^ + 2)*exp(-0.72511327*(-1.424 + i5)^2)*exp(-0.122117046*(-3.848 + i6)^2)*exp( + -0.011759283*(-4.576 + i7)^2) - 0.616956792*exp(-2.410878268*(-0.5758 + + 0.1*i1)^2)*exp(-12.56111847*(-0.5152 + 0.1*i2)^2)*exp(-0.516964088*(- + 0.4303 + 0.1*i3)^2)*exp(-0.052289233*(-0.8697 + 0.1*i4)^2)*exp(-0.72511327 + *(-1.374 + i5)^2)*exp(-0.122117046*(-3.414 + i6)^2)*exp(-0.011759283*(- + 3.061 + i7)^2) + 2.594090908*exp(-2.410878268*(-0.3939 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7091 + 0.1*i2)^2)*exp(-0.516964088*(-0.4242 + 0.1*i3)^2)* + exp(-0.052289233*(-0.8293 + 0.1*i4)^2)*exp(-0.72511327*(-1.434 + i5)^2)* + exp(-0.122117046*(-3.121 + i6)^2)*exp(-0.011759283*(-4.394 + i7)^2) - + 0.015372023*exp(-2.410878268*(-0.403 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5333 + 0.1*i2)^2)*exp(-0.516964088*(-0.5152 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.233 + 0.1*i4)^2)*exp(-0.72511327*(-1.889 + i5)^2)*exp(- + 0.122117046*(-3.172 + i6)^2)*exp(-0.011759283*(-4.545 + i7)^2) + + 1.742325489*exp(-2.410878268*(-0.5061 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6121 + 0.1*i2)^2)*exp(-0.516964088*(-0.4606 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.144 + 0.1*i4)^2)*exp(-0.72511327*(-1.879 + i5)^2)*exp(- + 0.122117046*(-3.343 + i6)^2)*exp(-0.011759283*(-2.152 + i7)^2) + + 1.777534084*exp(-2.410878268*(-0.4152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8242 + 0.1*i2)^2)*exp(-0.516964088*(-0.6545 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.411 + 0.1*i4)^2)*exp(-0.72511327*(-1.525 + i5)^2)*exp(- + 0.122117046*(-3.04 + i6)^2)*exp(-0.011759283*(-2.273 + i7)^2) - + 0.375142416*exp(-2.410878268*(-0.4545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.503 + 0.1*i2)^2)*exp(-0.516964088*(-0.7152 + 0.1*i3)^2)*exp(-0.052289233 + *(-0.797 + 0.1*i4)^2)*exp(-0.72511327*(-1.798 + i5)^2)*exp(-0.122117046*(- + 3.424 + i6)^2)*exp(-0.011759283*(-4.97 + i7)^2) + 1.853898207*exp(- + 2.410878268*(-0.3606 + 0.1*i1)^2)*exp(-12.56111847*(-0.8 + 0.1*i2)^2)*exp( + -0.516964088*(-0.9394 + 0.1*i3)^2)*exp(-0.052289233*(-0.8212 + 0.1*i4)^2)* + exp(-0.72511327*(-1.101 + i5)^2)*exp(-0.122117046*(-3.535 + i6)^2)*exp(- + 0.011759283*(-2.909 + i7)^2) - 0.885578912*exp(-2.410878268*(-0.5818 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9394 + 0.1*i2)^2)*exp(-0.516964088*(-0.6364 + + 0.1*i3)^2)*exp(-0.052289233*(-1.435 + 0.1*i4)^2)*exp(-0.72511327*(- + 1.313 + i5)^2)*exp(-0.122117046*(-3.576 + i6)^2)*exp(-0.011759283*(-3.212 + + i7)^2) - 1.747313447*exp(-2.410878268*(-0.4485 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.9273 + 0.1*i2)^2)*exp(-0.516964088*(-0.6 + 0.1*i3)^2)*exp( + -0.052289233*(-0.9505 + 0.1*i4)^2)*exp(-0.72511327*(-1.909 + i5)^2)*exp(- + 0.122117046*(-3.051 + i6)^2)*exp(-0.011759283*(-3.97 + i7)^2) + 1.66086707 + *exp(-2.410878268*(-0.3394 + 0.1*i1)^2)*exp(-12.56111847*(-0.8788 + 0.1*i2 + )^2)*exp(-0.516964088*(-0.4727 + 0.1*i3)^2)*exp(-0.052289233*(-0.7646 + + 0.1*i4)^2)*exp(-0.72511327*(-1.293 + i5)^2)*exp(-0.122117046*(-3.616 + i6) + ^2)*exp(-0.011759283*(-3.273 + i7)^2) + 0.426615026*exp(-2.410878268*(- + 0.3515 + 0.1*i1)^2)*exp(-12.56111847*(-0.9576 + 0.1*i2)^2)*exp(- + 0.516964088*(-0.8182 + 0.1*i3)^2)*exp(-0.052289233*(-0.7485 + 0.1*i4)^2)* + exp(-0.72511327*(-1.768 + i5)^2)*exp(-0.122117046*(-3.505 + i6)^2)*exp(- + 0.011759283*(-3.394 + i7)^2) + 2.334968311*exp(-2.410878268*(-0.4061 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.6667 + 0.1*i2)^2)*exp(-0.516964088*(-0.9576 + + 0.1*i3)^2)*exp(-0.052289233*(-1.096 + 0.1*i4)^2)*exp(-0.72511327*(- + 1.131 + i5)^2)*exp(-0.122117046*(-3.071 + i6)^2)*exp(-0.011759283*(-4.242 + + i7)^2) - 0.824176724*exp(-2.410878268*(-0.5788 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.6545 + 0.1*i2)^2)*exp(-0.516964088*(-0.7697 + 0.1*i3)^2)* + exp(-0.052289233*(-0.9101 + 0.1*i4)^2)*exp(-0.72511327*(-1.97 + i5)^2)* + exp(-0.122117046*(-3.162 + i6)^2)*exp(-0.011759283*(-3.364 + i7)^2) - + 1.499985428*exp(-2.410878268*(-0.4788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9818 + 0.1*i2)^2)*exp(-0.516964088*(-0.9879 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.193 + 0.1*i4)^2)*exp(-0.72511327*(-1.586 + i5)^2)*exp(- + 0.122117046*(-3.798 + i6)^2)*exp(-0.011759283*(-3.03 + i7)^2) - + 1.547170333*exp(-2.410878268*(-0.3182 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5697 + 0.1*i2)^2)*exp(-0.516964088*(-0.7091 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.217 + 0.1*i4)^2)*exp(-0.72511327*(-1.061 + i5)^2)*exp(- + 0.122117046*(-3.646 + i6)^2)*exp(-0.011759283*(-2.455 + i7)^2) + + 0.738041019*exp(-2.410878268*(-0.3909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8606 + 0.1*i2)^2)*exp(-0.516964088*(-0.5818 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.468 + 0.1*i4)^2)*exp(-0.72511327*(-1.03 + i5)^2)*exp(- + 0.122117046*(-3.455 + i6)^2)*exp(-0.011759283*(-3.242 + i7)^2) + + 4.95671968*exp(-2.410878268*(-0.5909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6303 + 0.1*i2)^2)*exp(-0.516964088*(-0.5091 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.266 + 0.1*i4)^2)*exp(-0.72511327*(-1.303 + i5)^2)*exp(- + 0.122117046*(-3.899 + i6)^2)*exp(-0.011759283*(-3.909 + i7)^2) - + 0.675932553*exp(-2.410878268*(-0.5939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6727 + 0.1*i2)^2)*exp(-0.516964088*(-0.7758 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.249 + 0.1*i4)^2)*exp(-0.72511327*(-1.818 + i5)^2)*exp(- + 0.122117046*(-3.586 + i6)^2)*exp(-0.011759283*(-4.848 + i7)^2) + + 0.975817664*exp(-2.410878268*(-0.5242 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8061 + 0.1*i2)^2)*exp(-0.516964088*(-0.5697 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.452 + 0.1*i4)^2)*exp(-0.72511327*(-1.949 + i5)^2)*exp(- + 0.122117046*(-3.253 + i6)^2)*exp(-0.011759283*(-3.606 + i7)^2) + + 0.236424121*exp(-2.410878268*(-0.5667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9636 + 0.1*i2)^2)*exp(-0.516964088*(-0.6182 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.7242 + 0.1*i4)^2)*exp(-0.72511327*(-1.495 + i5)^2)*exp(- + 0.122117046*(-3.475 + i6)^2)*exp(-0.011759283*(-3.818 + i7)^2) - + 2.21847327*exp(-2.410878268*(-0.3364 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5091 + 0.1*i2)^2)*exp(-0.516964088*(-0.697 + 0.1*i3)^2)*exp(-0.052289233 + *(-0.7323 + 0.1*i4)^2)*exp(-0.72511327*(-1.182 + i5)^2)*exp(-0.122117046*( + -3.313 + i6)^2)*exp(-0.011759283*(-3.727 + i7)^2) + 4.72461272*exp(- + 2.410878268*(-0.4212 + 0.1*i1)^2)*exp(-12.56111847*(-0.6061 + 0.1*i2)^2)* + exp(-0.516964088*(-0.8485 + 0.1*i3)^2)*exp(-0.052289233*(-1.476 + 0.1*i4)^ + 2)*exp(-0.72511327*(-1.505 + i5)^2)*exp(-0.122117046*(-3.364 + i6)^2)*exp( + -0.011759283*(-5 + i7)^2) + 1.135091383*exp(-2.410878268*(-0.3697 + 0.1*i1 + )^2)*exp(-12.56111847*(-0.8485 + 0.1*i2)^2)*exp(-0.516964088*(-0.5455 + + 0.1*i3)^2)*exp(-0.052289233*(-0.902 + 0.1*i4)^2)*exp(-0.72511327*(-1.788 + + i5)^2)*exp(-0.122117046*(-3.697 + i6)^2)*exp(-0.011759283*(-4.909 + i7) + ^2) - 0.725933076*exp(-2.410878268*(-0.5121 + 0.1*i1)^2)*exp(-12.56111847* + (-0.5758 + 0.1*i2)^2)*exp(-0.516964088*(-0.9091 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.8051 + 0.1*i4)^2)*exp(-0.72511327*(-1.152 + i5)^2)*exp(- + 0.122117046*(-3.667 + i6)^2)*exp(-0.011759283*(-4.485 + i7)^2) - + 3.544618744*exp(-2.410878268*(-0.4697 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7455 + 0.1*i2)^2)*exp(-0.516964088*(-0.9515 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.33 + 0.1*i4)^2)*exp(-0.72511327*(-1.162 + i5)^2)*exp(- + 0.122117046*(-3.354 + i6)^2)*exp(-0.011759283*(-2.182 + i7)^2) - + 0.626300385*exp(-2.410878268*(-0.4758 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6848 + 0.1*i2)^2)*exp(-0.516964088*(-0.4848 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.7 + 0.1*i4)^2)*exp(-0.72511327*(-1.939 + i5)^2)*exp(- + 0.122117046*(-3.515 + i6)^2)*exp(-0.011759283*(-3.333 + i7)^2) + + 1.071647125*exp(-2.410878268*(-0.3152 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5879 + 0.1*i2)^2)*exp(-0.516964088*(-0.8667 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.031 + 0.1*i4)^2)*exp(-0.72511327*(-1.485 + i5)^2)*exp(- + 0.122117046*(-3.182 + i6)^2)*exp(-0.011759283*(-2.242 + i7)^2) - + 4.534200234*exp(-2.410878268*(-0.3818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7333 + 0.1*i2)^2)*exp(-0.516964088*(-0.4061 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.201 + 0.1*i4)^2)*exp(-0.72511327*(-1.283 + i5)^2)*exp(- + 0.122117046*(-3.949 + i6)^2)*exp(-0.011759283*(-3 + i7)^2) + 1.702673358* + exp(-2.410878268*(-0.5182 + 0.1*i1)^2)*exp(-12.56111847*(-0.9939 + 0.1*i2) + ^2)*exp(-0.516964088*(-0.8788 + 0.1*i3)^2)*exp(-0.052289233*(-1.072 + 0.1* + i4)^2)*exp(-0.72511327*(-1.081 + i5)^2)*exp(-0.122117046*(-3.303 + i6)^2)* + exp(-0.011759283*(-3.545 + i7)^2) + 2.53671338*exp(-2.410878268*(-0.4424 + + 0.1*i1)^2)*exp(-12.56111847*(-0.8364 + 0.1*i2)^2)*exp(-0.516964088*(- + 0.5333 + 0.1*i3)^2)*exp(-0.052289233*(-1.484 + 0.1*i4)^2)*exp(-0.72511327* + (-1.677 + i5)^2)*exp(-0.122117046*(-3.737 + i6)^2)*exp(-0.011759283*(- + 2.333 + i7)^2) + 0.408311779*exp(-2.410878268*(-0.397 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.5939 + 0.1*i2)^2)*exp(-0.516964088*(-0.8545 + 0.1*i3)^2)* + exp(-0.052289233*(-1.363 + 0.1*i4)^2)*exp(-0.72511327*(-1.869 + i5)^2)* + exp(-0.122117046*(-3.02 + i6)^2)*exp(-0.011759283*(-3.515 + i7)^2) + + 0.093378635*exp(-2.410878268*(-0.4879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4788 + 0.1*i2)^2)*exp(-0.516964088*(-0.6121 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.8939 + 0.1*i4)^2)*exp(-0.72511327*(-1.051 + i5)^2)*exp(- + 0.122117046*(-3.879 + i6)^2)*exp(-0.011759283*(-3.182 + i7)^2) - + 1.316958128*exp(-2.410878268*(-0.3545 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4364 + 0.1*i2)^2)*exp(-0.516964088*(-0.7333 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.9828 + 0.1*i4)^2)*exp(-0.72511327*(-1.99 + i5)^2)*exp(- + 0.122117046*(-3.495 + i6)^2)*exp(-0.011759283*(-2.97 + i7)^2) - + 2.575027432*exp(-2.410878268*(-0.5424 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.6909 + 0.1*i2)^2)*exp(-0.516964088*(-0.6727 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.7889 + 0.1*i4)^2)*exp(-0.72511327*(-1.121 + i5)^2)*exp(- + 0.122117046*(-3.091 + i6)^2)*exp(-0.011759283*(-4.121 + i7)^2) - + 1.63565393*exp(-2.410878268*(-0.4848 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7879 + 0.1*i2)^2)*exp(-0.516964088*(-0.6909 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.7162 + 0.1*i4)^2)*exp(-0.72511327*(-1.475 + i5)^2)*exp(- + 0.122117046*(-3.131 + i6)^2)*exp(-0.011759283*(-2.212 + i7)^2) + + 1.115117028*exp(-2.410878268*(-0.4394 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.897 + 0.1*i2)^2)*exp(-0.516964088*(-0.9758 + 0.1*i3)^2)*exp(-0.052289233 + *(-1.023 + 0.1*i4)^2)*exp(-0.72511327*(-1.667 + i5)^2)*exp(-0.122117046*(- + 3.061 + i6)^2)*exp(-0.011759283*(-2.879 + i7)^2) - 4.025517819*exp(- + 2.410878268*(-0.3848 + 0.1*i1)^2)*exp(-12.56111847*(-0.5394 + 0.1*i2)^2)* + exp(-0.516964088*(-0.9152 + 0.1*i3)^2)*exp(-0.052289233*(-1.5 + 0.1*i4)^2) + *exp(-0.72511327*(-1.596 + i5)^2)*exp(-0.122117046*(-3.636 + i6)^2)*exp(- + 0.011759283*(-2.727 + i7)^2) + 0.436465663*exp(-2.410878268*(-0.5545 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9758 + 0.1*i2)^2)*exp(-0.516964088*(-0.7212 + + 0.1*i3)^2)*exp(-0.052289233*(-1.08 + 0.1*i4)^2)*exp(-0.72511327*(-1.838 + + i5)^2)*exp(-0.122117046*(-3.434 + i6)^2)*exp(-0.011759283*(-2.364 + i7) + ^2) - 1.110571927*exp(-2.410878268*(-0.3758 + 0.1*i1)^2)*exp(-12.56111847* + (-0.8667 + 0.1*i2)^2)*exp(-0.516964088*(-0.5394 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.015 + 0.1*i4)^2)*exp(-0.72511327*(-1.919 + i5)^2)*exp(- + 0.122117046*(-3.909 + i6)^2)*exp(-0.011759283*(-2.939 + i7)^2) - + 0.80829461*exp(-2.410878268*(-0.3212 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7576 + 0.1*i2)^2)*exp(-0.516964088*(-0.5212 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.9343 + 0.1*i4)^2)*exp(-0.72511327*(-1.808 + i5)^2)*exp(- + 0.122117046*(-3.212 + i6)^2)*exp(-0.011759283*(-2.545 + i7)^2) - + 0.899523339*exp(-2.410878268*(-0.4727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9333 + 0.1*i2)^2)*exp(-0.516964088*(-0.6485 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.322 + 0.1*i4)^2)*exp(-0.72511327*(-1.394 + i5)^2)*exp(- + 0.122117046*(-3.081 + i6)^2)*exp(-0.011759283*(-4.697 + i7)^2) + 1.7478182 + *exp(-2.410878268*(-0.4576 + 0.1*i1)^2)*exp(-12.56111847*(-0.5455 + 0.1*i2 + )^2)*exp(-0.516964088*(-0.9939 + 0.1*i3)^2)*exp(-0.052289233*(-1.169 + 0.1 + *i4)^2)*exp(-0.72511327*(-1.98 + i5)^2)*exp(-0.122117046*(-3.626 + i6)^2)* + exp(-0.011759283*(-3.939 + i7)^2) - 0.881922991*exp(-2.410878268*(-0.3242 + + 0.1*i1)^2)*exp(-12.56111847*(-0.9212 + 0.1*i2)^2)*exp(-0.516964088*(- + 0.4667 + 0.1*i3)^2)*exp(-0.052289233*(-1.314 + 0.1*i4)^2)*exp(-0.72511327* + (-1.697 + i5)^2)*exp(-0.122117046*(-3.374 + i6)^2)*exp(-0.011759283*(- + 3.758 + i7)^2) - 0.265596194*exp(-2.410878268*(-0.5697 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.4182 + 0.1*i2)^2)*exp(-0.516964088*(-0.7394 + 0.1*i3)^2)* + exp(-0.052289233*(-0.8374 + 0.1*i4)^2)*exp(-0.72511327*(-1.717 + i5)^2)* + exp(-0.122117046*(-3.727 + i6)^2)*exp(-0.011759283*(-3.303 + i7)^2) - + 0.443291514*exp(-2.410878268*(-0.3727 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9879 + 0.1*i2)^2)*exp(-0.516964088*(-0.6848 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.104 + 0.1*i4)^2)*exp(-0.72511327*(-1.343 + i5)^2)*exp(- + 0.122117046*(-3.606 + i6)^2)*exp(-0.011759283*(-2 + i7)^2) - 0.063134115* + exp(-2.410878268*(-0.5091 + 0.1*i1)^2)*exp(-12.56111847*(-0.4667 + 0.1*i2) + ^2)*exp(-0.516964088*(-0.8303 + 0.1*i3)^2)*exp(-0.052289233*(-0.8859 + 0.1 + *i4)^2)*exp(-0.72511327*(-1.111 + i5)^2)*exp(-0.122117046*(-3.283 + i6)^2) + *exp(-0.011759283*(-2.576 + i7)^2) - 2.238760886*exp(-2.410878268*(-0.3485 + + 0.1*i1)^2)*exp(-12.56111847*(-0.9091 + 0.1*i2)^2)*exp(-0.516964088*(- + 0.6606 + 0.1*i3)^2)*exp(-0.052289233*(-0.999 + 0.1*i4)^2)*exp(-0.72511327* + (-1.172 + i5)^2)*exp(-0.122117046*(-3.03 + i6)^2)*exp(-0.011759283*(-3.152 + + i7)^2) - 2.795737357*exp(-2.410878268*(-0.5848 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.6788 + 0.1*i2)^2)*exp(-0.516964088*(-0.8 + 0.1*i3)^2)*exp( + -0.052289233*(-1.298 + 0.1*i4)^2)*exp(-0.72511327*(-1.848 + i5)^2)*exp(- + 0.122117046*(-3.828 + i6)^2)*exp(-0.011759283*(-2.636 + i7)^2) - + 1.068903871*exp(-2.410878268*(-0.3303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5212 + 0.1*i2)^2)*exp(-0.516964088*(-0.497 + 0.1*i3)^2)*exp(-0.052289233 + *(-1.395 + 0.1*i4)^2)*exp(-0.72511327*(-1.636 + i5)^2)*exp(-0.122117046*(- + 3.384 + i6)^2)*exp(-0.011759283*(-2.697 + i7)^2) + 0.433032137*exp(- + 2.410878268*(-0.3061 + 0.1*i1)^2)*exp(-12.56111847*(-0.6242 + 0.1*i2)^2)* + exp(-0.516964088*(-0.6788 + 0.1*i3)^2)*exp(-0.052289233*(-1.338 + 0.1*i4)^ + 2)*exp(-0.72511327*(-1.859 + i5)^2)*exp(-0.122117046*(-3.758 + i6)^2)*exp( + -0.011759283*(-4.273 + i7)^2) + 0.341432355*exp(-2.410878268*(-0.5485 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4545 + 0.1*i2)^2)*exp(-0.516964088*(- + 0.8848 + 0.1*i3)^2)*exp(-0.052289233*(-1.112 + 0.1*i4)^2)*exp(-0.72511327* + (-1.515 + i5)^2)*exp(-0.122117046*(-3.101 + i6)^2)*exp(-0.011759283*(- + 4.333 + i7)^2) + 0.554010647*exp(-2.410878268*(-0.4636 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7939 + 0.1*i2)^2)*exp(-0.516964088*(-0.7879 + 0.1*i3)^2)* + exp(-0.052289233*(-1.492 + 0.1*i4)^2)*exp(-0.72511327*(-1.707 + i5)^2)* + exp(-0.122117046*(-3.97 + i6)^2)*exp(-0.011759283*(-4.03 + i7)^2) + + 2.862620764*exp(-2.410878268*(-0.3455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5818 + 0.1*i2)^2)*exp(-0.516964088*(-0.7455 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.7404 + 0.1*i4)^2)*exp(-0.72511327*(-1.687 + i5)^2)*exp(- + 0.122117046*(-3.929 + i6)^2)*exp(-0.011759283*(-3.788 + i7)^2) + + 2.947718856*exp(-2.410878268*(-0.6 + 0.1*i1)^2)*exp(-12.56111847*(-0.7515 + + 0.1*i2)^2)*exp(-0.516964088*(-0.9455 + 0.1*i3)^2)*exp(-0.052289233*(- + 0.8616 + 0.1*i4)^2)*exp(-0.72511327*(-1.384 + i5)^2)*exp(-0.122117046*(- + 3.596 + i6)^2)*exp(-0.011759283*(-2.848 + i7)^2) + 0.964504449*exp(- + 2.410878268*(-0.3273 + 0.1*i1)^2)*exp(-12.56111847*(-0.4 + 0.1*i2)^2)*exp( + -0.516964088*(-0.897 + 0.1*i3)^2)*exp(-0.052289233*(-1.12 + 0.1*i4)^2)* + exp(-0.72511327*(-1.404 + i5)^2)*exp(-0.122117046*(-3.525 + i6)^2)*exp(- + 0.011759283*(-4.182 + i7)^2) + 1.265008971*exp(-2.410878268*(-0.5212 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.497 + 0.1*i2)^2)*exp(-0.516964088*(-0.8909 + + 0.1*i3)^2)*exp(-0.052289233*(-1.185 + 0.1*i4)^2)*exp(-0.72511327*(-1.737 + + i5)^2)*exp(-0.122117046*(-3.293 + i6)^2)*exp(-0.011759283*(-2.091 + i7) + ^2) + 0.425612867*exp(-2.410878268*(-0.4303 + 0.1*i1)^2)*exp(-12.56111847* + (-0.4606 + 0.1*i2)^2)*exp(-0.516964088*(-0.6242 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.225 + 0.1*i4)^2)*exp(-0.72511327*(-1.727 + i5)^2)*exp(- + 0.122117046*(-3.96 + i6)^2)*exp(-0.011759283*(-2.424 + i7)^2) + 2.53319357 + *exp(-2.410878268*(-0.3121 + 0.1*i1)^2)*exp(-12.56111847*(-0.8909 + 0.1*i2 + )^2)*exp(-0.516964088*(-0.903 + 0.1*i3)^2)*exp(-0.052289233*(-1.387 + 0.1* + i4)^2)*exp(-0.72511327*(-1.414 + i5)^2)*exp(-0.122117046*(-3.323 + i6)^2)* + exp(-0.011759283*(-3.636 + i7)^2) - 0.21638004*exp(-2.410878268*(-0.3424 + + 0.1*i1)^2)*exp(-12.56111847*(-0.4485 + 0.1*i2)^2)*exp(-0.516964088*(- + 0.4182 + 0.1*i3)^2)*exp(-0.052289233*(-0.9747 + 0.1*i4)^2)*exp(-0.72511327 + *(-1.566 + i5)^2)*exp(-0.122117046*(-3.657 + i6)^2)*exp(-0.011759283*(- + 3.879 + i7)^2) + 3.740233517*exp(-2.410878268*(-0.497 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7697 + 0.1*i2)^2)*exp(-0.516964088*(-0.7939 + 0.1*i3)^2)* + exp(-0.052289233*(-1.274 + 0.1*i4)^2)*exp(-0.72511327*(-1.141 + i5)^2)* + exp(-0.122117046*(-4 + i6)^2)*exp(-0.011759283*(-2.515 + i7)^2) + + 0.40328782*exp(-2.410878268*(-0.4939 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5576 + 0.1*i2)^2)*exp(-0.516964088*(-0.4545 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.177 + 0.1*i4)^2)*exp(-0.72511327*(-1.96 + i5)^2)*exp(- + 0.122117046*(-3.818 + i6)^2)*exp(-0.011759283*(-4 + i7)^2) + 0.65804749* + exp(-2.410878268*(-0.5 + 0.1*i1)^2)*exp(-12.56111847*(-0.9515 + 0.1*i2)^2) + *exp(-0.516964088*(-0.4 + 0.1*i3)^2)*exp(-0.052289233*(-1.088 + 0.1*i4)^2) + *exp(-0.72511327*(-1.455 + i5)^2)*exp(-0.122117046*(-3.242 + i6)^2)*exp(- + 0.011759283*(-2.788 + i7)^2) + 1.085088304*exp(-2.410878268*(-0.4182 + 0.1 + *i1)^2)*exp(-12.56111847*(-0.9455 + 0.1*i2)^2)*exp(-0.516964088*(-0.8364 + + 0.1*i3)^2)*exp(-0.052289233*(-1.258 + 0.1*i4)^2)*exp(-0.72511327*(- + 1.929 + i5)^2)*exp(-0.122117046*(-3.465 + i6)^2)*exp(-0.011759283*(-4.606 + + i7)^2) - 4.096775278*exp(-2.410878268*(-0.3636 + 0.1*i1)^2)*exp(- + 12.56111847*(-0.7818 + 0.1*i2)^2)*exp(-0.516964088*(-1 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.9909 + 0.1*i4)^2)*exp(-0.72511327*(-1.535 + i5)^2)*exp(- + 0.122117046*(-3.768 + i6)^2)*exp(-0.011759283*(-4.667 + i7)^2) - + 0.08006486*exp(-2.410878268*(-0.4091 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7212 + 0.1*i2)^2)*exp(-0.516964088*(-0.9273 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.371 + 0.1*i4)^2)*exp(-0.72511327*(-1.04 + i5)^2)*exp(- + 0.122117046*(-3.747 + i6)^2)*exp(-0.011759283*(-4.152 + i7)^2) + + 0.119919363*exp(-2.410878268*(-0.4455 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4242 + 0.1*i2)^2)*exp(-0.516964088*(-0.5879 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.9182 + 0.1*i4)^2)*exp(-0.72511327*(-1.626 + i5)^2)*exp(- + 0.122117046*(-3 + i6)^2)*exp(-0.011759283*(-3.091 + i7)^2) - 1.388304915* + exp(-2.410878268*(-0.3667 + 0.1*i1)^2)*exp(-12.56111847*(-0.8424 + 0.1*i2) + ^2)*exp(-0.516964088*(-0.8242 + 0.1*i3)^2)*exp(-0.052289233*(-1.29 + 0.1* + i4)^2)*exp(-0.72511327*(-2 + i5)^2)*exp(-0.122117046*(-3.485 + i6)^2)*exp( + -0.011759283*(-2.485 + i7)^2) + 5.599292617*exp(-2.410878268*(-0.4 + 0.1* + i1)^2)*exp(-12.56111847*(-0.6 + 0.1*i2)^2)*exp(-0.516964088*(-0.4364 + 0.1 + *i3)^2)*exp(-0.052289233*(-1.056 + 0.1*i4)^2)*exp(-0.72511327*(-1.091 + i5 + )^2)*exp(-0.122117046*(-3.202 + i6)^2)*exp(-0.011759283*(-2.606 + i7)^2) + + 2.663520526*exp(-2.410878268*(-0.5303 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8545 + 0.1*i2)^2)*exp(-0.516964088*(-0.9212 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.8778 + 0.1*i4)^2)*exp(-0.72511327*(-1.616 + i5)^2)*exp(- + 0.122117046*(-3.232 + i6)^2)*exp(-0.011759283*(-4.727 + i7)^2) + + 0.902124955*exp(-2.410878268*(-0.3879 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5515 + 0.1*i2)^2)*exp(-0.516964088*(-0.5576 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.7808 + 0.1*i4)^2)*exp(-0.72511327*(-1.444 + i5)^2)*exp(- + 0.122117046*(-3.677 + i6)^2)*exp(-0.011759283*(-2.03 + i7)^2) + + 1.079539581*exp(-2.410878268*(-0.4515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7273 + 0.1*i2)^2)*exp(-0.516964088*(-0.8727 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.8131 + 0.1*i4)^2)*exp(-0.72511327*(-1.828 + i5)^2)*exp(- + 0.122117046*(-3.717 + i6)^2)*exp(-0.011759283*(-2.061 + i7)^2) + + 0.164406906*exp(-2.410878268*(-0.4818 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4121 + 0.1*i2)^2)*exp(-0.516964088*(-0.5515 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.064 + 0.1*i4)^2)*exp(-0.72511327*(-1.202 + i5)^2)*exp(- + 0.122117046*(-3.404 + i6)^2)*exp(-0.011759283*(-4.788 + i7)^2) - + 3.497855222*exp(-2.410878268*(-0.5515 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8182 + 0.1*i2)^2)*exp(-0.516964088*(-0.9636 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.443 + 0.1*i4)^2)*exp(-0.72511327*(-1.606 + i5)^2)*exp(- + 0.122117046*(-3.263 + i6)^2)*exp(-0.011759283*(-3.667 + i7)^2) - + 3.132142976*exp(-2.410878268*(-0.4667 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.4727 + 0.1*i2)^2)*exp(-0.516964088*(-0.7818 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.136 + 0.1*i4)^2)*exp(-0.72511327*(-1.545 + i5)^2)*exp(- + 0.122117046*(-3.99 + i6)^2)*exp(-0.011759283*(-4.758 + i7)^2) - + 1.718829464*exp(-2.410878268*(-0.5606 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.7758 + 0.1*i2)^2)*exp(-0.516964088*(-0.5273 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.9263 + 0.1*i4)^2)*exp(-0.72511327*(-1.576 + i5)^2)*exp(- + 0.122117046*(-3.919 + i6)^2)*exp(-0.011759283*(-2.394 + i7)^2) - + 2.873872864*exp(-2.410878268*(-0.4333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.5636 + 0.1*i2)^2)*exp(-0.516964088*(-0.9818 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.7081 + 0.1*i4)^2)*exp(-0.72511327*(-1.657 + i5)^2)*exp(- + 0.122117046*(-3.273 + i6)^2)*exp(-0.011759283*(-3.455 + i7)^2) - + 4.512608557*exp(-2.410878268*(-0.5333 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8303 + 0.1*i2)^2)*exp(-0.516964088*(-0.6061 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.9424 + 0.1*i4)^2)*exp(-0.72511327*(-1 + i5)^2)*exp(- + 0.122117046*(-3.545 + i6)^2)*exp(-0.011759283*(-2.303 + i7)^2) - + 2.685618626*exp(-2.410878268*(-0.3788 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.9152 + 0.1*i2)^2)*exp(-0.516964088*(-0.7515 + 0.1*i3)^2)*exp(- + 0.052289233*(-0.8455 + 0.1*i4)^2)*exp(-0.72511327*(-1.212 + i5)^2)*exp(- + 0.122117046*(-3.394 + i6)^2)*exp(-0.011759283*(-4.879 + i7)^2) + + 4.099398451*exp(-2.410878268*(-0.4909 + 0.1*i1)^2)*exp(-12.56111847*(- + 0.8727 + 0.1*i2)^2)*exp(-0.516964088*(-0.4424 + 0.1*i3)^2)*exp(- + 0.052289233*(-1.047 + 0.1*i4)^2)*exp(-0.72511327*(-1.02 + i5)^2)*exp(- + 0.122117046*(-3.556 + i6)^2)*exp(-0.011759283*(-4.303 + i7)^2) - 0.045*i2) + >= 0.374014485; + + -(132.5888492*exp(-14.39803222*(-0.303 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.697 + 0.1*i2)^2)*exp(-7.568632175*(-0.8061 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.9586 + 0.1*i4)^2)*exp(-1.272345397*(-1.758 + i5)^2)*exp(-0.411738146* + (-3.141 + i6)^2)*exp(-0.511069048*(-4.424 + i7)^2) + 281.6716948*exp(- + 14.39803222*(-0.5364 + 0.1*i1)^2)*exp(-11.89542633*(-0.9697 + 0.1*i2)^2)* + exp(-7.568632175*(-0.4909 + 0.1*i3)^2)*exp(-1.761729316*(-1.161 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.778 + i5)^2)*exp(-0.411738146*(-3.778 + i6)^2)* + exp(-0.511069048*(-4.091 + i7)^2) + 345.1169117*exp(-14.39803222*(-0.503 + + 0.1*i1)^2)*exp(-11.89542633*(-0.6182 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.4121 + 0.1*i3)^2)*exp(-1.761729316*(-1.419 + 0.1*i4)^2)*exp(-1.272345397 + *(-1.333 + i5)^2)*exp(-0.411738146*(-3.152 + i6)^2)*exp(-0.511069048*(- + 3.697 + i7)^2) + 238.2880881*exp(-14.39803222*(-0.4606 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.903 + 0.1*i2)^2)*exp(-7.568632175*(-0.7576 + 0.1*i3)^2)* + exp(-1.761729316*(-0.7727 + 0.1*i4)^2)*exp(-1.272345397*(-1.242 + i5)^2)* + exp(-0.411738146*(-3.98 + i6)^2)*exp(-0.511069048*(-3.424 + i7)^2) + + 385.1009351*exp(-14.39803222*(-0.3 + 0.1*i1)^2)*exp(-11.89542633*(-0.7636 + + 0.1*i2)^2)*exp(-7.568632175*(-0.8606 + 0.1*i3)^2)*exp(-1.761729316*(- + 1.153 + 0.1*i4)^2)*exp(-1.272345397*(-1.556 + i5)^2)*exp(-0.411738146*(- + 3.939 + i6)^2)*exp(-0.511069048*(-2.818 + i7)^2) + 470.395426*exp(- + 14.39803222*(-0.5879 + 0.1*i1)^2)*exp(-11.89542633*(-0.703 + 0.1*i2)^2)* + exp(-7.568632175*(-0.4788 + 0.1*i3)^2)*exp(-1.761729316*(-1.039 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.646 + i5)^2)*exp(-0.411738146*(-3.222 + i6)^2)* + exp(-0.511069048*(-4.636 + i7)^2) - 241.2853194*exp(-14.39803222*(-0.4121 + + 0.1*i1)^2)*exp(-11.89542633*(-0.4424 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5939 + 0.1*i3)^2)*exp(-1.761729316*(-1.46 + 0.1*i4)^2)*exp(-1.272345397* + (-1.232 + i5)^2)*exp(-0.411738146*(-3.788 + i6)^2)*exp(-0.511069048*(- + 3.848 + i7)^2) + 406.7501983*exp(-14.39803222*(-0.5576 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.8848 + 0.1*i2)^2)*exp(-7.568632175*(-0.8121 + 0.1*i3)^2)* + exp(-1.761729316*(-1.128 + 0.1*i4)^2)*exp(-1.272345397*(-1.263 + i5)^2)* + exp(-0.411738146*(-3.808 + i6)^2)*exp(-0.511069048*(-4.818 + i7)^2) + + 571.6600589*exp(-14.39803222*(-0.4273 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4848 + 0.1*i2)^2)*exp(-7.568632175*(-0.9697 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9667 + 0.1*i4)^2)*exp(-1.272345397*(-1.364 + i5)^2)*exp(- + 0.411738146*(-3.869 + i6)^2)*exp(-0.511069048*(-2.667 + i7)^2) + + 54.52027037*exp(-14.39803222*(-0.5455 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4061 + 0.1*i2)^2)*exp(-7.568632175*(-0.6303 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.427 + 0.1*i4)^2)*exp(-1.272345397*(-1.747 + i5)^2)*exp(- + 0.411738146*(-3.444 + i6)^2)*exp(-0.511069048*(-3.576 + i7)^2) - + 97.00801283*exp(-14.39803222*(-0.5394 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5273 + 0.1*i2)^2)*exp(-7.568632175*(-0.5636 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.355 + 0.1*i4)^2)*exp(-1.272345397*(-1.253 + i5)^2)*exp(- + 0.411738146*(-3.566 + i6)^2)*exp(-0.511069048*(-2.121 + i7)^2) + + 74.88071804*exp(-14.39803222*(-0.5273 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8121 + 0.1*i2)^2)*exp(-7.568632175*(-0.8424 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8535 + 0.1*i4)^2)*exp(-1.272345397*(-1.899 + i5)^2)*exp(- + 0.411738146*(-3.889 + i6)^2)*exp(-0.511069048*(-4.061 + i7)^2) - + 37.7191694*exp(-14.39803222*(-0.5727 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4909 + 0.1*i2)^2)*exp(-7.568632175*(-0.9333 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.306 + 0.1*i4)^2)*exp(-1.272345397*(-1.273 + i5)^2)*exp(- + 0.411738146*(-3.707 + i6)^2)*exp(-0.511069048*(-3.485 + i7)^2) + + 289.7372247*exp(-14.39803222*(-0.3091 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6364 + 0.1*i2)^2)*exp(-7.568632175*(-0.5758 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.282 + 0.1*i4)^2)*exp(-1.272345397*(-1.222 + i5)^2)*exp(- + 0.411738146*(-3.192 + i6)^2)*exp(-0.511069048*(-4.455 + i7)^2) + + 1112.680338*exp(-14.39803222*(-0.4364 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7394 + 0.1*i2)^2)*exp(-7.568632175*(-0.4485 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.403 + 0.1*i4)^2)*exp(-1.272345397*(-1.465 + i5)^2)*exp(- + 0.411738146*(-3.687 + i6)^2)*exp(-0.511069048*(-4.939 + i7)^2) - + 377.7406629*exp(-14.39803222*(-0.5636 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6485 + 0.1*i2)^2)*exp(-7.568632175*(-0.7273 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.346 + 0.1*i4)^2)*exp(-1.272345397*(-1.01 + i5)^2)*exp(- + 0.411738146*(-3.333 + i6)^2)*exp(-0.511069048*(-4.364 + i7)^2) - + 93.67002729*exp(-14.39803222*(-0.597 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7152 + 0.1*i2)^2)*exp(-7.568632175*(-0.703 + 0.1*i3)^2)*exp(-1.761729316 + *(-1.209 + 0.1*i4)^2)*exp(-1.272345397*(-1.354 + i5)^2)*exp(-0.411738146*( + -3.01 + i6)^2)*exp(-0.511069048*(-2.758 + i7)^2) + 967.7576673*exp(- + 14.39803222*(-0.5152 + 0.1*i1)^2)*exp(-11.89542633*(-0.6606 + 0.1*i2)^2)* + exp(-7.568632175*(-0.503 + 0.1*i3)^2)*exp(-1.761729316*(-0.7566 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.424 + i5)^2)*exp(-0.411738146*(-3.848 + i6)^2)* + exp(-0.511069048*(-4.576 + i7)^2) - 411.2508748*exp(-14.39803222*(-0.5758 + + 0.1*i1)^2)*exp(-11.89542633*(-0.5152 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.4303 + 0.1*i3)^2)*exp(-1.761729316*(-0.8697 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.374 + i5)^2)*exp(-0.411738146*(-3.414 + i6)^2)*exp(- + 0.511069048*(-3.061 + i7)^2) - 1711.412724*exp(-14.39803222*(-0.3939 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.7091 + 0.1*i2)^2)*exp(-7.568632175*(-0.4242 + + 0.1*i3)^2)*exp(-1.761729316*(-0.8293 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.434 + i5)^2)*exp(-0.411738146*(-3.121 + i6)^2)*exp(-0.511069048*(-4.394 + + i7)^2) - 30.24377566*exp(-14.39803222*(-0.403 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.5333 + 0.1*i2)^2)*exp(-7.568632175*(-0.5152 + 0.1*i3)^2)* + exp(-1.761729316*(-1.233 + 0.1*i4)^2)*exp(-1.272345397*(-1.889 + i5)^2)* + exp(-0.411738146*(-3.172 + i6)^2)*exp(-0.511069048*(-4.545 + i7)^2) - + 336.3179775*exp(-14.39803222*(-0.5061 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6121 + 0.1*i2)^2)*exp(-7.568632175*(-0.4606 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.144 + 0.1*i4)^2)*exp(-1.272345397*(-1.879 + i5)^2)*exp(- + 0.411738146*(-3.343 + i6)^2)*exp(-0.511069048*(-2.152 + i7)^2) - + 205.5457412*exp(-14.39803222*(-0.4152 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8242 + 0.1*i2)^2)*exp(-7.568632175*(-0.6545 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.411 + 0.1*i4)^2)*exp(-1.272345397*(-1.525 + i5)^2)*exp(- + 0.411738146*(-3.04 + i6)^2)*exp(-0.511069048*(-2.273 + i7)^2) - + 568.6750922*exp(-14.39803222*(-0.4545 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.503 + 0.1*i2)^2)*exp(-7.568632175*(-0.7152 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.797 + 0.1*i4)^2)*exp(-1.272345397*(-1.798 + i5)^2)*exp(-0.411738146*( + -3.424 + i6)^2)*exp(-0.511069048*(-4.97 + i7)^2) - 293.3297864*exp(- + 14.39803222*(-0.3606 + 0.1*i1)^2)*exp(-11.89542633*(-0.8 + 0.1*i2)^2)*exp( + -7.568632175*(-0.9394 + 0.1*i3)^2)*exp(-1.761729316*(-0.8212 + 0.1*i4)^2)* + exp(-1.272345397*(-1.101 + i5)^2)*exp(-0.411738146*(-3.535 + i6)^2)*exp(- + 0.511069048*(-2.909 + i7)^2) + 207.015601*exp(-14.39803222*(-0.5818 + 0.1* + i1)^2)*exp(-11.89542633*(-0.9394 + 0.1*i2)^2)*exp(-7.568632175*(-0.6364 + + 0.1*i3)^2)*exp(-1.761729316*(-1.435 + 0.1*i4)^2)*exp(-1.272345397*(-1.313 + + i5)^2)*exp(-0.411738146*(-3.576 + i6)^2)*exp(-0.511069048*(-3.212 + i7) + ^2) - 1245.008172*exp(-14.39803222*(-0.4485 + 0.1*i1)^2)*exp(-11.89542633* + (-0.9273 + 0.1*i2)^2)*exp(-7.568632175*(-0.6 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.9505 + 0.1*i4)^2)*exp(-1.272345397*(-1.909 + i5)^2)*exp(-0.411738146* + (-3.051 + i6)^2)*exp(-0.511069048*(-3.97 + i7)^2) + 1023.785963*exp(- + 14.39803222*(-0.3394 + 0.1*i1)^2)*exp(-11.89542633*(-0.8788 + 0.1*i2)^2)* + exp(-7.568632175*(-0.4727 + 0.1*i3)^2)*exp(-1.761729316*(-0.7646 + 0.1*i4) + ^2)*exp(-1.272345397*(-1.293 + i5)^2)*exp(-0.411738146*(-3.616 + i6)^2)* + exp(-0.511069048*(-3.273 + i7)^2) + 589.981945*exp(-14.39803222*(-0.3515 + + 0.1*i1)^2)*exp(-11.89542633*(-0.9576 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.8182 + 0.1*i3)^2)*exp(-1.761729316*(-0.7485 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.768 + i5)^2)*exp(-0.411738146*(-3.505 + i6)^2)*exp(- + 0.511069048*(-3.394 + i7)^2) - 33.94681981*exp(-14.39803222*(-0.4061 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.6667 + 0.1*i2)^2)*exp(-7.568632175*(-0.9576 + + 0.1*i3)^2)*exp(-1.761729316*(-1.096 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.131 + i5)^2)*exp(-0.411738146*(-3.071 + i6)^2)*exp(-0.511069048*(-4.242 + + i7)^2) - 204.9251252*exp(-14.39803222*(-0.5788 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.6545 + 0.1*i2)^2)*exp(-7.568632175*(-0.7697 + 0.1*i3)^2)* + exp(-1.761729316*(-0.9101 + 0.1*i4)^2)*exp(-1.272345397*(-1.97 + i5)^2)* + exp(-0.411738146*(-3.162 + i6)^2)*exp(-0.511069048*(-3.364 + i7)^2) - + 34.84977186*exp(-14.39803222*(-0.4788 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9818 + 0.1*i2)^2)*exp(-7.568632175*(-0.9879 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.193 + 0.1*i4)^2)*exp(-1.272345397*(-1.586 + i5)^2)*exp(- + 0.411738146*(-3.798 + i6)^2)*exp(-0.511069048*(-3.03 + i7)^2) + + 8.724479117*exp(-14.39803222*(-0.3182 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5697 + 0.1*i2)^2)*exp(-7.568632175*(-0.7091 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.217 + 0.1*i4)^2)*exp(-1.272345397*(-1.061 + i5)^2)*exp(- + 0.411738146*(-3.646 + i6)^2)*exp(-0.511069048*(-2.455 + i7)^2) + + 405.8764684*exp(-14.39803222*(-0.3909 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8606 + 0.1*i2)^2)*exp(-7.568632175*(-0.5818 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.468 + 0.1*i4)^2)*exp(-1.272345397*(-1.03 + i5)^2)*exp(- + 0.411738146*(-3.455 + i6)^2)*exp(-0.511069048*(-3.242 + i7)^2) + + 70.56713909*exp(-14.39803222*(-0.5909 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6303 + 0.1*i2)^2)*exp(-7.568632175*(-0.5091 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.266 + 0.1*i4)^2)*exp(-1.272345397*(-1.303 + i5)^2)*exp(- + 0.411738146*(-3.899 + i6)^2)*exp(-0.511069048*(-3.909 + i7)^2) - + 464.6685065*exp(-14.39803222*(-0.5939 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6727 + 0.1*i2)^2)*exp(-7.568632175*(-0.7758 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.249 + 0.1*i4)^2)*exp(-1.272345397*(-1.818 + i5)^2)*exp(- + 0.411738146*(-3.586 + i6)^2)*exp(-0.511069048*(-4.848 + i7)^2) + + 397.7430488*exp(-14.39803222*(-0.5242 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8061 + 0.1*i2)^2)*exp(-7.568632175*(-0.5697 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.452 + 0.1*i4)^2)*exp(-1.272345397*(-1.949 + i5)^2)*exp(- + 0.411738146*(-3.253 + i6)^2)*exp(-0.511069048*(-3.606 + i7)^2) - + 671.8382398*exp(-14.39803222*(-0.5667 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9636 + 0.1*i2)^2)*exp(-7.568632175*(-0.6182 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7242 + 0.1*i4)^2)*exp(-1.272345397*(-1.495 + i5)^2)*exp(- + 0.411738146*(-3.475 + i6)^2)*exp(-0.511069048*(-3.818 + i7)^2) + + 75.11580719*exp(-14.39803222*(-0.3364 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5091 + 0.1*i2)^2)*exp(-7.568632175*(-0.697 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.7323 + 0.1*i4)^2)*exp(-1.272345397*(-1.182 + i5)^2)*exp(-0.411738146* + (-3.313 + i6)^2)*exp(-0.511069048*(-3.727 + i7)^2) - 71.73638396*exp(- + 14.39803222*(-0.4212 + 0.1*i1)^2)*exp(-11.89542633*(-0.6061 + 0.1*i2)^2)* + exp(-7.568632175*(-0.8485 + 0.1*i3)^2)*exp(-1.761729316*(-1.476 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.505 + i5)^2)*exp(-0.411738146*(-3.364 + i6)^2)* + exp(-0.511069048*(-5 + i7)^2) + 1109.246749*exp(-14.39803222*(-0.3697 + + 0.1*i1)^2)*exp(-11.89542633*(-0.8485 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5455 + 0.1*i3)^2)*exp(-1.761729316*(-0.902 + 0.1*i4)^2)*exp(-1.272345397 + *(-1.788 + i5)^2)*exp(-0.411738146*(-3.697 + i6)^2)*exp(-0.511069048*(- + 4.909 + i7)^2) - 199.3907481*exp(-14.39803222*(-0.5121 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.5758 + 0.1*i2)^2)*exp(-7.568632175*(-0.9091 + 0.1*i3)^2)* + exp(-1.761729316*(-0.8051 + 0.1*i4)^2)*exp(-1.272345397*(-1.152 + i5)^2)* + exp(-0.411738146*(-3.667 + i6)^2)*exp(-0.511069048*(-4.485 + i7)^2) + + 7.19431001*exp(-14.39803222*(-0.4697 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7455 + 0.1*i2)^2)*exp(-7.568632175*(-0.9515 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.33 + 0.1*i4)^2)*exp(-1.272345397*(-1.162 + i5)^2)*exp(- + 0.411738146*(-3.354 + i6)^2)*exp(-0.511069048*(-2.182 + i7)^2) + + 1144.04244*exp(-14.39803222*(-0.4758 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6848 + 0.1*i2)^2)*exp(-7.568632175*(-0.4848 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7 + 0.1*i4)^2)*exp(-1.272345397*(-1.939 + i5)^2)*exp(- + 0.411738146*(-3.515 + i6)^2)*exp(-0.511069048*(-3.333 + i7)^2) - + 135.6296964*exp(-14.39803222*(-0.3152 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5879 + 0.1*i2)^2)*exp(-7.568632175*(-0.8667 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.031 + 0.1*i4)^2)*exp(-1.272345397*(-1.485 + i5)^2)*exp(- + 0.411738146*(-3.182 + i6)^2)*exp(-0.511069048*(-2.242 + i7)^2) - + 1081.203948*exp(-14.39803222*(-0.3818 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7333 + 0.1*i2)^2)*exp(-7.568632175*(-0.4061 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.201 + 0.1*i4)^2)*exp(-1.272345397*(-1.283 + i5)^2)*exp(- + 0.411738146*(-3.949 + i6)^2)*exp(-0.511069048*(-3 + i7)^2) + 39.13303706* + exp(-14.39803222*(-0.5182 + 0.1*i1)^2)*exp(-11.89542633*(-0.9939 + 0.1*i2) + ^2)*exp(-7.568632175*(-0.8788 + 0.1*i3)^2)*exp(-1.761729316*(-1.072 + 0.1* + i4)^2)*exp(-1.272345397*(-1.081 + i5)^2)*exp(-0.411738146*(-3.303 + i6)^2) + *exp(-0.511069048*(-3.545 + i7)^2) + 1006.537229*exp(-14.39803222*(-0.4424 + + 0.1*i1)^2)*exp(-11.89542633*(-0.8364 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5333 + 0.1*i3)^2)*exp(-1.761729316*(-1.484 + 0.1*i4)^2)*exp(-1.272345397 + *(-1.677 + i5)^2)*exp(-0.411738146*(-3.737 + i6)^2)*exp(-0.511069048*(- + 2.333 + i7)^2) + 337.9329202*exp(-14.39803222*(-0.397 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.5939 + 0.1*i2)^2)*exp(-7.568632175*(-0.8545 + 0.1*i3)^2)* + exp(-1.761729316*(-1.363 + 0.1*i4)^2)*exp(-1.272345397*(-1.869 + i5)^2)* + exp(-0.411738146*(-3.02 + i6)^2)*exp(-0.511069048*(-3.515 + i7)^2) - + 22.21000788*exp(-14.39803222*(-0.4879 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4788 + 0.1*i2)^2)*exp(-7.568632175*(-0.6121 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8939 + 0.1*i4)^2)*exp(-1.272345397*(-1.051 + i5)^2)*exp(- + 0.411738146*(-3.879 + i6)^2)*exp(-0.511069048*(-3.182 + i7)^2) - + 159.9670308*exp(-14.39803222*(-0.3545 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4364 + 0.1*i2)^2)*exp(-7.568632175*(-0.7333 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9828 + 0.1*i4)^2)*exp(-1.272345397*(-1.99 + i5)^2)*exp(- + 0.411738146*(-3.495 + i6)^2)*exp(-0.511069048*(-2.97 + i7)^2) + + 249.7148274*exp(-14.39803222*(-0.5424 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6909 + 0.1*i2)^2)*exp(-7.568632175*(-0.6727 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7889 + 0.1*i4)^2)*exp(-1.272345397*(-1.121 + i5)^2)*exp(- + 0.411738146*(-3.091 + i6)^2)*exp(-0.511069048*(-4.121 + i7)^2) + + 762.6273492*exp(-14.39803222*(-0.4848 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7879 + 0.1*i2)^2)*exp(-7.568632175*(-0.6909 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7162 + 0.1*i4)^2)*exp(-1.272345397*(-1.475 + i5)^2)*exp(- + 0.411738146*(-3.131 + i6)^2)*exp(-0.511069048*(-2.212 + i7)^2) - + 149.5690579*exp(-14.39803222*(-0.4394 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.897 + 0.1*i2)^2)*exp(-7.568632175*(-0.9758 + 0.1*i3)^2)*exp(-1.761729316 + *(-1.023 + 0.1*i4)^2)*exp(-1.272345397*(-1.667 + i5)^2)*exp(-0.411738146*( + -3.061 + i6)^2)*exp(-0.511069048*(-2.879 + i7)^2) - 404.4885462*exp(- + 14.39803222*(-0.3848 + 0.1*i1)^2)*exp(-11.89542633*(-0.5394 + 0.1*i2)^2)* + exp(-7.568632175*(-0.9152 + 0.1*i3)^2)*exp(-1.761729316*(-1.5 + 0.1*i4)^2) + *exp(-1.272345397*(-1.596 + i5)^2)*exp(-0.411738146*(-3.636 + i6)^2)*exp(- + 0.511069048*(-2.727 + i7)^2) + 339.6891902*exp(-14.39803222*(-0.5545 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.9758 + 0.1*i2)^2)*exp(-7.568632175*(-0.7212 + + 0.1*i3)^2)*exp(-1.761729316*(-1.08 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.838 + i5)^2)*exp(-0.411738146*(-3.434 + i6)^2)*exp(-0.511069048*(-2.364 + + i7)^2) - 917.2180104*exp(-14.39803222*(-0.3758 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.8667 + 0.1*i2)^2)*exp(-7.568632175*(-0.5394 + 0.1*i3)^2)* + exp(-1.761729316*(-1.015 + 0.1*i4)^2)*exp(-1.272345397*(-1.919 + i5)^2)* + exp(-0.411738146*(-3.909 + i6)^2)*exp(-0.511069048*(-2.939 + i7)^2) - + 852.898162*exp(-14.39803222*(-0.3212 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7576 + 0.1*i2)^2)*exp(-7.568632175*(-0.5212 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9343 + 0.1*i4)^2)*exp(-1.272345397*(-1.808 + i5)^2)*exp(- + 0.411738146*(-3.212 + i6)^2)*exp(-0.511069048*(-2.545 + i7)^2) + + 318.8937834*exp(-14.39803222*(-0.4727 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9333 + 0.1*i2)^2)*exp(-7.568632175*(-0.6485 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.322 + 0.1*i4)^2)*exp(-1.272345397*(-1.394 + i5)^2)*exp(- + 0.411738146*(-3.081 + i6)^2)*exp(-0.511069048*(-4.697 + i7)^2) - + 110.3406826*exp(-14.39803222*(-0.4576 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5455 + 0.1*i2)^2)*exp(-7.568632175*(-0.9939 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.169 + 0.1*i4)^2)*exp(-1.272345397*(-1.98 + i5)^2)*exp(- + 0.411738146*(-3.626 + i6)^2)*exp(-0.511069048*(-3.939 + i7)^2) - + 516.8634363*exp(-14.39803222*(-0.3242 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9212 + 0.1*i2)^2)*exp(-7.568632175*(-0.4667 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.314 + 0.1*i4)^2)*exp(-1.272345397*(-1.697 + i5)^2)*exp(- + 0.411738146*(-3.374 + i6)^2)*exp(-0.511069048*(-3.758 + i7)^2) - + 186.5553713*exp(-14.39803222*(-0.5697 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4182 + 0.1*i2)^2)*exp(-7.568632175*(-0.7394 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8374 + 0.1*i4)^2)*exp(-1.272345397*(-1.717 + i5)^2)*exp(- + 0.411738146*(-3.727 + i6)^2)*exp(-0.511069048*(-3.303 + i7)^2) - + 1121.405994*exp(-14.39803222*(-0.3727 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9879 + 0.1*i2)^2)*exp(-7.568632175*(-0.6848 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.104 + 0.1*i4)^2)*exp(-1.272345397*(-1.343 + i5)^2)*exp(- + 0.411738146*(-3.606 + i6)^2)*exp(-0.511069048*(-2 + i7)^2) - 658.2686839* + exp(-14.39803222*(-0.5091 + 0.1*i1)^2)*exp(-11.89542633*(-0.4667 + 0.1*i2) + ^2)*exp(-7.568632175*(-0.8303 + 0.1*i3)^2)*exp(-1.761729316*(-0.8859 + 0.1 + *i4)^2)*exp(-1.272345397*(-1.111 + i5)^2)*exp(-0.411738146*(-3.283 + i6)^2 + )*exp(-0.511069048*(-2.576 + i7)^2) + 692.1283846*exp(-14.39803222*(- + 0.3485 + 0.1*i1)^2)*exp(-11.89542633*(-0.9091 + 0.1*i2)^2)*exp(- + 7.568632175*(-0.6606 + 0.1*i3)^2)*exp(-1.761729316*(-0.999 + 0.1*i4)^2)* + exp(-1.272345397*(-1.172 + i5)^2)*exp(-0.411738146*(-3.03 + i6)^2)*exp(- + 0.511069048*(-3.152 + i7)^2) - 511.5443228*exp(-14.39803222*(-0.5848 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.6788 + 0.1*i2)^2)*exp(-7.568632175*(-0.8 + + 0.1*i3)^2)*exp(-1.761729316*(-1.298 + 0.1*i4)^2)*exp(-1.272345397*(-1.848 + + i5)^2)*exp(-0.411738146*(-3.828 + i6)^2)*exp(-0.511069048*(-2.636 + i7) + ^2) + 334.7156403*exp(-14.39803222*(-0.3303 + 0.1*i1)^2)*exp(-11.89542633* + (-0.5212 + 0.1*i2)^2)*exp(-7.568632175*(-0.497 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.395 + 0.1*i4)^2)*exp(-1.272345397*(-1.636 + i5)^2)*exp(- + 0.411738146*(-3.384 + i6)^2)*exp(-0.511069048*(-2.697 + i7)^2) + + 58.76270116*exp(-14.39803222*(-0.3061 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6242 + 0.1*i2)^2)*exp(-7.568632175*(-0.6788 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.338 + 0.1*i4)^2)*exp(-1.272345397*(-1.859 + i5)^2)*exp(- + 0.411738146*(-3.758 + i6)^2)*exp(-0.511069048*(-4.273 + i7)^2) + + 276.0825488*exp(-14.39803222*(-0.5485 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4545 + 0.1*i2)^2)*exp(-7.568632175*(-0.8848 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.112 + 0.1*i4)^2)*exp(-1.272345397*(-1.515 + i5)^2)*exp(- + 0.411738146*(-3.101 + i6)^2)*exp(-0.511069048*(-4.333 + i7)^2) - + 484.9114901*exp(-14.39803222*(-0.4636 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7939 + 0.1*i2)^2)*exp(-7.568632175*(-0.7879 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.492 + 0.1*i4)^2)*exp(-1.272345397*(-1.707 + i5)^2)*exp(- + 0.411738146*(-3.97 + i6)^2)*exp(-0.511069048*(-4.03 + i7)^2) - 183.1540339 + *exp(-14.39803222*(-0.3455 + 0.1*i1)^2)*exp(-11.89542633*(-0.5818 + 0.1*i2 + )^2)*exp(-7.568632175*(-0.7455 + 0.1*i3)^2)*exp(-1.761729316*(-0.7404 + + 0.1*i4)^2)*exp(-1.272345397*(-1.687 + i5)^2)*exp(-0.411738146*(-3.929 + i6 + )^2)*exp(-0.511069048*(-3.788 + i7)^2) - 137.5395331*exp(-14.39803222*(- + 0.6 + 0.1*i1)^2)*exp(-11.89542633*(-0.7515 + 0.1*i2)^2)*exp(-7.568632175*( + -0.9455 + 0.1*i3)^2)*exp(-1.761729316*(-0.8616 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.384 + i5)^2)*exp(-0.411738146*(-3.596 + i6)^2)*exp(- + 0.511069048*(-2.848 + i7)^2) - 231.037725*exp(-14.39803222*(-0.3273 + 0.1* + i1)^2)*exp(-11.89542633*(-0.4 + 0.1*i2)^2)*exp(-7.568632175*(-0.897 + 0.1* + i3)^2)*exp(-1.761729316*(-1.12 + 0.1*i4)^2)*exp(-1.272345397*(-1.404 + i5) + ^2)*exp(-0.411738146*(-3.525 + i6)^2)*exp(-0.511069048*(-4.182 + i7)^2) + + 342.8781129*exp(-14.39803222*(-0.5212 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.497 + 0.1*i2)^2)*exp(-7.568632175*(-0.8909 + 0.1*i3)^2)*exp(-1.761729316 + *(-1.185 + 0.1*i4)^2)*exp(-1.272345397*(-1.737 + i5)^2)*exp(-0.411738146*( + -3.293 + i6)^2)*exp(-0.511069048*(-2.091 + i7)^2) - 38.35870668*exp(- + 14.39803222*(-0.4303 + 0.1*i1)^2)*exp(-11.89542633*(-0.4606 + 0.1*i2)^2)* + exp(-7.568632175*(-0.6242 + 0.1*i3)^2)*exp(-1.761729316*(-1.225 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.727 + i5)^2)*exp(-0.411738146*(-3.96 + i6)^2)*exp( + -0.511069048*(-2.424 + i7)^2) - 341.6383813*exp(-14.39803222*(-0.3121 + + 0.1*i1)^2)*exp(-11.89542633*(-0.8909 + 0.1*i2)^2)*exp(-7.568632175*(-0.903 + + 0.1*i3)^2)*exp(-1.761729316*(-1.387 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.414 + i5)^2)*exp(-0.411738146*(-3.323 + i6)^2)*exp(-0.511069048*(-3.636 + + i7)^2) + 452.5072535*exp(-14.39803222*(-0.3424 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.4485 + 0.1*i2)^2)*exp(-7.568632175*(-0.4182 + 0.1*i3)^2)* + exp(-1.761729316*(-0.9747 + 0.1*i4)^2)*exp(-1.272345397*(-1.566 + i5)^2)* + exp(-0.411738146*(-3.657 + i6)^2)*exp(-0.511069048*(-3.879 + i7)^2) + + 575.922022*exp(-14.39803222*(-0.497 + 0.1*i1)^2)*exp(-11.89542633*(-0.7697 + + 0.1*i2)^2)*exp(-7.568632175*(-0.7939 + 0.1*i3)^2)*exp(-1.761729316*(- + 1.274 + 0.1*i4)^2)*exp(-1.272345397*(-1.141 + i5)^2)*exp(-0.411738146*(-4 + + i6)^2)*exp(-0.511069048*(-2.515 + i7)^2) - 437.8894282*exp(-14.39803222 + *(-0.4939 + 0.1*i1)^2)*exp(-11.89542633*(-0.5576 + 0.1*i2)^2)*exp(- + 7.568632175*(-0.4545 + 0.1*i3)^2)*exp(-1.761729316*(-1.177 + 0.1*i4)^2)* + exp(-1.272345397*(-1.96 + i5)^2)*exp(-0.411738146*(-3.818 + i6)^2)*exp(- + 0.511069048*(-4 + i7)^2) + 419.2451451*exp(-14.39803222*(-0.5 + 0.1*i1)^2) + *exp(-11.89542633*(-0.9515 + 0.1*i2)^2)*exp(-7.568632175*(-0.4 + 0.1*i3)^2 + )*exp(-1.761729316*(-1.088 + 0.1*i4)^2)*exp(-1.272345397*(-1.455 + i5)^2)* + exp(-0.411738146*(-3.242 + i6)^2)*exp(-0.511069048*(-2.788 + i7)^2) + + 362.5236545*exp(-14.39803222*(-0.4182 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9455 + 0.1*i2)^2)*exp(-7.568632175*(-0.8364 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.258 + 0.1*i4)^2)*exp(-1.272345397*(-1.929 + i5)^2)*exp(- + 0.411738146*(-3.465 + i6)^2)*exp(-0.511069048*(-4.606 + i7)^2) - + 27.23825463*exp(-14.39803222*(-0.3636 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7818 + 0.1*i2)^2)*exp(-7.568632175*(-1 + 0.1*i3)^2)*exp(-1.761729316*(- + 0.9909 + 0.1*i4)^2)*exp(-1.272345397*(-1.535 + i5)^2)*exp(-0.411738146*(- + 3.768 + i6)^2)*exp(-0.511069048*(-4.667 + i7)^2) + 138.3856804*exp(- + 14.39803222*(-0.4091 + 0.1*i1)^2)*exp(-11.89542633*(-0.7212 + 0.1*i2)^2)* + exp(-7.568632175*(-0.9273 + 0.1*i3)^2)*exp(-1.761729316*(-1.371 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.04 + i5)^2)*exp(-0.411738146*(-3.747 + i6)^2)*exp( + -0.511069048*(-4.152 + i7)^2) - 246.7583469*exp(-14.39803222*(-0.4455 + + 0.1*i1)^2)*exp(-11.89542633*(-0.4242 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5879 + 0.1*i3)^2)*exp(-1.761729316*(-0.9182 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.626 + i5)^2)*exp(-0.411738146*(-3 + i6)^2)*exp(- + 0.511069048*(-3.091 + i7)^2) + 435.8969372*exp(-14.39803222*(-0.3667 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.8424 + 0.1*i2)^2)*exp(-7.568632175*(-0.8242 + + 0.1*i3)^2)*exp(-1.761729316*(-1.29 + 0.1*i4)^2)*exp(-1.272345397*(-2 + + i5)^2)*exp(-0.411738146*(-3.485 + i6)^2)*exp(-0.511069048*(-2.485 + i7)^2) + + 706.1351709*exp(-14.39803222*(-0.4 + 0.1*i1)^2)*exp(-11.89542633*(-0.6 + + 0.1*i2)^2)*exp(-7.568632175*(-0.4364 + 0.1*i3)^2)*exp(-1.761729316*(- + 1.056 + 0.1*i4)^2)*exp(-1.272345397*(-1.091 + i5)^2)*exp(-0.411738146*(- + 3.202 + i6)^2)*exp(-0.511069048*(-2.606 + i7)^2) - 168.3017367*exp(- + 14.39803222*(-0.5303 + 0.1*i1)^2)*exp(-11.89542633*(-0.8545 + 0.1*i2)^2)* + exp(-7.568632175*(-0.9212 + 0.1*i3)^2)*exp(-1.761729316*(-0.8778 + 0.1*i4) + ^2)*exp(-1.272345397*(-1.616 + i5)^2)*exp(-0.411738146*(-3.232 + i6)^2)* + exp(-0.511069048*(-4.727 + i7)^2) + 9.669184435*exp(-14.39803222*(-0.3879 + + 0.1*i1)^2)*exp(-11.89542633*(-0.5515 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5576 + 0.1*i3)^2)*exp(-1.761729316*(-0.7808 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.444 + i5)^2)*exp(-0.411738146*(-3.677 + i6)^2)*exp(- + 0.511069048*(-2.03 + i7)^2) - 403.7308366*exp(-14.39803222*(-0.4515 + 0.1* + i1)^2)*exp(-11.89542633*(-0.7273 + 0.1*i2)^2)*exp(-7.568632175*(-0.8727 + + 0.1*i3)^2)*exp(-1.761729316*(-0.8131 + 0.1*i4)^2)*exp(-1.272345397*(-1.828 + + i5)^2)*exp(-0.411738146*(-3.717 + i6)^2)*exp(-0.511069048*(-2.061 + i7) + ^2) - 343.3026644*exp(-14.39803222*(-0.4818 + 0.1*i1)^2)*exp(-11.89542633* + (-0.4121 + 0.1*i2)^2)*exp(-7.568632175*(-0.5515 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.064 + 0.1*i4)^2)*exp(-1.272345397*(-1.202 + i5)^2)*exp(- + 0.411738146*(-3.404 + i6)^2)*exp(-0.511069048*(-4.788 + i7)^2) + + 124.2656507*exp(-14.39803222*(-0.5515 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8182 + 0.1*i2)^2)*exp(-7.568632175*(-0.9636 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.443 + 0.1*i4)^2)*exp(-1.272345397*(-1.606 + i5)^2)*exp(- + 0.411738146*(-3.263 + i6)^2)*exp(-0.511069048*(-3.667 + i7)^2) + + 510.8900951*exp(-14.39803222*(-0.4667 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4727 + 0.1*i2)^2)*exp(-7.568632175*(-0.7818 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.136 + 0.1*i4)^2)*exp(-1.272345397*(-1.545 + i5)^2)*exp(- + 0.411738146*(-3.99 + i6)^2)*exp(-0.511069048*(-4.758 + i7)^2) + + 820.6261548*exp(-14.39803222*(-0.5606 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7758 + 0.1*i2)^2)*exp(-7.568632175*(-0.5273 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9263 + 0.1*i4)^2)*exp(-1.272345397*(-1.576 + i5)^2)*exp(- + 0.411738146*(-3.919 + i6)^2)*exp(-0.511069048*(-2.394 + i7)^2) - + 193.0322696*exp(-14.39803222*(-0.4333 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5636 + 0.1*i2)^2)*exp(-7.568632175*(-0.9818 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7081 + 0.1*i4)^2)*exp(-1.272345397*(-1.657 + i5)^2)*exp(- + 0.411738146*(-3.273 + i6)^2)*exp(-0.511069048*(-3.455 + i7)^2) - + 1504.457386*exp(-14.39803222*(-0.5333 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8303 + 0.1*i2)^2)*exp(-7.568632175*(-0.6061 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9424 + 0.1*i4)^2)*exp(-1.272345397*(-1 + i5)^2)*exp(- + 0.411738146*(-3.545 + i6)^2)*exp(-0.511069048*(-2.303 + i7)^2) + + 147.8075932*exp(-14.39803222*(-0.3788 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9152 + 0.1*i2)^2)*exp(-7.568632175*(-0.7515 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8455 + 0.1*i4)^2)*exp(-1.272345397*(-1.212 + i5)^2)*exp(- + 0.411738146*(-3.394 + i6)^2)*exp(-0.511069048*(-4.879 + i7)^2) - + 933.3359224*exp(-14.39803222*(-0.4909 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8727 + 0.1*i2)^2)*exp(-7.568632175*(-0.4424 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.047 + 0.1*i4)^2)*exp(-1.272345397*(-1.02 + i5)^2)*exp(- + 0.411738146*(-3.556 + i6)^2)*exp(-0.511069048*(-4.303 + i7)^2)) + <= 346.198237; + + -(132.5888492*exp(-14.39803222*(-0.303 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.697 + 0.1*i2)^2)*exp(-7.568632175*(-0.8061 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.9586 + 0.1*i4)^2)*exp(-1.272345397*(-1.758 + i5)^2)*exp(-0.411738146* + (-3.141 + i6)^2)*exp(-0.511069048*(-4.424 + i7)^2) + 281.6716948*exp(- + 14.39803222*(-0.5364 + 0.1*i1)^2)*exp(-11.89542633*(-0.9697 + 0.1*i2)^2)* + exp(-7.568632175*(-0.4909 + 0.1*i3)^2)*exp(-1.761729316*(-1.161 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.778 + i5)^2)*exp(-0.411738146*(-3.778 + i6)^2)* + exp(-0.511069048*(-4.091 + i7)^2) + 345.1169117*exp(-14.39803222*(-0.503 + + 0.1*i1)^2)*exp(-11.89542633*(-0.6182 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.4121 + 0.1*i3)^2)*exp(-1.761729316*(-1.419 + 0.1*i4)^2)*exp(-1.272345397 + *(-1.333 + i5)^2)*exp(-0.411738146*(-3.152 + i6)^2)*exp(-0.511069048*(- + 3.697 + i7)^2) + 238.2880881*exp(-14.39803222*(-0.4606 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.903 + 0.1*i2)^2)*exp(-7.568632175*(-0.7576 + 0.1*i3)^2)* + exp(-1.761729316*(-0.7727 + 0.1*i4)^2)*exp(-1.272345397*(-1.242 + i5)^2)* + exp(-0.411738146*(-3.98 + i6)^2)*exp(-0.511069048*(-3.424 + i7)^2) + + 385.1009351*exp(-14.39803222*(-0.3 + 0.1*i1)^2)*exp(-11.89542633*(-0.7636 + + 0.1*i2)^2)*exp(-7.568632175*(-0.8606 + 0.1*i3)^2)*exp(-1.761729316*(- + 1.153 + 0.1*i4)^2)*exp(-1.272345397*(-1.556 + i5)^2)*exp(-0.411738146*(- + 3.939 + i6)^2)*exp(-0.511069048*(-2.818 + i7)^2) + 470.395426*exp(- + 14.39803222*(-0.5879 + 0.1*i1)^2)*exp(-11.89542633*(-0.703 + 0.1*i2)^2)* + exp(-7.568632175*(-0.4788 + 0.1*i3)^2)*exp(-1.761729316*(-1.039 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.646 + i5)^2)*exp(-0.411738146*(-3.222 + i6)^2)* + exp(-0.511069048*(-4.636 + i7)^2) - 241.2853194*exp(-14.39803222*(-0.4121 + + 0.1*i1)^2)*exp(-11.89542633*(-0.4424 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5939 + 0.1*i3)^2)*exp(-1.761729316*(-1.46 + 0.1*i4)^2)*exp(-1.272345397* + (-1.232 + i5)^2)*exp(-0.411738146*(-3.788 + i6)^2)*exp(-0.511069048*(- + 3.848 + i7)^2) + 406.7501983*exp(-14.39803222*(-0.5576 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.8848 + 0.1*i2)^2)*exp(-7.568632175*(-0.8121 + 0.1*i3)^2)* + exp(-1.761729316*(-1.128 + 0.1*i4)^2)*exp(-1.272345397*(-1.263 + i5)^2)* + exp(-0.411738146*(-3.808 + i6)^2)*exp(-0.511069048*(-4.818 + i7)^2) + + 571.6600589*exp(-14.39803222*(-0.4273 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4848 + 0.1*i2)^2)*exp(-7.568632175*(-0.9697 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9667 + 0.1*i4)^2)*exp(-1.272345397*(-1.364 + i5)^2)*exp(- + 0.411738146*(-3.869 + i6)^2)*exp(-0.511069048*(-2.667 + i7)^2) + + 54.52027037*exp(-14.39803222*(-0.5455 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4061 + 0.1*i2)^2)*exp(-7.568632175*(-0.6303 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.427 + 0.1*i4)^2)*exp(-1.272345397*(-1.747 + i5)^2)*exp(- + 0.411738146*(-3.444 + i6)^2)*exp(-0.511069048*(-3.576 + i7)^2) - + 97.00801283*exp(-14.39803222*(-0.5394 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5273 + 0.1*i2)^2)*exp(-7.568632175*(-0.5636 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.355 + 0.1*i4)^2)*exp(-1.272345397*(-1.253 + i5)^2)*exp(- + 0.411738146*(-3.566 + i6)^2)*exp(-0.511069048*(-2.121 + i7)^2) + + 74.88071804*exp(-14.39803222*(-0.5273 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8121 + 0.1*i2)^2)*exp(-7.568632175*(-0.8424 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8535 + 0.1*i4)^2)*exp(-1.272345397*(-1.899 + i5)^2)*exp(- + 0.411738146*(-3.889 + i6)^2)*exp(-0.511069048*(-4.061 + i7)^2) - + 37.7191694*exp(-14.39803222*(-0.5727 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4909 + 0.1*i2)^2)*exp(-7.568632175*(-0.9333 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.306 + 0.1*i4)^2)*exp(-1.272345397*(-1.273 + i5)^2)*exp(- + 0.411738146*(-3.707 + i6)^2)*exp(-0.511069048*(-3.485 + i7)^2) + + 289.7372247*exp(-14.39803222*(-0.3091 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6364 + 0.1*i2)^2)*exp(-7.568632175*(-0.5758 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.282 + 0.1*i4)^2)*exp(-1.272345397*(-1.222 + i5)^2)*exp(- + 0.411738146*(-3.192 + i6)^2)*exp(-0.511069048*(-4.455 + i7)^2) + + 1112.680338*exp(-14.39803222*(-0.4364 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7394 + 0.1*i2)^2)*exp(-7.568632175*(-0.4485 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.403 + 0.1*i4)^2)*exp(-1.272345397*(-1.465 + i5)^2)*exp(- + 0.411738146*(-3.687 + i6)^2)*exp(-0.511069048*(-4.939 + i7)^2) - + 377.7406629*exp(-14.39803222*(-0.5636 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6485 + 0.1*i2)^2)*exp(-7.568632175*(-0.7273 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.346 + 0.1*i4)^2)*exp(-1.272345397*(-1.01 + i5)^2)*exp(- + 0.411738146*(-3.333 + i6)^2)*exp(-0.511069048*(-4.364 + i7)^2) - + 93.67002729*exp(-14.39803222*(-0.597 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7152 + 0.1*i2)^2)*exp(-7.568632175*(-0.703 + 0.1*i3)^2)*exp(-1.761729316 + *(-1.209 + 0.1*i4)^2)*exp(-1.272345397*(-1.354 + i5)^2)*exp(-0.411738146*( + -3.01 + i6)^2)*exp(-0.511069048*(-2.758 + i7)^2) + 967.7576673*exp(- + 14.39803222*(-0.5152 + 0.1*i1)^2)*exp(-11.89542633*(-0.6606 + 0.1*i2)^2)* + exp(-7.568632175*(-0.503 + 0.1*i3)^2)*exp(-1.761729316*(-0.7566 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.424 + i5)^2)*exp(-0.411738146*(-3.848 + i6)^2)* + exp(-0.511069048*(-4.576 + i7)^2) - 411.2508748*exp(-14.39803222*(-0.5758 + + 0.1*i1)^2)*exp(-11.89542633*(-0.5152 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.4303 + 0.1*i3)^2)*exp(-1.761729316*(-0.8697 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.374 + i5)^2)*exp(-0.411738146*(-3.414 + i6)^2)*exp(- + 0.511069048*(-3.061 + i7)^2) - 1711.412724*exp(-14.39803222*(-0.3939 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.7091 + 0.1*i2)^2)*exp(-7.568632175*(-0.4242 + + 0.1*i3)^2)*exp(-1.761729316*(-0.8293 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.434 + i5)^2)*exp(-0.411738146*(-3.121 + i6)^2)*exp(-0.511069048*(-4.394 + + i7)^2) - 30.24377566*exp(-14.39803222*(-0.403 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.5333 + 0.1*i2)^2)*exp(-7.568632175*(-0.5152 + 0.1*i3)^2)* + exp(-1.761729316*(-1.233 + 0.1*i4)^2)*exp(-1.272345397*(-1.889 + i5)^2)* + exp(-0.411738146*(-3.172 + i6)^2)*exp(-0.511069048*(-4.545 + i7)^2) - + 336.3179775*exp(-14.39803222*(-0.5061 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6121 + 0.1*i2)^2)*exp(-7.568632175*(-0.4606 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.144 + 0.1*i4)^2)*exp(-1.272345397*(-1.879 + i5)^2)*exp(- + 0.411738146*(-3.343 + i6)^2)*exp(-0.511069048*(-2.152 + i7)^2) - + 205.5457412*exp(-14.39803222*(-0.4152 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8242 + 0.1*i2)^2)*exp(-7.568632175*(-0.6545 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.411 + 0.1*i4)^2)*exp(-1.272345397*(-1.525 + i5)^2)*exp(- + 0.411738146*(-3.04 + i6)^2)*exp(-0.511069048*(-2.273 + i7)^2) - + 568.6750922*exp(-14.39803222*(-0.4545 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.503 + 0.1*i2)^2)*exp(-7.568632175*(-0.7152 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.797 + 0.1*i4)^2)*exp(-1.272345397*(-1.798 + i5)^2)*exp(-0.411738146*( + -3.424 + i6)^2)*exp(-0.511069048*(-4.97 + i7)^2) - 293.3297864*exp(- + 14.39803222*(-0.3606 + 0.1*i1)^2)*exp(-11.89542633*(-0.8 + 0.1*i2)^2)*exp( + -7.568632175*(-0.9394 + 0.1*i3)^2)*exp(-1.761729316*(-0.8212 + 0.1*i4)^2)* + exp(-1.272345397*(-1.101 + i5)^2)*exp(-0.411738146*(-3.535 + i6)^2)*exp(- + 0.511069048*(-2.909 + i7)^2) + 207.015601*exp(-14.39803222*(-0.5818 + 0.1* + i1)^2)*exp(-11.89542633*(-0.9394 + 0.1*i2)^2)*exp(-7.568632175*(-0.6364 + + 0.1*i3)^2)*exp(-1.761729316*(-1.435 + 0.1*i4)^2)*exp(-1.272345397*(-1.313 + + i5)^2)*exp(-0.411738146*(-3.576 + i6)^2)*exp(-0.511069048*(-3.212 + i7) + ^2) - 1245.008172*exp(-14.39803222*(-0.4485 + 0.1*i1)^2)*exp(-11.89542633* + (-0.9273 + 0.1*i2)^2)*exp(-7.568632175*(-0.6 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.9505 + 0.1*i4)^2)*exp(-1.272345397*(-1.909 + i5)^2)*exp(-0.411738146* + (-3.051 + i6)^2)*exp(-0.511069048*(-3.97 + i7)^2) + 1023.785963*exp(- + 14.39803222*(-0.3394 + 0.1*i1)^2)*exp(-11.89542633*(-0.8788 + 0.1*i2)^2)* + exp(-7.568632175*(-0.4727 + 0.1*i3)^2)*exp(-1.761729316*(-0.7646 + 0.1*i4) + ^2)*exp(-1.272345397*(-1.293 + i5)^2)*exp(-0.411738146*(-3.616 + i6)^2)* + exp(-0.511069048*(-3.273 + i7)^2) + 589.981945*exp(-14.39803222*(-0.3515 + + 0.1*i1)^2)*exp(-11.89542633*(-0.9576 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.8182 + 0.1*i3)^2)*exp(-1.761729316*(-0.7485 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.768 + i5)^2)*exp(-0.411738146*(-3.505 + i6)^2)*exp(- + 0.511069048*(-3.394 + i7)^2) - 33.94681981*exp(-14.39803222*(-0.4061 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.6667 + 0.1*i2)^2)*exp(-7.568632175*(-0.9576 + + 0.1*i3)^2)*exp(-1.761729316*(-1.096 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.131 + i5)^2)*exp(-0.411738146*(-3.071 + i6)^2)*exp(-0.511069048*(-4.242 + + i7)^2) - 204.9251252*exp(-14.39803222*(-0.5788 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.6545 + 0.1*i2)^2)*exp(-7.568632175*(-0.7697 + 0.1*i3)^2)* + exp(-1.761729316*(-0.9101 + 0.1*i4)^2)*exp(-1.272345397*(-1.97 + i5)^2)* + exp(-0.411738146*(-3.162 + i6)^2)*exp(-0.511069048*(-3.364 + i7)^2) - + 34.84977186*exp(-14.39803222*(-0.4788 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9818 + 0.1*i2)^2)*exp(-7.568632175*(-0.9879 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.193 + 0.1*i4)^2)*exp(-1.272345397*(-1.586 + i5)^2)*exp(- + 0.411738146*(-3.798 + i6)^2)*exp(-0.511069048*(-3.03 + i7)^2) + + 8.724479117*exp(-14.39803222*(-0.3182 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5697 + 0.1*i2)^2)*exp(-7.568632175*(-0.7091 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.217 + 0.1*i4)^2)*exp(-1.272345397*(-1.061 + i5)^2)*exp(- + 0.411738146*(-3.646 + i6)^2)*exp(-0.511069048*(-2.455 + i7)^2) + + 405.8764684*exp(-14.39803222*(-0.3909 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8606 + 0.1*i2)^2)*exp(-7.568632175*(-0.5818 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.468 + 0.1*i4)^2)*exp(-1.272345397*(-1.03 + i5)^2)*exp(- + 0.411738146*(-3.455 + i6)^2)*exp(-0.511069048*(-3.242 + i7)^2) + + 70.56713909*exp(-14.39803222*(-0.5909 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6303 + 0.1*i2)^2)*exp(-7.568632175*(-0.5091 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.266 + 0.1*i4)^2)*exp(-1.272345397*(-1.303 + i5)^2)*exp(- + 0.411738146*(-3.899 + i6)^2)*exp(-0.511069048*(-3.909 + i7)^2) - + 464.6685065*exp(-14.39803222*(-0.5939 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6727 + 0.1*i2)^2)*exp(-7.568632175*(-0.7758 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.249 + 0.1*i4)^2)*exp(-1.272345397*(-1.818 + i5)^2)*exp(- + 0.411738146*(-3.586 + i6)^2)*exp(-0.511069048*(-4.848 + i7)^2) + + 397.7430488*exp(-14.39803222*(-0.5242 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8061 + 0.1*i2)^2)*exp(-7.568632175*(-0.5697 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.452 + 0.1*i4)^2)*exp(-1.272345397*(-1.949 + i5)^2)*exp(- + 0.411738146*(-3.253 + i6)^2)*exp(-0.511069048*(-3.606 + i7)^2) - + 671.8382398*exp(-14.39803222*(-0.5667 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9636 + 0.1*i2)^2)*exp(-7.568632175*(-0.6182 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7242 + 0.1*i4)^2)*exp(-1.272345397*(-1.495 + i5)^2)*exp(- + 0.411738146*(-3.475 + i6)^2)*exp(-0.511069048*(-3.818 + i7)^2) + + 75.11580719*exp(-14.39803222*(-0.3364 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5091 + 0.1*i2)^2)*exp(-7.568632175*(-0.697 + 0.1*i3)^2)*exp(-1.761729316 + *(-0.7323 + 0.1*i4)^2)*exp(-1.272345397*(-1.182 + i5)^2)*exp(-0.411738146* + (-3.313 + i6)^2)*exp(-0.511069048*(-3.727 + i7)^2) - 71.73638396*exp(- + 14.39803222*(-0.4212 + 0.1*i1)^2)*exp(-11.89542633*(-0.6061 + 0.1*i2)^2)* + exp(-7.568632175*(-0.8485 + 0.1*i3)^2)*exp(-1.761729316*(-1.476 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.505 + i5)^2)*exp(-0.411738146*(-3.364 + i6)^2)* + exp(-0.511069048*(-5 + i7)^2) + 1109.246749*exp(-14.39803222*(-0.3697 + + 0.1*i1)^2)*exp(-11.89542633*(-0.8485 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5455 + 0.1*i3)^2)*exp(-1.761729316*(-0.902 + 0.1*i4)^2)*exp(-1.272345397 + *(-1.788 + i5)^2)*exp(-0.411738146*(-3.697 + i6)^2)*exp(-0.511069048*(- + 4.909 + i7)^2) - 199.3907481*exp(-14.39803222*(-0.5121 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.5758 + 0.1*i2)^2)*exp(-7.568632175*(-0.9091 + 0.1*i3)^2)* + exp(-1.761729316*(-0.8051 + 0.1*i4)^2)*exp(-1.272345397*(-1.152 + i5)^2)* + exp(-0.411738146*(-3.667 + i6)^2)*exp(-0.511069048*(-4.485 + i7)^2) + + 7.19431001*exp(-14.39803222*(-0.4697 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7455 + 0.1*i2)^2)*exp(-7.568632175*(-0.9515 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.33 + 0.1*i4)^2)*exp(-1.272345397*(-1.162 + i5)^2)*exp(- + 0.411738146*(-3.354 + i6)^2)*exp(-0.511069048*(-2.182 + i7)^2) + + 1144.04244*exp(-14.39803222*(-0.4758 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6848 + 0.1*i2)^2)*exp(-7.568632175*(-0.4848 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7 + 0.1*i4)^2)*exp(-1.272345397*(-1.939 + i5)^2)*exp(- + 0.411738146*(-3.515 + i6)^2)*exp(-0.511069048*(-3.333 + i7)^2) - + 135.6296964*exp(-14.39803222*(-0.3152 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5879 + 0.1*i2)^2)*exp(-7.568632175*(-0.8667 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.031 + 0.1*i4)^2)*exp(-1.272345397*(-1.485 + i5)^2)*exp(- + 0.411738146*(-3.182 + i6)^2)*exp(-0.511069048*(-2.242 + i7)^2) - + 1081.203948*exp(-14.39803222*(-0.3818 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7333 + 0.1*i2)^2)*exp(-7.568632175*(-0.4061 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.201 + 0.1*i4)^2)*exp(-1.272345397*(-1.283 + i5)^2)*exp(- + 0.411738146*(-3.949 + i6)^2)*exp(-0.511069048*(-3 + i7)^2) + 39.13303706* + exp(-14.39803222*(-0.5182 + 0.1*i1)^2)*exp(-11.89542633*(-0.9939 + 0.1*i2) + ^2)*exp(-7.568632175*(-0.8788 + 0.1*i3)^2)*exp(-1.761729316*(-1.072 + 0.1* + i4)^2)*exp(-1.272345397*(-1.081 + i5)^2)*exp(-0.411738146*(-3.303 + i6)^2) + *exp(-0.511069048*(-3.545 + i7)^2) + 1006.537229*exp(-14.39803222*(-0.4424 + + 0.1*i1)^2)*exp(-11.89542633*(-0.8364 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5333 + 0.1*i3)^2)*exp(-1.761729316*(-1.484 + 0.1*i4)^2)*exp(-1.272345397 + *(-1.677 + i5)^2)*exp(-0.411738146*(-3.737 + i6)^2)*exp(-0.511069048*(- + 2.333 + i7)^2) + 337.9329202*exp(-14.39803222*(-0.397 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.5939 + 0.1*i2)^2)*exp(-7.568632175*(-0.8545 + 0.1*i3)^2)* + exp(-1.761729316*(-1.363 + 0.1*i4)^2)*exp(-1.272345397*(-1.869 + i5)^2)* + exp(-0.411738146*(-3.02 + i6)^2)*exp(-0.511069048*(-3.515 + i7)^2) - + 22.21000788*exp(-14.39803222*(-0.4879 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4788 + 0.1*i2)^2)*exp(-7.568632175*(-0.6121 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8939 + 0.1*i4)^2)*exp(-1.272345397*(-1.051 + i5)^2)*exp(- + 0.411738146*(-3.879 + i6)^2)*exp(-0.511069048*(-3.182 + i7)^2) - + 159.9670308*exp(-14.39803222*(-0.3545 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4364 + 0.1*i2)^2)*exp(-7.568632175*(-0.7333 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9828 + 0.1*i4)^2)*exp(-1.272345397*(-1.99 + i5)^2)*exp(- + 0.411738146*(-3.495 + i6)^2)*exp(-0.511069048*(-2.97 + i7)^2) + + 249.7148274*exp(-14.39803222*(-0.5424 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6909 + 0.1*i2)^2)*exp(-7.568632175*(-0.6727 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7889 + 0.1*i4)^2)*exp(-1.272345397*(-1.121 + i5)^2)*exp(- + 0.411738146*(-3.091 + i6)^2)*exp(-0.511069048*(-4.121 + i7)^2) + + 762.6273492*exp(-14.39803222*(-0.4848 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7879 + 0.1*i2)^2)*exp(-7.568632175*(-0.6909 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7162 + 0.1*i4)^2)*exp(-1.272345397*(-1.475 + i5)^2)*exp(- + 0.411738146*(-3.131 + i6)^2)*exp(-0.511069048*(-2.212 + i7)^2) - + 149.5690579*exp(-14.39803222*(-0.4394 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.897 + 0.1*i2)^2)*exp(-7.568632175*(-0.9758 + 0.1*i3)^2)*exp(-1.761729316 + *(-1.023 + 0.1*i4)^2)*exp(-1.272345397*(-1.667 + i5)^2)*exp(-0.411738146*( + -3.061 + i6)^2)*exp(-0.511069048*(-2.879 + i7)^2) - 404.4885462*exp(- + 14.39803222*(-0.3848 + 0.1*i1)^2)*exp(-11.89542633*(-0.5394 + 0.1*i2)^2)* + exp(-7.568632175*(-0.9152 + 0.1*i3)^2)*exp(-1.761729316*(-1.5 + 0.1*i4)^2) + *exp(-1.272345397*(-1.596 + i5)^2)*exp(-0.411738146*(-3.636 + i6)^2)*exp(- + 0.511069048*(-2.727 + i7)^2) + 339.6891902*exp(-14.39803222*(-0.5545 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.9758 + 0.1*i2)^2)*exp(-7.568632175*(-0.7212 + + 0.1*i3)^2)*exp(-1.761729316*(-1.08 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.838 + i5)^2)*exp(-0.411738146*(-3.434 + i6)^2)*exp(-0.511069048*(-2.364 + + i7)^2) - 917.2180104*exp(-14.39803222*(-0.3758 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.8667 + 0.1*i2)^2)*exp(-7.568632175*(-0.5394 + 0.1*i3)^2)* + exp(-1.761729316*(-1.015 + 0.1*i4)^2)*exp(-1.272345397*(-1.919 + i5)^2)* + exp(-0.411738146*(-3.909 + i6)^2)*exp(-0.511069048*(-2.939 + i7)^2) - + 852.898162*exp(-14.39803222*(-0.3212 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7576 + 0.1*i2)^2)*exp(-7.568632175*(-0.5212 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9343 + 0.1*i4)^2)*exp(-1.272345397*(-1.808 + i5)^2)*exp(- + 0.411738146*(-3.212 + i6)^2)*exp(-0.511069048*(-2.545 + i7)^2) + + 318.8937834*exp(-14.39803222*(-0.4727 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9333 + 0.1*i2)^2)*exp(-7.568632175*(-0.6485 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.322 + 0.1*i4)^2)*exp(-1.272345397*(-1.394 + i5)^2)*exp(- + 0.411738146*(-3.081 + i6)^2)*exp(-0.511069048*(-4.697 + i7)^2) - + 110.3406826*exp(-14.39803222*(-0.4576 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5455 + 0.1*i2)^2)*exp(-7.568632175*(-0.9939 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.169 + 0.1*i4)^2)*exp(-1.272345397*(-1.98 + i5)^2)*exp(- + 0.411738146*(-3.626 + i6)^2)*exp(-0.511069048*(-3.939 + i7)^2) - + 516.8634363*exp(-14.39803222*(-0.3242 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9212 + 0.1*i2)^2)*exp(-7.568632175*(-0.4667 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.314 + 0.1*i4)^2)*exp(-1.272345397*(-1.697 + i5)^2)*exp(- + 0.411738146*(-3.374 + i6)^2)*exp(-0.511069048*(-3.758 + i7)^2) - + 186.5553713*exp(-14.39803222*(-0.5697 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4182 + 0.1*i2)^2)*exp(-7.568632175*(-0.7394 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8374 + 0.1*i4)^2)*exp(-1.272345397*(-1.717 + i5)^2)*exp(- + 0.411738146*(-3.727 + i6)^2)*exp(-0.511069048*(-3.303 + i7)^2) - + 1121.405994*exp(-14.39803222*(-0.3727 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9879 + 0.1*i2)^2)*exp(-7.568632175*(-0.6848 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.104 + 0.1*i4)^2)*exp(-1.272345397*(-1.343 + i5)^2)*exp(- + 0.411738146*(-3.606 + i6)^2)*exp(-0.511069048*(-2 + i7)^2) - 658.2686839* + exp(-14.39803222*(-0.5091 + 0.1*i1)^2)*exp(-11.89542633*(-0.4667 + 0.1*i2) + ^2)*exp(-7.568632175*(-0.8303 + 0.1*i3)^2)*exp(-1.761729316*(-0.8859 + 0.1 + *i4)^2)*exp(-1.272345397*(-1.111 + i5)^2)*exp(-0.411738146*(-3.283 + i6)^2 + )*exp(-0.511069048*(-2.576 + i7)^2) + 692.1283846*exp(-14.39803222*(- + 0.3485 + 0.1*i1)^2)*exp(-11.89542633*(-0.9091 + 0.1*i2)^2)*exp(- + 7.568632175*(-0.6606 + 0.1*i3)^2)*exp(-1.761729316*(-0.999 + 0.1*i4)^2)* + exp(-1.272345397*(-1.172 + i5)^2)*exp(-0.411738146*(-3.03 + i6)^2)*exp(- + 0.511069048*(-3.152 + i7)^2) - 511.5443228*exp(-14.39803222*(-0.5848 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.6788 + 0.1*i2)^2)*exp(-7.568632175*(-0.8 + + 0.1*i3)^2)*exp(-1.761729316*(-1.298 + 0.1*i4)^2)*exp(-1.272345397*(-1.848 + + i5)^2)*exp(-0.411738146*(-3.828 + i6)^2)*exp(-0.511069048*(-2.636 + i7) + ^2) + 334.7156403*exp(-14.39803222*(-0.3303 + 0.1*i1)^2)*exp(-11.89542633* + (-0.5212 + 0.1*i2)^2)*exp(-7.568632175*(-0.497 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.395 + 0.1*i4)^2)*exp(-1.272345397*(-1.636 + i5)^2)*exp(- + 0.411738146*(-3.384 + i6)^2)*exp(-0.511069048*(-2.697 + i7)^2) + + 58.76270116*exp(-14.39803222*(-0.3061 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.6242 + 0.1*i2)^2)*exp(-7.568632175*(-0.6788 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.338 + 0.1*i4)^2)*exp(-1.272345397*(-1.859 + i5)^2)*exp(- + 0.411738146*(-3.758 + i6)^2)*exp(-0.511069048*(-4.273 + i7)^2) + + 276.0825488*exp(-14.39803222*(-0.5485 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4545 + 0.1*i2)^2)*exp(-7.568632175*(-0.8848 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.112 + 0.1*i4)^2)*exp(-1.272345397*(-1.515 + i5)^2)*exp(- + 0.411738146*(-3.101 + i6)^2)*exp(-0.511069048*(-4.333 + i7)^2) - + 484.9114901*exp(-14.39803222*(-0.4636 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7939 + 0.1*i2)^2)*exp(-7.568632175*(-0.7879 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.492 + 0.1*i4)^2)*exp(-1.272345397*(-1.707 + i5)^2)*exp(- + 0.411738146*(-3.97 + i6)^2)*exp(-0.511069048*(-4.03 + i7)^2) - 183.1540339 + *exp(-14.39803222*(-0.3455 + 0.1*i1)^2)*exp(-11.89542633*(-0.5818 + 0.1*i2 + )^2)*exp(-7.568632175*(-0.7455 + 0.1*i3)^2)*exp(-1.761729316*(-0.7404 + + 0.1*i4)^2)*exp(-1.272345397*(-1.687 + i5)^2)*exp(-0.411738146*(-3.929 + i6 + )^2)*exp(-0.511069048*(-3.788 + i7)^2) - 137.5395331*exp(-14.39803222*(- + 0.6 + 0.1*i1)^2)*exp(-11.89542633*(-0.7515 + 0.1*i2)^2)*exp(-7.568632175*( + -0.9455 + 0.1*i3)^2)*exp(-1.761729316*(-0.8616 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.384 + i5)^2)*exp(-0.411738146*(-3.596 + i6)^2)*exp(- + 0.511069048*(-2.848 + i7)^2) - 231.037725*exp(-14.39803222*(-0.3273 + 0.1* + i1)^2)*exp(-11.89542633*(-0.4 + 0.1*i2)^2)*exp(-7.568632175*(-0.897 + 0.1* + i3)^2)*exp(-1.761729316*(-1.12 + 0.1*i4)^2)*exp(-1.272345397*(-1.404 + i5) + ^2)*exp(-0.411738146*(-3.525 + i6)^2)*exp(-0.511069048*(-4.182 + i7)^2) + + 342.8781129*exp(-14.39803222*(-0.5212 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.497 + 0.1*i2)^2)*exp(-7.568632175*(-0.8909 + 0.1*i3)^2)*exp(-1.761729316 + *(-1.185 + 0.1*i4)^2)*exp(-1.272345397*(-1.737 + i5)^2)*exp(-0.411738146*( + -3.293 + i6)^2)*exp(-0.511069048*(-2.091 + i7)^2) - 38.35870668*exp(- + 14.39803222*(-0.4303 + 0.1*i1)^2)*exp(-11.89542633*(-0.4606 + 0.1*i2)^2)* + exp(-7.568632175*(-0.6242 + 0.1*i3)^2)*exp(-1.761729316*(-1.225 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.727 + i5)^2)*exp(-0.411738146*(-3.96 + i6)^2)*exp( + -0.511069048*(-2.424 + i7)^2) - 341.6383813*exp(-14.39803222*(-0.3121 + + 0.1*i1)^2)*exp(-11.89542633*(-0.8909 + 0.1*i2)^2)*exp(-7.568632175*(-0.903 + + 0.1*i3)^2)*exp(-1.761729316*(-1.387 + 0.1*i4)^2)*exp(-1.272345397*(- + 1.414 + i5)^2)*exp(-0.411738146*(-3.323 + i6)^2)*exp(-0.511069048*(-3.636 + + i7)^2) + 452.5072535*exp(-14.39803222*(-0.3424 + 0.1*i1)^2)*exp(- + 11.89542633*(-0.4485 + 0.1*i2)^2)*exp(-7.568632175*(-0.4182 + 0.1*i3)^2)* + exp(-1.761729316*(-0.9747 + 0.1*i4)^2)*exp(-1.272345397*(-1.566 + i5)^2)* + exp(-0.411738146*(-3.657 + i6)^2)*exp(-0.511069048*(-3.879 + i7)^2) + + 575.922022*exp(-14.39803222*(-0.497 + 0.1*i1)^2)*exp(-11.89542633*(-0.7697 + + 0.1*i2)^2)*exp(-7.568632175*(-0.7939 + 0.1*i3)^2)*exp(-1.761729316*(- + 1.274 + 0.1*i4)^2)*exp(-1.272345397*(-1.141 + i5)^2)*exp(-0.411738146*(-4 + + i6)^2)*exp(-0.511069048*(-2.515 + i7)^2) - 437.8894282*exp(-14.39803222 + *(-0.4939 + 0.1*i1)^2)*exp(-11.89542633*(-0.5576 + 0.1*i2)^2)*exp(- + 7.568632175*(-0.4545 + 0.1*i3)^2)*exp(-1.761729316*(-1.177 + 0.1*i4)^2)* + exp(-1.272345397*(-1.96 + i5)^2)*exp(-0.411738146*(-3.818 + i6)^2)*exp(- + 0.511069048*(-4 + i7)^2) + 419.2451451*exp(-14.39803222*(-0.5 + 0.1*i1)^2) + *exp(-11.89542633*(-0.9515 + 0.1*i2)^2)*exp(-7.568632175*(-0.4 + 0.1*i3)^2 + )*exp(-1.761729316*(-1.088 + 0.1*i4)^2)*exp(-1.272345397*(-1.455 + i5)^2)* + exp(-0.411738146*(-3.242 + i6)^2)*exp(-0.511069048*(-2.788 + i7)^2) + + 362.5236545*exp(-14.39803222*(-0.4182 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9455 + 0.1*i2)^2)*exp(-7.568632175*(-0.8364 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.258 + 0.1*i4)^2)*exp(-1.272345397*(-1.929 + i5)^2)*exp(- + 0.411738146*(-3.465 + i6)^2)*exp(-0.511069048*(-4.606 + i7)^2) - + 27.23825463*exp(-14.39803222*(-0.3636 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7818 + 0.1*i2)^2)*exp(-7.568632175*(-1 + 0.1*i3)^2)*exp(-1.761729316*(- + 0.9909 + 0.1*i4)^2)*exp(-1.272345397*(-1.535 + i5)^2)*exp(-0.411738146*(- + 3.768 + i6)^2)*exp(-0.511069048*(-4.667 + i7)^2) + 138.3856804*exp(- + 14.39803222*(-0.4091 + 0.1*i1)^2)*exp(-11.89542633*(-0.7212 + 0.1*i2)^2)* + exp(-7.568632175*(-0.9273 + 0.1*i3)^2)*exp(-1.761729316*(-1.371 + 0.1*i4)^ + 2)*exp(-1.272345397*(-1.04 + i5)^2)*exp(-0.411738146*(-3.747 + i6)^2)*exp( + -0.511069048*(-4.152 + i7)^2) - 246.7583469*exp(-14.39803222*(-0.4455 + + 0.1*i1)^2)*exp(-11.89542633*(-0.4242 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5879 + 0.1*i3)^2)*exp(-1.761729316*(-0.9182 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.626 + i5)^2)*exp(-0.411738146*(-3 + i6)^2)*exp(- + 0.511069048*(-3.091 + i7)^2) + 435.8969372*exp(-14.39803222*(-0.3667 + 0.1 + *i1)^2)*exp(-11.89542633*(-0.8424 + 0.1*i2)^2)*exp(-7.568632175*(-0.8242 + + 0.1*i3)^2)*exp(-1.761729316*(-1.29 + 0.1*i4)^2)*exp(-1.272345397*(-2 + + i5)^2)*exp(-0.411738146*(-3.485 + i6)^2)*exp(-0.511069048*(-2.485 + i7)^2) + + 706.1351709*exp(-14.39803222*(-0.4 + 0.1*i1)^2)*exp(-11.89542633*(-0.6 + + 0.1*i2)^2)*exp(-7.568632175*(-0.4364 + 0.1*i3)^2)*exp(-1.761729316*(- + 1.056 + 0.1*i4)^2)*exp(-1.272345397*(-1.091 + i5)^2)*exp(-0.411738146*(- + 3.202 + i6)^2)*exp(-0.511069048*(-2.606 + i7)^2) - 168.3017367*exp(- + 14.39803222*(-0.5303 + 0.1*i1)^2)*exp(-11.89542633*(-0.8545 + 0.1*i2)^2)* + exp(-7.568632175*(-0.9212 + 0.1*i3)^2)*exp(-1.761729316*(-0.8778 + 0.1*i4) + ^2)*exp(-1.272345397*(-1.616 + i5)^2)*exp(-0.411738146*(-3.232 + i6)^2)* + exp(-0.511069048*(-4.727 + i7)^2) + 9.669184435*exp(-14.39803222*(-0.3879 + + 0.1*i1)^2)*exp(-11.89542633*(-0.5515 + 0.1*i2)^2)*exp(-7.568632175*(- + 0.5576 + 0.1*i3)^2)*exp(-1.761729316*(-0.7808 + 0.1*i4)^2)*exp(- + 1.272345397*(-1.444 + i5)^2)*exp(-0.411738146*(-3.677 + i6)^2)*exp(- + 0.511069048*(-2.03 + i7)^2) - 403.7308366*exp(-14.39803222*(-0.4515 + 0.1* + i1)^2)*exp(-11.89542633*(-0.7273 + 0.1*i2)^2)*exp(-7.568632175*(-0.8727 + + 0.1*i3)^2)*exp(-1.761729316*(-0.8131 + 0.1*i4)^2)*exp(-1.272345397*(-1.828 + + i5)^2)*exp(-0.411738146*(-3.717 + i6)^2)*exp(-0.511069048*(-2.061 + i7) + ^2) - 343.3026644*exp(-14.39803222*(-0.4818 + 0.1*i1)^2)*exp(-11.89542633* + (-0.4121 + 0.1*i2)^2)*exp(-7.568632175*(-0.5515 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.064 + 0.1*i4)^2)*exp(-1.272345397*(-1.202 + i5)^2)*exp(- + 0.411738146*(-3.404 + i6)^2)*exp(-0.511069048*(-4.788 + i7)^2) + + 124.2656507*exp(-14.39803222*(-0.5515 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8182 + 0.1*i2)^2)*exp(-7.568632175*(-0.9636 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.443 + 0.1*i4)^2)*exp(-1.272345397*(-1.606 + i5)^2)*exp(- + 0.411738146*(-3.263 + i6)^2)*exp(-0.511069048*(-3.667 + i7)^2) + + 510.8900951*exp(-14.39803222*(-0.4667 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.4727 + 0.1*i2)^2)*exp(-7.568632175*(-0.7818 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.136 + 0.1*i4)^2)*exp(-1.272345397*(-1.545 + i5)^2)*exp(- + 0.411738146*(-3.99 + i6)^2)*exp(-0.511069048*(-4.758 + i7)^2) + + 820.6261548*exp(-14.39803222*(-0.5606 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.7758 + 0.1*i2)^2)*exp(-7.568632175*(-0.5273 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9263 + 0.1*i4)^2)*exp(-1.272345397*(-1.576 + i5)^2)*exp(- + 0.411738146*(-3.919 + i6)^2)*exp(-0.511069048*(-2.394 + i7)^2) - + 193.0322696*exp(-14.39803222*(-0.4333 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.5636 + 0.1*i2)^2)*exp(-7.568632175*(-0.9818 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.7081 + 0.1*i4)^2)*exp(-1.272345397*(-1.657 + i5)^2)*exp(- + 0.411738146*(-3.273 + i6)^2)*exp(-0.511069048*(-3.455 + i7)^2) - + 1504.457386*exp(-14.39803222*(-0.5333 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8303 + 0.1*i2)^2)*exp(-7.568632175*(-0.6061 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.9424 + 0.1*i4)^2)*exp(-1.272345397*(-1 + i5)^2)*exp(- + 0.411738146*(-3.545 + i6)^2)*exp(-0.511069048*(-2.303 + i7)^2) + + 147.8075932*exp(-14.39803222*(-0.3788 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.9152 + 0.1*i2)^2)*exp(-7.568632175*(-0.7515 + 0.1*i3)^2)*exp(- + 1.761729316*(-0.8455 + 0.1*i4)^2)*exp(-1.272345397*(-1.212 + i5)^2)*exp(- + 0.411738146*(-3.394 + i6)^2)*exp(-0.511069048*(-4.879 + i7)^2) - + 933.3359224*exp(-14.39803222*(-0.4909 + 0.1*i1)^2)*exp(-11.89542633*(- + 0.8727 + 0.1*i2)^2)*exp(-7.568632175*(-0.4424 + 0.1*i3)^2)*exp(- + 1.761729316*(-1.047 + 0.1*i4)^2)*exp(-1.272345397*(-1.02 + i5)^2)*exp(- + 0.411738146*(-3.556 + i6)^2)*exp(-0.511069048*(-4.303 + i7)^2)) + >= -53.8017630000004; +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/ex1252a.bch b/benchs/optim/benchs-minlp/ex1252a.bch new file mode 100644 index 000000000..40976299e --- /dev/null +++ b/benchs/optim/benchs-minlp/ex1252a.bch @@ -0,0 +1,90 @@ +variables +x1 in [0,80]; +x2 in [0,25]; +x3 in [0,45]; +x4 in [0,2950]; +x5 in [0,2950]; +x6 in [0,2950]; +x7 in [0,400]; +x8 in [0,400]; +x9 in [0,400]; +x10 in [0,350]; +x11 in [0,350]; +x12 in [0,350]; +x13 in [0,1]; +x14 in [0,1]; +x15 in [0,1]; +i16 in [0,3]; +i17 in [0,3]; +i18 in [0,3]; +i19 in [0,3]; +i20 in [0,3]; +i21 in [0,3]; +b22 in [0,1]; +b23 in [0,1]; +b24 in [0,1]; + +minimize +((6329.03 + 1800*x1)*i16*i19*b22 + (2489.31 + 1800*x2)*i17*i20*b23 + ( + 3270.27 + 1800*x3)*i18*i21*b24) ; + +constraints +-19.9*(0.000338983050847458*x4)^3 - 0.161*(0.000338983050847458* + x4)^2*x10 + 0.000000190169491525424*x10^2*x4 + x1 = 0; + +-1.21*(0.000338983050847458*x5)^3 - 0.0644*(0.000338983050847458 + *x5)^2*x11 + 0.000000191186440677966*(x11)^2*x5 + x2 = 0; + + -6.52*(0.000338983050847458*x6)^3 - 0.102*(0.000338983050847458* + x6)^2*x12 + 0.0000000786440677966102*x12^2*x6 + x3 = 0; + +-0.00023593220338983*x4*x10 - 629*(0.000338983050847458*x4)^2 + 0.0116* + x10^2 + x7 = 0; + +-0.001*x5*x11 - 215*(0.000338983050847458*x5)^2 + 0.115*x11^2 + x8 + = 0; + +-0.000179661016949153*x6*x12 - 361*(0.000338983050847458*x6)^2 + + 0.00946*x12^2 + x9 = 0; + +x13 + x14 + x15 = 1; +0.00285714285714286*x10*i16 - x13 = 0; +0.00285714285714286*x11*i17 - x14 = 0; +0.00285714285714286*x12*i18 - x15 = 0; +0.0025*x7*i19 - b22 = 0; +0.0025*x8*i20 - b23 = 0; +0.0025*x9*i21 - b24 = 0; +0.000338983050847458*x4 - b22 <= 0; +0.000338983050847458*x5 - b23 <= 0; +0.000338983050847458*x6 - b24 <= 0; +0.0125*x1 - b22 <= 0; +0.04*x2 - b23 <= 0; +0.0222222222222222*x3 - b24 <= 0; +0.0025*x7 - b22 <= 0; +0.0025*x8 - b23 <= 0; +0.0025*x9 - b24 <= 0; +0.00285714285714286*x10 - b22 <= 0; +0.00285714285714286*x11 - b23 <= 0; +0.00285714285714286*x12 - b24 <= 0; +x13 - b22 <= 0; +x14 - b23 <= 0; +x15 - b24 <= 0; +i16 - 3*b22 <= 0; +i17 - 3*b23 <= 0; +i18 - 3*b24 <= 0; +i19 - 3*b22 <= 0; +i20 - 3*b23 <= 0; + i21 - 3*b24 <= 0; +integer(i16); +integer(i17); +integer(i18); +integer(i19); +integer(i20); +integer(i21); +integer(b22); +integer(b23); +integer(b24); + + + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/ex1263a.bch b/benchs/optim/benchs-minlp/ex1263a.bch new file mode 100644 index 000000000..d51faf313 --- /dev/null +++ b/benchs/optim/benchs-minlp/ex1263a.bch @@ -0,0 +1,94 @@ +variables +i1 in [0,5]; +i2 in [0,5]; +i3 in [0,5]; +i4 in [0,5]; +i5 in [0,5]; +i6 in [0,5]; +i7 in [0,5]; +i8 in [0,5]; +i9 in [0,5]; +i10 in [0,5]; +i11 in [0,5]; +i12 in [0,5]; +i13 in [0,5]; +i14 in [0,5]; +i15 in [0,5]; +i16 in [0,5]; +b17 in [0,1]; +b18 in [0,1]; +b19 in [0,1]; +b20 in [0,1]; +i21 in [0,30]; +i22 in [0,30]; +i23 in [0,30]; +i24 in [0,30]; + +minimize +0.1*b17 + 0.2*b18 + 0.3*b19 + 0.4*b20 + i21 + i22 + i23 + i24; + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); +integer(i8); +integer(i9); +integer(i10); +integer(i11); +integer(i12); +integer(i13); +integer(i14); +integer(i15); +integer(i16); +integer(b17); +integer(b18); +integer(b19); +integer(b20); +integer(i21); +integer(i22); +integer(i23); +integer(i24); + + +i21*i1 + i22*i2 + i23*i3 + i24*i4 >= 15; + i21*i5 + i22*i6 + i23*i7 + i24*i8 >= 28; + i21*i9 + i22*i10 + i23*i11 + i24*i12 >= 21; + i21*i13 + i22*i14 + i23*i15 + i24*i16 >= 30; + - 290*i1 - 315*i5 - 350*i9 - 455*i13 + 1750*b17 <= 0; + - 290*i2 - 315*i6 - 350*i10 - 455*i14 + 1750*b18 <= 0; + - 290*i3 - 315*i7 - 350*i11 - 455*i15 + 1750*b19 <= 0; + - 290*i4 - 315*i8 - 350*i12 - 455*i16 + 1750*b20 <= 0; + 290*i1 + 315*i5 + 350*i9 + 455*i13 - 1850*b17 <= 0; + 290*i2 + 315*i6 + 350*i10 + 455*i14 - 1850*b18 <= 0; + 290*i3 + 315*i7 + 350*i11 + 455*i15 - 1850*b19 <= 0; + 290*i4 + 315*i8 + 350*i12 + 455*i16 - 1850*b20 <= 0; + - i1 - i5 - i9 - i13 + b17 <= 0; + - i2 - i6 - i10 - i14 + b18 <= 0; + - i3 - i7 - i11 - i15 + b19 <= 0; + - i4 - i8 - i12 - i16 + b20 <= 0; + i1 + i5 + i9 + i13 - 5*b17 <= 0; + i2 + i6 + i10 + i14 - 5*b18 <= 0; + i3 + i7 + i11 + i15 - 5*b19 <= 0; + i4 + i8 + i12 + i16 - 5*b20 <= 0; + b17 - i21 <= 0; + b18 - i22 <= 0; + b19 - i23 <= 0; + b20 - i24 <= 0; + - 30*b17 + i21 <= 0; + - 30*b18 + i22 <= 0; + - 30*b19 + i23 <= 0; + - 30*b20 + i24 <= 0; + i21 + i22 + i23 + i24 >= 19; + - b17 + b18 <= 0; + - b18 + b19 <= 0; + - b19 + b20 <= 0; + - i21 + i22 <= 0; + - i22 + i23 <= 0; + - i23 + i24 <= 0; + + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/ex1264a.bch b/benchs/optim/benchs-minlp/ex1264a.bch new file mode 100644 index 000000000..71d3e95dc --- /dev/null +++ b/benchs/optim/benchs-minlp/ex1264a.bch @@ -0,0 +1,95 @@ +variables +i1 in [0,5]; +i2 in [0,5]; +i3 in [0,5]; +i4 in [0,5]; +i5 in [0,5]; +i6 in [0,5]; +i7 in [0,5]; +i8 in [0,5]; +i9 in [0,5]; +i10 in [0,5]; +i11 in [0,5]; +i12 in [0,5]; +i13 in [0,5]; +i14 in [0,5]; +i15 in [0,5]; +i16 in [0,5]; +b17 in [0,1]; +b18 in [0,1]; +b19 in [0,1]; +b20 in [0,1]; +i21 in [0,15]; +i22 in [0,12]; +i23 in [0,9]; +i24 in [0,6]; + +minimize +0.1*b17 + 0.2*b18 + 0.3*b19 + 0.4*b20 + i21 + i22 + i23 + i24; + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); +integer(i8); +integer(i9); +integer(i10); +integer(i11); +integer(i12); +integer(i13); +integer(i14); +integer(i15); +integer(i16); +integer(b17); +integer(b18); +integer(b19); +integer(b20); +integer(i21); +integer(i22); +integer(i23); +integer(i24); + + + +i21*i1 + i22*i2 + i23*i3 + i24*i4 >= 9; + + i21*i5 + i22*i6 + i23*i7 + i24*i8 >= 7; + i21*i9 + i22*i10 + i23*i11 + i24*i12 >= 12; + i21*i13 + i22*i14 + i23*i15 + i24*i16 >= 11; + - 330*i1 - 360*i5 - 385*i9 - 415*i13 + 1700*b17 <= 0; + - 330*i2 - 360*i6 - 385*i10 - 415*i14 + 1700*b18 <= 0; + - 330*i3 - 360*i7 - 385*i11 - 415*i15 + 1700*b19 <= 0; + - 330*i4 - 360*i8 - 385*i12 - 415*i16 + 1700*b20 <= 0; + 330*i1 + 360*i5 + 385*i9 + 415*i13 - 1900*b17 <= 0; + 330*i2 + 360*i6 + 385*i10 + 415*i14 - 1900*b18 <= 0; + 330*i3 + 360*i7 + 385*i11 + 415*i15 - 1900*b19 <= 0; + 330*i4 + 360*i8 + 385*i12 + 415*i16 - 1900*b20 <= 0; + - i1 - i5 - i9 - i13 + b17 <= 0; + - i2 - i6 - i10 - i14 + b18 <= 0; + - i3 - i7 - i11 - i15 + b19 <= 0; + - i4 - i8 - i12 - i16 + b20 <= 0; + i1 + i5 + i9 + i13 - 5*b17 <= 0; + i2 + i6 + i10 + i14 - 5*b18 <= 0; + i3 + i7 + i11 + i15 - 5*b19 <= 0; + i4 + i8 + i12 + i16 - 5*b20 <= 0; + b17 - i21 <= 0; + b18 - i22 <= 0; + b19 - i23 <= 0; + b20 - i24 <= 0; + - 15*b17 + i21 <= 0; + - 12*b18 + i22 <= 0; + - 9*b19 + i23 <= 0; + - 6*b20 + i24 <= 0; + i21 + i22 + i23 + i24 >= 8; + - b17 + b18 <= 0; + - b18 + b19 <= 0; + - b19 + b20 <= 0; + - i21 + i22 <= 0; + - i22 + i23 <= 0; + - i23 + i24 <= 0; + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/ex1265a.bch b/benchs/optim/benchs-minlp/ex1265a.bch new file mode 100644 index 000000000..d2c2153b6 --- /dev/null +++ b/benchs/optim/benchs-minlp/ex1265a.bch @@ -0,0 +1,130 @@ +variables +i1 in [0,5]; +i2 in [0,5]; +i3 in [0,5]; +i4 in [0,5]; +i5 in [0,5]; +i6 in [0,5]; +i7 in [0,5]; +i8 in [0,5]; +i9 in [0,5]; +i10 in [0,5]; +i11 in [0,5]; +i12 in [0,5]; +i13 in [0,5]; +i14 in [0,5]; +i15 in [0,5]; +i16 in [0,5]; +i17 in [0,5]; +i18 in [0,5]; +i19 in [0,5]; +i20 in [0,5]; +i21 in [0,5]; +i22 in [0,5]; +i23 in [0,5]; +i24 in [0,5]; +i25 in [0,5]; +b26 in [0,1]; +b27 in [0,1]; +b28 in [0,1]; +b29 in [0,1]; +b30 in [0,1]; +i31 in [0,15]; +i32 in [0,12]; +i33 in [0,9]; +i34 in [0,6]; +i35 in [0,6]; + +minimize + 0.1*b26 + 0.2*b27 + 0.3*b28 + 0.4*b29 + 0.5*b30 + i31 + i32 + i33 + i34 + + i35; + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); +integer(i8); +integer(i9); +integer(i10); +integer(i11); +integer(i12); +integer(i13); +integer(i14); +integer(i15); +integer(i16); +integer(i17); +integer(i18); +integer(i19); +integer(i20); +integer(i21); +integer(i22); +integer(i23); +integer(i24); +integer(i25); +integer(b26); +integer(b27); +integer(b28); +integer(b29); +integer(b30); +integer(i31); +integer(i32); +integer(i33); +integer(i34); +integer(i35); + + + + + + + i31*i1 + i32*i2 + i33*i3 + i34*i4 + i35*i5 >= 12; + i31*i6 + i32*i7 + i33*i8 + i34*i9 + i35*i10 >= 6; + i31*i11 + i32*i12 + i33*i13 + i34*i14 + i35*i15 >= 15; + i31*i16 + i32*i17 + i33*i18 + i34*i19 + i35*i20 >= 6; + i31*i21 + i32*i22 + i33*i23 + i34*i24 + i35*i25 >= 9; + - 330*i1 - 360*i6 - 370*i11 - 415*i16 - 435*i21 + 1800*b26 <= 0; + - 330*i2 - 360*i7 - 370*i12 - 415*i17 - 435*i22 + 1800*b27 <= 0; + - 330*i3 - 360*i8 - 370*i13 - 415*i18 - 435*i23 + 1800*b28 <= 0; + - 330*i4 - 360*i9 - 370*i14 - 415*i19 - 435*i24 + 1800*b29 <= 0; + - 330*i5 - 360*i10 - 370*i15 - 415*i20 - 435*i25 + 1800*b30 <= 0; + 330*i1 + 360*i6 + 370*i11 + 415*i16 + 435*i21 - 2000*b26 <= 0; + 330*i2 + 360*i7 + 370*i12 + 415*i17 + 435*i22 - 2000*b27 <= 0; + 330*i3 + 360*i8 + 370*i13 + 415*i18 + 435*i23 - 2000*b28 <= 0; + 330*i4 + 360*i9 + 370*i14 + 415*i19 + 435*i24 - 2000*b29 <= 0; + 330*i5 + 360*i10 + 370*i15 + 415*i20 + 435*i25 - 2000*b30 <= 0; + - i1 - i6 - i11 - i16 - i21 + b26 <= 0; + + - i2 - i7 - i12 - i17 - i22 + b27 <= 0; + - i3 - i8 - i13 - i18 - i23 + b28 <= 0; + - i4 - i9 - i14 - i19 - i24 + b29 <= 0; + - i5 - i10 - i15 - i20 - i25 + b30 <= 0; + i1 + i6 + i11 + i16 + i21 - 5*b26 <= 0; + i2 + i7 + i12 + i17 + i22 - 5*b27 <= 0; + i3 + i8 + i13 + i18 + i23 - 5*b28 <= 0; + i4 + i9 + i14 + i19 + i24 - 5*b29 <= 0; + i5 + i10 + i15 + i20 + i25 - 5*b30 <= 0; + b26 - i31 <= 0; + b27 - i32 <= 0; + b28 - i33 <= 0; + b29 - i34 <= 0; + b30 - i35 <= 0; + - 15*b26 + i31 <= 0; + - 12*b27 + i32 <= 0; + - 9*b28 + i33 <= 0; + - 6*b29 + i34 <= 0; + - 6*b30 + i35 <= 0; + i31 + i32 + i33 + i34 + i35 >= 10; + - b26 + b27 <= 0; + - b27 + b28 <= 0; + - b28 + b29 <= 0; + - b29 + b30 <= 0; + - i31 + i32 <= 0; + - i32 + i33 <= 0; + - i33 + i34 <= 0; + - i34 + i35 <= 0; + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/gear.bch b/benchs/optim/benchs-minlp/gear.bch new file mode 100644 index 000000000..d40671eff --- /dev/null +++ b/benchs/optim/benchs-minlp/gear.bch @@ -0,0 +1,17 @@ +variables +x2 in [12,60]; +x3 in [12,60]; +x4 in [12,60]; +x5 in [12,60]; + + +minimize +(0.14427932477276 - (x2*x3)/(x4*x5))^2; + +constraints +integer(x2); +integer(x3); +integer(x4); +integer(x5); + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/gear3.bch b/benchs/optim/benchs-minlp/gear3.bch new file mode 100644 index 000000000..c354f70f0 --- /dev/null +++ b/benchs/optim/benchs-minlp/gear3.bch @@ -0,0 +1,24 @@ +variables +i2 in [12,60]; +i3 in [12,60]; +i4 in [12,60]; +i5 in [12,60]; +y6 in [12,60]; +y7 in [12,60]; +y8 in [12,60]; +y9 in [12,60]; + +minimize +(0.14427932477276 - (y6*y7)/(y8*y9))^2; + +constraints +integer(i2); +integer(i3); +integer(i4); +integer(i5); +i2=y6; +i3=y7; +i4=y8; +i5=y9; + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/gear4.bch b/benchs/optim/benchs-minlp/gear4.bch new file mode 100644 index 000000000..04d4c9c8b --- /dev/null +++ b/benchs/optim/benchs-minlp/gear4.bch @@ -0,0 +1,20 @@ +variables +i1 in [12,60]; +i2 in [12,60]; +i3 in [12,60]; +i4 in [12,60]; +x6 in [0,1.e8]; +x7 in [0,1.e8]; + + +minimize +x6+x7; + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +-1000000*i1*i2/(i3*i4) - x6 + x7 + 144279.32477276 =0; + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/jit1.bch b/benchs/optim/benchs-minlp/jit1.bch new file mode 100644 index 000000000..f839a902a --- /dev/null +++ b/benchs/optim/benchs-minlp/jit1.bch @@ -0,0 +1,103 @@ +variables +i1 in [1,1.e8]; +i2 in [1,1.e8]; +i3 in [1,1.e8]; +i4 in [1,1.e8]; +x5 in [0.000252525252525253,1.e8]; + + x6 in [0.000508388408744281,1.e8]; + + x7 in [0.000635162601626016,1.e8]; + x8 in[0.000636456211812627,1.e8]; + + x9 in [0.000861450107681263,1.e8]; + x10 in [0.000438212094653812,1.e8]; + x11 in [0.000433776749566223,1.e8]; + + x12 in [0.000289184499710815,1.e8]; + x13 in [0.000224466891133558,1.e8]; + x14 in [0.00033892560582952,1.e8]; + x15 in[0.000224014336917563,1.e8]; + x16 in [0.000337381916329285,1.e8]; + x17 in [-1.e8,1.e8]; + x18 in [-1.e8,1.e8]; + x19 in [-1.e8,1.e8]; + x20 in [-1.e8,1.e8]; + x21 in [-1.e8,1.e8]; + x22 in [-1.e8,1.e8]; + x23 in [-1.e8,1.e8]; + x24 in [-1.e8,1.e8]; + x25 in [-1.e8,1.e8]; + minimize + (7.5/x5 + 5.625/x6 + 11.25/x7 + 7.5/x8 + 8.57142857142857/x9 + + 7.14285714285714/x10 + 2.85714285714286/x11 + 5.71428571428571/x12 + + 8.88888888888889/x13 + 8.88888888888889/x14 + 8.88888888888889/x15 + + 4.44444444444444/x16) + 5000*i1 + 5500*i2 + 4000*i3 + 6000*i4 + + 6000000*x17 + 9000000*x18 + 6000000*x19 + 9000000*x20 + 8000000*x21 + + 8000000*x22 + 8000000*x23 + 10000000*x24 + 8000000*x25 ; + constraints + integer(i1); + integer(i2); + integer (i3); + integer(i4); +- 0.000252525252525253*i1 + x5 = 0; + - 0.000508388408744281*i2 + x6 = 0; + - 0.000635162601626016*i3 + x7 = 0; + - 0.000636456211812627*i4 + x8 = 0; + + - 0.000861450107681263*i1 + x9 = 0; + + - 0.000438212094653812*i2 + x10 = 0; + + - 0.000433776749566223*i3 + x11 = 0; + + - 0.000289184499710815*i4 + x12 = 0; + - 0.000224466891133558*i1 + x13 = 0; + + - 0.00033892560582952*i2 + x14 = 0; + + - 0.000224014336917563*i3 + x15 = 0; + + - 0.000337381916329285*i4 + x16 = 0; + + 5000*i1 + 5500*i2 + 4000*i3 + 6000*i4 <= 6000000; + + 60*i1 + 50*i2 + 80*i3 + 40*i4 <= 3000; + + - x5 + x6 + x17 >= 0; + + - x6 + x7 + x18 >= 0; + + - x7 + x8 + x19 >= 0; + + - x9 + x10 + x20 >= 0; + + - x10 + x11 + x21 >= 0; + + - x11 + x12 + x22 >= 0; + + - x13 + x14 + x23 >= 0; + + - x14 + x15 + x24 >= 0; + + - x15 + x16 + x25 >= 0; + + x5 - x6 + x17 >= 0; + + x6 - x7 + x18 >= 0; + + x7 - x8 + x19 >= 0; + + x9 - x10 + x20 >= 0; + + x10 - x11 + x21 >= 0; + + x11 - x12 + x22 >= 0; + + x13 - x14 + x23 >= 0; + + x14 - x15 + x24 >= 0; + + x15 - x16 + x25 >= 0; + + end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/nsv16.bch b/benchs/optim/benchs-minlp/nsv16.bch new file mode 100644 index 000000000..02f61e585 --- /dev/null +++ b/benchs/optim/benchs-minlp/nsv16.bch @@ -0,0 +1,13 @@ +variables +i1 in [0,200]; +i2 in [0,200]; + +minimize +(1.5 - i1*(1 - i2))^2 + (2.25 - (1 - i2^2)*i1)^2 + (2.625 - (1 + - i2^3)*i1)^2 ; + +constraints +integer(i1); +integer(i2); + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/nvs01.bch b/benchs/optim/benchs-minlp/nvs01.bch new file mode 100644 index 000000000..363d6acd6 --- /dev/null +++ b/benchs/optim/benchs-minlp/nvs01.bch @@ -0,0 +1,13 @@ +variables +i1 in [0,200]; +i2 in [0,200]; +x3 in [0,100]; +minimize +0.04712385*sqrt(900 + i1^2)*i2; + +constraints +420.169404664517*sqrt(900 + i1^2) - x3*i1*i2 = 0; +(2960.87631843 + 18505.4769901875*i2^2)/(7200 + i1^2) - x3 >= 0; +integer(i1); +integer(i2); +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/nvs05.bch b/benchs/optim/benchs-minlp/nvs05.bch new file mode 100644 index 000000000..fc68ec279 --- /dev/null +++ b/benchs/optim/benchs-minlp/nvs05.bch @@ -0,0 +1,29 @@ +variables +i1 in [1,200]; +i2 in [1,200]; +x3 in [0.01,200]; +x4 in [0.01,200]; +x5 in [-1.e8,1.e8]; +x6 in [-1.e8,1.e8]; + +x7 in [-1.e8,1.e8]; +x8 in [-1.e8,1.e8]; + +minimize +(1.10471*x3^2*x4 + 0.04811*i1*i2*(14 + x4)); + +constraints +integer(i1); +integer(i2); +-4243.28147100424/(x3*x4) + x5 = 0; +-sqrt(0.25*x4^2 + (0.5*i1 + 0.5*x3)^2) + x7 = 0; +-(59405.9405940594 + 2121.64073550212*x4)*x7/(x3*x4*(0.0833333333333333* + x4^2 + (0.5*i1 + 0.5*x3)^2)) + x6 = 0; + -0.5*x4/x7 + x8 = 0; + -sqrt(x5^2 + 2*x5*x6*x8 + x6^2) >= -13600; + -504000/(i1^2*i2) >= -30000; + i2 - x3 >= 0; + 0.0204744897959184*sqrt(1.e15*i2^3*i1*i1*i2^3)*(1 - + 0.0282346219657891*i1) >= 6000; + -0.21952/(i1^3*i2) >= -0.25; + end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/nvs08.bch b/benchs/optim/benchs-minlp/nvs08.bch new file mode 100644 index 000000000..334e76649 --- /dev/null +++ b/benchs/optim/benchs-minlp/nvs08.bch @@ -0,0 +1,16 @@ +variables +i1 in [0,200]; +i2 in [0,200]; +x3 in [0.001,200]; + + +minimize +(((-3) + i1)^2 + ((-2) + i2)^2 + (4 + x3)^2); + +constraints +integer(i1); +integer(i2); +sqrt(x3) + i1 + 2*i2 >= 10; + 0.240038406144983*i1^2 - i2 + 0.255036980362153*x3 >= -3; + i2^2 - 1/(x3^3*sqrt(x3)) - 4*i1 >= -12; + end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/nvs20.bch b/benchs/optim/benchs-minlp/nvs20.bch new file mode 100644 index 000000000..709ab937b --- /dev/null +++ b/benchs/optim/benchs-minlp/nvs20.bch @@ -0,0 +1,62 @@ +variables +i1 in [0,200]; +i2 in [0,200]; +i3 in [0,200]; +i4 in [0,200]; +i5 in [0,200]; +x6 in [0,200]; +x7 in [0,200]; +x8 in [0,200]; +x9 in [0,200]; +x10 in [0,200]; +x11 in [0,200]; +x12 in [0,200]; +x13 in [0,200]; +x14 in [0,200]; +x15 in [0,200]; +x16 in [0,200]; + +minimize (1 + i1^2 + i1)^2 + (1 + i1^2 + i1)*(1 + i4^2 + i4) + (1 + i1^2 + + i1)*(1 + x7^2 + x7) + (1 + i1^2 + i1)*(1 + x8^2 + x8) + (1 + i1^2 + i1)* + (1 + x16^2 + x16) + (1 + i2^2 + i2)^2 + (1 + i2^2 + i2)*(1 + i3^2 + i3) + ( + 1 + i2^2 + i2)*(1 + x7^2 + x7) + (1 + i2^2 + i2)*(1 + x10^2 + x10) + (1 + + i3^2 + i3)^2 + (1 + i3^2 + i3)*(1 + x7^2 + x7) + (1 + i3^2 + i3)*(1 + x9^2 + + x9) + (1 + i3^2 + i3)*(1 + x10^2 + x10) + (1 + i3^2 + i3)*(1 + x14^2 + + x14) + (1 + i4^2 + i4)^2 + (1 + i4^2 + i4)*(1 + x7^2 + x7) + (1 + i4^2 + i4 + )*(1 + x11^2 + x11) + (1 + i4^2 + i4)*(1 + x15^2 + x15) + (1 + i5^2 + i5)^2 + + (1 + i5^2 + i5)*(1 + x6^2 + x6) + (1 + i5^2 + i5)*(1 + x10^2 + x10) + (1 + + i5^2 + i5)*(1 + x12^2 + x12) + (1 + i5^2 + i5)*(1 + x16^2 + x16) + (1 + + x6^2 + x6)^2 + (1 + x6^2 + x6)*(1 + x8^2 + x8) + (1 + x6^2 + x6)*(1 + x15^2 + + x15) + (1 + x7^2 + x7)^2 + (1 + x7^2 + x7)*(1 + x11^2 + x11) + (1 + x7^2 + + x7)*(1 + x13^2 + x13) + (1 + x8^2 + x8)^2 + (1 + x8^2 + x8)*(1 + x10^2 + + x10) + (1 + x8^2 + x8)*(1 + x15^2 + x15) + (1 + x9^2 + x9)^2 + (1 + x9^2 + + x9)*(1 + x12^2 + x12) + (1 + x9^2 + x9)*(1 + x16^2 + x16) + (1 + x10^2 + + x10)^2 + (1 + x10^2 + x10)*(1 + x14^2 + x14) + (1 + x11^2 + x11)^2 + (1 + + x11^2 + x11)*(1 + x13^2 + x13) + (1 + x12^2 + x12)^2 + (1 + x12^2 + x12) + *(1 + x14^2 + x14) + (1 + x13^2 + x13)^2 + (1 + x13^2 + x13)*(1 + x14^2 + + x14) + (1 + x14^2 + x14)^2 + (1 + x15^2 + x15)^2 + (1 + x16^2 + x16)^2; + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +0.22*i1 + 0.2*i2 + 0.19*i3 + 0.25*i4 + 0.15*i5 + 0.11*x6 + 0.12*x7 + + 0.13*x8 + x9 >= 2.5; + +- 1.46*i1 - 1.3*i3 + 1.82*i4 - 1.15*i5 + 0.8*x7 + x10 >= 1.1; + + 1.29*i1 - 0.89*i2 - 1.16*i5 - 0.96*x6 - 0.49*x8 + x11 >= -3.1; + + - 1.1*i1 - 1.06*i2 + 0.95*i3 - 0.54*i4 - 1.78*x6 - 0.41*x7 + x12 >= -3.5; + + - 1.43*i4 + 1.51*i5 + 0.59*x6 - 0.33*x7 - 0.43*x8 + x13 >= 1.3; + + - 1.72*i2 - 0.33*i3 + 1.62*i5 + 1.24*x6 + 0.21*x7 - 0.26*x8 + x14 >= 2.1; + + 1.12*i1 + 0.31*i4 + 1.12*x7 - 0.36*x9 + x15 >= 2.3; + + 0.45*i2 + 0.26*i3 - 1.1*i4 + 0.58*i5 - 1.03*x7 + 0.1*x8 + x16 >= -1.5; + +end diff --git a/benchs/optim/benchs-minlp/nvs21.bch b/benchs/optim/benchs-minlp/nvs21.bch new file mode 100644 index 000000000..ab9547666 --- /dev/null +++ b/benchs/optim/benchs-minlp/nvs21.bch @@ -0,0 +1,15 @@ +variables +i1 in [1,200]; +i2 in [1,200]; +x3 in [0.,0.2]; + +minimize + -(0.00201*i1^4*i2*x3^2); + +constraints + +-i1^2*i2 >= -675; +-0.1*i1^2*x3^2 >= -0.419; +integer(i1); +integer(i2); +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/nvs22.bch b/benchs/optim/benchs-minlp/nvs22.bch new file mode 100644 index 000000000..d8de9e4f0 --- /dev/null +++ b/benchs/optim/benchs-minlp/nvs22.bch @@ -0,0 +1,32 @@ +variables +i1 in [1,200]; +i2 in [1,200]; +i3 in [1,20]; +i4 in [1,20]; +x5 in [-1.e8,1.e8]; +x6 in [-1.e8,1.e8]; +x7 in [-1.e8,1.e8]; +x8 in [-1.e8,1.e8]; + +minimize +(1.10471*i3^2*i4 + 0.04811*i1*i2*(14 + i4)); + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +-4243.28147100424/(i3*i4) + x5 = 0; +sqrt(0.25*i4^2 + (0.5*i1 + 0.5*i3)^2) + x7 = 0; +-(59405.9405940594 + 2121.64073550212*i4)*x7/(i3*i4*(0.0833333333333333* + i4^2 + (0.5*i1 + 0.5*i3)^2)) + x6 = 0; +-0.5*i4/x7 + x8 = 0; +-sqrt(x5^2 + 2*x5*x6*x8 + x6^2) >= -13600; + +-504000/(i1^2*i2) >= -30000; +i2 - i3 >= 0; + 0.0204744897959184*sqrt(10000000000000*i2^3*i1*i1*i2^3)*(1 + - 0.0282346219657891*i1) >= 6000; + + -2.1952/(i1^3*i2) >= -0.25; + end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/portfol_roundlot.bch b/benchs/optim/benchs-minlp/portfol_roundlot.bch new file mode 100644 index 000000000..538d982b5 --- /dev/null +++ b/benchs/optim/benchs-minlp/portfol_roundlot.bch @@ -0,0 +1,175 @@ +variables +x1 in [0,1.e8]; +x2 in [0,1.e8]; +x3 in [0,1.e8]; +x4 in [0,1.e8]; +x5 in [0,1.e8]; +x6 in [0,1.e8]; +x7 in [0,1.e8]; +x8 in [0,1.e8]; +x9 in [0,1.e8]; +i10 in [0,1.e8]; +i11 in [0,1.e8]; +i12 in [0,1.e8]; +i13 in [0,1.e8]; +i14 in [0,1.e8]; +i15 in [0,1.e8]; +i16 in [0,1.e8]; +i17 in [0,1.e8]; +minimize x9; +constraints +integer(i10); +integer(i11); +integer(i12); +integer(i13); +integer(i14); +integer(i15); +integer(i16); +integer(i17); + +1.07813636363636*x1 - sqrt(0.0476190476190476*(-0.00313636363636371*x1 - + 0.150909090909091*x2 - 0.267772727272727*x3 - 0.308636363636363*x4 - + 0.423318181818182*x5 - 0.0687727272727274*x6 - 0.290227272727273*x7 + + 0.548045454545455*x8)^2 + 0.0476190476190476*(0.0058636363636364*x1 - + 0.0729090909090906*x2 - 0.384772727272727*x3 - 0.407636363636363*x4 - + 0.459318181818182*x5 - 0.0897727272727273*x6 - 0.373227272727273*x7 + + 0.593045454545455*x8)^2 + 0.0476190476190476*(-0.0171363636363637*x1 - + 0.0369090909090906*x2 + 0.251227272727273*x3 + 0.261363636363637*x4 + + 0.196681818181818*x5 + 0.0312272727272727*x6 + 0.212772727272727*x7 - + 0.368954545454545*x8)^2 + 0.0476190476190476*(0.0820909090909094*x2 - + 0.0261363636363636*x1 + 0.116227272727273*x3 + 0.142363636363637*x4 + + 0.158681818181818*x5 + 0.0642272727272726*x6 - 0.116227272727273*x7 - + 0.168954545454545*x8)^2 + 0.0476190476190476*(-0.0231363636363637*x1 - + 0.0909090909090906*x2 - 0.193772727272727*x3 - 0.149636363636363*x4 - + 0.0283181818181817*x5 - 0.0617727272727273*x6 + 0.0397727272727273*x7 + + 0.0710454545454546*x8)^2 + 0.0476190476190476*(-0.00113636363636371*x1 - + 0.110909090909091*x2 - 0.0557727272727273*x3 - 0.0306363636363634*x4 + + 0.0246818181818182*x5 - 0.0797727272727273*x6 + 0.184772727272727*x7 + + 0.166045454545455*x8)^2 + 0.0476190476190476*(0.0308636363636363*x1 - + 0.114909090909091*x2 + 0.0642272727272726*x3 + 0.132363636363637*x4 + + 0.185681818181818*x5 - 0.0687727272727274*x6 - 0.0932272727272727*x7 + + 1.08304545454545*x8)^2 + 0.0476190476190476*(0.0488636363636363*x1 - + 0.145909090909091*x2 + 0.203227272727273*x3 + 0.213363636363637*x4 + + 0.245681818181818*x5 - 0.0607727272727274*x6 + 0.0847727272727272*x7 + + 0.167045454545455*x8)^2 + 0.0476190476190476*(0.0778636363636362*x1 - + 0.0899090909090907*x2 - 0.170772727272727*x3 - 0.160636363636363*x4 - + 0.131318181818182*x5 - 0.0187727272727274*x6 - 0.164227272727273*x7 - + 0.440954545454545*x8)^2 + 0.0476190476190476*(0.0388636363636363*x1 + + 0.372090909090909*x2 + 0.0952272727272727*x3 + 0.0633636363636367*x4 + + 0.0916818181818184*x5 + 0.219227272727273*x6 - 0.160227272727273*x7 - + 0.0449545454545452*x8)^2 + 0.0476190476190476*(0.0138636363636364*x1 - + 0.107909090909091*x2 + 0.104227272727273*x3 + 0.111363636363637*x4 + + 0.0956818181818184*x5 - 0.0117727272727273*x6 + 0.0957727272727273*x7 - + 0.256954545454545*x8)^2 + 0.0476190476190476*(0.0248636363636363*x1 + + 0.0660909090909094*x2 - 0.0587727272727274*x3 - 0.0936363636363633*x4 - + 0.218318181818182*x5 + 0.0582272727272726*x6 - 0.0672272727272727*x7 - + 0.303954545454545*x8)^2 + 0.0476190476190476*(0.0018636363636364*x1 + + 0.273090909090909*x2 + 0.196227272727273*x3 + 0.202363636363637*x4 + + 0.211681818181818*x5 + 0.121227272727273*x6 + 0.420772727272727*x7 - + 0.122954545454545*x8)^2 + 0.0476190476190476*(0.216090909090909*x2 - + 0.0151363636363637*x1 + 0.0662272727272726*x3 + 0.0373636363636367*x4 - + 0.0353181818181816*x5 + 0.0642272727272726*x6 + 0.552772727272727*x7 + + 0.0870454545454546*x8)^2 + 0.0476190476190476*(-0.0171363636363637*x1 - + 0.167909090909091*x2 - 0.0677727272727273*x3 - 0.100636363636363*x4 - + 0.162318181818182*x5 - 0.0687727272727274*x6 + 0.104772727272727*x7 + + 0.115045454545455*x8)^2 + 0.0476190476190476*(-0.00713636363636372*x1 - + 0.00690909090909053*x2 + 0.0452272727272727*x3 + 0.0553636363636367*x4 + + 0.0436818181818184*x5 - 0.0157727272727273*x6 + 0.141772727272727*x7 - + 0.267954545454545*x8)^2 + 0.0476190476190476*(0.0088636363636363*x1 + + 0.119090909090909*x2 + 0.196227272727273*x3 + 0.168363636363637*x4 + + 0.0826818181818183*x5 + 0.0502272727272726*x6 - 0.0362272727272728*x7 - + 0.151954545454545*x8)^2 + 0.0476190476190476*(0.0018636363636364*x1 - + 0.0389090909090906*x2 - 0.151772727272727*x3 - 0.185636363636363*x4 - + 0.291318181818182*x5 - 0.00877272727272738*x6 - 0.375227272727273*x7 - + 0.206954545454545*x8)^2 + 0.0476190476190476*(0.100090909090909*x2 - + 0.0211363636363637*x1 + 0.184227272727273*x3 + 0.218363636363637*x4 + + 0.472681818181818*x5 + 0.0692272727272727*x6 - 0.0202272727272728*x7 - + 0.170954545454545*x8)^2 + 0.0476190476190476*(-0.0421363636363636*x1 - + 0.0139090909090906*x2 - 0.0437727272727273*x3 - 0.0336363636363632*x4 + + 0.0526818181818183*x5 - 0.0157727272727273*x6 - 0.263227272727273*x7 - + 0.202954545454545*x8)^2 + 0.0476190476190476*(0.124090909090909*x2 - + 0.0471363636363638*x1 - 0.0197727272727273*x3 - 0.0106363636363633*x4 + + 0.0406818181818183*x5 + 0.0182272727272728*x6 + 0.184772727272727*x7 + + 0.0170454545454546*x8)^2 + 0.0476190476190476*(-0.0331363636363637*x1 - + 0.203909090909091*x2 - 0.107772727272727*x3 - 0.124636363636363*x4 - + 0.153318181818182*x5 - 0.126772727272727*x6 - 0.0632272727272727*x7 - + 0.138954545454545*x8)^2) + 1.09290909090909*x2 + 1.11977272727273*x3 + + 1.12363636363636*x4 + 1.12131818181818*x5 + 1.09177272727273*x6 + + 1.14122727272727*x7 + 1.12895454545455*x8 >= 0.05; + -sqrt(0.0476190476190476*(-0.00313636363636371*x1 - 0.150909090909091*x2 - + 0.267772727272727*x3 - 0.308636363636363*x4 - 0.423318181818182*x5 - + 0.0687727272727274*x6 - 0.290227272727273*x7 + 0.548045454545455*x8)^2 + + 0.0476190476190476*(0.0058636363636364*x1 - 0.0729090909090906*x2 - + 0.384772727272727*x3 - 0.407636363636363*x4 - 0.459318181818182*x5 - + 0.0897727272727273*x6 - 0.373227272727273*x7 + 0.593045454545455*x8)^2 + + 0.0476190476190476*(-0.0171363636363637*x1 - 0.0369090909090906*x2 + + 0.251227272727273*x3 + 0.261363636363637*x4 + 0.196681818181818*x5 + + 0.0312272727272727*x6 + 0.212772727272727*x7 - 0.368954545454545*x8)^2 + + 0.0476190476190476*(0.0820909090909094*x2 - 0.0261363636363636*x1 + + 0.116227272727273*x3 + 0.142363636363637*x4 + 0.158681818181818*x5 + + 0.0642272727272726*x6 - 0.116227272727273*x7 - 0.168954545454545*x8)^2 + + 0.0476190476190476*(-0.0231363636363637*x1 - 0.0909090909090906*x2 - + 0.193772727272727*x3 - 0.149636363636363*x4 - 0.0283181818181817*x5 - + 0.0617727272727273*x6 + 0.0397727272727273*x7 + 0.0710454545454546*x8)^2 + + 0.0476190476190476*(-0.00113636363636371*x1 - 0.110909090909091*x2 - + 0.0557727272727273*x3 - 0.0306363636363634*x4 + 0.0246818181818182*x5 - + 0.0797727272727273*x6 + 0.184772727272727*x7 + 0.166045454545455*x8)^2 + + 0.0476190476190476*(0.0308636363636363*x1 - 0.114909090909091*x2 + + 0.0642272727272726*x3 + 0.132363636363637*x4 + 0.185681818181818*x5 - + 0.0687727272727274*x6 - 0.0932272727272727*x7 + 1.08304545454545*x8)^2 + + 0.0476190476190476*(0.0488636363636363*x1 - 0.145909090909091*x2 + + 0.203227272727273*x3 + 0.213363636363637*x4 + 0.245681818181818*x5 - + 0.0607727272727274*x6 + 0.0847727272727272*x7 + 0.167045454545455*x8)^2 + + 0.0476190476190476*(0.0778636363636362*x1 - 0.0899090909090907*x2 - + 0.170772727272727*x3 - 0.160636363636363*x4 - 0.131318181818182*x5 - + 0.0187727272727274*x6 - 0.164227272727273*x7 - 0.440954545454545*x8)^2 + + 0.0476190476190476*(0.0388636363636363*x1 + 0.372090909090909*x2 + + 0.0952272727272727*x3 + 0.0633636363636367*x4 + 0.0916818181818184*x5 + + 0.219227272727273*x6 - 0.160227272727273*x7 - 0.0449545454545452*x8)^2 + + 0.0476190476190476*(0.0138636363636364*x1 - 0.107909090909091*x2 + + 0.104227272727273*x3 + 0.111363636363637*x4 + 0.0956818181818184*x5 - + 0.0117727272727273*x6 + 0.0957727272727273*x7 - 0.256954545454545*x8)^2 + + 0.0476190476190476*(0.0248636363636363*x1 + 0.0660909090909094*x2 - + 0.0587727272727274*x3 - 0.0936363636363633*x4 - 0.218318181818182*x5 + + 0.0582272727272726*x6 - 0.0672272727272727*x7 - 0.303954545454545*x8)^2 + + 0.0476190476190476*(0.0018636363636364*x1 + 0.273090909090909*x2 + + 0.196227272727273*x3 + 0.202363636363637*x4 + 0.211681818181818*x5 + + 0.121227272727273*x6 + 0.420772727272727*x7 - 0.122954545454545*x8)^2 + + 0.0476190476190476*(0.216090909090909*x2 - 0.0151363636363637*x1 + + 0.0662272727272726*x3 + 0.0373636363636367*x4 - 0.0353181818181816*x5 + + 0.0642272727272726*x6 + 0.552772727272727*x7 + 0.0870454545454546*x8)^2 + + 0.0476190476190476*(-0.0171363636363637*x1 - 0.167909090909091*x2 - + 0.0677727272727273*x3 - 0.100636363636363*x4 - 0.162318181818182*x5 - + 0.0687727272727274*x6 + 0.104772727272727*x7 + 0.115045454545455*x8)^2 + + 0.0476190476190476*(-0.00713636363636372*x1 - 0.00690909090909053*x2 + + 0.0452272727272727*x3 + 0.0553636363636367*x4 + 0.0436818181818184*x5 - + 0.0157727272727273*x6 + 0.141772727272727*x7 - 0.267954545454545*x8)^2 + + 0.0476190476190476*(0.0088636363636363*x1 + 0.119090909090909*x2 + + 0.196227272727273*x3 + 0.168363636363637*x4 + 0.0826818181818183*x5 + + 0.0502272727272726*x6 - 0.0362272727272728*x7 - 0.151954545454545*x8)^2 + + 0.0476190476190476*(0.0018636363636364*x1 - 0.0389090909090906*x2 - + 0.151772727272727*x3 - 0.185636363636363*x4 - 0.291318181818182*x5 - + 0.00877272727272738*x6 - 0.375227272727273*x7 - 0.206954545454545*x8)^2 + + 0.0476190476190476*(0.100090909090909*x2 - 0.0211363636363637*x1 + + 0.184227272727273*x3 + 0.218363636363637*x4 + 0.472681818181818*x5 + + 0.0692272727272727*x6 - 0.0202272727272728*x7 - 0.170954545454545*x8)^2 + + 0.0476190476190476*(-0.0421363636363636*x1 - 0.0139090909090906*x2 - + 0.0437727272727273*x3 - 0.0336363636363632*x4 + 0.0526818181818183*x5 - + 0.0157727272727273*x6 - 0.263227272727273*x7 - 0.202954545454545*x8)^2 + + 0.0476190476190476*(0.124090909090909*x2 - 0.0471363636363638*x1 - + 0.0197727272727273*x3 - 0.0106363636363633*x4 + 0.0406818181818183*x5 + + 0.0182272727272728*x6 + 0.184772727272727*x7 + 0.0170454545454546*x8)^2 + + 0.0476190476190476*(-0.0331363636363637*x1 - 0.203909090909091*x2 - + 0.107772727272727*x3 - 0.124636363636363*x4 - 0.153318181818182*x5 - + 0.126772727272727*x6 - 0.0632272727272727*x7 - 0.138954545454545*x8)^2) + + x9 >= 0; +x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 = 1; +- 100000*x1 + i10 = 0; +- 32000*x2 + i11 = 0; +- 78000*x3 + i12 = 0; + 56000*x4 + i13 = 0; + - 43000*x5 + i14 = 0; + - 100000*x6 + i15 = 0; + - 55000*x7 + i16 = 0; + - 78000*x8 + i17 = 0; + end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/prob10.bch b/benchs/optim/benchs-minlp/prob10.bch new file mode 100644 index 000000000..c0a8fcf09 --- /dev/null +++ b/benchs/optim/benchs-minlp/prob10.bch @@ -0,0 +1,12 @@ + variables + x2 in [0,1.e8]; + i3 in [0,1.e8]; + minimize + 1.1*(((-10) + 2*x2)^2 + ((-5) + i3)^2) + sin(((-10) + 2*x2)^2 + + ((-5) + i3)^2); + constraints + integer(i3); + 0.7*x2 + i3 <= 7; + 2.5*x2 + i3 <= 19; + + end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/spring.bch b/benchs/optim/benchs-minlp/spring.bch new file mode 100644 index 000000000..46f696e8c --- /dev/null +++ b/benchs/optim/benchs-minlp/spring.bch @@ -0,0 +1,54 @@ +variables +x1 in [0.414,1.e8]; +x2 in [0.207,1.e8]; +x3 in [0.00178571428571429,0.02]; +i4 in [1,100]; +x5 in [1.0,1.e8]; +x6 in [-1.e8,1.e8]; +b7 in [0,1]; +b8 in [0,1]; +b9 in [0,1]; +b10 in [0,1]; +b11 in [0,1]; +b12 in [0,1]; +b13 in [0,1]; +b14 in [0,1]; +b15 in [0,1]; +b16 in [0,1]; +b17 in [0,1]; +minimize +(1.570796327 + 0.7853981635*i4)*x1*x2^2; +constraints +integer(i4); +integer(b7); +integer(b7); +integer(b9); +integer(b10); +integer(b11); +integer(b12); +integer(b13); +integer(b14); +integer(b15); +integer(b16); +integer(b17); + + + + +-x1/x2 + x5 = 0; + + -((-1 + 4*x5)/(-4 + 4*x5) + 0.615/x5) + x6 = 0; + + 2546.47908913782*x6*x5/x2^2 <= 189000; + + -6.95652173913044e-7*x5^3*i4/x2 + x3 = 0; + + (2.1 + 1.05*i4)*x2 + 1000*x3 <= 14; + + x1 + x2 <= 3; + + x2 - 0.207*b7 - 0.225*b8 - 0.244*b9 - 0.263*b10 - 0.283*b11 - 0.307*b12 + - 0.331*b13 - 0.362*b14 - 0.394*b15 - 0.4375*b16 - 0.5*b17 = 0; + + b7 + b8 + b9 + b10 + b11 + b12 + b13 + b14 + b15 + b16 + b17 = 1; +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/st_e32.bch b/benchs/optim/benchs-minlp/st_e32.bch new file mode 100644 index 000000000..41f142485 --- /dev/null +++ b/benchs/optim/benchs-minlp/st_e32.bch @@ -0,0 +1,106 @@ +constants +i14=0; +variables +i1 in [0,14]; +i2 in [0,14]; +i3 in [0,14]; +i4 in [0,14]; +i5 in [0,14]; +i6 in [0,14]; +i7 in [0,14]; +i8 in [0,14]; +i9 in [0,14]; +i10 in [0,14]; +i11 in [0,14]; +i12 in [0,14]; +i13 in [0,14]; +i15 in [0,14]; +i16 in [0,14]; +i17 in [0,14]; +i18 in [0,14]; +i19 in [0,14]; +x20 in [1,1000]; +x21 in [1,1000]; +x22 in [1,100]; +x23 in [1,32.2]; +x24 in [1,100]; +x25 in [18.4,100]; +x26 in [1.4,14]; +x27 in [1.4,14]; +x28 in [0.001,1]; +x29 in [0.001,1]; +x30 in [0.001,1]; +x31 in [0.001,1]; +x32 in [0.001,1]; +x33 in [0.001,10]; +x34 in [0.001,10]; +x35 in [-10,10]; + +minimize + +-x25/x23 ; + +constraints +integer(i1); +integer(i2); +integer(i3); +integer(i4); +integer(i5); +integer(i6); +integer(i7); +integer(i8); +integer(i9); +integer(i10); +integer(i11); +integer(i12); +integer(i13); +integer(i15); +integer(i16); +integer(i17); +integer(i18); +integer(i19); + + 23.58*i1 + 22.88*i2 + 21.74*i3 + 18.25*i4 - 0.03*i5 + 38.13*i6 + + 66.86*i7 + 93.84*i8 + 92.88*i9 + 76.34*i10 + 22.42*i11 + 31.22*i12 + + 73.23*i13 + 50.17*i14 + 52.82*i15 + 11.74*i16 + 63.56*i17 + 68.78*i18 + + 52.1*i19 - x20 = -198.2; + + -x20/(0.584 + 0.0136065*i1 - sqr(0.0141*i1 + 0.0189*i2 + 0.0164*i3 + + 0.0067*i4 + 0.0111*i5 + 0.0105*i6 + 0.0133*i7 + 0.0068*i8 + 0.0741*i9 + + 0.0204*i10 + 0.0168*i11 + 0.0098*i12 + 0.0243*i13 + 0.0295*i14 + 0.013*i15 + + 0.0169*i16 + 0.0031*i17 + 0.0119*i18 + 0.0019*i19) + 0.0182385*i2 + + 0.015826*i3 + 0.0064655*i4 + 0.0107115*i5 + 0.0101325*i6 + 0.0128345*i7 + + 0.006562*i8 + 0.0715065*i9 + 0.02316*i10 + 0.016212*i11 + 0.009457*i12 + + 0.0234495*i13 + 0.0284675*i14 + 0.012545*i15 + 0.0163085*i16 + 0.0029915* + i17 + 0.0114835*i18 + 0.0018335*i19) + x21 = 0; + + -1/(0.113 + 0.014*i1 + 0.0096*i2 + 0.0044*i3 - 0.0011*i4 + 0.0089*i5 + + 0.0081*i6 - 0.0025*i7 + 0.0066*i8 - 0.0048*i9 - 0.012*i10 + 0.0017*i11 - + 0.0016*i12 - 0.0013*i13 - 0.0013*i14 - 0.005*i15 - 0.0042*i16 - 0.002*i17 + - 0.0017*i18 - 0.0019*i19)^2 + x22 = 0; + + 8.8*i1 + 7.26*i2 + 5*i3 + 1.76*i4 + 4*i5 + 8.6*i6 + 9*i7 + 8.6*i8 + + 10.7*i9 + 10.7*i10 + 8.4*i11 + 8.4*i12 + 14*i13 + 10.5*i14 + 10.5*i15 + + 7.5*i16 + 10.7*i17 + 8*i18 + 8*i19 - x23 = 0; + + 2.373*i1 + 2.226*i2 + 1.691*i3 + 0.636*i4 - 0.67*i5 + 4.532*i6 + + 6.582*i7 + 9.52*i8 + 16.826*i9 + 12.499*i10 + 2.41*i11 + 4.682*i12 + + 10.788*i13 + 6.436*i14 + 6.93*i15 + 1.896*i16 + 6.884*i17 + 6.817*i18 + + 5.984*i19 - x24 = -15.3; + + -x20/x21 + x32 = 0; + -272.04/x21 + x30 = 0; + -316.48/x21 + x31 = 0; + -ln(x22)*x32/(1 - x32) + x33 = 0; + - 0.4605*x33 + x34 = 0.4835; + -(x33 - (1 + x32)*x34)/(3 + x32)/(1 - x32)^2/x34 + x35 = 0; + -exp(-(1 + x35*(3 + x30)*(1 - x30)^3 - x30^2)*x34/x30) + x28 = 0; + -exp(-(1 + x35*(3 + x31)*(1 - x31)^3 - x31^2)*x34/x31) + x29 = 0; + -x28*x22 + x26 = 0; + -x29*x22 + x27 = 0; + -((1 - x30)/(1 - x32))^0.38*x24 + x25 = 0; + i1 - i3 - 2*i4 + i5 + i6 + i7 + i8 + i9 + i10 + i13 - i16 + i17 = 2; + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13 + + i14 + i15 + i16 + i17 + i18 + i19 >= 2; + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/st_e36.bch b/benchs/optim/benchs-minlp/st_e36.bch new file mode 100644 index 000000000..684ef5a6b --- /dev/null +++ b/benchs/optim/benchs-minlp/st_e36.bch @@ -0,0 +1,16 @@ +Variables +i1 in [15,25]; +x2 in [3,5.5]; + +minimize 2*x2^2 + 0.008*i1^3 - 3.2*x2*i1 - 2*i1; +constraints +integer(i1); +(-11 + x2^2 - 6*x2 + 0.8*i1)*((3.25*x2 - 0.62*i1)^2 + ((-6.35) + + 0.2*i1 + x2)^2)*((3.55*x2 - 0.66*i1)^2 + ((-6.85) + 0.2*i1 + x2)^2)*(( + 3.6*x2 - 0.7*i1)^2 + ((-7.1) + 0.2*i1 + x2)^2)*((3.8*x2 - 0.82*i1)^2 + + ((-7.9) + 0.2*i1 + x2)^2) = 0; +0.6*i1 - 0.2*x2*i1 + exp((-3) + x2) <= 1; + + +end + \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/st_e38.bch b/benchs/optim/benchs-minlp/st_e38.bch new file mode 100644 index 000000000..fa4b46131 --- /dev/null +++ b/benchs/optim/benchs-minlp/st_e38.bch @@ -0,0 +1,15 @@ +variables +i1 in [18,100]; +i2 in [10,100]; +x3 in [40,80]; +x4 in [20,60]; + +minimize +(0.0389*i1*x3*x4 + 0.1111312*x3^2*i2 + 0.012348046875*i1^2*x4 + + 0.0775*i1^2*x3); +constraints +- 0.0625*i1 + 0.0193*x3 <= 0; +- 0.0625*i2 + 0.00954*x3 <= 0; +3.1415927*(x3^2*x4 + 1.33333333333333*x3^3) >= 1296000; + +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/st_e40.bch b/benchs/optim/benchs-minlp/st_e40.bch new file mode 100644 index 000000000..96f50e388 --- /dev/null +++ b/benchs/optim/benchs-minlp/st_e40.bch @@ -0,0 +1,33 @@ +variables +i1 in [1,12]; +i2 in [1,12]; +i3 in [1,12]; +x4 in [-1.e8,1.e8]; + +minimize + 2*i1 + i2 + 1.4142135*i3; + +constraints +integer(i1); +integer(i2); + + + (-0.15*i1*i2) - 0.14142135*i2*i3 - 0.1319*i1*i3 + x4 = 0; + + 1.7317*i2 + 1.03366*i3 - x4 <= 0; + + 0.634*i1 + 2.828*i3 - x4 <= 0; + + 0.5*i1 - 2*i2 - x4 <= 0; + + - 0.5*i1 + 2*i2 - x4 <= 0; + + (-1 + i1)*(-2 + i1)*(-3 + i1)*(-5 + i1)*(-8 + i1)*(-10 + i1)*(-12 + i1) + = 0; + + (-1 + i2)*(-2 + i2)*(-3 + i2)*(-5 + i2)*(-8 + i2)*(-10 + i2)*(-12 + i2) + = 0; + + (-1 + i3)*(-2 + i3)*(-3 + i3)*(-5 + i3)*(-8 + i3)*(-10 + i3)*(-12 + i3) + = 0; +end \ No newline at end of file diff --git a/benchs/optim/benchs-minlp/windfac.bch b/benchs/optim/benchs-minlp/windfac.bch new file mode 100644 index 000000000..b8090f41f --- /dev/null +++ b/benchs/optim/benchs-minlp/windfac.bch @@ -0,0 +1,52 @@ +variables + + i1 in [1,10]; + i2 in [1,100]; + x3 in [-1.e8,1.e8]; + x4 in [-1.e8,1.e8]; + i5 in [1,100]; + x6 in [-1.e8,1.e8]; + x7 in [-1.e8,1.e8]; + x8 in [-1.e8,1.e8]; + x9 in [-1.e8,1.e8]; + x10 in [-1.e8,1.e8]; + x11 in [-1.e8,1.e8]; + x12 in [-1.e8,1.e8]; + x13 in [-1.e8,1.e8]; + x14 in [-1.e8,1.e8]; + x15 in [0.8,1.e8]; + +minimize +x13^2 + x14^2; + +constraints +integer(i1); +integer(i2); +integer(i5); +- 12*i1 + i2 = 0; + + -12.566370616/i2 + x3 = 0; + + - 0.25*i2 + x4 = 0; + + - x4 + i5 = -1; + + sin(0.5*x3)*i1*x6 - sin(0.5*i1*x3) = 0; + + -sin(1.570796327*i5/x4) + x9 = 0; + + -x9*x6 + x15 = 0; + + sin(1.5*x3)*i1*x7 - sin(1.5*i1*x3) = 0; + + -sin(4.712388981*i5/x4) + x10 = 0; + + -x10*x7 + x13 = 0; + + sin(2.5*x3)*i1*x8 - sin(2.5*i1*x3) = 0; + + -sin(7.853981635*i5/x4) + x11 = 0; + + -x11*x8 + x14 = 0; + +end diff --git a/benchs/optim/benchs-unconstrainedoptim/ackley100.bch b/benchs/optim/benchs-unconstrainedoptim/ackley100.bch index 965944c49..e3df65396 100644 --- a/benchs/optim/benchs-unconstrainedoptim/ackley100.bch +++ b/benchs/optim/benchs-unconstrainedoptim/ackley100.bch @@ -104,12 +104,12 @@ x100 in [-32,32]; minimize --20 * exp (-0.2 * sqrt (1/30 * (x1^2 + x2 ^2 + x3^2 + x4^2 + x5^2 + x6^2 +x7^2 +x8^2 + x9^2 + x10^2 +x11^2 + x12^2 + x13^2 + x14^2 + x15^2 + x16^2 +x17^2 +x18^2 + x19^2 + x20^2 + x21^2 + x22^2 + x23^2 + x24^2 + x25^2 + x26^2 +x27^2 +x28^2 + x29^2 + x30^2 +x31^2 + x32^2 + x33^2 + x34^2 + x35^2 + x36^2 +x37^2 +x38^2 + x39^2 + x40^2+ x41^2 + x42^2 + x43^2 + x44^2 + x45^2 + x46^2 + x47^2 + x48^2 + x49^2 + x50^2+ x51^2 + x52^2 + x53^2 + x54^2 + x55^2 + x56^2 + x57^2 + x58^2 + x59^2 + x60^2+ x61^2 + x62^2 + x63^2 + x64^2 + x65^2 + x66^2 + x67^2 + x68^2 + x69^2 + x70^2+ +-20 * exp (-0.2 * sqrt (1/100 * (x1^2 + x2 ^2 + x3^2 + x4^2 + x5^2 + x6^2 +x7^2 +x8^2 + x9^2 + x10^2 +x11^2 + x12^2 + x13^2 + x14^2 + x15^2 + x16^2 +x17^2 +x18^2 + x19^2 + x20^2 + x21^2 + x22^2 + x23^2 + x24^2 + x25^2 + x26^2 +x27^2 +x28^2 + x29^2 + x30^2 +x31^2 + x32^2 + x33^2 + x34^2 + x35^2 + x36^2 +x37^2 +x38^2 + x39^2 + x40^2+ x41^2 + x42^2 + x43^2 + x44^2 + x45^2 + x46^2 + x47^2 + x48^2 + x49^2 + x50^2+ x51^2 + x52^2 + x53^2 + x54^2 + x55^2 + x56^2 + x57^2 + x58^2 + x59^2 + x60^2+ x61^2 + x62^2 + x63^2 + x64^2 + x65^2 + x66^2 + x67^2 + x68^2 + x69^2 + x70^2+ x71^2 + x72^2 + x73^2 + x74^2 + x75^2 + x76^2 + x77^2 + x78^2 + x79^2 + x80^2+ x81^2 + x82^2 + x83^2 + x84^2 + x85^2 + x86^2 + x87^2 + x88^2 + x89^2 + x90^2+ x91^2 + x92^2 + x93^2 + x94^2 + x95^2 + x96^2 + x97^2 + x98^2 + x99^2 + x100^2 - ))) - exp (1/30 * (cos (2*pi*x1) + cos (2*pi*x2) +cos (2*pi*x3) + ))) - exp (1/100 * (cos (2*pi*x1) + cos (2*pi*x2) +cos (2*pi*x3) + cos (2*pi*x4) + cos (2*pi*x5)+ cos (2*pi*x6)+ cos (2*pi*x7)+ cos (2*pi*x8)+ cos (2*pi*x9)+ cos (2*pi*x10) +cos (2*pi*x11) + cos (2*pi*x12) +cos (2*pi*x13) + cos (2*pi*x14) + cos (2*pi*x15)+ cos (2*pi*x16)+ cos (2*pi*x17)+ cos (2*pi*x18)+ cos (2*pi*x19)+ cos (2*pi*x20) + cos (2*pi*x21) + cos (2*pi*x22) +cos (2*pi*x23) + cos (2*pi*x24) + cos (2*pi*x25)+ cos (2*pi*x26)+ cos (2*pi*x27)+ cos (2*pi*x28)+ cos (2*pi*x29)+ cos (2*pi*x30) +cos (2*pi*x31) + cos (2*pi*x32) +cos (2*pi*x33) diff --git a/benchs/optim/benchs-unconstrainedoptim/ackley50.bch b/benchs/optim/benchs-unconstrainedoptim/ackley50.bch index 4f5f52a1a..702bcaf90 100644 --- a/benchs/optim/benchs-unconstrainedoptim/ackley50.bch +++ b/benchs/optim/benchs-unconstrainedoptim/ackley50.bch @@ -52,8 +52,8 @@ x49 in [-32,32]; x50 in [-32,32]; minimize --20 * exp (-0.2 * sqrt (1/30 * (x1^2 + x2 ^2 + x3^2 + x4^2 + x5^2 + x6^2 +x7^2 +x8^2 + x9^2 + x10^2 +x11^2 + x12^2 + x13^2 + x14^2 + x15^2 + x16^2 +x17^2 +x18^2 + x19^2 + x20^2 + x21^2 + x22^2 + x23^2 + x24^2 + x25^2 + x26^2 +x27^2 +x28^2 + x29^2 + x30^2 +x31^2 + x32^2 + x33^2 + x34^2 + x35^2 + x36^2 +x37^2 +x38^2 + x39^2 + x40^2+ x41^2 + x42^2 + x43^2 + x44^2 + x45^2 + x46^2 + x47^2 + x48^2 + x49^2 + x50^2 - ))) - exp (1/30 * (cos (2*pi*x1) + cos (2*pi*x2) +cos (2*pi*x3) +-20 * exp (-0.2 * sqrt (1/50 * (x1^2 + x2 ^2 + x3^2 + x4^2 + x5^2 + x6^2 +x7^2 +x8^2 + x9^2 + x10^2 +x11^2 + x12^2 + x13^2 + x14^2 + x15^2 + x16^2 +x17^2 +x18^2 + x19^2 + x20^2 + x21^2 + x22^2 + x23^2 + x24^2 + x25^2 + x26^2 +x27^2 +x28^2 + x29^2 + x30^2 +x31^2 + x32^2 + x33^2 + x34^2 + x35^2 + x36^2 +x37^2 +x38^2 + x39^2 + x40^2+ x41^2 + x42^2 + x43^2 + x44^2 + x45^2 + x46^2 + x47^2 + x48^2 + x49^2 + x50^2 + ))) - exp (1/50 * (cos (2*pi*x1) + cos (2*pi*x2) +cos (2*pi*x3) + cos (2*pi*x4) + cos (2*pi*x5)+ cos (2*pi*x6)+ cos (2*pi*x7)+ cos (2*pi*x8)+ cos (2*pi*x9)+ cos (2*pi*x10) +cos (2*pi*x11) + cos (2*pi*x12) +cos (2*pi*x13) + cos (2*pi*x14) + cos (2*pi*x15)+ cos (2*pi*x16)+ cos (2*pi*x17)+ cos (2*pi*x18)+ cos (2*pi*x19)+ cos (2*pi*x20) + cos (2*pi*x21) + cos (2*pi*x22) +cos (2*pi*x23) + cos (2*pi*x24) + cos (2*pi*x25)+ cos (2*pi*x26)+ cos (2*pi*x27)+ cos (2*pi*x28)+ cos (2*pi*x29)+ cos (2*pi*x30) +cos (2*pi*x31) + cos (2*pi*x32) +cos (2*pi*x33) diff --git a/cmake.install/CMakeLists.txt b/cmake.install/CMakeLists.txt deleted file mode 100644 index bd9bc79c5..000000000 --- a/cmake.install/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -install (FILES "${MODULE_DIR}/ibex-config-utils.cmake" ${EXPORTFILES} - DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE} COMPONENT devtools) diff --git a/cmake.utils/CMakeFindJavaCommon.cmake b/cmake.utils/CMakeFindJavaCommon.cmake new file mode 100644 index 000000000..46b6280b3 --- /dev/null +++ b/cmake.utils/CMakeFindJavaCommon.cmake @@ -0,0 +1,31 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + + +# Do not include this module directly from code outside CMake! +set(_JAVA_HOME "") +if(JAVA_HOME AND IS_DIRECTORY "${JAVA_HOME}") + set(_JAVA_HOME "${JAVA_HOME}") + set(_JAVA_HOME_EXPLICIT 1) +else() + set(_ENV_JAVA_HOME "") + if(DEFINED ENV{JAVA_HOME}) + file(TO_CMAKE_PATH "$ENV{JAVA_HOME}" _ENV_JAVA_HOME) + endif() + if(_ENV_JAVA_HOME AND IS_DIRECTORY "${_ENV_JAVA_HOME}") + set(_JAVA_HOME "${_ENV_JAVA_HOME}") + set(_JAVA_HOME_EXPLICIT 1) + else() + set(_CMD_JAVA_HOME "") + if(APPLE AND EXISTS /usr/libexec/java_home) + execute_process(COMMAND /usr/libexec/java_home + OUTPUT_VARIABLE _CMD_JAVA_HOME OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() + if(_CMD_JAVA_HOME AND IS_DIRECTORY "${_CMD_JAVA_HOME}") + set(_JAVA_HOME "${_CMD_JAVA_HOME}") + set(_JAVA_HOME_EXPLICIT 0) + endif() + unset(_CMD_JAVA_HOME) + endif() + unset(_ENV_JAVA_HOME) +endif() diff --git a/cmake.utils/FindCppUnit.cmake b/cmake.utils/FindCppUnit.cmake new file mode 100644 index 000000000..8fe7d71f5 --- /dev/null +++ b/cmake.utils/FindCppUnit.cmake @@ -0,0 +1,55 @@ +# FindCppUnit +# ----------- +# +# The module defines the following variables: +# +# CPPUNIT_FOUND +# CPPUNIT_INCLUDE_DIRS +# CPPUNIT_LIBRARIES +# +# and the following imported target (if it does not already exist): +# +# CppUnit::Cppunit - The CppUnit library +# +# +# Requires CMake >= 3.0 + +set (CPPUNIT_DIR "${CPPUNIT_DIR}" CACHE PATH "Directory to search for CppUnit") + +# Look for the release library +find_library (CPPUNIT_LIBRARY_RELEASE NAMES cppunit + HINTS "${CPPUNIT_DIR}" + PATH_SUFFIXES lib) +# Look for the debug library +find_library (CPPUNIT_LIBRARY_DEBUG NAMES cppunitd + HINTS "${CPPUNIT_DIR}" + PATH_SUFFIXES lib) +# Select the correct library depending on current configuration +include (SelectLibraryConfigurations) +select_library_configurations (CPPUNIT) + +# Might want to look close to the library first for the includes. +get_filename_component (_libdir "${CPPUNIT_LIBRARY}" PATH) + +# Look for the include directory +find_path (CPPUNIT_INC_DIR NAMES cppunit/Test.h + HINTS "${_libdir}/.." "${CPPUNIT_DIR}" + PATH_SUFFIXES include) + +include (FindPackageHandleStandardArgs) +find_package_handle_standard_args (CppUnit DEFAULT_MSG CPPUNIT_LIBRARY + CPPUNIT_INC_DIR) + +if (CPPUNIT_FOUND) + set (CPPUNIT_LIBRARIES ${CPPUNIT_LIBRARY} ${CMAKE_DL_LIBS}) + set (CPPUNIT_INCLUDE_DIRS "${CPPUNIT_INC_DIR}") + mark_as_advanced (CPPUNIT_DIR) + if (NOT TARGET CppUnit::CppUnit) + add_library (CppUnit::CppUnit INTERFACE IMPORTED) + set_target_properties (CppUnit::CppUnit PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${CPPUNIT_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${CPPUNIT_LIBRARIES}") + endif() +endif() + +mark_as_advanced(CPPUNIT_INC_DIR CPPUNIT_LIBRARY_RELEASE CPPUNIT_LIBRARY_DEBUG) diff --git a/cmake.utils/FindJava.cmake b/cmake.utils/FindJava.cmake new file mode 100644 index 000000000..a973781ae --- /dev/null +++ b/cmake.utils/FindJava.cmake @@ -0,0 +1,364 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +FindJava +-------- + +Find Java + +This module finds if Java is installed and determines where the +include files and libraries are. The caller may set variable ``JAVA_HOME`` +to specify a Java installation prefix explicitly. + +See also the :module:`FindJNI` module to find Java Native Interface (JNI). + +.. versionadded:: 3.10 + Added support for Java 9+ version parsing. + +Specify one or more of the following components as you call this find module. See example below. + +:: + + Runtime = Java Runtime Environment used to execute Java byte-compiled applications + Development = Development tools (java, javac, javah, jar and javadoc), includes Runtime component + IdlJ = Interface Description Language (IDL) to Java compiler + JarSigner = Signer and verifier tool for Java Archive (JAR) files + + +This module sets the following result variables: + +:: + + Java_JAVA_EXECUTABLE = the full path to the Java runtime + Java_JAVAC_EXECUTABLE = the full path to the Java compiler + Java_JAVAH_EXECUTABLE = the full path to the Java header generator + Java_JAVADOC_EXECUTABLE = the full path to the Java documentation generator + Java_IDLJ_EXECUTABLE = the full path to the Java idl compiler + Java_JAR_EXECUTABLE = the full path to the Java archiver + Java_JARSIGNER_EXECUTABLE = the full path to the Java jar signer + Java_VERSION_STRING = Version of java found, eg. 1.6.0_12 + Java_VERSION_MAJOR = The major version of the package found. + Java_VERSION_MINOR = The minor version of the package found. + Java_VERSION_PATCH = The patch version of the package found. + Java_VERSION_TWEAK = The tweak version of the package found (after '_') + Java_VERSION = This is set to: $major[.$minor[.$patch[.$tweak]]] + +.. versionadded:: 3.4 + Added the ``Java_IDLJ_EXECUTABLE`` and ``Java_JARSIGNER_EXECUTABLE`` + variables. + +The minimum required version of Java can be specified using the +:command:`find_package` syntax, e.g. + +.. code-block:: cmake + + find_package(Java 1.8) + +NOTE: ``${Java_VERSION}`` and ``${Java_VERSION_STRING}`` are not guaranteed to +be identical. For example some java version may return: +``Java_VERSION_STRING = 1.8.0_17`` and ``Java_VERSION = 1.8.0.17`` + +another example is the Java OEM, with: ``Java_VERSION_STRING = 1.8.0-oem`` +and ``Java_VERSION = 1.8.0`` + +For these components the following variables are set: + +:: + + Java_FOUND - TRUE if all components are found. + Java__FOUND - TRUE if is found. + + + +Example Usages: + +:: + + find_package(Java) + find_package(Java 1.8 REQUIRED) + find_package(Java COMPONENTS Runtime) + find_package(Java COMPONENTS Development) +#]=======================================================================] + +include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake) + +# The HINTS option should only be used for values computed from the system. +set(_JAVA_HINTS) +if(_JAVA_HOME) + list(APPEND _JAVA_HINTS ${_JAVA_HOME}/bin) +endif() +if (WIN32) + macro (_JAVA_GET_INSTALLED_VERSIONS _KIND) + execute_process(COMMAND REG QUERY HKLM\\SOFTWARE\\JavaSoft\\${_KIND} + RESULT_VARIABLE _JAVA_RESULT + OUTPUT_VARIABLE _JAVA_VERSIONS + ERROR_QUIET) + if (NOT _JAVA_RESULT) + string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9.]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}") + if (_JAVA_VERSIONS) + # sort versions. Most recent first + ## handle version 9 apart from other versions to get correct ordering + set (_JAVA_V9 ${_JAVA_VERSIONS}) + list (FILTER _JAVA_VERSIONS EXCLUDE REGEX "${_KIND}\\\\9") + list (SORT _JAVA_VERSIONS) + list (REVERSE _JAVA_VERSIONS) + list (FILTER _JAVA_V9 INCLUDE REGEX "${_KIND}\\\\9") + list (SORT _JAVA_V9) + list (REVERSE _JAVA_V9) + list (APPEND _JAVA_VERSIONS ${_JAVA_V9}) + foreach (_JAVA_HINT IN LISTS _JAVA_VERSIONS) + list(APPEND _JAVA_HINTS "[${_JAVA_HINT};JavaHome]/bin") + endforeach() + endif() + endif() + endmacro() + + # search for installed versions for version 9 and upper + _JAVA_GET_INSTALLED_VERSIONS("JDK") + _JAVA_GET_INSTALLED_VERSIONS("JRE") + + list(APPEND _JAVA_HINTS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.9;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.8;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.7;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.6;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.5;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.4;JavaHome]/bin" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.3;JavaHome]/bin" + ) +endif() + +# Hard-coded guesses should still go in PATHS. This ensures that the user +# environment can always override hard guesses. +set(_JAVA_PATHS + /usr/lib/java/bin + /usr/share/java/bin + /usr/local/java/bin + /usr/local/java/share/bin + /usr/java/j2sdk1.4.2_04 + /usr/lib/j2sdk1.4-sun/bin + /usr/java/j2sdk1.4.2_09/bin + /usr/lib/j2sdk1.5-sun/bin + /opt/sun-jdk-1.5.0.04/bin + /usr/local/jdk-1.7.0/bin + /usr/local/jdk-1.6.0/bin + ) +find_program(Java_JAVA_EXECUTABLE + NAMES java + HINTS ${_JAVA_HINTS} + PATHS ${_JAVA_PATHS} +) + +if(Java_JAVA_EXECUTABLE) + execute_process(COMMAND "${Java_JAVA_EXECUTABLE}" -version + RESULT_VARIABLE res + OUTPUT_VARIABLE var + ERROR_VARIABLE var # sun-java output to stderr + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_STRIP_TRAILING_WHITESPACE) + if( res ) + if(var MATCHES "Unable to locate a Java Runtime to invoke|No Java runtime present, requesting install") + set(Java_JAVA_EXECUTABLE Java_JAVA_EXECUTABLE-NOTFOUND) + elseif(${Java_FIND_REQUIRED}) + message( FATAL_ERROR "Error executing java -version" ) + else() + message( STATUS "Warning, could not run java -version") + endif() + else() + # Extract version components (up to 4 levels) from "java -version" output. + set(_java_version_regex [[(([0-9]+)(\.([0-9]+)(\.([0-9]+)(_([0-9]+))?)?)?.*)]]) + if(var MATCHES "java version \"${_java_version_regex}\"") + # Sun, GCJ, older OpenJDK + set(Java_VERSION_STRING "${CMAKE_MATCH_1}") + set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}") + if (CMAKE_MATCH_4) + set(Java_VERSION_MINOR "${CMAKE_MATCH_4}") + else() + set(Java_VERSION_MINOR 0) + endif() + if (CMAKE_MATCH_6) + set(Java_VERSION_PATCH "${CMAKE_MATCH_6}") + else() + set(Java_VERSION_PATCH 0) + endif() + set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}") + elseif(var MATCHES "openjdk version \"${_java_version_regex}\"") + # OpenJDK + set(Java_VERSION_STRING "${CMAKE_MATCH_1}") + set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}") + if (CMAKE_MATCH_4) + set(Java_VERSION_MINOR "${CMAKE_MATCH_4}") + else() + set(Java_VERSION_MINOR 0) + endif() + if (CMAKE_MATCH_6) + set(Java_VERSION_PATCH "${CMAKE_MATCH_6}") + else() + set(Java_VERSION_PATCH 0) + endif() + set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}") + elseif(var MATCHES "openjdk version \"([0-9]+)-[A-Za-z]+\"") + # OpenJDK 9 early access builds or locally built + set(Java_VERSION_STRING "1.${CMAKE_MATCH_1}.0") + set(Java_VERSION_MAJOR "1") + set(Java_VERSION_MINOR "${CMAKE_MATCH_1}") + set(Java_VERSION_PATCH "0") + set(Java_VERSION_TWEAK "") + elseif(var MATCHES "java full version \"kaffe-${_java_version_regex}\"") + # Kaffe style + set(Java_VERSION_STRING "${CMAKE_MATCH_1}") + set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}") + set(Java_VERSION_MINOR "${CMAKE_MATCH_4}") + set(Java_VERSION_PATCH "${CMAKE_MATCH_6}") + set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}") + else() + if(NOT Java_FIND_QUIETLY) + string(REPLACE "\n" "\n " ver_msg "\n${var}") + message(WARNING "Java version not recognized:${ver_msg}\nPlease report.") + endif() + set(Java_VERSION_STRING "") + set(Java_VERSION_MAJOR "") + set(Java_VERSION_MINOR "") + set(Java_VERSION_PATCH "") + set(Java_VERSION_TWEAK "") + endif() + set(Java_VERSION "${Java_VERSION_MAJOR}") + if(NOT "x${Java_VERSION}" STREQUAL "x") + foreach(c MINOR PATCH TWEAK) + if(NOT "x${Java_VERSION_${c}}" STREQUAL "x") + string(APPEND Java_VERSION ".${Java_VERSION_${c}}") + else() + break() + endif() + endforeach() + endif() + endif() + +endif() + + +find_program(Java_JAR_EXECUTABLE + NAMES jar + HINTS ${_JAVA_HINTS} + PATHS ${_JAVA_PATHS} +) + +find_program(Java_JAVAC_EXECUTABLE + NAMES javac + HINTS ${_JAVA_HINTS} + PATHS ${_JAVA_PATHS} +) + +find_program(Java_JAVAH_EXECUTABLE + NAMES javah + HINTS ${_JAVA_HINTS} + PATHS ${_JAVA_PATHS} +) + +find_program(Java_JAVADOC_EXECUTABLE + NAMES javadoc + HINTS ${_JAVA_HINTS} + PATHS ${_JAVA_PATHS} +) + +find_program(Java_IDLJ_EXECUTABLE + NAMES idlj + HINTS ${_JAVA_HINTS} + PATHS ${_JAVA_PATHS} +) + +find_program(Java_JARSIGNER_EXECUTABLE + NAMES jarsigner + HINTS ${_JAVA_HINTS} + PATHS ${_JAVA_PATHS} +) + +include(FindPackageHandleStandardArgs) +if(Java_FIND_COMPONENTS) + set(_JAVA_REQUIRED_VARS) + foreach(component ${Java_FIND_COMPONENTS}) + # User just want to execute some Java byte-compiled + If(component STREQUAL "Runtime") + list(APPEND _JAVA_REQUIRED_VARS Java_JAVA_EXECUTABLE) + if(Java_JAVA_EXECUTABLE) + set(Java_Runtime_FOUND TRUE) + endif() + elseif(component STREQUAL "Development") + list(APPEND _JAVA_REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAVAC_EXECUTABLE + Java_JAR_EXECUTABLE Java_JAVADOC_EXECUTABLE) + if(Java_VERSION VERSION_LESS "10") + list(APPEND _JAVA_REQUIRED_VARS Java_JAVAH_EXECUTABLE) + if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE + AND Java_JAVAH_EXECUTABLE AND Java_JAR_EXECUTABLE AND Java_JAVADOC_EXECUTABLE) + set(Java_Development_FOUND TRUE) + endif() + else() + if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE + AND Java_JAR_EXECUTABLE AND Java_JAVADOC_EXECUTABLE) + set(Java_Development_FOUND TRUE) + endif() + endif() + elseif(component STREQUAL "IdlJ") + list(APPEND _JAVA_REQUIRED_VARS Java_IDLJ_EXECUTABLE) + if(Java_IDLJ_EXECUTABLE) + set(Java_IdlJ_FOUND TRUE) + endif() + elseif(component STREQUAL "JarSigner") + list(APPEND _JAVA_REQUIRED_VARS Java_JARSIGNER_EXECUTABLE) + if(Java_JARSIGNER_EXECUTABLE) + set(Java_JarSigner_FOUND TRUE) + endif() + else() + message(FATAL_ERROR "Comp: ${component} is not handled") + endif() + endforeach() + list (REMOVE_DUPLICATES _JAVA_REQUIRED_VARS) + find_package_handle_standard_args(Java + REQUIRED_VARS ${_JAVA_REQUIRED_VARS} HANDLE_COMPONENTS + VERSION_VAR Java_VERSION + ) + if(Java_FOUND) + foreach(component ${Java_FIND_COMPONENTS}) + set(Java_${component}_FOUND TRUE) + endforeach() + endif() +else() + # Check for Development + if(Java_VERSION VERSION_LESS "10") + find_package_handle_standard_args(Java + REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE + Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE + VERSION_VAR Java_VERSION_STRING + ) + else() + find_package_handle_standard_args(Java + REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE + Java_JAVADOC_EXECUTABLE + VERSION_VAR Java_VERSION_STRING + ) + endif() +endif() + + +mark_as_advanced( + Java_JAVA_EXECUTABLE + Java_JAR_EXECUTABLE + Java_JAVAC_EXECUTABLE + Java_JAVAH_EXECUTABLE + Java_JAVADOC_EXECUTABLE + Java_IDLJ_EXECUTABLE + Java_JARSIGNER_EXECUTABLE + ) + +# LEGACY +set(JAVA_RUNTIME ${Java_JAVA_EXECUTABLE}) +set(JAVA_ARCHIVE ${Java_JAR_EXECUTABLE}) +set(JAVA_COMPILE ${Java_JAVAC_EXECUTABLE}) diff --git a/cmake.utils/IbexUtils.cmake b/cmake.utils/IbexUtils.cmake deleted file mode 100644 index bcffd7372..000000000 --- a/cmake.utils/IbexUtils.cmake +++ /dev/null @@ -1,121 +0,0 @@ -include (ibex-config-utils) - -################################################################################ -################################################################################ -################################################################################ -function (FIND_HEADER_CUSTOM prefix hdrname) - set (opt "") - set (oneArgs "") - set (multiArgs PATHS) - - cmake_parse_arguments(FHC "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) - - if(FHC_UNPARSED_ARGUMENTS) - message (FATAL_ERROR "Unknown keywords given to find_header_custom(): \"${FHC_UNPARSED_ARGUMENTS}\"") - endif() - - set (MSG "Looking for ${hdrname}") - message (STATUS "${MSG}") - - # First look only in PATHS if given - if (FHC_PATHS) - find_path (${prefix}_INCDIR ${hdrname} PATHS ${FHC_PATHS} - DOC "Set to exact include directory to bypass internal test" - PATH_SUFFIXES include NO_DEFAULT_PATH) - endif () - - if (NOT ${prefix}_INCDIR) - # Now look with system and cmake paths - find_path (${prefix}_INCDIR ${hdrname} - DOC "Set to exact include directory to bypass internal test" - PATH_SUFFIXES include) - if (${prefix}_INCDIR) - # If found in this case, the path is only used for building, it will not - # be added in pkg-config and export files - set (${prefix}_INCDIR $) - endif () - endif () - - if (${prefix}_INCDIR) - message (STATUS "${MSG} -- found at ${${prefix}_INCDIR}") - else() - message (STATUS "${MSG} -- not found") - endif() - - set (${prefix}_INCDIR ${${prefix}_INCDIR} PARENT_SCOPE) - mark_as_advanced (${prefix}_INCDIR) -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (FIND_LIBRARY_CUSTOM prefix libname) - set (opt "") - set (oneArgs "") - set (multiArgs PATHS) - - cmake_parse_arguments(FLC "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) - - if(FLC_UNPARSED_ARGUMENTS) - message (FATAL_ERROR "Unknown keywords given to find_library_custom(): \"${FLC_UNPARSED_ARGUMENTS}\"") - endif() - - set (MSG "Looking for ${libname}") - message (STATUS "${MSG}") - - # First look only in PATHS if given - if (FLC_PATHS) - find_library (${prefix}_LIB ${libname} PATHS ${FLC_PATHS} - DOC "Set to exact lib directory to bypass internal test" - PATH_SUFFIXES lib NO_DEFAULT_PATH) - endif () - - if (NOT ${prefix}_LIB) - # Now look with system and cmake paths - find_library (${prefix}_LIB ${libname} - DOC "Set to exact lib directory to bypass internal test" - PATH_SUFFIXES lib) - endif () - - if (${prefix}_LIB) - message (STATUS "${MSG} -- found at ${${prefix}_LIB}") - else() - message (STATUS "${MSG} -- not found") - endif() - - set (${prefix}_LIB ${${prefix}_LIB} PARENT_SCOPE) - mark_as_advanced (${prefix}_LIB) -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (IBEX_GENERATE_PKGCONFIG_FILE tgtname) - get_target_incdirs (_incdirs ${tgtname}) - generators_expression_replace_for_build (incdirs "${_incdirs}" - PREFIX "\${prefix}" - INCLUDEDIR "\${includedir}") - string (REPLACE "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}" "\${includedir}" incdirs "${incdirs}") - - get_target_libs (_Libs ${tgtname}) - list (REMOVE_DUPLICATES _Libs) - generators_expression_replace_for_build (Libs "${_Libs}" PREFIX "\${prefix}" - LIBDIR "\${includedir}") - string (REPLACE "\${prefix}/${CMAKE_INSTALL_LIBDIR}" "\${libdir}" Libs "${Libs}") - - file (GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ibex.pc - CONTENT "prefix=${CMAKE_INSTALL_PREFIX} -includedir=\${prefix}/${CMAKE_INSTALL_INCLUDEDIR} -libdir=\${prefix}/${CMAKE_INSTALL_LIBDIR} - -Name: ibex -Description: ${IBEX_DESCRIPTION} -Url: ${IBEX_URL} -Version: ${IBEX_VERSION} -Cflags: -I$ -Libs: $ -") - - install (FILES ${CMAKE_CURRENT_BINARY_DIR}/ibex.pc - DESTINATION ${CMAKE_INSTALL_PKGCONFIG} COMPONENT devtools) -endfunction () diff --git a/cmake.utils/cmake_uninstall.cmake.in b/cmake.utils/cmake_uninstall.cmake.in new file mode 100644 index 000000000..51d9de624 --- /dev/null +++ b/cmake.utils/cmake_uninstall.cmake.in @@ -0,0 +1,21 @@ +if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") + message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") +endif() + +file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) +string(REGEX REPLACE "\n" ";" files "${files}") +foreach(file ${files}) + message(STATUS "Uninstalling $ENV{DESTDIR}${file}") + if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") + exec_program( + "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + if(NOT "${rm_retval}" STREQUAL 0) + message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}: ${rm_out}") + endif() + else() + message(STATUS "File $ENV{DESTDIR}${file} does not exist.") + endif() +endforeach() diff --git a/cmake.utils/ibex-config-utils.cmake b/cmake.utils/ibex-config-utils.cmake deleted file mode 100644 index 6a95bc2cd..000000000 --- a/cmake.utils/ibex-config-utils.cmake +++ /dev/null @@ -1,504 +0,0 @@ -################################################################################ -################################################################################ -################################################################################ -# subdir_list (RESULTVAR [ WDIR wdir] [ RELATIVE ]) -# return the list of directories of wdir -# If not given wdir = CMAKE_CURRENT_SOURCE_DIR -# By default, RELATIVE is not set and absolute path are returned. If RELATIVE -# is given, only the names of the directories are returned. -function (SUBDIR_LIST resultvar) - set (opt RELATIVE) - set (oneArgs WDIR) - set (multiArgs "") - - cmake_parse_arguments(SL "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) - - if(SL_UNPARSED_ARGUMENTS) - message (FATAL_ERROR "Unknown keywords given to subdir_list(): \"${SL_UNPARSED_ARGUMENTS}\"") - endif() - - if (SL_WDIR) - set (wdir ${SL_WDIR}) - else () - set (wdir ${CMAKE_CURRENT_SOURCE_DIR}) - endif () - - # - file (GLOB children RELATIVE ${wdir} ${wdir}/*) - set (dirlist "") - foreach (child ${children}) - if (IS_DIRECTORY ${wdir}/${child}) - if (SL_RELATIVE) - list (APPEND dirlist ${child}) - else() - list (APPEND dirlist ${wdir}/${child}) - endif() - endif() - endforeach() - set (${resultvar} ${dirlist} PARENT_SCOPE) -endfunction() - -################################################################################ -################################################################################ -################################################################################ -# filter the input list(s) and return only elements matching regex -function (LIST_FILTER resultvar regex) - foreach (filelist ${ARGN}) - foreach (file ${filelist}) - if (file MATCHES "${regex}") - list (APPEND _list ${file}) - endif () - endforeach() - endforeach() - set (${resultvar} ${_list} PARENT_SCOPE) -endfunction () - -function (LIST_FILTER_HEADER resultvar) - list_filter (${resultvar} "\\.(h|hpp)$" ${ARGN}) - set (${resultvar} ${${resultvar}} PARENT_SCOPE) -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (GENERATE_MAIN_HEADER outputname) - set (opt "") - set (oneArgs WITH_GUARD) - set (multiArgs "") - - cmake_parse_arguments(GMH "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) - - file (WRITE ${outputname} "/* This file in generated by CMake */\n\n") - if (GMH_WITH_GUARD) - file (APPEND ${outputname} "#ifndef ${GMH_WITH_GUARD}\n") - file (APPEND ${outputname} "#define ${GMH_WITH_GUARD}\n\n") - endif () - - foreach (filelist ${GMH_UNPARSED_ARGUMENTS}) - foreach (file ${filelist}) - GET_FILENAME_COMPONENT (header_name ${file} NAME) - file (APPEND ${outputname} "#include <${header_name}>\n") - endforeach() - endforeach() - - if (GMH_WITH_GUARD) - file (APPEND ${outputname} "\n#endif /* ${GMH_WITH_GUARD} */\n") - endif () -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (LIB_GET_ABSPATH_FROM_NAME var libdir libname) - if (BUILD_SHARED_LIBS) - set (_pre ${CMAKE_SHARED_LIBRARY_PREFIX}) - set (_suf ${CMAKE_SHARED_LIBRARY_SUFFIX}) - else () - set (_pre ${CMAKE_STATIC_LIBRARY_PREFIX}) - set (_suf ${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif () - set (${var} "${libdir}/${_pre}${libname}${_suf}" PARENT_SCOPE) -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (EXECUTE_PROCESS_CHECK) - set (opt "") - set (oneArgs WORKING_DIRECTORY MSG LOGBASENAME STATUS_PREFIX) - set (multiArgs COMMAND) - - cmake_parse_arguments(EPC "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) - - if(EPC_UNPARSED_ARGUMENTS) - message (FATAL_ERROR "Unknown keywords given to execute_process_check(): \"${EPC_UNPARSED_ARGUMENTS}\"") - endif() - - # Check mandatory arguments - foreach (arg "COMMAND" "MSG" "LOGBASENAME") - if (NOT EPC_${arg}) - message (FATAL_ERROR "Missing mandatory argument ${arg} in execute_process_check") - endif () - endforeach () - - # use working dir if given - if (EPC_WORKING_DIRECTORY) - set (_workingdir WORKING_DIRECTORY ${EPC_WORKING_DIRECTORY}) - endif () - - message (STATUS "${EPC_STATUS_PREFIX}${EPC_MSG}") - execute_process (COMMAND ${EPC_COMMAND} ${_workingdir} - RESULT_VARIABLE ret - OUTPUT_FILE "${EPC_LOGBASENAME}-out.log" - ERROR_FILE "${EPC_LOGBASENAME}-err.log" - ) - - if (ret) - message (FATAL_ERROR "An error occurs while ${EPC_MSG}\n" - "See also\n${EPC_LOGBASENAME}-*.log\n") - endif () -endfunction () - -################################################################################ -################################################################################ -################################################################################ -# Note: we need this one to be a macro, not a function, as we need to execute -# the following command in the same scope as the main CMakeLists.txt file -macro (ADD_MAKE_TARGET_FOR_CTEST tgtname) - include (CTest) - - if (ARGN) - set (_depends DEPENDS ${ARGN}) - else () - set (_depends "") - endif () - - if ("${CMAKE_GENERATOR}" STREQUAL "Unix Makefiles") - set (_cmd ${CMAKE_CTEST_COMMAND} --output-on-failure $(ARGS)) - else () - set (_cmd ${CMAKE_CTEST_COMMAND} --output-on-failure) - endif () - - if (BUILD_TESTING) - add_custom_target (${tgtname} COMMAND ${_cmd} ${_depends} - COMMENT "Running the tests") - add_subdirectory (tests EXCLUDE_FROM_ALL) - endif () -endmacro () - -################################################################################ -################################################################################ -################################################################################ -function (GENERATORS_EXPRESSION_REPLACE_FOR_BUILD resultvar input_str) - set (opt "") - set (oneArgs INCLUDEDIR LIBDIR PREFIX) - set (multiArgs "") - - cmake_parse_arguments(GERFB "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) - - if(GERFB_UNPARSED_ARGUMENTS) - message (FATAL_ERROR "Unknown keywords given to generators_expression_replace_for_build(): \"${GERFB_UNPARSED_ARGUMENTS}\"") - endif() - - if (NOT GERFB_PREFIX) - set (GERFB_PREFIX "${CMAKE_INSTALL_PREFIX}") - endif () - if (NOT GERFB_INCLUDEDIR) - set (GERFB_INCLUDEDIR "${GERFB_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") - endif () - if (NOT GERFB_LIBDIR) - set (GERFB_LIBDIR "${GERFB_PREFIX}/${CMAKE_INSTALL_LIBDIR}") - endif () - - string(REPLACE "$/${CMAKE_INSTALL_INCLUDEDIR}" "${GERFB_INCLUDEDIR}" input_str "${input_str}") - string(REPLACE "$/${CMAKE_INSTALL_LIBDIR}" "${GERFB_LIBDIR}" input_str "${input_str}") - string(REPLACE "$" "${GERFB_PREFIX}" input_str "${input_str}") - - set(${resultvar} ${input_str} PARENT_SCOPE) -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (GET_TARGET_INCDIRS outvarname target) - set (incdirs) - - get_target_property (_propvalue ${target} INTERFACE_INCLUDE_DIRECTORIES) - if (_propvalue) - list (APPEND incdirs ${_propvalue}) - endif () - - get_target_property (_libs ${target} INTERFACE_LINK_LIBRARIES) - foreach (lib ${_libs}) - if (TARGET ${lib}) - get_target_incdirs (_propvalue ${lib}) - if (_propvalue) - list (APPEND incdirs ${_propvalue}) - endif () - endif () - endforeach () - - set (${outvarname} ${incdirs} PARENT_SCOPE) -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (GET_TARGET_LIBS outvarname target) - set (Libs) - - if (TARGET ${target}) - get_target_property (is_imported ${target} IMPORTED) - get_target_property (target_type ${target} TYPE) - if (is_imported) - if (NOT "${target_type}" STREQUAL "INTERFACE_LIBRARY") - get_target_property (_propvalue ${target} IMPORTED_PKG_LIBS) - if (_propvalue) - list (APPEND Libs ${_propvalue}) - endif () - endif () - else () - get_target_property (_propvalue ${target} NAME) - list (APPEND Libs "-L\${libdir};-l${_propvalue}") - endif () - - get_target_property (_libs ${target} INTERFACE_LINK_LIBRARIES) - if (_libs) - foreach (lib ${_libs}) - get_target_libs (_propvalue ${lib}) - if (_propvalue) - list (APPEND Libs ${_propvalue}) - endif () - endforeach () - endif () - else () - list (APPEND Libs ${target}) - endif () - - set (${outvarname} ${Libs} PARENT_SCOPE) -endfunction () - -################################################################################ -################################################################################ -################################################################################ -define_property (TARGET PROPERTY IMPORTED_PKG_LIBS - BRIEF_DOCS "Libs for pkg-config file" - FULL_DOCS "String to add to 'Libs:' in pkg-config file") - -function (CREATE_TARGET_IMPORT_AND_EXPORT libname libabspath cfgfilename_var) - set (opt NO_EXPORT INSTALL) - set (oneArgs NAMESPACE TARGET_NAME COMPONENT) - set (multiArgs INCLUDE_DIRECTORIES LINK_LIBRARIES COMPILE_OPTIONS DEPENDS) - - cmake_parse_arguments(CTIE "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) - - if(CTIE_UNPARSED_ARGUMENTS) - message (FATAL_ERROR "Unknown keywords given to create_target_import_and_export(): \"${CTIE_UNPARSED_ARGUMENTS}\"") - endif() - - ############################################################################## - # Default values for some arguments - ############################################################################## - if (CTIE_TARGET_NAME) - set (target ${CTIE_NAMESPACE}${CTIE_TARGET_NAME}) - else () - set (target ${CTIE_NAMESPACE}${libname}) - endif () - - ############################################################################## - # Get type of library (SHARED|STATIC|MODULE|UNKNOWN) - ############################################################################## - if (libabspath MATCHES "${CMAKE_SHARED_LIBRARY_PREFIX}${libname}${CMAKE_SHARED_LIBRARY_SUFFIX}$") - set (libtype "SHARED") - elseif (libabspath MATCHES "${CMAKE_STATIC_LIBRARY_PREFIX}${libname}${CMAKE_STATIC_LIBRARY_SUFFIX}$") - set (libtype "STATIC") - elseif (libabspath MATCHES "${CMAKE_SHARED_MODULE_PREFIX}${libname}${CMAKE_SHARED_MODULE_SUFFIX}$") - set (libtype "MODULE") - elseif (NOT libabspath) # not absolute path => treat it as an interface - set (libtype "INTERFACE") - else () - set (libtype "UNKNOWN") - endif () - - ############################################################################## - # Add the target and set IMPORTED_LOCATION + extra properties - ############################################################################## - # FIXME do we really need global ? - add_library (${target} ${libtype} IMPORTED GLOBAL) - if (libabspath) - set_target_properties (${target} PROPERTIES IMPORTED_LOCATION ${libabspath}) - endif () - if (CTIE_INCLUDE_DIRECTORIES) - set_target_properties (${target} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CTIE_INCLUDE_DIRECTORIES}") - endif () - if (CTIE_LINK_LIBRARIES) - set_target_properties (${target} PROPERTIES INTERFACE_LINK_LIBRARIES "${CTIE_LINK_LIBRARIES}") - endif () - if (CTIE_COMPILE_OPTIONS) - set_target_properties (${target} PROPERTIES INTERFACE_COMPILE_OPTIONS "${CTIE_COMPILE_OPTIONS}") - endif () - if (CTIE_DEPENDS) - add_dependencies (${target} ${CTIE_DEPENDS}) - endif () - - ############################################################################## - # install the library - ############################################################################## - if (CTIE_INSTALL) - get_filename_component (libfilename "${libabspath}" NAME) - set (installpath "$/${CMAKE_INSTALL_LIBDIR_3RD}/${libfilename}") - if (CTIE_COMPONENT) - set (_cn COMPONENT ${CTIE_COMPONENT}) - endif () - install (FILES ${libabspath} DESTINATION ${CMAKE_INSTALL_LIBDIR_3RD} ${_cn}) - set_target_properties (${target} PROPERTIES IMPORTED_PKG_LIBS "-L\${prefix}/${CMAKE_INSTALL_LIBDIR_3RD};-l${libname}") - else () - set (installpath ${libabspath}) - if (libabspath) - get_filename_component (libdir "${libabspath}" DIRECTORY) - set_target_properties (${target} PROPERTIES IMPORTED_PKG_LIBS "-L${libdir};-l${libname}") - endif () - endif () - - ############################################################################## - # export the target - ############################################################################## - if (NOT CTIE_NO_EXPORT) - set (CFG_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/ibex-config-${libname}.cmake) - # FIXME do we really need global ? - set (CFG_CONTENT "add_library (${target} ${libtype} IMPORTED GLOBAL)") - if (libabspath) - generators_expression_replace_for_build (_path "${installpath}") - set (CFG_CONTENT "${CFG_CONTENT} -set_target_properties (${target} PROPERTIES IMPORTED_LOCATION ${_path})") - endif () - if (CTIE_INCLUDE_DIRECTORIES) - generators_expression_replace_for_build (_prop "${CTIE_INCLUDE_DIRECTORIES}") - set (CFG_CONTENT "${CFG_CONTENT} -set_target_properties (${target} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES \"${_prop}\")") - endif () - if (CTIE_LINK_LIBRARIES) - generators_expression_replace_for_build (_prop "${CTIE_LINK_LIBRARIES}") - set (CFG_CONTENT "${CFG_CONTENT} -set_target_properties (${target} PROPERTIES INTERFACE_LINK_LIBRARIES \"${_prop}\")") - endif () - if (CTIE_COMPILE_OPTIONS) - generators_expression_replace_for_build (_prop "${CTIE_COMPILE_OPTIONS}") - set (CFG_CONTENT "${CFG_CONTENT} -set_target_properties (${target} PROPERTIES INTERFACE_COMPILE_OPTIONS \"${_prop}\")") - endif () - - file (GENERATE OUTPUT ${CFG_FILENAME} CONTENT "${CFG_CONTENT} -") - # - set (${cfgfilename_var} "${CFG_FILENAME}" PARENT_SCOPE) - endif () -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (ADD_UNINSTALL_COMMAND UNINSTALL_SCRIPT) - file (GENERATE OUTPUT ${UNINSTALL_SCRIPT} CONTENT "\ -if(NOT EXISTS \"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\")\n\ - message(FATAL_ERROR \"Cannot find install manifest: \\\"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\\\"\")\n\ -endif()\n\ -\n\ -file(READ \"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\" files)\n\ -string(REPLACE \"\\n\" \";\" files \"\${files}\")\n\ -foreach(file \${files})\n\ - message(STATUS \"Uninstalling \\\"\$ENV{DESTDIR}\${file}\\\"\")\n\ - if(EXISTS \"\$ENV{DESTDIR}\${file}\")\n\ - exec_program(\n\ - \"${CMAKE_COMMAND}\" ARGS \"-E remove -f \\\"\$ENV{DESTDIR}\${file}\\\"\"\n\ - OUTPUT_VARIABLE rm_out\n\ - RETURN_VALUE rm_retval\n\ - )\n\ - if(\"\${rm_retval}\" STREQUAL 0)\n\ - else()\n\ - message(FATAL_ERROR \"Problem when removing \\\"\$ENV{DESTDIR}\${file}\\\": \${rm_out}\")\n\ - endif()\n\ - else()\n\ - message(STATUS \"File \\\"\$ENV{DESTDIR}\${file}\\\" does not exist.\")\n\ - endif()\n\ -endforeach()\n\ -") - add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${UNINSTALL_SCRIPT}") -endfunction () - -################################################################################ -################################################################################ -################################################################################ -function (IBEX_INIT_COMMON) - ############################################################################## - # Options for install directory - ############################################################################## - set (CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C++ header files (include)") - set (CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "object code libraries (lib)") - set (CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)") - set (CMAKE_INSTALL_PKGCONFIG "share/pkgconfig" CACHE PATH "pkg files (share/pkgconfig)") - - set (CMAKE_INSTALL_INCLUDEDIR_3RD ${CMAKE_INSTALL_INCLUDEDIR}/ibex/3rd PARENT_SCOPE) - set (CMAKE_INSTALL_LIBDIR_3RD ${CMAKE_INSTALL_LIBDIR}/ibex/3rd PARENT_SCOPE) - set (CMAKE_INSTALL_CONFIGCMAKE "share/ibex/cmake" PARENT_SCOPE) - - ############################################################################## - # Print information (to ease debugging) - ############################################################################## - message (STATUS "Running on system ${CMAKE_HOST_SYSTEM} with processor ${CMAKE_HOST_SYSTEM_PROCESSOR}") - if (NOT ${CMAKE_HOST_SYSTEM} STREQUAL ${CMAKE_SYSTEM} OR - NOT ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_SYSTEM_PROCESSOR}) - message (STATUS "Targeting system ${CMAKE_SYSTEM} with processor ${CMAKE_SYSTEM_PROCESSOR}") - endif () - message (STATUS "Using CMake ${CMAKE_VERSION}") - message (STATUS "C++ compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}") - - ############################################################################## - # Options for shared or static library - ############################################################################## - option (BUILD_SHARED_LIBS "Set to ON to build shared libraries" OFF) - if (BUILD_SHARED_LIBS) - message (STATUS "Will build shared libraries") - else () - message (STATUS "Will build static libraries") - endif () - - ############################################################################## - # Ibex and its plugins need c++11 - ############################################################################## - # we do not override (nor check!) the value if a choice was already made - if (NOT CMAKE_CXX_STANDARD) - set (CMAKE_CXX_STANDARD 11 PARENT_SCOPE) - set (CMAKE_CXX_STANDARD_REQUIRED ON PARENT_SCOPE) - endif () - - ############################################################################## - # Set flags and build type (release or debug) - ############################################################################## - include(CheckCXXCompilerFlag) - if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - message (STATUS "Setting build type to 'Release' as none was specified.") - set (CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose type of build" FORCE) - set_property (CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") - endif () - - if(MSVC) - set (CMAKE_CXX_FLAGS_RELEASE "/D NDEBUG /D _CRT_SECURE_NO_WARNINGS" PARENT_SCOPE) - set (CMAKE_CXX_FLAGS_DEBUG "/D DEBUG /D _CRT_SECURE_NO_WARNINGS" PARENT_SCOPE) - else() - set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" PARENT_SCOPE) - set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -pg -Wall -DDEBUG" PARENT_SCOPE) - endif() - - ############################################################################## - # add uninstall command - ############################################################################## - add_uninstall_command ("${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") -endfunction () - -################################################################################ -################################################################################ -################################################################################ -# To be used by plugin, target Ibex::ibex should exist -# return 1 if an Linear Programming library was used when Ibex was compiled -# else return 0 -function (IBEX_CHECK_HAVE_LP_LIB resultvar) - include (CheckCXXSymbolExists) - set (_bak ${CMAKE_REQUIRED_INCLUDES}) # backup - get_target_property (_incs Ibex::ibex INTERFACE_INCLUDE_DIRECTORIES) - set (CMAKE_REQUIRED_INCLUDES "${_incs}") - set (symbol "__IBEX_NO_LP_SOLVER__") - set (header "ibex_LPLibWrapper.h") - CHECK_CXX_SYMBOL_EXISTS (${symbol} ${header} HAVE_NO_LP_LIB) - if (HAVE_NO_LP_LIB) - set (${resultvar} 0 PARENT_SCOPE) - else () - set (${resultvar} 1 PARENT_SCOPE) - endif () - set (CMAKE_REQUIRED_INCLUDES "${_bak}") # restore backup -endfunction () diff --git a/cmake.utils/ibex-dev-utils.cmake b/cmake.utils/ibex-dev-utils.cmake new file mode 100644 index 000000000..8d0027376 --- /dev/null +++ b/cmake.utils/ibex-dev-utils.cmake @@ -0,0 +1,135 @@ +################################################################################ +################################################################################ +################################################################################ +# filter the input list(s) and return only elements matching regex +function (ibex_list_filter resultvar regex) + foreach (filelist ${ARGN}) + foreach (file ${filelist}) + if (file MATCHES "${regex}") + list (APPEND _list ${file}) + endif () + endforeach() + endforeach() + set (${resultvar} ${_list} PARENT_SCOPE) +endfunction () + +function (ibex_list_filter_header resultvar) + ibex_list_filter (${resultvar} "\\.(h|hpp)$" ${ARGN}) + set (${resultvar} ${${resultvar}} PARENT_SCOPE) +endfunction () + +################################################################################ +################################################################################ +################################################################################ +# Note: we need this one to be a macro, not a function, as we need to execute +# the following command in the same scope as the main CMakeLists.txt file +macro (ibex_add_make_target_for_ctest tgtname) + include (CTest) + + if (ARGN) + set (_depends DEPENDS ${ARGN}) + else () + set (_depends "") + endif () + + if ("${CMAKE_GENERATOR}" STREQUAL "Unix Makefiles") + set (_cmd ${CMAKE_CTEST_COMMAND} --output-on-failure $(ARGS)) + else () + set (_cmd ${CMAKE_CTEST_COMMAND} --output-on-failure) + endif () + + if (BUILD_TESTING) + add_custom_target (${tgtname} COMMAND ${_cmd} ${_depends} + COMMENT "Running the tests") + add_subdirectory (tests EXCLUDE_FROM_ALL) + endif () +endmacro () + +################################################################################ +################################################################################ +################################################################################ +function (ibex_init_common) + ############################################################################## + # Options for install directory + ############################################################################## + set (CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C++ header files (include)") + set (CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "object code libraries (lib)") + set (CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)") + set (CMAKE_INSTALL_PKGCONFIG "share/pkgconfig" CACHE PATH "pkg files (share/pkgconfig)") + set (CMAKE_INSTALL_JARDIR "share/java" CACHE PATH "jar archives (share/java)") + + set (CMAKE_INSTALL_INCLUDEDIR_3RD ${CMAKE_INSTALL_INCLUDEDIR}/ibex/3rd PARENT_SCOPE) + set (CMAKE_INSTALL_LIBDIR_3RD ${CMAKE_INSTALL_LIBDIR}/ibex/3rd PARENT_SCOPE) + set (CMAKE_INSTALL_CONFIGCMAKE "share/ibex/cmake" PARENT_SCOPE) + + ############################################################################## + # Print information (to ease debugging) + ############################################################################## + message (STATUS "Running on system ${CMAKE_HOST_SYSTEM} with processor ${CMAKE_HOST_SYSTEM_PROCESSOR}") + if (CMAKE_CROSSCOMPILING) + message (STATUS "Targeting system ${CMAKE_SYSTEM} with processor ${CMAKE_SYSTEM_PROCESSOR}") + endif () + message (STATUS "Using CMake ${CMAKE_VERSION}") + message (STATUS "C++ compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}") + + ############################################################################## + # Options for shared or static library + ############################################################################## + option (BUILD_SHARED_LIBS "Set to ON to build shared libraries" OFF) + if (BUILD_SHARED_LIBS) + message (STATUS "Will build shared libraries") + else () + message (STATUS "Will build static libraries") + endif () + + ############################################################################## + # Ibex and its plugins need c++11 + ############################################################################## + # we do not override (nor check!) the value if a choice was already made + if (NOT CMAKE_CXX_STANDARD) + set (CMAKE_CXX_STANDARD 11 PARENT_SCOPE) + set (CMAKE_CXX_STANDARD_REQUIRED ON PARENT_SCOPE) + endif () + + ############################################################################## + # Set flags and build type (release or debug) + ############################################################################## + include(CheckCXXCompilerFlag) + if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message (STATUS "Setting build type to 'Release' as none was specified.") + set (CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose type of build" FORCE) + set_property (CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") + endif () + + if(MSVC) + set (CMAKE_CXX_FLAGS_RELEASE "/O2 /D NDEBUG /D _CRT_SECURE_NO_WARNINGS" PARENT_SCOPE) + set (CMAKE_CXX_FLAGS_DEBUG "/Od /DEBUG /D DEBUG /D _CRT_SECURE_NO_WARNINGS" PARENT_SCOPE) + else() + set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" PARENT_SCOPE) + set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -pg -Wall -DDEBUG" PARENT_SCOPE) + endif() + + ############################################################################## + # add uninstall command + ############################################################################## + if(NOT TARGET uninstall) + set (_outfile ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + # looking for file cmake_uninstall.cmake.in' + if (EXISTS "cmake_uninstall.cmake.in") + set (_infile cmake_uninstall.cmake.in) + else () + foreach (_dir ${CMAKE_MODULE_PATH}) + set (_f ${_dir}/cmake_uninstall.cmake.in) + if (EXISTS "${_f}") + set (_infile ${_f}) + break () + endif () + endforeach () + endif () + + if (_infile) + configure_file (${_infile} ${_outfile} @ONLY) + add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${_outfile}) + endif () + endif() +endfunction () diff --git a/cmake.utils/ibex-gen-pkgconfig.cmake b/cmake.utils/ibex-gen-pkgconfig.cmake new file mode 100644 index 000000000..87677bd0f --- /dev/null +++ b/cmake.utils/ibex-gen-pkgconfig.cmake @@ -0,0 +1,125 @@ +################################################################################ +################################################################################ +################################################################################ +function (generators_expression_replace_for_build resultvar input_str) + set (opt "") + set (oneArgs INCLUDEDIR LIBDIR PREFIX) + set (multiArgs "") + + cmake_parse_arguments(GERFB "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) + + if(GERFB_UNPARSED_ARGUMENTS) + message (FATAL_ERROR "Unknown keywords given to generators_expression_replace_for_build(): \"${GERFB_UNPARSED_ARGUMENTS}\"") + endif() + + if (NOT GERFB_PREFIX) + set (GERFB_PREFIX "${CMAKE_INSTALL_PREFIX}") + endif () + if (NOT GERFB_INCLUDEDIR) + set (GERFB_INCLUDEDIR "${GERFB_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") + endif () + if (NOT GERFB_LIBDIR) + set (GERFB_LIBDIR "${GERFB_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + endif () + + string(REPLACE "$/${CMAKE_INSTALL_INCLUDEDIR}" "${GERFB_INCLUDEDIR}" input_str "${input_str}") + string(REPLACE "$/${CMAKE_INSTALL_LIBDIR}" "${GERFB_LIBDIR}" input_str "${input_str}") + string(REPLACE "$" "${GERFB_PREFIX}" input_str "${input_str}") + + set(${resultvar} ${input_str} PARENT_SCOPE) +endfunction () + +################################################################################ +################################################################################ +################################################################################ +function (get_target_incdirs outvarname target) + set (incdirs) + + get_target_property (_propvalue ${target} INTERFACE_INCLUDE_DIRECTORIES) + if (_propvalue) + list (APPEND incdirs ${_propvalue}) + endif () + + get_target_property (_libs ${target} INTERFACE_LINK_LIBRARIES) + foreach (lib ${_libs}) + if (TARGET ${lib}) + get_target_incdirs (_propvalue ${lib}) + if (_propvalue) + list (APPEND incdirs ${_propvalue}) + endif () + endif () + endforeach () + + set (${outvarname} ${incdirs} PARENT_SCOPE) +endfunction () + +################################################################################ +################################################################################ +################################################################################ +function (get_target_libs outvarname target) + set (Libs) + + if (TARGET ${target}) + get_target_property (is_imported ${target} IMPORTED) + if (NOT is_imported) + get_target_property (_propvalue ${target} NAME) + if (NOT target STREQUAL "ibex") + list (APPEND Libs "-L\${libdir}/ibex/3rd;-l${_propvalue}") + else () + list (APPEND Libs "-L\${libdir};-l${_propvalue}") + endif () + endif () + + get_target_property (_libs ${target} INTERFACE_LINK_LIBRARIES) + if (_libs) + foreach (lib ${_libs}) + get_target_libs (_propvalue ${lib}) + if (_propvalue) + list (APPEND Libs ${_propvalue}) + endif () + endforeach () + endif () + else () + list (APPEND Libs ${target}) + endif () + + set (${outvarname} ${Libs} PARENT_SCOPE) +endfunction () + +################################################################################ +################################################################################ +################################################################################ +function (ibex_generate_pkgconfig_file tgtname) + get_target_incdirs (_incdirs ${tgtname}) + generators_expression_replace_for_build (incdirs "${_incdirs}" + PREFIX "\${prefix}" + INCLUDEDIR "\${includedir}") + string (REPLACE "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}" "\${includedir}" incdirs "${incdirs}") + + get_target_libs (_Libs ${tgtname}) + list (REMOVE_DUPLICATES _Libs) + generators_expression_replace_for_build (Libs "${_Libs}" PREFIX "\${prefix}" + LIBDIR "\${libdir}") + string (REPLACE "\${prefix}/${CMAKE_INSTALL_LIBDIR}" "\${libdir}" Libs "${Libs}") + + file (GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ibex.pc + CONTENT "prefix=${CMAKE_INSTALL_PREFIX} +includedir=\${prefix}/${CMAKE_INSTALL_INCLUDEDIR} +libdir=\${prefix}/${CMAKE_INSTALL_LIBDIR} + +Name: ibex +Description: ${IBEX_DESCRIPTION} +Url: ${IBEX_URL} +Version: ${IBEX_VERSION} +Cflags: -I$ +Libs: $ +") + + install (FILES ${CMAKE_CURRENT_BINARY_DIR}/ibex.pc + DESTINATION ${CMAKE_INSTALL_PKGCONFIG} COMPONENT devtools) +endfunction () diff --git a/cmake.utils/ibex-install-3rd.cmake b/cmake.utils/ibex-install-3rd.cmake new file mode 100644 index 000000000..748176c4d --- /dev/null +++ b/cmake.utils/ibex-install-3rd.cmake @@ -0,0 +1,129 @@ +################################################################################ +################################################################################ +################################################################################ +# subdir_list (RESULTVAR [ WDIR wdir] [ RELATIVE ]) +# return the list of directories of wdir +# If not given wdir = CMAKE_CURRENT_SOURCE_DIR +# By default, RELATIVE is not set and absolute path are returned. If RELATIVE +# is given, only the names of the directories are returned. +function (subdir_list resultvar) + set (opt RELATIVE) + set (oneArgs WDIR) + set (multiArgs "") + + cmake_parse_arguments(SL "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) + + if(SL_UNPARSED_ARGUMENTS) + message (FATAL_ERROR "Unknown keywords given to subdir_list(): \"${SL_UNPARSED_ARGUMENTS}\"") + endif() + + if (SL_WDIR) + set (wdir ${SL_WDIR}) + else () + set (wdir ${CMAKE_CURRENT_SOURCE_DIR}) + endif () + + # + file (GLOB children RELATIVE ${wdir} ${wdir}/*) + set (dirlist "") + foreach (child ${children}) + if (IS_DIRECTORY ${wdir}/${child}) + if (SL_RELATIVE) + list (APPEND dirlist ${child}) + else() + list (APPEND dirlist ${wdir}/${child}) + endif() + endif() + endforeach() + set (${resultvar} ${dirlist} PARENT_SCOPE) +endfunction() + +################################################################################ +################################################################################ +################################################################################ +function (generate_path_hints_file targetname) + string (TOLOWER ${targetname} _tgt_lower) + string (TOUPPER ${targetname} _tgt_upper) + set (_ofile "${CMAKE_CURRENT_BINARY_DIR}/${IBEX_CMAKE_PATH_FILES_PREFIX}-${_tgt_lower}.cmake") + file (WRITE ${_ofile} "if (NOT ${_tgt_upper}_DIR) + set (${_tgt_upper}_DIR \"${${_tgt_upper}_DIR}\") +endif () +") + if (ARGC EQUAL 2 AND ARGV1 STREQUAL "INSTALL") + install (FILES ${_ofile} DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE} + COMPONENT devtools) + endif () +endfunction () + +################################################################################ +################################################################################ +################################################################################ +function (execute_process_check) + set (opt "") + set (oneArgs WORKING_DIRECTORY MSG LOGBASENAME STATUS_PREFIX) + set (multiArgs COMMAND) + + cmake_parse_arguments(EPC "${opt}" "${oneArgs}" "${multiArgs}" ${ARGN}) + + if(EPC_UNPARSED_ARGUMENTS) + message (FATAL_ERROR "Unknown keywords given to execute_process_check(): \"${EPC_UNPARSED_ARGUMENTS}\"") + endif() + + # Check mandatory arguments + foreach (arg "COMMAND" "MSG" "LOGBASENAME") + if (NOT EPC_${arg}) + message (FATAL_ERROR "Missing mandatory argument ${arg} in execute_process_check") + endif () + endforeach () + + # use working dir if given + if (EPC_WORKING_DIRECTORY) + set (_workingdir WORKING_DIRECTORY ${EPC_WORKING_DIRECTORY}) + endif () + + message (STATUS "${EPC_STATUS_PREFIX}${EPC_MSG}") + execute_process (COMMAND ${EPC_COMMAND} ${_workingdir} + RESULT_VARIABLE ret + OUTPUT_FILE "${EPC_LOGBASENAME}-out.log" + ERROR_FILE "${EPC_LOGBASENAME}-err.log" + ) + + if (ret) + message (FATAL_ERROR "An error occurs while ${EPC_MSG}\n" + "See also\n${EPC_LOGBASENAME}-*.log\n") + endif () +endfunction () + +################################################################################ +################################################################################ +################################################################################ +# Apply all patches in ARGN. +# Assume patch binary is available. Only used when installing 3rd-party +# libraries. If a patch binary is not available, the user may have to install +# the 3rd-party libraries itself. +function (patch prefix patchdir wdir logdir) + foreach (_patchfile ${ARGN}) + string (REPLACE "/" "_" logbase "${_patchfile}") + execute_process_check (COMMAND patch -p1 -i "${patchdir}/${_patchfile}" + WORKING_DIRECTORY ${wdir} + MSG "applying patch ${_patchfile}" + LOGBASENAME "${logdir}/patch-${logbase}" + STATUS_PREFIX ${prefix}) + endforeach () +endfunction () + +################################################################################ +################################################################################ +################################################################################ +# Copy files in ARGN +function (copy prefix indir outdir logdir) + foreach (_file ${ARGN}) + set (_ifile "${indir}/${_file}") + set (_ofile "${outdir}/${_file}") + string (REPLACE "/" "_" logbase "${_file}") + execute_process_check (COMMAND ${CMAKE_COMMAND} -E copy ${_ifile} ${_ofile} + MSG "copying ${_file}" + LOGBASENAME "${logdir}/copy-${logbase}" + STATUS_PREFIX "${prefix}") + endforeach () +endfunction () diff --git a/doc/contractor.rst b/doc/contractor.rst index 2d6d07fad..1c2a19763 100644 --- a/doc/contractor.rst +++ b/doc/contractor.rst @@ -562,12 +562,14 @@ In case of a non-linear system, it is also possible to call the ``CtcPolytopeHul Linearizations ^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _affine: https://github.com/ibex-team/ibex-affine + Linearization procedures in Ibex are embbeded in a class inheriting the ``Linearizer`` interface. There exists some built-in linearization techniques, namely: - ``LinearizerXTaylor``: a corner-based Taylor relaxation :ref:`[Araya & al., 2012] `. -- ``LinearizerAffine2``: a relaxation based on affine arithmetic :ref:`[Ninin & Messine, 2009] `. +- ``LinearizerAffine2``: a relaxation based on affine arithmetic :ref:`[Ninin & Messine, 2009] `. This relaxation is only available in the `affine`_ plugin. - ``LinearizerCompo``: a combination of several techniques (the polytope is the intersection of the polytopes calculated by each technique) - ``LinearizerFixed``: a fixed linear system (as shown in the example above) diff --git a/doc/images/disc1-ibexsolve.svg b/doc/images/disc1-ibexsolve.svg new file mode 100644 index 000000000..3beb9e134 --- /dev/null +++ b/doc/images/disc1-ibexsolve.svg @@ -0,0 +1,656 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc10-ibexsolve.svg b/doc/images/disc10-ibexsolve.svg new file mode 100644 index 000000000..6a91ca37d --- /dev/null +++ b/doc/images/disc10-ibexsolve.svg @@ -0,0 +1,153 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc11-ibexsolve.svg b/doc/images/disc11-ibexsolve.svg new file mode 100644 index 000000000..d552e6844 --- /dev/null +++ b/doc/images/disc11-ibexsolve.svg @@ -0,0 +1,484 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc2-ibexsolve.svg b/doc/images/disc2-ibexsolve.svg new file mode 100644 index 000000000..dde841815 --- /dev/null +++ b/doc/images/disc2-ibexsolve.svg @@ -0,0 +1,268 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc3-ibexsolve.svg b/doc/images/disc3-ibexsolve.svg new file mode 100644 index 000000000..a1e22bb85 --- /dev/null +++ b/doc/images/disc3-ibexsolve.svg @@ -0,0 +1,243 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc4-ibexsolve-1.svg b/doc/images/disc4-ibexsolve-1.svg new file mode 100644 index 000000000..ae213a142 --- /dev/null +++ b/doc/images/disc4-ibexsolve-1.svg @@ -0,0 +1,6747 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc4-ibexsolve-2.svg b/doc/images/disc4-ibexsolve-2.svg new file mode 100644 index 000000000..908886702 --- /dev/null +++ b/doc/images/disc4-ibexsolve-2.svg @@ -0,0 +1,4487 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc4-ibexsolve-3.svg b/doc/images/disc4-ibexsolve-3.svg new file mode 100644 index 000000000..3931e68eb --- /dev/null +++ b/doc/images/disc4-ibexsolve-3.svg @@ -0,0 +1,339 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc5-ibexsolve.svg b/doc/images/disc5-ibexsolve.svg new file mode 100644 index 000000000..f8b4208d5 --- /dev/null +++ b/doc/images/disc5-ibexsolve.svg @@ -0,0 +1,1147 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc6-ibexsolve.svg b/doc/images/disc6-ibexsolve.svg new file mode 100644 index 000000000..cc6ff3eee --- /dev/null +++ b/doc/images/disc6-ibexsolve.svg @@ -0,0 +1,94 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/doc/images/disc7-ibexsolve.svg b/doc/images/disc7-ibexsolve.svg new file mode 100644 index 000000000..80797f4ef --- /dev/null +++ b/doc/images/disc7-ibexsolve.svg @@ -0,0 +1,262 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/doc/images/disc8-ibexsolve.svg b/doc/images/disc8-ibexsolve.svg new file mode 100644 index 000000000..d3c75858d --- /dev/null +++ b/doc/images/disc8-ibexsolve.svg @@ -0,0 +1,968 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/disc9-ibexsolve.svg b/doc/images/disc9-ibexsolve.svg new file mode 100644 index 000000000..cb68385d8 --- /dev/null +++ b/doc/images/disc9-ibexsolve.svg @@ -0,0 +1,113 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/index.rst b/doc/index.rst index 246e5b3af..1745452fe 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -8,65 +8,45 @@ Welcome to IBEX's documentation! ================================ ------------------- -The Core Library +User guide ------------------- - .. toctree:: :maxdepth: 2 - intro install install-cmake + solver + optim + minibex + java-install + resources + +------------------- +Programmer guide +------------------- + +.. toctree:: + :maxdepth: 2 + + intro tutorial interval function constraint system - minibex contractor + strategy + solver-prog + optim-prog separator set - strategy reference example-slam lab -.. _solver-plugin: - -------------------- -IbexSolve -------------------- - -.. toctree:: - :maxdepth: 2 - - solver - -.. _optim-plugin: - -------------------- -IbexOpt -------------------- - -.. toctree:: - :maxdepth: 2 - - optim - -.. _java-plugin: - ------------------------- -Java Plugin (for Choco) ------------------------- - -.. toctree:: - :maxdepth: 2 - - java-install - ------------------------- -For developers ------------------------- +----------------------------- +For Ibex developers +----------------------------- .. toctree:: :maxdepth: 2 diff --git a/doc/intro.rst b/doc/intro.rst index 96696a9f4..692e5f98e 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -107,9 +107,16 @@ will define the contractor :math:`((C_1 \cap C_2) \cup C_3))`. Ibex contains a variety of built-in operators (HC4, Shaving, ACID, X-newton, q-intersection, etc.). -System solving and global optimization +Applications and extensions -------------------------------------- -Finally, Ibex proposes various plugins. In particular, the IbexSolve and IbexOpt plugins are dedicated to system solving and optimization, and come both -with a default black-box solver and global optimizer for immediate usage. See the :ref:`IbexSolve ` and :ref:`IbexOpt ` documentations. + +.. _ibex team : https://github.com/ibex-team + +Ibex proposes two top-level applications: IbexSolve and IbexOpt, which are dedicated to system solving and optimization respectively; they +are both default black-box strategies for immediate usage. See the :ref:`IbexSolve ` and :ref:`IbexOpt ` documentations. + +Finally, there exist plugins (or packages with cmake) that propose interesting extensions of the library, such as affine arithmetic, +AMPL compatibility, semi-infinite programming, etc. Visit the `ibex team`_ page on Github. + diff --git a/doc/minibex.rst b/doc/minibex.rst index 252e6c286..3fcedd5a0 100644 --- a/doc/minibex.rst +++ b/doc/minibex.rst @@ -5,7 +5,7 @@ The Minibex Language ===================== - +If you speak French, check also this `introduction to Minibex `_ by the OGRE team of LS2N (PDF). .. _mod-into-cpp-vs-minibex: diff --git a/doc/optim-prog.rst b/doc/optim-prog.rst new file mode 100644 index 000000000..3f00d5327 --- /dev/null +++ b/doc/optim-prog.rst @@ -0,0 +1,127 @@ + +.. _optim-prog: + +************************************** +Optimizers +************************************** + + +This documentation is for using and building global optimizers in C++. + +You should first know how global optimization works in Ibex. Read for this the :ref:`user guide `. + +.. _optim-call-default: + +========================================== +Calling IbexOpt from C++ +========================================== + +Calling the default optimizer is as simple as for the :ref:`default solver `. +The loaded system must simply correspond to an optimization problem. The default optimizer +is an object of the class ``DefaultOptimizer``. + +Once the optimizer has been executed(), the main information is stored in three fields, +where f is the objective: + +- ``loup`` ("lo-up") is the lowest upper bound known for min(f). +- ``uplo`` ("up-lo") is the uppest lower bound known for min(f). +- ``loup_point`` is the vector for which the value taken by f is less or equal to the loup. + +Example: + +.. literalinclude:: ../examples/doc-optim.cpp + :language: cpp + :start-after: optim-call-default-C + :end-before: optim-call-default-C + +The output is: + +.. literalinclude:: ../examples/doc-optim.txt + :start-after: optim-call-default-O + :end-before: optim-call-default-O + +.. _optim-argmin: + +============================================= +Getting en enclosure of all global minima +============================================= +Given a problem: + +.. math:: + + {\mbox Minimize} \ f(x) + + {\mbox s.t.} \ h(x)=0 \wedge g(x)\leq 0 + +IbexOpt gives a feasible point that is *sufficiently* close to the real minimum :math:`f^*` of the function, i.e., a point +that satisfies + +.. math:: + + {\mbox uplo} \leq f(x)\leq {\mbox loup} + + {\mbox s.t.} \ h(x)=0 \wedge g(x)\leq 0 + +with *loup* and *uplo* are respectively a valid upper and lower bound of :math:`f^*`, whose accuracy depend on the input precision parameter +(note: validated feasibility with equalities requires ''rigor'' mode). + +From this, it is possible, in a second step, to get an enclosure of all global minima thanks to :ref:`solver`. +The idea is simply to ask for all the points that satisfy the previous constraints. +We give now a code snippet that illustrate this. + +.. literalinclude:: ../examples/doc-optim.cpp + :language: cpp + :start-after: optim-all-minima-C + :end-before: optim-all-minima-C + + +.. _optim-generic: + +==================================== +The generic optimizer +==================================== + +Just like the :ref:`generic solver `, the generic optimizer is the main C++ class +(named ``Optimizer``) behind the implementation of IbexOpt. +It takes as the solver: + +- a **contractor** +- a **bisector** +- a **cell buffer** + +but also requires an extra operator: + +- a **loup finder**. A loup finder is in charge of the *goal upper bounding* step of the optimizer. + +We show below how to re-implement the default optimizer from the generic ``Optimizer`` class. + +.. _optim-implem-default: + +============================================= +Implementing IbexOpt (the default optimizer) +============================================= + +The contraction performed by the default optimizer is the same as the default solver +(see :ref:`solver-implem-default`) except that it is not applied on the system +itself but the :ref:`mod-sys-transfo-extend`. + +The loup finder (``LoupFinderDefault``) is a mix of differents strategies. The basic idea is to +create a continuum of feasible points (a box or a polyhedron) where the goal function can be evaluated quickly, +that is, without checking for constraints satisfaction. +The polyhedron (built by a ``LinearizerXTaylor`` object) corresponds to a :ref:`linerization technique ` described in +:ref:`[Araya et al. 2014] ` and :ref:`[Trombettoni et al. 2011] `, based on *inner region extraction*. +It also resorts to the linerization offered by affine arithmetic (a ``LinearizerAffine`` object) if the affine plugin is installed. +The box (built by a ``LoupFinderInHC4`` object) is a technique based on :ref:`inner arithmeric ` also described in +the aforementionned articles. + +Finally, by default, the cell buffer (``CellDoubleHeap``) is basically a sorted heap that allows to get in priority boxes minimizing +either the lower or upper bound of the objective enclosure (see :ref:`strategy-cell-heap`). + + +.. literalinclude:: ../examples/doc-optim.cpp + :language: cpp + :start-after: optim-implem-default-C + :end-before: optim-implem-default-C + + + diff --git a/doc/optim.rst b/doc/optim.rst index 895d80c74..dcce794f6 100644 --- a/doc/optim.rst +++ b/doc/optim.rst @@ -5,6 +5,11 @@ IbexOpt ************************************** +This documentation is for using IbexOpt with the command prompt. + +To use IbexOpt in C++ or program your own global optimizer with Ibex, see the :ref:`programmer guide `. + + .. _optim-run-default: ================= @@ -12,86 +17,188 @@ Getting started ================= IbexOpt is a end-user program that solves a standard NLP problem (non-linear programming), i.e., -it minimizes a (nonlinear) objective function under (nonlinear) inequality and equality constraints: +it minimizes a (nonlinear) objective function under (nonlinear) inequality and equation constraints: .. math:: {\mbox Minimize} \ f(x) {\mbox s.t.} \ h(x)=0 \wedge g(x)\leq 0. - -IbexOpt resorts to a unique black-box strategy (whatever the input problem is) and with a very limited -number of parameters. Needless to say, this strategy is a kind of compromise and not the -best one for a given problem. -Note that this program is based on the :ref:`generic optimizer `, a C++ class -that allows to build a more customizable optimizer. +In the previous formula, *f* is a real-valued function, but *h* and *g* can be multivariate. +The right-hand sides 0 are therefore vectors and the equation and inequality sign applies component-wise. + +This notation convention is kept for the whole document. + + +.. note:: + + IbexOpt resorts to a unique black-box strategy (whatever the input problem is) and with a very limited + number of parameters. Needless to say, this strategy is a kind of compromise and not the best one for a given problem. + + If you are a C++ programmer, the design of the Ibex library allows you to customize IbexOpt or even build your own optimizer from high-level algorithmic bricks. + See the developer guide. You can directly apply this optimizer on one of the benchmark problems distributed with Ibex. -The benchmarks are all written in the :ref:`Minibex syntax ` and stored in an arborescence under ``plugins/optim/benchs/``. -If you compare the Minibex syntax of these files with the ones given to IbexSolve, you will see that a "minimize" +The benchmarks are all written in the :ref:`Minibex syntax ` and stored under ``benchs/optim/``. +If you compare the Minibex syntax of these files with the ones given to :ref:`IbexSolve `, you will see that a ``minimize`` keyword has appeared. .. _Minibex syntax: #func-minibex -Open a terminal, move to the ``bin`` subfolder and run IbexSolve with, for example, the problem named ex3_1_3 located at the specified path:: +Open a terminal (move to the ``bin`` subfolder of Ibex if it is installed locally) and run IbexOpt with, for example, the problem named ex3_1_3 located at the specified path:: - ~/ibex-2.8.7$ cd bin - ~/ibex-2.8.7/bin$ ./ibexopt ../plugins/optim/benchs/easy/ex3_1_3.bch + $ ./ibexopt [ibex-lib-path]/benchs/optim/easy/ex3_1_3.bch The following result should be displayed:: + running............ - ************************ setup ************************ - file loaded: ../plugins/optim/benchs/easy/ex3_1_3.bch - ******************************************************* + optimization successful! - running............ + f* in [-310.011436309,-309.999999842] + (best bound) - optimization successful! + x* = (4.99999999901 ; 1.00000000001 ; 5 ; 9.99996530027e-10 ; 5 ; 10) + (best feasible point) - best bound in: [-310.309999984,-309.999999984] - relative precision obtained on objective function: 0.001 [passed] - absolute precision obtained on objective function: 0.309999999985 [failed] - best feasible point: (4.9999999999 ; 1 ; 5 ; 0 ; 5 ; 10) - cpu time used: 0.00400000000001s. - number of cells: 1 + relative precision on f*: 3.6890471184e-05 [passed] + absolute precision on f*: 0.0114364679579 + cpu time used: 0.00209500000001s + number of cells: 4 The program has proved that the minimum of the objective lies in a small interval enclosing -310. It also gives a point close to (5 ; 1 ; 5 ; 0 ; 5 ; 10) which satisfies the constraints and for which -the value taken by the objective function is inside this interval. The process took less than 0.005 seconds. +the value taken by the objective function is inside this interval. The process took less than 0.003 seconds. +The number of "cells" is also reported. This number basically corresponds to the total number of hypothesis (bisections) that was +required to solve the problem. It gives an indication of its complexity. +.. _optim-output: + +============================ +The output of IbexOpt +============================ + +.. _ULPs : https://en.wikipedia.org/wiki/Unit_in_the_last_place + +We denote now x\* the global minimizer and f\*=f(x\*) the global minimum of a NLP. + +IbexOpt can be run in two different *modes* and the precise meaning of the output depends on the chosen mode. + +- In the **relaxed** mode (the default one), the NLP which is solved is actually + + .. math:: + + {\mbox Minimize} \ f(x) + + {\mbox s.t.} \ |h(x)|\leq \varepsilon_h \wedge g(x)\leq 0. + + where :math:`\varepsilon_h` is a parameter. By default it is set to 1e-8 but the user can fix it differently + using the ``--eps-h`` option. We will call this NLP the *relaxed NLP*. Notice that it only contains inequalities. + + IbexOpt returns then a vector x (not a box) and an interval [y]. It is proven that: + + 1. [y] is an enclosure of f\* (the global minimum of the relaxed NLP) respecting one :ref:`precision criterion `. + 2. x is feasible, i.e., satisfies all the inequalities + 3. f(x) belongs to [y]. + + A consequence of these properties is that x is "almost" a global minimum in the sense that it is a feasible point which image + f(x) is close to the real minimum f\* (according to one :ref:`precision criterion `); but x may not be close to + x\* itself. It can even be arbitrarily far away, although this happens in practice only on pathological cases. + +- In the **rigor** mode, IbexOpt solves the original NLP, with strict equations. + + It returns a box [x] and and interval [y]. It is proven that: + + 1. [y] is an enclosure of f\* (the global minimum of the NLP) respecting the :ref:`precision criteria `. + 2. [x] contains at least one feasible point, i.e., a point x which satisfies all the constraints (equations and inequalities) + 3. for all x in [x], f(x) belongs to [y]. + + The same observation can be made as for the relaxed case: it is proven that [x] contains a point that is "almost" a global + minimum (according to one :ref:`precision criterion `) but there is no information about the distance between + x and x\*. + + A further remark is about the size of [x]. We have not explicitly mentioned that it has to be small. Indeed, in theory, + we can't bound its size. But, in practice, if IbexOpt succeeds, the size of this box is very tiny, just about a few `ULPs`_. + Notice also that conditions 1 and 3 together somehow also impose [x] to be small. But, again, this is true only in practice (consider for instance + a constant objective function as a counter-example). + +Note that for a problem without equations, the relaxed and rigor modes are the same. + +We advice to rather use the relaxed mode, should you have to set a very small precision :math:`\varepsilon_h`. +The rigor mode is useful only if strict satisfaction of equations are required. +It can take longer and may sometimes fails were the relaxed mode succeeds, typically because of redundancies; see +the :ref:`FAQ `. + + +.. _optim-obj-prec: + +============================ +Objective precision criteria +============================ + +Remind that IbexOpt returns an interval [y] which encloses f\* and a feasible point x (surrounded by a tiny box in rigor mode) such +that :math:`f(x)\in[y]`. + +We note :math:`y^-` and :math:`y^+` the lower and upper bounds of [y]. + +There are two precision criteria for the objective: an absolute and a relative one. +IbexSolve stops if one of the criterion is fulfilled (not both). + +The **absolute** precision :math:`\varepsilon_{f}^{abs}` can be set with the ``--abs-eps-f`` (or ``-a`` in short) option. +The default value is 1e-7. + +This criterion is fulfilled when :math:`y^+\leq y^- + \varepsilon_{f}^{abs}`. +This therefore ensures + +.. math:: + |f(x)-f^*|\leq \varepsilon_f^{abs}. + +The **relative** precision :math:`\varepsilon_{f}^{rel}` can be set with the ``--rel-eps-f`` (or ``-r`` in short) option. +The default value is 1e-3. + +There are several cases: + +- If [y] contains 0 or has an infinite bound, the criterion is not satisfied. +- If :math:`y^->0`, the criterion is satisfied if :math:`y^+ \leq (1+\varepsilon_{f}^{rel}) y^-`. +- If :math:`y^+<0`, the criterion is satisfied if :math:`y^- \geq (1+\varepsilon_{f}^{rel}) y^+`. + +This therefore ensures + +.. math:: + |f(x)-f^*|\leq \varepsilon_f^{rel}|f^*|. + .. _optim-return: -================== +============================ Return status -================== +============================ When the optimizer terminates, the following possible status are: -- **success**: - An enclosure of the minimum respecting the precision requirements (``--a`` and ``--r``) - has been found as well as a global minimizer . - In standard mode (without ``--rigor``), equalities are relaxed and the global minimizer is - a point x* satisfying - :math:`-\varepsilon_h\leq h(^*)\leq\varepsilon_h`. In rigor mode (``--rigor``), the - global minimizer is a box :math:`[x^*]` such that, for some x* inside we do have :math:`h(x^*)=0`. - In both cases, for the (explicit or implicit) point x*, f(x*) is also sufficiently closed +- **success**: + An enclosure of the minimum respecting one of the precision requirements (``--a`` or ``--r``) + has been found as well as a pseudo-global minimizer, as explained :ref:`above `. + In standard mode (without ``--rigor``), equations are relaxed and the global minimizer is + a point x satisfying + :math:`-\varepsilon_h\leq h(x)\leq\varepsilon_h`. In rigor mode (``--rigor``), the + global minimizer is a box :math:`[x]` such that, for some x inside we do have :math:`h(x)=0`. + In both cases, for the (explicit or implicit) point x, f(x) is also sufficiently closed to the real global minimum, according to the precision criteria. - **infeasible**: This return status actually corresponds to two different situations. Either the constraints - are not satisfiable (that is, there is not point x simultaneously satisfying all equalities + are not feasible (that is, there is not point x simultaneously satisfying all equations and inequalities) or the feasible points are all outside the definition domain of the - objective funnction f. + objective function f. - **no feasible point found**: The optimizer could not be able to find a feasible point. This status typically arises if you control the precision of the bisection (``--eps-x``). Indeed, it may happen, in this case, that the search stops and no box explored was enough bisected to find a feasible point inside. So the search is over but the problem was not solved. It may also arise when an inequality - is actually an equality (e.g., :math:`x^2\leq 0`), because in non-rigor mode, neither a relaxation nor - an equality satisfaction proof is enforced in this case. + is actually an equation (e.g., :math:`x^2\leq 0`), because in non-rigor mode, neither a relaxation nor + an equation satisfaction proof is enforced in this case. - **unbounded objective**: The optimizer could not find a lower bound of the minimum. This means that the objective is very likely to be unbounded. @@ -126,129 +233,123 @@ Options +--------------------------------------+------------------------------------------------------------------------------+ | -t<*float*>, --timeout=<*float*> | Timeout (time in seconds). Default value is +oo. | +--------------------------------------+------------------------------------------------------------------------------+ +| --simpl=... | Expression simplification level. Possible values are: | +| | | +| | - 0: no simplification at all (fast). | +| | - 1: basic simplifications (fairly fast). | +| | E.g. x+1+1 --> x+2 | +| | - 2: more advanced simplifications without developing (can be slow). | +| | E.g. x*x + x^2 --> 2x^2. | +| | Note that the DAG structure can be lost. | +| | - 3: simplifications with full polynomial developing (can blow up!). | +| | E.g. x*(x-1) + x --> x^2. | +| | Note that the DAG structure can be lost. | +| | | +| | Default value is : 1. | ++--------------------------------------+------------------------------------------------------------------------------+ | --random-seed=<*float*> | Random seed (useful for reproducibility). Default value is 1. | +--------------------------------------+------------------------------------------------------------------------------+ | --eps-x=<*float*> | Precision on the variable (**Deprecated**). Default value is 0. | +--------------------------------------+------------------------------------------------------------------------------+ | --initial-loup=<*float*> | Initial "loup" (a priori known upper bound). | +--------------------------------------+------------------------------------------------------------------------------+ -| --rigor | Activate rigor mode (certify feasibility of equalities). | +| -i<*filename*>, --input=<*filename*> | COV input file. The file contains optimization data in the COV (binary) | +| | format. | ++--------------------------------------+------------------------------------------------------------------------------+ +| -o<*filename*>, --output=<*filename*>| COV output file. The file will contain the optimization data in the COV | +| | (binary) format. See --format | +| | | ++--------------------------------------+------------------------------------------------------------------------------+ +| --rigor | Activate rigor mode (certify feasibility of equations). | ++--------------------------------------+------------------------------------------------------------------------------+ +| --kkt | Activate contractor based on Kuhn-Tucker conditions (rigor mode only). | +--------------------------------------+------------------------------------------------------------------------------+ | --trace | Activate trace. Updates of loup/uplo are printed while minimizing. | +--------------------------------------+------------------------------------------------------------------------------+ +| -q, --quiet | Print no report on the standard output. | ++--------------------------------------+------------------------------------------------------------------------------+ -.. _optim-call-default: - -==================================== -Calling IbexOpt from C++ -==================================== - -Calling the default optimizer is as simple as for the :ref:`default solver `. -The loaded system must simply correspond to an optimization problem. The default optimizer -is an object of the class ``DefaultOptimizer``. - -Once the optimizer has been executed(), the main information is stored in three fields, -where f is the objective: - -- ``loup`` ("lo-up") is the lowest upper bound known for min(f). -- ``uplo`` ("up-lo") is the uppest lower bound known for min(f). -- ``loup_point`` is the vector for which the value taken by f is less or equal to the loup. - -Example: - -.. literalinclude:: ../examples/doc-optim.cpp - :language: cpp - :start-after: optim-call-default-C - :end-before: optim-call-default-C - -The output is: -.. literalinclude:: ../examples/doc-optim.txt - :start-after: optim-call-default-O - :end-before: optim-call-default-O +.. _optim-faq: -.. _optim-argmin: +==================== +FAQ +==================== -============================================= -Getting en enclosure of all global minima -============================================= -Given a problem: +--------------------------------------- +warning: too many active constraints +--------------------------------------- -.. math:: + When I run IbexOpt in rigor mode, the program never ends and prints the following warning repeatedly: - {\mbox Minimize} \ f(x) - - {\mbox s.t.} \ h(x)=0 \wedge g(x)\leq 0 - -IbexOpt gives a feasible point that is *sufficiently* close to the real minimum :math:`f^*` of the function, i.e., a point -that satisfies + warning: too many active constraints, cannot prove feasibility -> loup lost! + -.. math:: +.. topic:: Answer - {\mbox uplo} \leq f(x)\leq {\mbox loup} - - {\mbox s.t.} \ h(x)=0 \wedge g(x)\leq 0 - -with *loup* and *uplo* are respectively a valid upper and lower bound of :math:`f^*`, whose accuracy depend on the input precision parameter -(note: validated feasibility with equalities requires ''rigor'' mode). + This means that, very likely, your problem has a redundant equation. It is impossible to certify feasibility + in this case. So, as IbexOpt never finds a feasible point, the upper bound on the objective is + stuck to infinity and the program runs forever. -From this, it is possible, in a second step, to get an enclosure of all global minima thanks to :ref:`solver`. -The idea is simply to ask for all the points that satisfy the previous constraints. -We give now a code snippet that illustrate this. + The only solution in this case (beside using relaxed mode) is to revise your model. A redundant equation + is somehow a modeling issue. -.. literalinclude:: ../examples/doc-optim.cpp - :language: cpp - :start-after: optim-all-minima-C - :end-before: optim-all-minima-C +------------------------------------------------------- +The problem is solved in relaxed but not rigor mode +------------------------------------------------------- -.. _optim-generic: - -==================================== -The generic optimizer -==================================== +.. _LICQ : https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions#Regularity_conditions_(or_constraint_qualifications) -Just like the :ref:`generic solver `, the generic optimizer is the main C++ class -(named ``Optimizer``) behind the implementation of IbexOpt. -It takes as the solver: + **Short answer** : likely, there is a redundant constraint in your problem. Try to fix it. -- a **contractor** -- a **bisector** -- a **cell buffer** - -but also requires an extra operator: + **Long answer** -- a **loup finder**. A loup finder is in charge of the *goal upper bounding* step of the optimizer. + The rigor mode relies on a numerical algorithm (an interval variant of the Newton iteration) that requires + linear independence constraint qualification, in short `LICQ`_. -We show below how to re-implement the default optimizer from the generic ``Optimizer`` class. - -.. _optim-implem-default: - -============================================= -Implementing IbexOpt (the default optimizer) -============================================= - -The contraction performed by the default optimizer is the same as the default solver -(see :ref:`solver-implem-default`) except that it is not applied on the system -itself but the :ref:`mod-sys-transfo-extend`. + In particular, the LICQ condition cannot be fulfilled with redundant constraints. And most of the time, this is what happens. + + When the number of active constraints exceed the number of variables, IbexOpt detects it and displays the warning `too many active constraints` (see + the previous FAQ). + So, in this case, you have an hint that your problem has a redundancy. The warning message must appear repeatedly though, otherwise, the warning may + only reflect a local singularity. Typically, we may have two inequalities that get tangential in some region (while being distant from each other elsewhere). -The loup finder (``LoupFinderDefault``) is a mix of differents strategies. The basic idea is to -create a continuum of feasible points (a box or a polyhedron) where the goal function can be evaluated quickly, -that is, without checking for constraints satisfaction. -The polyhedron (built by a ``LinearizerXTaylor`` object) corresponds to a :ref:`linerization technique ` described in -:ref:`[Araya et al. 2014] ` and :ref:`[Trombettoni et al. 2011] `, based on *inner region extraction*. -It also resorts to the linerization offered by affine arithmetic (a ``LinearizerAffine`` object) if the affine plugin is installed. -The box (built by a ``LoupFinderInHC4`` object) is a technique based on :ref:`inner arithmeric ` also described in -the aforementionned articles. + But if the number of active constraints is less than the number of variables, there is no way for IbexOpt to detect a redundancy. Because IbexOpt is a numerical tool dedicated to + non-linear problems, it can only observe in a given box that the LICQ condition is not respected. It cannot conclude that there is a + singularity at the model level, and even less, a redundancy. But, again, most of the time, there is. -Finally, by default, the cell buffer (``CellDoubleHeap``) is basically a sorted heap that allows to get in priority boxes minimizing -either the lower or upper bound of the objective enclosure (see :ref:`strategy-cell-heap`). + This situation happens in some of the benchmark problems supplied with IbexOpt (see the files under `benchs/optim`): + **sambal**, **harker**, **immun** and **ex7_3_5**. + We suggest the following strategy for analyzing your problem: + + 1. Try to see if there is an obvious redundancy in the equations of your model. If not: + + 2. Calculate the pseudo-global minimum in relaxed mode with a tight relaxation parameter (ex: ``eps-h=1e-14``). See which inequalities and bounds are active at + this pseudo-minimum. Then try to see if there is a redundancy among all the active constraints + (including equations of course). If not: + + 3. Calculate the jacobian of these active constraints and check that it is not full-rank. This just confirms that the LICQ conditions are not satisfied, hence + a normal behavior of IbexOpt (if the matrix is full-rank, please, submit a bug report!) + + 4. Run again IbexSolve in rigor mode and activate the trace (``--trace``). + Two situation occurs: + + - some feasible points (aka *loup*) are found (they appear on the screen as they are found). This means that your problem has a local singularity right at the + global minimum! Your are not lucky: this is something that happens rarely in practice, and nothing proves that there is a redundancy (i.e., that you + can fix this problem easily). + + - feasible points seem never to be found by IbexOpt. Then, your problem has probably a redundancy. Try to fix it. + -.. literalinclude:: ../examples/doc-optim.cpp - :language: cpp - :start-after: optim-implem-default-C - :end-before: optim-implem-default-C + Let us apply this strategy to the aforementioned problems: + - **sambal**: step 1: there are 8 linear equations and the rank of the matrix is 7. So one constraint is redundant. Of course, in this particular case of + linear constraints, IbexOpt could easily detect the redundancy itself. Such test has not been implemented yes (IbexOpt is rather dedicated to nonlinear problems). + - **harker**: step 1: there are 20 linear constraints and the rank of the matrix is 18. Same remark as above. + - **immun** : step 2: there is `x16^2` in the objective function, so the bound constraint `x16=0` is active at the minimum. Constraint `-x10=-x16` enforces then `x10=0`, which + is also a bound constraint. So we have 3 constraints: `-x10-x16=0`, `x16=0` and `x10=0` with one redundant. + - **ex7_3_5**: step 4: this case is more complicated. We suspect again a redundancy because IbexOpt never finds feasible points (and the jacobian is not full-rank at the pseudo-global minimum). diff --git a/doc/reference.rst b/doc/reference.rst index 1ea422476..0d87d5cd6 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -8,6 +8,10 @@ Articles in Journal and Conferences ------------------------------------- +.. |Neveu16-pdf| replace:: PDF +.. _Neveu16-pdf: http://www.lirmm.fr/~trombetton/publis/nodeselection_jogo_2015.pdf +.. |Neveu15-pdf| replace:: PDF +.. _Neveu15-pdf: http://www.lirmm.fr/~trombetton/publis/acid_constraints_2015.pdf .. |Jaulin14-pdf| replace:: PDF .. _Jaulin14-pdf: https://www.ensta-bretagne.fr/jaulin/paper_seppath.pdf .. |Araya14-pdf| replace:: PDF @@ -39,6 +43,24 @@ Articles in Journal and Conferences | | Author(s) | Title | Journal/Conference | Year | Link | +====================+==============================+=================================+=========================+======+=====================+ | | | | | | | +| .. _Araya18: | **I. Araya, B. Neveu** | *Lsmear: A Variable Selection | Journal of Global | 2018 | | +| | | Strategy for Interval Branch | Optimization | | | +| | | and Bound Solvers* | | | | +|[Araya & Neveu 2018]| | | | | | ++--------------------+------------------------------+---------------------------------+-------------------------+------+---------------------+ +| | | | | | | +| .. _Neveu16: | **B. Neveu, G. Trombettoni,**| *Node Selection Strategies | Journal of Global | 2016 | |Neveu16-pdf|_ | +| | **I. Araya** | in Interval Branch and Bound | Optimization | | | +| | | Algorithms* | | | | +| [Neveu et al. 2016]| | | | | | ++--------------------+------------------------------+---------------------------------+-------------------------+------+---------------------+ +| | | | | | | +| .. _Neveu15: | **B. Neveu, G. Trombettoni,**| *Adaptive Constructive interval | Constraints | 2015 | |Neveu15-pdf|_ | +| | **I. Araya** | Disjunction: Algorithms | | | | +| | | and Experiments* | | | | +| [Neveu et al. 2015]| | | | | | ++--------------------+------------------------------+---------------------------------+-------------------------+------+---------------------+ +| | | | | | | | .. _Jaulin14: | **L. Jaulin, B. Desrochers** | *Introduction to the Algebra of | Engineering Applications| 2014 | |Jaulin14-pdf|_ | | | | Separators with Application to | of Artificial | | | | [Jaulin & | | Path Planning* | Intelligence | | | diff --git a/doc/resources.rst b/doc/resources.rst new file mode 100644 index 000000000..e23d92c9c --- /dev/null +++ b/doc/resources.rst @@ -0,0 +1,6 @@ + +==================================== +Other Resources +==================================== + +- In French: `An introduction to Ibex and Minibex by the OGRE team of LS2N (PDF) `_. diff --git a/doc/solver-prog.rst b/doc/solver-prog.rst new file mode 100644 index 000000000..7aa36db4d --- /dev/null +++ b/doc/solver-prog.rst @@ -0,0 +1,184 @@ + +.. _solver-prog: + +================== +Solvers +================== + +This documentation is for using and building solvers in C++. + +You should first know how solvers work in Ibex. Read for this the :ref:`user guide `. + +.. _solver-call-default: + +------------------------------- +Calling IbexSolve from C++ +------------------------------- + +You can call IbexSolve (the default solver) and get the solutions from C++. + +Two objects must be built: the first represents the problem (namely, a :ref:`system `), the second +the solver itself. Then, we just run the solver. Here is a simple example: + +.. literalinclude:: ../examples/doc-solver.cpp + :language: cpp + :start-after: solver-call-default-C + :end-before: solver-call-default-C + +The output is: + +.. literalinclude:: ../examples/doc-solver.txt + :start-after: solver-call-default-O + :end-before: solver-call-default-O + +.. _solver-generic: + +------------------------------- +The generic solver +------------------------------- + +The generic solver is the main C++ class behind the implementation of IbexSolve. +It is a classical branch and prune algorithm that interleaves contraction and branching (bisection) until +boxes get sufficiently small. However, it performs a more general task that just finding solution points of square +systems of equations: it also knows how to deal with under-constrained systems and handle manifolds. + +Compared to IbexSolve, the generic solver allows the following additional operators as inputs: + +#. a **contractor** + + Operator that contracts boxes by removing non-solution points. The contraction operator must be compatible with the + system given (equations/inequalities). The solver performs no check (it is the user responsability). See + :ref:`ctc`. + +#. a **bisector** + + Operator that splits a box. Note that some bisectors have a *precision* parameter: the box is bisected providing + it is large enough. But this precision is not directly seen by the solver which has its own precision variables + (see ``-e`̀ and ``-E``). If however the bisector does not split a box, this will generate an exception caught by the solver, + which will not continue the search and backtrack. So fixing the bisector internal precision gives basically the same effect + as fixing it with ``--e``. See :ref:`strategy-bisectors` for more details. + +#. a **cell buffer** + + Operator that manages the list of pending boxes (a *cell* is a box with a little bit of extra information used by the search). + See :ref:`strategy-cell-buffers` for more details. + +Our next example creates a solver for the intersection of two circles of radius :math:`d`, +one centered on :math:`(0,0)` and the other in :math:`(1,0)`. + +To this end we first create a vector-valued function: + +.. math:: + (x,y) \mapsto \begin{pmatrix} x^2+y^2-d \\ (x-1)^2+y^2-d \end{pmatrix} + +Then, we build two contractors; a :ref:`forward-bacwkard ` contractor and (because the system is square), +an :ref:`interval Newton ` contractor. + + +We chose as bisection operator the *round-robin* operator, that splits each component in turn. +The precision of the solver is set to 1e-7. + +Finally, the cell buffer is a stack, which leads to a depth-first search. + +.. literalinclude:: ../examples/doc-solver.cpp + :language: cpp + :start-after: solver-solver-generic-C + :end-before: solver-solver-generic-C + +The output is: + +.. literalinclude:: ../examples/doc-solver.txt + :start-after: solver-generic-O + :end-before: solver-solver-generic-O + +.. _solver-implem-default: + +-------------------------------------------------------------- +Implementing IbexSolve (the default solver) +-------------------------------------------------------------- + +IbexSolve is an instance of the generic solver with (almost) all parameters set by default. + +We already showed how to `Calling IbexSolve from C++`_. +To give a further insight into the generic solver and its possible settings, we explain now how to re-create the default solver +by yourself. + +The contractor of the default solver is obtained with the following receipe. +This is a :ref:`composition ` of + +#. :ref:`ctc-HC4` +#. :ref:`ACID ` +#. :ref:`Interval Newton ` (only if it is a square system of equations) +#. A :ref:`fixpoint ` of the :ref:`ctc-polytope-hull` of two linear relaxations combined: + - the relaxation called X-Taylor; + - the relaxation generated by affine arithmetic. See :ref:`ctc-linear-relax`. + +The bisector is based on the :ref:`strategy-smear-function` with maximal relative impact. + +So the following program exactly reproduces the default solver. + +.. literalinclude:: ../examples/doc-solver.cpp + :language: cpp + :start-after: solver-implem-default-C + :end-before: solver-implem-default-C + +.. _solver-parallel: + +------------------------------- +Parallelizing search +------------------------------- + +It is possible to parallelize the search by running (in parallel) solvers for different subboxes of the initial box. + +Be aware however that Ibex has not been designed (so far) to be parallelized and the following lines only reports our preliminary +experiments. + +Here are the important observations: + +- The sub-library gaol is **not** thread-safe. You must compile Ibex with **filib** which seems to be OK (see :ref:`install-options`). +- The linear solver Soplex (we have not tested yet with Cplex) seems to be thread-safe but sometimes generates error messages on the + console like:: + + ISOLVE56 stop: 0, basis status: PRIMAL (2), solver status: RUNNING (-1) + + So, calling Soplex several times simultaneously seems not to be allowed, but Soplex at least manages the case properly, that is, + stops. As far as we have observed, we don't lose solutions even when this kind of message appear. +- Ibex objects are not thread-safe which means that the solvers run in parallel must share no information. In particular, + each solver must have its **own copy** of the system. + +Here is an example: + +.. literalinclude:: ../examples/doc-solver.cpp + :language: cpp + :start-after: solver-parallel-C-1 + :end-before: solver-parallel-C-1 + +If I remove the ``#pragma`` the program displays:: + + solver #1 found 64 + solver #2 found 64 + + real 0m5.121s // <-------- total time + user 0m5.088s + +With the ``#pragma``, I obtain:: + + solver #1 found 64 + solver #2 found 64 + + real 0m2.902s // <-------- total time + user 0m5.468s + +**Note:** It is pure luck that by bisecting the 4th variable, we obtain exactly half of the solutions on each sub-box. +Also, looking for the 64 first solutions takes here around the same time than looking for the 64 subsequent ones, which +is particular to this example. So, contrary to what this example seems to prove, splitting the box in two subboxes does +not divide the running time by two in general. Of course :) + +If you are afraid about the messages of the linear solver, you can replace the ``DefaultSolver`` by your own dedicated solver +that does not resort to the simplex, ex: + +.. literalinclude:: ../examples/doc-solver.cpp + :language: cpp + :start-after: solver-parallel-C-2 + :end-before: solver-parallel-C-2 + diff --git a/doc/solver.rst b/doc/solver.rst index f4bda3c2f..3647bdbbd 100644 --- a/doc/solver.rst +++ b/doc/solver.rst @@ -4,56 +4,439 @@ ************************************** IbexSolve ************************************** -.. _solver-run-default: -================= +This documentation is for using IbexSolve with the command prompt. + +To use IbexSolve in C++ or program your own solver with Ibex, see the :ref:`programmer guide `. + +.. _solver-intro: + +============================ Getting started -================= +============================ -IbexSolve is a end-user program that solves a system of nonlinear equations rigorously -(that is, it does not lose any solution and return each solution under the form of a -small box enclosing the true value). It resorts to -a unique black-box strategy (whatever the input problem is) and with a very limited -number of parameters. Needless to say, this strategy is a kind of compromise and not the -best one for a given problem. +---------------------------- +The very basic idea +---------------------------- -Note that this program is based on the :ref:`generic solver `, a C++ class -that allows to build a more customizable solver. +IbexSolve solves systems of equation in a *complete* and *validated* way. -You can directly apply this solver on one of the benchmark problems -distributed with Ibex. -The benchmarks are all written in the `Minibex syntax`_ and stored in an arborescence under ``plugins/solver/benchs/``. +If you have an equation, say, -.. _Minibex syntax: #func-minibex +.. math:: + x^2=1 -Open a terminal, move to the ``bin`` subfolder and run IbexSolve with, for example, the problem named kolev36 located at the specified path:: +and you ask a traditional numerical algorithm to solve it, you will get an answer like: - ~/ibex-2.8.0$ cd bin - ~/ibex-2.8.0/bin$ ./ibexsolve ../plugins/solver/benchs/others/kolev36.bch +.. math:: + x=0.999... -The following result should be displayed:: +or maybe something close to the other root -1. But you will not get both roots +and you will not know exactly how far the returned value is from the actual root. - ***************************** setup ***************************** - file loaded: ../plugins/solver/benchs/others/kolev36.bch - output file: ../plugins/solver/benchs/others/kolev36.mnf - ***************************************************************** +IbexSolve will give you the following answer: - running............ +.. math:: + x \in [-1.001,-0.999] \quad \mbox{or} \quad x\in[0.999,1.001]. + +First, all solutions are returned: this is what we mean by *completeness*. + +Second, each actual solution is rigorously enclosed in an interval: +this is what *validation* means. + +.. _solver-intro_ex1: + +------------------------------------ +First example (well-constrained) +------------------------------------ + +Open a terminal (move to the ``bin`` subfolder if necessary) and run IbexSolve with, for example, the problem named `Kin1.bch` located at the specified path:: + + ibexsolve [ibex-lib-path]/benchs/solver/non-polynom/Kin1.bch + +After a short delay, the following result should be displayed:: solving successful! - number of inner boxes: 1 - number of boundary boxes: 0 - number of unknown boxes: 0 - number of pending boxes: 0 - cpu time used: 0.0640001s - number of cells: 25 + number of solution boxes: 16 + number of boundary boxes: -- + number of unknown boxes: -- + number of pending boxes: -- + cpu time used: 0.122523s + number of cells: 47 + +You see that IbexSolve has found 16 solutions. To obtain the solutions, just run the same command with the option ``-s``. You will have each solution +displayed as a list of thin intervals enclosing the components of the true solution:: + + solution n°1 = ([0.3999964622870867, 0.3999964622870879] ; [0.819005889921108, 0.8190058899211153] ; ...) + +Also are reported here the CPU time (around a tenth of second in this case) and the number of "cells" required. +This number basically corresponds to the total number of hypothesis (bisections) that was required to solve the problem. +It gives an indication of its complexity. + +The file `Kin1.bch` is a plain text file, you can open it with any editor. You will see that it is a problem with 6 variables +and 6 non-linear constraints, with sine and cosine operators. The file is written in the :ref:`Minibex syntax `. + +.. _solver-intro_ex2: + +------------------------------------- +Second example (under-constrained) +------------------------------------- + +One important originality of IbexSolve (compared to the other interval tools) is that it is not limited to square (well-constrained) systems +as in the previous example. + +Open your editor and type the following text in a `circle.mbx` file:: + + variables + x,y; + + constraints + x^2+y^2=1; + end + + +The solution set in this case is a full curve in the plane, the unit circle. + +Then run IbexSolve to solve it:: + + ibexsolve circle.mbx + +You may expect to obtain a bunch of boxes in return enclosing the curve, like in the picture below +(we have superimposed the circle (in red) for clarity): + +.. figure:: images/disc1-ibexsolve.svg + :width: 300 px + :align: center + +IbexSolve can calculate that. But this means that you expect a fine description of the curve and that you +accept to pay the inevitable price of a voluminous output (especially in higher dimension). + +A different and opposite strategy would be to expect in return a single box enclosing the curve, +that is, the square [0,1]x[0,1]. You would then have a minimal output but a very coarse description of the curve. + +The default behavior of IbexSolve is somehow a best compromise between these two extreme strategies. It tries to +return a minimal number of boxes while capturing the "topology" of the solution set. + +In the circle example, IbexSolve will just produce 11 solutions. They are depicted below: + +.. figure:: images/disc2-ibexsolve.svg + :width: 300 px + :align: center + +As you can seen, the paving with the boxes is a rough description of the circle. Still, we see that the overall shape +is captured. This paving clearly looks differently than if we had solve, say, a linear equation. + +In more precise terms, each *solution box* has the property to be crossed by the curve in a regular way. +Look for instance at the gray box. The curve makes no loop or u-turn whatsoever inside the box and crosses it +from side to side along the y-axis. + +Formally, it is proven for this box that for all values y in [y] there exists x in [x], and a single one, +such that (x,y) is a point of the curve. More exactly, we have: + +.. math:: + \forall y\in\mathring{[y]} \quad \exists ! \ x\in\mathring{[x]} \quad x^2+y^2=1 + +where :math:`\mathring{\cdot}` stands for *the interior of*. + +All the 11 boxes have this property except that the roles of x and y can be switched, depending whether the box is +more horizontal or vertical. This information is given in the :ref:`output data `. + +Of course, all this generalizes to any dimension. + +If you need to refine the paving, that is, to have boxes of smaller size, use for this the :ref:`eps-max parameter `. +For instance, if we run IbexSolve using ``-E 0.5`` (or equivalently, ``--eps-max=0.5``) we obtain the following paving: + +.. figure:: images/disc3-ibexsolve.svg + :width: 300 px + :align: center + + +.. _solver-intro_ex3: + +-------------------------------- +Third example (inequalities) +-------------------------------- + +Let us now turn to a single inequality. Just change the "=" sign of the previous example by "<=":: + + variables + x,y; + + constraints + x^2+y^2<=1; + end + +Now the result is:: + + number of solution boxes: 11629 + number of boundary boxes: -- + number of unknown boxes: 8941 + number of pending boxes: -- + cpu time used: 2.38774s + number of cells: 41139 + +Below is the plot of all solution boxes (on the left), the plot of all unknown boxes (on the right). + +|solver-intro_ex3-pic1| |solver-intro_ex3-pic2| + +.. |solver-intro_ex3-pic1| image:: images/disc4-ibexsolve-1.svg + :width: 300 px + +.. |solver-intro_ex3-pic2| image:: images/disc4-ibexsolve-2.svg + :width: 300 px + +Here is a zoom on a fraction of unknown boxes: + +|solver-intro_ex3-pic3| + +.. |solver-intro_ex3-pic3| image:: images/disc4-ibexsolve-3.svg + :width: 300 px + +This times, the solution boxes are all entirely inside the disk and the so-called unknown boxes enclose the boundary. + +The choice of this terminology, and its consistency with the previous example, is justified :ref:`further `. + +Just notice that the full disk is covered by the union of solution and unknown boxes. + +It is possible to set the thickness of the boundary using the :ref:`eps-min parameter `. + +For instance, if you IbexSolve using ``-e 0.1`` (or equivalently, ``--eps-min=0.1``), you obtain: + +.. figure:: images/disc5-ibexsolve.svg + :width: 300 px + :align: center + + +--------------------- +Scope and limits +--------------------- + +As illustrated by our previous examples, IbexSolve can solve any system of nonlinear equations and inequalities +in a complete and validated way, including underconstrained systems. + +All usual operators are allowed, including **trigonometric** functions but also **sign**, **absolute value** and **min/max** operators. + +Furthermore, IbexSolve is a end-user program cooked by the ibex team, that resorts to +a unique black-box strategy (whatever the input problem is) and with a very limited +number of parameters. Needless to say, this strategy is a kind of compromise and not the +best one for a specific problem. + +For programmers, the core library actually offers a :ref:`generic solver `, a C++ class +that allows to easily build your own solver. + +The main shortcoming of IbexSolve is that time is not bounded. This solver is not appropriate for online computations. +You may typically expect some seconds or minutes of computing for small-scaled problems (less than +10 variables). But, beyond, it can takes hours or more. + + +.. _solver-output: + +======================== +The output of IbexSolve +======================== + +Let us first formally define what a system is. We call a **system** the given of + +1- *m* equations + + .. math:: + + \forall i\in\{1,\ldots,m\}, \quad f_i(x)=0 + + or, in short, f(x)=0, with :math:`f:\mathbb{R}^n\to\mathbb{R}^m`. If *m=0* then :math:`\{1,\ldots,m\}=\emptyset` so the relation f(x)=0 becomes a tautology and can be omitted. + +2- *p* inequalities + + .. math:: + + \forall i\in\{1,\ldots,p\}, \quad g_i(x)\leq0 + + or, in short, g(x)<=0, with :math:`g:\mathbb{R}^n\to\mathbb{R}^p`. If *p=0* then g(x)<=0 is a tautology and can be omitted. + +In the sequel: + +- *n* will denote the number of variables +- *m* the number of equations (can be zero) +- *p* the number of inequalities (can be zero). + + +We call *manifold* the set *M* of solution points of a given system. + +IbexSolve produces 4 different types of boxes: + +- the set *S* of *solution* boxes +- the set *B* of *boundary* boxes +- the set *U* of *unknown* boxes +- the set *P* of *pending* boxes + +The first important property is that the manifold is covered by these sets: + +.. math:: + + M \subseteq S \cup B \cup U \cup P. + +The properties of each type of boxes are detailed right below and the :ref:`solver strategy ` further. + +.. _solver-output-solutions: + +======================== +Solution boxes +======================== + +In the case of a square system of equations, a solution box corresponds to the usual meaning, i.e., a box that is proved to contain a solution. + +We shall give here a more general definition that also embraces the case of underconstrained systems. + +In the general case, and as illustrated in the :ref:`circle example `, the idea behind IbexSolve is to compute boxes that capture the local "topology" of the manifold. + +More precisely, we consider a box as solution when there exists an homeomorphism between the part of the manifold enclosed by a box and the unit open ball + +.. math:: + + B:=\{x \in\mathbb{R}^{n-m}, \|x\|<1\}. + +So, [x] **is a solution** box only if: + +.. math:: + \left\{\begin{array}{l} + \forall x\in[x], \quad g(x)\leq 0\quad\mbox{and}\\ + \mathring{[x]}\cap M \quad \mbox{is homeomorphic to} \ B + \end{array}\right. + +where :math:`\mathring{[x]}` denotes the interior of [x]. Note that this definition imposes [x] to have a non-null radius on each of its components. + +--------------------------- +Parametrization +--------------------------- + +When IbexSolve finds a solution, it does not only supply the box but also give an information on how the homeomorphism can be built. +This is also illustrated with the gray box of our :ref:`circle example ` where, roughly speaking, one of the variable is identified as +the leading direction of the curve. + +More generally, IbexSolve will give you a partition of the vector *x* into two subset of variables *u* (called *parameters*) and *v*. +The size of *u* is n-m and the size of *v* is m. + +For simplicity, we assume that f(u,v) stands for f(x). + +Now, this partition must be interpreted as follows. +First, because [x] (hence [u]) has a non-empty interior, there is an homeomorphism :math:`\phi_1:B\to\mathring{[u]}`. +Second, for every point *u\** in :math:`\mathring{[u]}` a (classical) Newton iteration applied to f(u\*,.)=0 starting for some +value *v* in [v] will converge to some v\* such that (u\*,v\*) is a point of M inside [x]. This is another homeomorphism :math:`\phi_2:\mathring{[u]}\to \mathring{[x]}\cap M`. + +The sought homeomorphism is :math:`\varphi_1 \circ \varphi_2`. + +This homeomorphism corresponds to the usual concept of *chart* and our partition gives indeed a local parametrization of the manifold. +However, the parametrization involves a numerical algorithm (the Newton iteration) so it is only an implicit definition. +But this makes sense from a practical standpoint. For instance, if one wants to plot the manifold, he/she knows that this +can be easily done by sampling values in the parameter vector and compute corresponding point using a Newton iteration. + +In a sense, we can say that in a solution box the manifold is processable. + +-------------------- +Case of n=m +-------------------- + +In the case of a well-constrained system (n=m), v=x and our definition of solution box boils down to + +.. math:: + \exists ! \ x\in\mathring{[x]}, \quad f(x)=0, + +so that our definition of solution box in this case exactly matches the usual meaning of "solution box" in the interval community. + +-------------------- +Case of n=0 +-------------------- + +In the case of a system without equation (m=0), u=x and our definition of solution box boils down to + +.. math:: + \forall x\in[x], \quad g(x)\leq 0. + +so that our definition of solution box in this case exactly matches the usual meaning of "inner box" in the interval community. + +This explains why the solution boxes in our :ref:`introduction example ` are inside the disk. + - results written in ../plugins/solver/benchs/others/kolev36.mnf +.. _solver-output-boundary: + +======================== +Boundary boxes +======================== + +A boundary box intuitively corresponds to a box which intersects an inequality boundary. +This should not be confused with the boundary of the manifold. For instance, in the circle example in introduction, there is no inequality hence no boundary box. + +We may require additional properties on such boxes; for instance, that the inequality surface is not tangential to the boundary-free manifold f(x)=0. +But checking such properties has a computational price. Sometimes, like in our :ref:`disk example `, we have a large number of boundary boxes and we +prefer a weaker but cheaper boundary test. + +For this reason, we have introduced in IbexSolve different boundary policies. The policy is set thanks to the ``--boundary`` option. + +So far, the following policies exist: + +- ``true`` : any box is considered as a boundary. This policy is set by default for under-constrained systems, see the :ref:`solver strategy `. +- ``false``: all boxes are considered as boundary. This policy is set by default for inequalities, see the :ref:`solver strategy `. +- ``full-rank``: some inequalities are **potentially** active and the gradients of all constraints (equations and potentially activated inequalities) are linearly independent. + + This situation typically corresponds to *constraint qualification* in the realm of optimization. However, in the current state of development the inequality activation + is not proved (we don't certify that f=0 and :math:`g_i=0` are simultaneously satisfied inside the box). This is still in development. + +- ``half-ball``: this option is not available yet. This policy means that the manifold inside the box is homeomorphic to the half-unit ball: + .. math:: + B^+:=\{x \in\mathbb{R}^{n-m}, \|x\|<1, \|x_1\|\geq 0\}. + + This is still in development. + +.. _solver-output-unknown: + +==================================== +Unknown and pending boxes +==================================== + +The goal of IbexSolve is to describe a manifold with solution and boundary boxes. To this end, solution and boundary tests are used. These tests may however not apply on large boxes. Of course, one reason is that a large box may simply neither be a solution nor a boundary box. Another reason is that tests are just sufficient conditions. So the program splits recursively the initial box until one test succeeds. This leads to a classical binary search tree. + +However, it is frequent that no test will ever succeed in the vicinity of some points, whatever the size of the box is. This typically happens when f is singular. For this reason, the user has to fix a parameter value :math:`\varepsilon_{min}` to :ref:`stop bisection `. This parameter allows to prevent bisecting again, although no test has succeeded yet. A box [x] is not split anymore if all the components of [x] has a radius smaller than :math:`\varepsilon_{min}`. + +But it is also possible to control the search by fixing some time limit T. + +As said before, when the process terminates successfully, only solution and boundary boxes are issued. Otherwise, so-called unknown or pending boxes can appear, depending on the failure reason: + +- If both the solution and boundary tests do not apply on a box which cannot be split anymore (the precision :math:`\varepsilon_{min}` being reached), the latter is classified as an unknown box. + +- If a box has not been processed because of the timeout, it is classified as a pending box. + +The two types of boxes are distinguished as their semantic is quite different: a pending box can potentially be successfully processed providing a longer time limit, or even within the same time limit using a different exploration strategy. On the contrary, an unknown box cannot be processed successfuly whatever the time limit is. The only way is by decreasing :math:`\varepsilon_{min}`. + +.. _solver-strategy: + +==================================== +Solving strategy +==================================== + +The solving strategy depends on the type of systems + +- **inequalities only** (m=0). + For this type of systems, IbexSolve will try to cover the manifold with either solution or boundary boxes, indifferently. We don't try + to prioritize one type because they are not comparable. Indeed, solution boxes fully satisy inequalities g(x)<0 while boundary boxes crosses + g(x)=0. We may be more interested in either one. However, the default boundary policy is ``false``, which means that, by default, we prioritize + solution boxes. In fact, we even refuse to consider a box as boundary with this policy which means that the paving will finely cover the + manifold boundary with unknown boxes, as shown in our :ref:`disk example `. Note that for this type of problems, the :ref:`eps-max parameter ` + applies to both boxes. + +- **under-constrained systems** (0` is reached. + This is only at this point that the solver will try to eventually enforce a boundary test. And if it fails, the box is marked as *unknown*. + So, for this type of problems, the :ref:`eps-max parameter ` does not apply to boundary boxes. + The default boundary policy is ``true`` (no time wasted to check boundary property). + +- **well-constrained systems** (m=n). + For this type of systems, we don't expect boundaries. If a solution of f(x)=0 also matches g(x)=0, the resulting box will be marked as *unknown*. + In this case, the default boundary policy is ``false`` (no time wasted to check boundary property). The reason why it is not ``true`` as in the + previous case is precisely because a boundary is now unexpected. -The number of "inner boxes" correspond to the number of solutions found (there is just one here). To see the solution, use the option ``-s``. -In the report, the "number of cells" correspond to the number of hypothesis (bisections) that was required to solve the problem. .. _solver-options: @@ -61,6 +444,90 @@ In the report, the "number of cells" correspond to the number of hypothesis (bis Options ================== +.. _solver-options-eps-min: + +----------------------- +The eps-min parameter +----------------------- + +This parameter basically allows to control the solution accuracy. + +It imposes the minimal width of validated boxes (boundary or solution) or, said differently, the maximal width of non-validated boxes. +So this is a criterion to *stop* bisection: a non-validated box will not be larger than :math:`\varepsilon_{min}`. + +Default value is 1e-3. + + +.. _solver-options-eps-max: + +----------------------- +The eps-max parameter +----------------------- + +This parameter is the maximal width of validated boxes (boundary or solution). So this is a criterion to *force* bisection: a +validated box will not be larger than :math:`\varepsilon_{max}` (unless there is no equality and it is fully inside inequalities). Default value is +oo (none). + +The effect of the eps-max parameter is best illustrated in the case of pure inequalities, where solution and boundary boxes have equivalent roles (cf. +the :ref:`solver strategy `). + +So let us get back again to our :ref:`disk example `. + +If we use the ``--boundary=true`` option, the program immediately stops with one boundary box. This is OK because the first box handled by the solver satisfies one of the criterion (either solution or boundary) and since :math:`\varepsilon_{max}` is set by default to +oo, the size of this box is less than :math:`\varepsilon_{max}`, so the search is over. + +Now, if we set :math:`\varepsilon_{max}` to 1 we obtain graphically the following result: + +.. figure:: images/disc6-ibexsolve.png + :width: 300 px + :align: center + +Note that by setting the boundary policy to ``true``, no property at all is checked. This explains why the boundary boxes are bigger here than in the picture of +the :ref:`circle example `. Indeed, no bisection are required to enforce the boundary property. This is just governed by the :math:`\varepsilon_{max}` parameter. + +If we run IbexSolve using ``-E 0.5``, we obtain: + +.. figure:: images/disc7-ibexsolve.png + :width: 300 px + :align: center + +and using ``-E 0.1``: + +.. figure:: images/disc8-ibexsolve.png + :width: 300 px + :align: center + +You can control this way the accuracy of the description. Of course, as before, the more accurate, the more boxes you have and the longer it takes. + + +In the case of a system with both equations and inequalities, the parameter +:math:`\varepsilon_{max}` will apply for both inner and boundary boxes. +If we consider now the following Minibex code:: + + variables + x,y; + + constraints + x^2+y^2=1; + y+x>=0; + end + +we obtain the following figures by using decreasing values of :math:`\varepsilon_{max}` (namely 1, 0.5 and 0.1): + +|solver-options-eps-max-pic1| |solver-options-eps-max-pic2| |solver-options-eps-max-pic3| + +.. |solver-options-eps-max-pic1| image:: images/disc9-ibexsolve.svg + :width: 300 px + +.. |solver-options-eps-max-pic2| image:: images/disc10-ibexsolve.svg + :width: 300 px + +.. |solver-options-eps-max-pic3| image:: images/disc11-ibexsolve.svg + :width: 300 px + +-------------- +Overview +-------------- + + +--------------------------------------+------------------------------------------------------------------------------+ | -e<*float*>, --eps-min=<*float*> | Minimal width of output boxes. This is a criterion to *stop* bisection: a | | | non-validated box will not be larger than 'eps-min'. Default value is 1e-3. | @@ -74,14 +541,6 @@ Options | -t<*float*>, --timeout=<*float*> | Timeout (time in seconds). Default value is +oo (none). | | | | +--------------------------------------+------------------------------------------------------------------------------+ -| -i<*filename*>, --input=<*filename*> | COV input file. The file contains a (intermediate) description of the | -| | manifold with boxes in the COV (binary) format. | -| | | -+--------------------------------------+------------------------------------------------------------------------------+ -| -o<*filename*>, --output=<*filename*>| COV output file. The file will contain the description of the manifold | -| | with boxes in the COV (binary) format. | -| | | -+--------------------------------------+------------------------------------------------------------------------------+ | --simpl=... | Expression simplification level. Possible values are: | | | | | | - 0: no simplification at all (fast). | @@ -96,9 +555,16 @@ Options | | | | | Default value is : 1. | +--------------------------------------+------------------------------------------------------------------------------+ -| -s, --sols | Display the "solutions" (output boxes) on the standard output. | +| -i<*filename*>, --input=<*filename*> | COV input file. The file contains a (intermediate) description of the | +| | manifold with boxes in the COV (binary) format. | | | | +--------------------------------------+------------------------------------------------------------------------------+ +| -o<*filename*>, --output=<*filename*>| COV output file. The file will contain the description of the manifold | +| | with boxes in the COV (binary) format. | +| | | ++--------------------------------------+------------------------------------------------------------------------------+ +| --format | Give a description of the COV format used by IbexSolve | ++--------------------------------------+------------------------------------------------------------------------------+ | --bfs | Perform breadth-first search (instead of depth-first search, by default) | | | | +--------------------------------------+------------------------------------------------------------------------------+ @@ -106,11 +572,13 @@ Options | | are found. | | | | +--------------------------------------+------------------------------------------------------------------------------+ -| --boundary=... | Boundary test strength. Possible values are: | +| --stop-at-first | Stop at first solution/boundary/unknown box found. | ++--------------------------------------+------------------------------------------------------------------------------+ +| --boundary=... | Boundary policy. Possible values are: | | | | | | - ``true``: always satisfied. Set by default for under constrained problems | | | (0 | Random seed (useful for reproducibility). Default value is 1. | | | | +--------------------------------------+------------------------------------------------------------------------------+ | -q, --quiet | Print no report on the standard output. | | | | +--------------------------------------+------------------------------------------------------------------------------+ - -.. _solver-call-default: - -==================================== -Calling IbexSolve from C++ -==================================== - -You can call IbexSolve (the default solver) and get the solutions from C++. - -Two objects must be built: the first represents the problem (namely, a :ref:`system `), the second -the solver itself. Then, we just run the solver. Here is a simple example: - -.. literalinclude:: ../examples/doc-solver.cpp - :language: cpp - :start-after: solver-call-default-C - :end-before: solver-call-default-C - -The output is: - -.. literalinclude:: ../examples/doc-solver.txt - :start-after: solver-call-default-O - :end-before: solver-call-default-O - -.. _solver-generic: - -==================================== -The generic solver -==================================== - -The generic solver is the main C++ class behind the implementation of ``ibexsolve``. -It is a classical branch and prune algorithm that interleaves contraction and branching (bisection) until -boxes get sufficiently small. However, it performs a more general task that just finding solution points of square -systems of equations: it also knows how to deal with under-constrained systems and handle manifolds. - -.. note:: - A more detailed documentation about under-constrained systems will be available soon. - -Compared to ``ibexsolve``, the generic solver allows the following additional operators as inputs: - -#. a **contractor** - - Operator that contracts boxes by removing non-solution points. The contraction operator must be compatible with the - system given (equations/inequalities). The solver performs no check (it is the user responsability). See - :ref:`ctc`. - -#. a **bisector** - - Operator that splits a box. Note that some bisectors have a *precision* parameter: the box is bisected providing - it is large enough. But this precision is not directly seen by the solver which has its own precision variables - (see ``-e`̀ and ``-E``). If however the bisector does not split a box, this will generate an exception caught by the solver, - which will not continue the search and backtrack. So fixing the bisector internal precision gives basically the same effect - as fixing it with ``--e``. See :ref:`strategy-bisectors` for more details. - -#. a **cell buffer** - - Operator that manages the list of pending boxes (a *cell* is a box with a little bit of extra information used by the search). - See :ref:`strategy-cell-buffers` for more details. - -Our next example creates a solver for the intersection of two circles of radius :math:`d`, -one centered on :math:`(0,0)` and the other in :math:`(1,0)`. - -To this end we first create a vector-valued function: - -.. math:: - (x,y) \mapsto \begin{pmatrix} x^2+y^2-d \\ (x-1)^2+y^2-d \end{pmatrix} - -Then, we build two contractors; a :ref:`forward-bacwkard ` contractor and (because the system is square), -an :ref:`interval Newton ` contractor. - - -We chose as bisection operator the *round-robin* operator, that splits each component in turn. -The precision of the solver is set to 1e-7. - -Finally, the cell buffer is a stack, which leads to a depth-first search. - -.. literalinclude:: ../examples/doc-solver.cpp - :language: cpp - :start-after: solver-solver-generic-C - :end-before: solver-solver-generic-C - -The output is: - -.. literalinclude:: ../examples/doc-solver.txt - :start-after: solver-generic-O - :end-before: solver-solver-generic-O - -.. _solver-implem-default: - -============================================= -Implementing IbexSolve (the default solver) -============================================= - -IbexSolve is an instance of the generic solver with (almost) all parameters set by default. - -We already showed how to `Calling IbexSolve from C++`_. -To give a further insight into the generic solver and its possible settings, we explain now how to re-create the default solver -by yourself. - -The contractor of the default solver is obtained with the following receipe. -This is a :ref:`composition ` of - -#. :ref:`ctc-HC4` -#. :ref:`ACID ` -#. :ref:`Interval Newton ` (only if it is a square system of equations) -#. A :ref:`fixpoint ` of the :ref:`ctc-polytope-hull` of two linear relaxations combined: - - the relaxation called X-Taylor; - - the relaxation generated by affine arithmetic. See :ref:`ctc-linear-relax`. - -The bisector is based on the :ref:`strategy-smear-function` with maximal relative impact. - -So the following program exactly reproduces the default solver. - -.. literalinclude:: ../examples/doc-solver.cpp - :language: cpp - :start-after: solver-implem-default-C - :end-before: solver-implem-default-C - -.. _solver-parallel: - -============================================= -Parallelizing search -============================================= - -It is possible to parallelize the search by running (in parallel) solvers for different subboxes of the initial box. - -Be aware however that Ibex has not been designed (so far) to be parallelized and the following lines only reports our preliminary -experiments. - -Here are the important observations: - -- The sub-library gaol is **not** thread-safe. You must compile Ibex with **filib** which seems to be OK (see :ref:`install-options`). -- The linear solver Soplex (we have not tested yet with Cplex) seems to be thread-safe but sometimes generates error messages on the - console like:: - - ISOLVE56 stop: 0, basis status: PRIMAL (2), solver status: RUNNING (-1) - - So, calling Soplex several times simultaneously seems not to be allowed, but Soplex at least manages the case properly, that is, - stops. As far as we have observed, we don't lose solutions even when this kind of message appear. -- Ibex objects are not thread-safe which means that the solvers run in parallel must share no information. In particular, - each solver must have its **own copy** of the system. - -Here is an example: - -.. literalinclude:: ../examples/doc-solver.cpp - :language: cpp - :start-after: solver-parallel-C-1 - :end-before: solver-parallel-C-1 - -If I remove the ``#pragma`` the program displays:: - - solver #1 found 64 - solver #2 found 64 - - real 0m5.121s // <-------- total time - user 0m5.088s - -With the ``#pragma``, I obtain:: - - solver #1 found 64 - solver #2 found 64 - - real 0m2.902s // <-------- total time - user 0m5.468s - -**Note:** It is pure luck that by bisecting the 4th variable, we obtain exactly half of the solutions on each sub-box. -Also, looking for the 64 first solutions takes here around the same time than looking for the 64 subsequent ones, which -is particular to this example. So, contrary to what this example seems to prove, splitting the box in two subboxes does -not divide the running time by two in general. Of course :) - -If you are afraid about the messages of the linear solver, you can replace the ``DefaultSolver`` by your own dedicated solver -that does not resort to the simplex, ex: - -.. literalinclude:: ../examples/doc-solver.cpp - :language: cpp - :start-after: solver-parallel-C-2 - :end-before: solver-parallel-C-2 - +| --forced-params=<*string*> | Force some variables to be parameters in the parametric proofs, separated by | +| | '+'. Example: --forced-params=x+y | +| | | ++--------------------------------------+------------------------------------------------------------------------------+ diff --git a/doc/tutorial.rst b/doc/tutorial.rst index 422c2cd52..403f6afac 100644 --- a/doc/tutorial.rst +++ b/doc/tutorial.rst @@ -236,7 +236,7 @@ dist(a,b) as above. :start-after: func-compo :end-before: func-compo -The display is as folllows. Note that constant values like 0 are automatically replaced +The display is as follows. Note that constant values like 0 are automatically replaced by degenerated intervals (like [0,0]):: f:(x)->(dist(x,(<0, 0> ; <0, 0>));dist(x,(<1, 1> ; <1, 1>))) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index ecb6337a0..fcda00fcb 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,10 +1,10 @@ -cmake_minimum_required (VERSION 3.0.2) +cmake_minimum_required (VERSION 3.5.1) project (IBEX_EXAMPLES LANGUAGES CXX) -include (FindPkgConfig) -pkg_search_module (IBEX REQUIRED ibex) +find_package (IBEX 2.8.9.1 REQUIRED) message (STATUS "Found Ibex version ${IBEX_VERSION}") +ibex_init_common () # Ibex should have installed this function add_compile_options(-O3 -DNDEBUG) @@ -12,29 +12,27 @@ if (WIN32) add_definitions(-U__STRICT_ANSI__) endif () -# +### set (LAB_EXAMPLES lab1 lab2 lab3 lab4 lab5 lab6 lab7 lab8) -set (DOC_EXAMPLES doc-arithmetic doc-contractor - #doc-covfiles #plugin/optim dependent - doc-modeling - #doc-optim #plugin/optim dependent +set (DOC_EXAMPLES doc-arithmetic doc-contractor doc-covfiles doc-modeling doc-separator doc-set doc-sivia doc-solver doc-strategy - #doc-tutorial #plugin/optim dependent - ) + doc-tutorial) +if (IBEX_LP_LIB_NAME) + list (APPEND DOC_EXAMPLES doc-optim) +else () + set (MSG "Cannot compile example 'doc-optim', it requires Ibex with a" + "linear programming library.") + add_custom_target (doc-optim COMMAND ${CMAKE_COMMAND} -E echo ${MSG}) +endif () foreach (ex_name ${LAB_EXAMPLES} ${DOC_EXAMPLES}) add_executable (${ex_name} ${ex_name}.cpp) - target_compile_options (${ex_name} PUBLIC ${IBEX_CFLAGS}) - target_include_directories (${ex_name} PUBLIC ${IBEX_INCLUDE_DIRS}) - target_link_libraries (${ex_name} PUBLIC ${IBEX_LDFLAGS}) + target_link_libraries (${ex_name} PUBLIC Ibex::ibex) endforeach () -# +### set (SLAM_EXAMPLES slam1 slam2 slam3) - foreach (ex_name ${SLAM_EXAMPLES}) add_executable (${ex_name} slam/${ex_name}.cpp slam/data.cpp slam/data.h) - target_compile_options (${ex_name} PUBLIC ${IBEX_CFLAGS}) - target_include_directories (${ex_name} PUBLIC ${IBEX_INCLUDE_DIRS}) - target_link_libraries (${ex_name} PUBLIC ${IBEX_LDFLAGS}) + target_link_libraries (${ex_name} PUBLIC Ibex::ibex) endforeach () diff --git a/examples/abstaylor.cpp b/examples/abstaylor.cpp new file mode 100644 index 000000000..674a0436f --- /dev/null +++ b/examples/abstaylor.cpp @@ -0,0 +1,75 @@ +/** + * + * This main shows how to use the upperbounding methods: AbsTaylor and Iterative. + * + * As output you can expect the feasible point and the cost. + */ +#include "ibex.h" + +using namespace std; +using namespace ibex; + + +int main(int argc, char** argv) { + + if (argc < 4){ + cout << "Use the format: ./abstaylor FILE [abst|iterative] [mid|rnd]" << endl; + return 0; + } + System *sys; + pair p; + sys = new System(argv[1]); + string loup_finder = argv[2]; + string exp_point= argv[3]; + LinearizerXTaylor* lr = new LinearizerXTaylor(*sys,LinearizerXTaylor::RESTRICT,LinearizerXTaylor::RANDOM); + + + //Point definition, either mid or random + LinearizerAbsTaylor* lr2; + + if (exp_point == "mid") + lr2 = new LinearizerAbsTaylor(*sys,LinearizerAbsTaylor::MID); + else if (exp_point == "rnd"){ + lr2 = new LinearizerAbsTaylor(*sys,LinearizerAbsTaylor::RANDOM); + } + else{ + cout << "Use either mid for the midpoint or rnd for a random point inside the box" << endl; + exit(1); + } + + cout << endl<<"The search of upperbounds will be performed in the box : "<< sys->box << endl<> aux; +// + //abstaylor section + LoupFinderIP* finder_ip_abst = new LoupFinderIP(*sys,lr2); + + if (loup_finder == "abst"){ + try { + p = finder_ip_abst->find(sys->box,sys->box.mid(),POS_INFINITY); + cout << "The point : "; + cout << p.first.ub() << endl; + cout << "corresponds to an upperbound of the problem with a cost of "; + cout << p.second << endl << endl; + + } catch(LoupFinder::NotFound&) {cout << "Upperbound not found"< finders; + finders.push_back(finder_ip_abst); finders.push_back(finder_ip_xt); + LoupFinderIterative* finder_trust = new LoupFinderIterative(*sys,sys->box,finders); + try { + finder_trust->set_trace(true); + finder_trust->find(sys->box,sys->box.mid(),POS_INFINITY); + } catch(LoupFinder::NotFound&) {cout << "Upperbound not found"< +- N constructFromBitSet(std::istream & in) throw(interval_io_exception) ++ N constructFromBitSet(std::istream & in) + { + throw interval_io_exception("constructFromBitSet() called for unsupported type"); + } + template +- N constructFromBitSet(std::string & in) throw(interval_io_exception) ++ N constructFromBitSet(std::string & in) + { + throw interval_io_exception("constructFromBitSet() called for unsupported type"); + } + template +- N constructFromBitSet(char const * in) throw(interval_io_exception) ++ N constructFromBitSet(char const * in) + { + throw interval_io_exception("constructFromBitSet() called for unsupported type"); + } + + template +- N constructFromHexSet(std::istream & in) throw(interval_io_exception) ++ N constructFromHexSet(std::istream & in) + { + throw interval_io_exception("constructFromHexSet() called for unsupported type"); + } + template +- N constructFromHexSet(std::string & in) throw(interval_io_exception) ++ N constructFromHexSet(std::string & in) + { + throw interval_io_exception("constructFromHexSet() called for unsupported type"); + } + template +- N constructFromHexSet(char const * in) throw(interval_io_exception) ++ N constructFromHexSet(char const * in) + { + throw interval_io_exception("constructFromHexSet() called for unsupported type"); + } +@@ -736,61 +736,61 @@ + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- double constructFromBitSet(std::istream & in) throw(interval_io_exception); ++ double constructFromBitSet(std::istream & in); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- float constructFromBitSet(std::istream & in) throw(interval_io_exception); ++ float constructFromBitSet(std::istream & in); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- float constructFromBitSet(std::string & in) throw(interval_io_exception); ++ float constructFromBitSet(std::string & in); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- double constructFromBitSet(std::string & in) throw(interval_io_exception); ++ double constructFromBitSet(std::string & in); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- float constructFromBitSet(char const * in) throw(interval_io_exception); ++ float constructFromBitSet(char const * in); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- double constructFromBitSet(char const * in) throw(interval_io_exception); ++ double constructFromBitSet(char const * in); + + template <> +- double constructFromHexSet(std::istream & in) throw(interval_io_exception); ++ double constructFromHexSet(std::istream & in); + template <> +- float constructFromHexSet(std::istream & in) throw(interval_io_exception); ++ float constructFromHexSet(std::istream & in); + template <> +- float constructFromHexSet(std::string & in) throw(interval_io_exception); ++ float constructFromHexSet(std::string & in); + template <> +- double constructFromHexSet(std::string & in) throw(interval_io_exception); ++ double constructFromHexSet(std::string & in); + template <> +- float constructFromHexSet(char const * in) throw(interval_io_exception); ++ float constructFromHexSet(char const * in); + template <> +- double constructFromHexSet(char const * in) throw(interval_io_exception); ++ double constructFromHexSet(char const * in); + + template<> + int whitespace::isSpace(int arg); + + template +- N inferFromString(std::string const &) throw(interval_io_exception) ++ N inferFromString(std::string const &) + { + throw interval_io_exception("inferFromString() called for unsupported type"); + } +@@ -800,32 +800,28 @@ + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- double inferFromString(std::string const & ) +- throw(interval_io_exception); ++ double inferFromString(std::string const & ); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- double inferFromString(std::string const & ) +- throw(interval_io_exception); ++ double inferFromString(std::string const & ); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- float inferFromString(std::string const & ) +- throw(interval_io_exception); ++ float inferFromString(std::string const & ); + template <> + #if defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && defined(FILIB_DLL) + __declspec(dllexport) + #elif defined(_MSC_VER) && defined(FILIB_BUILD_DLL) && ! defined(FILIB_DLL) + __declspec(dllimport) + #endif +- float inferFromString(std::string const & ) +- throw(interval_io_exception); ++ float inferFromString(std::string const & ); + } // namespace filib + + #endif // PRIMITIVE +--- filibsrc-3.0.2.2/ieee/primitive.cpp 2016-07-19 15:50:07.000000000 +0200 ++++ filibsrc-3.0.2.2/ieee/primitive.cpp 2020-12-15 15:31:21.462520233 +0100 +@@ -281,7 +281,7 @@ + float const primitive::one_fsucc = primitive::composef(0,127,1); + + template <> +- double constructFromBitSet(std::istream & in) throw(interval_io_exception) ++ double constructFromBitSet(std::istream & in) + { + unsigned char signBit[1]; + unsigned char expBits[11]; +@@ -321,7 +321,7 @@ + } + + template <> +- float constructFromBitSet(std::istream & in) throw(interval_io_exception) ++ float constructFromBitSet(std::istream & in) + { + unsigned char signBit[1]; + unsigned char expBits[8]; +@@ -354,7 +354,7 @@ + } + + template <> +- double constructFromHexSet(std::istream & in) throw(interval_io_exception) ++ double constructFromHexSet(std::istream & in) + { + unsigned char signHex[1]; + unsigned char expHex[3]; +@@ -400,7 +400,7 @@ + } + + template <> +- float constructFromHexSet(std::istream & in) throw(interval_io_exception) ++ float constructFromHexSet(std::istream & in) + { + unsigned char signHex[1]; + unsigned char expHex[2]; +@@ -445,7 +445,6 @@ + } + + static double checkedToDouble(std::string const & s) +- throw(interval_io_exception) + { + char * endptr = 0; + char const * nptr = s.c_str(); +@@ -458,20 +457,17 @@ + } + template <> + double inferFromString(std::string const & s) +- throw(interval_io_exception) + { + return primitive::basic_pred(checkedToDouble(s)) ; + } + template <> + double inferFromString(std::string const & s) +- throw(interval_io_exception) + { + return primitive::basic_succ(checkedToDouble(s)) ; + + } + template <> + float inferFromString(std::string const & s) +- throw(interval_io_exception) + { + float tval = static_cast(checkedToDouble(s)); + +@@ -484,7 +480,6 @@ + } + template <> + float inferFromString(std::string const & s) +- throw(interval_io_exception) + { + float tval = static_cast(checkedToDouble(s)); + +@@ -499,7 +494,7 @@ + void readBitSet( + std::istream & in, + unsigned int n0, +- unsigned char * s) throw(interval_io_exception) ++ unsigned char * s) + { + size_t pos = 0; + size_t n = n0; +@@ -529,7 +524,7 @@ + void readHexSet( + std::istream & in, + unsigned int n0, +- unsigned char * s) throw(interval_io_exception) ++ unsigned char * s) + { + size_t pos = 0; + size_t n = n0; +@@ -589,7 +584,7 @@ + } + } + +- void readChar(std::istream& in, char c0) throw(interval_io_exception) ++ void readChar(std::istream& in, char c0) + { + char c = in.get(); + +@@ -602,7 +597,7 @@ + } + + template <> +- float constructFromBitSet(std::string & in) throw(interval_io_exception) ++ float constructFromBitSet(std::string & in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in.c_str()); +@@ -612,7 +607,7 @@ + return constructFromBitSet(istr); + } + template <> +- double constructFromBitSet(std::string & in) throw(interval_io_exception) ++ double constructFromBitSet(std::string & in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in.c_str()); +@@ -623,7 +618,7 @@ + } + + template <> +- float constructFromBitSet(char const * in) throw(interval_io_exception) ++ float constructFromBitSet(char const * in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in); +@@ -633,7 +628,7 @@ + return constructFromBitSet(istr); + } + template <> +- double constructFromBitSet(char const * in) throw(interval_io_exception) ++ double constructFromBitSet(char const * in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in); +@@ -644,7 +639,7 @@ + } + + template <> +- float constructFromHexSet(std::string & in) throw(interval_io_exception) ++ float constructFromHexSet(std::string & in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in.c_str()); +@@ -654,7 +649,7 @@ + return constructFromHexSet(istr); + } + template <> +- double constructFromHexSet(std::string & in) throw(interval_io_exception) ++ double constructFromHexSet(std::string & in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in.c_str()); +@@ -665,7 +660,7 @@ + } + + template <> +- float constructFromHexSet(char const * in) throw(interval_io_exception) ++ float constructFromHexSet(char const * in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in); +@@ -675,7 +670,7 @@ + return constructFromHexSet(istr); + } + template <> +- double constructFromHexSet(char const * in) throw(interval_io_exception) ++ double constructFromHexSet(char const * in) + { + #if defined(__GNUC__) && __GNUC__ < 3 + std::istrstream istr(in); +--- filibsrc-3.0.2.2/interval/interval.hpp 2016-07-19 15:50:06.000000000 +0200 ++++ filibsrc-3.0.2.2/interval/interval.hpp 2020-12-15 15:33:41.986619472 +0100 +@@ -379,9 +379,7 @@ + template < typename N, rounding_strategy K, interval_mode E > + std::istream & operator >>( + std::istream & out, +- interval & a) +- throw(interval_io_exception) +- ; ++ interval & a); + + /** + Returns an interval enclosure of the inverse cosine of the interval x. +@@ -627,8 +625,7 @@ + N const & rl, N const & ru, char const &); + + inline interval( +- std::string const & infs, std::string const & sups) +- throw(interval_io_exception); ++ std::string const & infs, std::string const & sups); + + /** + check for infinity (?) +@@ -1210,10 +1207,8 @@ + */ + inline N amax() const; + +- static interval readBitImage(std::istream &) +- throw(interval_io_exception); +- static interval readHexImage(std::istream &) +- throw(interval_io_exception); ++ static interval readBitImage(std::istream &); ++ static interval readHexImage(std::istream &); + }; + + template +--- filibsrc-3.0.2.2/interval/interval.icc 2016-07-19 15:50:06.000000000 +0200 ++++ filibsrc-3.0.2.2/interval/interval.icc 2020-12-15 15:34:26.706653972 +0100 +@@ -74,8 +74,7 @@ + template + inline interval::interval( + std::string const & infs, std::string const & sups +- ) throw(interval_io_exception) +- : ++ ) : + INF(inferFromString(infs)), + SUP(inferFromString (sups)) + { +@@ -1157,7 +1156,6 @@ + + template + interval interval::readBitImage(std::istream & in) +- throw(interval_io_exception) + { + eatWS< whitespace >(in); + +@@ -1176,7 +1174,6 @@ + + template + interval interval::readHexImage(std::istream & in) +- throw(interval_io_exception) + { + eatWS< whitespace >(in); + +@@ -1195,7 +1192,6 @@ + + template + std::istream &operator >>(std::istream &is, interval &x) +- throw(interval_io_exception) + { + N inf, sup; + std::string s; diff --git a/interval_lib_wrapper/filib/CMakeLists.txt b/interval_lib_wrapper/filib/CMakeLists.txt index 7fd2a994f..9ff235349 100644 --- a/interval_lib_wrapper/filib/CMakeLists.txt +++ b/interval_lib_wrapper/filib/CMakeLists.txt @@ -1,100 +1,56 @@ -################################################################################ -# Options -################################################################################ -set (FILIB_DIR "" CACHE PATH "Path to the Filib lib and include directories") - -################################################################################ -# May be needed to install missing dependencies -################################################################################ -include (ExternalProject) -include (IbexUtils) - -# Looking for interval/interval.hpp, result is written in FILIB_INCDIR -find_header_custom (FILIB "interval/interval.hpp" PATHS "${FILIB_DIR}") -# Looking for prim library, result is written in FILIB_LIB -find_library_custom (FILIB "prim" PATHS "${FILIB_DIR}") - -# With Filib, we add "-Wno-deprecated" to remove lots of warnings generated by -# a function definition in interval.icc -check_cxx_compiler_flag ("-Wno-deprecated" COMPILER_SUPPORTS_WNO_DEPRECATED) -if (COMPILER_SUPPORTS_WNO_DEPRECATED) - list (APPEND FILIB_FLAGS -Wno-deprecated) -endif() - -# With Filib, we need to add flags "-frounding-math" and "-ffloat-store" -# It is necessary to use filib, to avoid problem with x80 processor. -# This option prevents undesirable excess precision on machines such as the -# 68000 where the floating registers (of the 68881) keep more precision than a -# "double" is supposed to have. Similarly for the x86 architecture. For most -# programs, the excess precision does only good, but a few programs rely on the -# precise definition of IEEE floating point. Use -ffloat-store for such -# programs, after modifying them to store all pertinent intermediate -# computations into variables. -foreach (flag "-frounding-math" "-ffloat-store") - string (TOUPPER "${flag}" upperflag) - string (REPLACE "-" "_" upperflag "${upperflag}") - check_cxx_compiler_flag (${flag} COMPILER_SUPPORTS${upperflag}) - if (COMPILER_SUPPORTS${upperflag}) - list (APPEND FILIB_FLAGS ${flag}) - else () - message (WARNING "The compiler does not the flag ${flag} needed by Filib. " - "You may get incorrect/inconsistent results.") - endif() -endforeach () - -if (FILIB_FLAGS) - set (filib_compile_option COMPILE_OPTIONS ${FILIB_FLAGS}) -endif () - -if (FILIB_INCDIR AND FILIB_LIB) - create_target_import_and_export (prim ${FILIB_LIB} FILIB_EXPORTFILE - ${filib_compile_option} - NAMESPACE Ibex:: - TARGET_NAME filib - INCLUDE_DIRECTORIES ${FILIB_INCDIR}) +set (FILIB_NAME "Filib") +set (FILIB_NAME ${FILIB_NAME} PARENT_SCOPE) + +# Look for Filib +include (FindFilib.cmake) + +if (FILIB_FOUND) + set (FILIB_TARGET "Filib::Filib" PARENT_SCOPE) + # Install FindFilib.cmake file + install (FILES FindFilib.cmake + DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE}/cmake.utils + COMPONENT devtools) + # Write CMake file containing path hint and install it + generate_path_hints_file (Filib INSTALL) else () message (STATUS "Will install and use library Filib from 3rd/ subdirectory") - set (filib_basename "filibsrc-3.0.2.2") + ### + set (FILIB_VERSION "3.0.2.2") + set (filib_basename "filibsrc-${FILIB_VERSION}") set (filib_archive_name "${filib_basename}.tar.gz") set (filib_archive "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${filib_archive_name}") set (wdir "${CMAKE_CURRENT_BINARY_DIR}/${filib_basename}") set (logdir "${CMAKE_CURRENT_BINARY_DIR}/log") - set (_prefix "Filib: ") file (MAKE_DIRECTORY "${logdir}") - # extract + ### Extract execute_process_check (COMMAND ${CMAKE_COMMAND} -E tar xzf ${filib_archive} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} MSG "extracting ${filib_archive_name}" LOGBASENAME "${logdir}/extract" - STATUS_PREFIX "${_prefix}") + STATUS_PREFIX "${FILIB_NAME}: ") - # TODO apply patch - #set (FILIB_PATCH "${CMAKE_CURRENT_SOURCE_DIR}/3rd/filibsrc-3.0.2.2.all.all.patch") + ### Apply patch + patch ("${FILIB_NAME}: " "${CMAKE_CURRENT_SOURCE_DIR}/3rd" "${wdir}" + "${logdir}" "${filib_basename}.all.all.patch" + "${filib_basename}_remove-throw.patch") - # copy files - foreach (file "CMakeLists.txt" "config.h.in" "rounding_control/rounding_control_config.hpp.in") - set (infile ${CMAKE_CURRENT_SOURCE_DIR}/3rd/${filib_basename}/${file}) - set (outfile ${wdir}/${file}) - string (REPLACE "/" "_" logbase "${file}") - execute_process_check (COMMAND ${CMAKE_COMMAND} -E copy ${infile} ${outfile} - MSG "copying ${file}" - LOGBASENAME "${logdir}/copy-${logbase}" - STATUS_PREFIX "${_prefix}") - endforeach () + ### Copy files + copy ("${FILIB_NAME}: " "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${filib_basename}" + "${wdir}" "${logdir}" "CMakeLists.txt" "config.h.in" + "rounding_control/rounding_control_config.hpp.in") - # configure - message (STATUS "${_prefix}configure") + ### Configure + message (STATUS "${FILIB_NAME}: configure") # Original values will be restored at the end of this file set (CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR_3RD}) set (CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR_3RD}) add_subdirectory (${wdir} ${wdir}-build) - message (STATUS "${_prefix}configure - done") + message (STATUS "${FILIB_NAME}: configure - done") - add_library (Ibex::filib ALIAS prim) + ### + set (FILIB_TARGET "prim" PARENT_SCOPE) + set (FILIB_VERSION ${FILIB_VERSION} PARENT_SCOPE) endif () - -list (APPEND EXPORTFILES "${FILIB_EXPORTFILE}") -set (EXPORTFILES "${EXPORTFILES}" PARENT_SCOPE) diff --git a/interval_lib_wrapper/filib/FindFilib.cmake b/interval_lib_wrapper/filib/FindFilib.cmake new file mode 100644 index 000000000..86b9f1cda --- /dev/null +++ b/interval_lib_wrapper/filib/FindFilib.cmake @@ -0,0 +1,67 @@ +# FindFilib +# ----------- +# +# The module defines the following variables: +# +# FILIB_FOUND +# FILIB_INCLUDE_DIRS +# FILIB_LIBRARIES +# +# and the following imported target (if it does not already exist): +# +# Filib::Filib - The Filib library +# +# +# Requires CMake >= 3.0 + +include(CheckCXXCompilerFlag) + +set (FILIB_DIR "${FILIB_DIR}" CACHE PATH "Directory to search for Filib") + +# Look for the library +find_library (FILIB_LIBRARY NAMES prim HINTS "${FILIB_DIR}" PATH_SUFFIXES lib) + +# Might want to look close to the library first for the includes. +get_filename_component (_libdir "${FILIB_LIBRARY}" PATH) + +# Look for the include directory +find_path (FILIB_INC_DIR NAMES interval/interval.hpp + HINTS "${_libdir}/.." "${FILIB_DIR}" + PATH_SUFFIXES include) + +include (FindPackageHandleStandardArgs) +find_package_handle_standard_args (Filib DEFAULT_MSG FILIB_LIBRARY + FILIB_INC_DIR) + +if (FILIB_FOUND) + set (FILIB_LIBRARIES ${FILIB_LIBRARY}) + set (FILIB_INCLUDE_DIRS "${FILIB_INC_DIR}") + mark_as_advanced (FILIB_DIR) + if (NOT TARGET Filib::Filib) + # For now we make the target global, because this file is included from a + # CMakeLists.txt file in a subdirectory. With CMake >= 3.11, we could make + # it global afterwards with + # set_target_properties(Filib::Filib PROPERTIES IMPORTED_GLOBAL TRUE) + add_library (Filib::Filib INTERFACE IMPORTED GLOBAL) + set_target_properties (Filib::Filib PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${FILIB_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${FILIB_LIBRARIES}") + + # Checking for -frounding-math and -ffloat-store + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag ("-frounding-math" COMPILER_SUPPORTS_FROUNDING_MATH) + if (COMPILER_SUPPORTS_FROUNDING_MATH) + list (APPEND FILIB_COMPILE_OPTIONS "-frounding-math") + endif () + if (NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + check_cxx_compiler_flag ("-ffloat-store" COMPILER_SUPPORTS_FFLOAT_STORE) + if (COMPILER_SUPPORTS_FROUNDING_MATH) + list (APPEND FILIB_COMPILE_OPTIONS "-ffloat-store") + endif () + endif () + set_target_properties (Filib::Filib PROPERTIES + INTERFACE_COMPILE_OPTIONS "${FILIB_COMPILE_OPTIONS}") + endif() +endif() + +mark_as_advanced(FILIB_INC_DIR FILIB_LIBRARY) diff --git a/interval_lib_wrapper/gaol/3rd/gaol-4.2.0.all.all.patch b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0.all.all.patch index 6d87e27f0..a3f83fc49 100644 --- a/interval_lib_wrapper/gaol/3rd/gaol-4.2.0.all.all.patch +++ b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0.all.all.patch @@ -1,3 +1,14 @@ +--- gaol-4.2.0/gaol/gaol_interval.cpp 2015-05-23 14:50:28.000000000 +0200 ++++ gaol-4.2.0/gaol/gaol_interval.cpp 2020-12-11 17:41:32.758471488 +0100 +@@ -1106,7 +1106,7 @@ + } + + +- interval::operator string() const ++ interval::operator std::string() const + { + std::ostringstream output; + output.precision(interval::precision()); --- gaol-4.2.0/gaol/gaol_allocator.h 2012-03-06 18:08:58.000000000 +0100 +++ gaol-4.2.0/gaol/gaol_allocator.h 2019-06-21 11:08:57.446030219 +0200 @@ -89,7 +89,7 @@ @@ -281,3 +292,14 @@ char * dtoa +--- gaol-4.2.0/gaol/gaol_interval_parser.cpp 2014-02-24 16:09:16.000000000 +0100 ++++ gaol-4.2.0/gaol/gaol_interval_parser.cpp 2020-12-11 17:56:46.944820383 +0100 +@@ -1942,7 +1942,7 @@ + (yyval.itv).l=gaol_result_of_parsing->left(); + (yyval.itv).r=gaol_result_of_parsing->right(); + if ((yyval.itv).l != (yyval.itv).r) { +- gaol_ERROR(input_format_error, std::string("bounds of degenerate interval do not evaluate to the same value")); ++ gaol_ERROR(input_format_error, "bounds of degenerate interval do not evaluate to the same value"); + } + } + break; diff --git a/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/CMakeLists.txt b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/CMakeLists.txt new file mode 100644 index 000000000..fcb34a7e7 --- /dev/null +++ b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/CMakeLists.txt @@ -0,0 +1,318 @@ +cmake_minimum_required (VERSION 3.5.1) + +set (GAOL_MAJOR_VERSION 4) +set (GAOL_MINOR_VERSION 2) +set (GAOL_MICRO_VERSION 0) +set (GAOL_VERSION "${GAOL_MAJOR_VERSION}.${GAOL_MINOR_VERSION}.${GAOL_MICRO_VERSION}") +project (GAOL VERSION ${GAOL_VERSION} LANGUAGES C CXX) + +set (PACKAGE_NAME "gaol") +set (PACKAGE ${PACKAGE_NAME}) +set (PACKAGE_BUGREPORT "goualard@users.sourceforge.net") +set (PACKAGE_STRING "${PACKAGE_NAME} \"${GAOL_VERSION}\"") +set (PACKAGE_TARNAME "${PACKAGE_NAME}") +set (PACKAGE_VERSION "\"${GAOL_VERSION}\"") +set (VERSION "\"${GAOL_VERSION}\"") + +message (STATUS "Running on system ${CMAKE_HOST_SYSTEM} with processor ${CMAKE_HOST_SYSTEM_PROCESSOR}") +if (CMAKE_CROSSCOMPILING) + message (STATUS "Targeting system ${CMAKE_SYSTEM} with processor ${CMAKE_SYSTEM_PROCESSOR}") +endif () + +# options and command-line arguments +option (BUILD_SHARED_LIBS "Set to ON to build shared libraries" OFF) +set (CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C++ header files (include)") +set (CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "object code libraries (lib)") + +# Looking for headers (for gaol_configuration.in) +option (STDC_HEADERS "Set to OFF if you do not have standard headers" ON) +include (CheckIncludeFiles) +foreach (name "clock" "dlfcn" "fenv" "float" "inttypes" "memory" "stddef" + "stdint" "stdlib" "strings" "string" "sys/resource" "sys/stat" + "sys/time" "sys/types" "unistd") + string (TOUPPER "${name}" uppername) + string (REPLACE "/" "_" uppername "${uppername}") + set (header "${name}.h") + set (var "HAVE_${uppername}_H") + check_include_files ("${header}" "${var}") +endforeach () + +include (CheckSymbolExists) +if (HAVE_SYS_RESOURCE_H) + check_symbol_exists (getrusage "sys/resource.h" GETRUSAGE_IN_HEADER) +else () + check_include_files ("time.h" HAVE_TIME_H) + check_symbol_exists (clock "time.h" CLOCK_IN_HEADER) +endif () + +include (CheckIncludeFileCXX) +check_include_file_cxx (cassert HAVE_CASSERT) +check_include_file_cxx (limits HAVE_LIMITS) + +include (CheckFunctionExists) +foreach (fct fesetround floor localeconv memset pow sqrt getrusage clock + __signbit round rint finite malloc realloc) + string (TOUPPER "${fct}" upperfct) + set (var "HAVE_${upperfct}") + check_function_exists (${fct} ${var}) +endforeach () +set (HAVE_NEXTAFTER ON) # we required C++11 for Ibex, so we are sure to have it + +# set some macros depending on system +if (CMAKE_SYSTEM MATCHES "Linux") + if (CMAKE_SYSTEM_PROCESSOR MATCHES "86_64") + set (IX86_LINUX ON) + set (X86_64BITS ON) + elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "i.86") + set (IX86_LINUX ON) + elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") + set (AARCH64_LINUX ON) + else () + set (UNSUPPORTED_ARCH ON) + endif () +elseif (CMAKE_SYSTEM MATCHES "CYGWIN" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i.86") + set (IX86_CYGWIN ON) +elseif (CMAKE_SYSTEM MATCHES "Darwin") + set (IX86_MACOSX ON) +elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc|ppc") + set (POWERPC_UNIX ON) +else () + set (UNSUPPORTED_ARCH ON) +endif () + +if (UNSUPPORTED_ARCH) + message (FATAL_ERROR "The target system is not supported by Gaol") +endif () + +# test endianness +if (NOT CMAKE_CROSSCOMPILING) + include (TestBigEndian) + test_big_endian (WORDS_BIGENDIAN) +elseif (NOT DEFINED WORDS_BIGENDIAN) + message (FATAL_ERROR "In cross compiling mode, WORDS_BIGENDIAN should be " + "set on the command-line") +endif () + +if (NOT WIN32) + if (NOT CMAKE_CROSSCOMPILING) + if (NOT DEFINED USING_SSE2_INSTRUCTIONS + AND NOT DEFINED USING_SSE3_INSTRUCTIONS) + try_run (SSE_RUN SSE_COMPILE ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/test_sse.cpp + RUN_OUTPUT_VARIABLE SSE_OUTPUT) + if (NOT SSE_COMPILE OR NOT SSE_RUN EQUAL 0) + message (STATUS "Could not determine if SSE2 and SSE3 is available: " + "set USING_SSE2_INSTRUCTIONS and/or USING_SSE3_INSTRUCTIONS on the " + "command-line to use SSE2 and/or SSE3") + else () + if (SSE_OUTPUT MATCHES "HAVE_SSE2=true") + set (USING_SSE2_INSTRUCTIONS ON) + message (STATUS "SSE2 instructions set detected") + endif () + if (SSE_OUTPUT MATCHES "HAVE_SSE3=true") + set (USING_SSE3_INSTRUCTIONS ON) + message (STATUS "SSE3 instructions set detected") + endif () + endif () + endif () + else () + if (NOT DEFINED USING_SSE2_INSTRUCTIONS) + message (FATAL_ERROR "In cross compiling mode, USING_SSE2_INSTRUCTIONS " + "should be set on the command-line") + endif () + if (NOT DEFINED USING_SSE3_INSTRUCTIONS) + message (FATAL_ERROR "In cross compiling mode, USING_SSE3_INSTRUCTIONS " + "should be set on the command-line") + endif () + endif () +endif () +if (USING_SSE3_INSTRUCTIONS) + message (STATUS "Gaol will use SSE3 and SSE2 instructions") +elseif (USING_SSE2_INSTRUCTIONS) + message (STATUS "Gaol will use SSE2 instructions") +else () + message (STATUS "Gaol will NOT use SSE instructions") +endif () + +# +set (GAOL_CERTAINLY_RELATIONS ON) +set (GAOL_EXCEPTIONS_ENABLED ON) +set (GAOL_PRESERVE_ROUNDING OFF) +set (GAOL_USING_ASM ON) +set (GAOL_VERBOSE_MODE OFF) + +# +#if (CMAKE_BUILD_TYPE STREQUAL "Debug") +# set (GAOL_DEBUGGING ON) +#endif () + +include (CheckTypeSize) +CHECK_TYPE_SIZE(int SIZEOF_INT BUILTIN_TYPES_ONLY) +CHECK_TYPE_SIZE(long SIZEOF_LONG BUILTIN_TYPES_ONLY) +CHECK_TYPE_SIZE("long long int" SIZEOF_LONG_LONG_INT BUILTIN_TYPES_ONLY) + +include(CheckCXXCompilerFlag) +check_cxx_compiler_flag ("-fvisibility-inlines-hidden" COMPILER_SUPPORTS_VISI_1) +check_cxx_compiler_flag ("-fvisibility=hidden" COMPILER_SUPPORTS_VISI_2) +if (COMPILER_SUPPORTS_VISI_1 AND COMPILER_SUPPORTS_VISI_2) + set (HAVE_VISIBILITY_OPTIONS ON) + set (GAOL_CXXFLAGS "${GAOL_CXXFLAGS} -fvisibility-inlines-hidden") + set (GAOL_CXXFLAGS "${GAOL_CXXFLAGS} -fvisibility=hidden") +endif () + +check_cxx_compiler_flag ("-funroll-loops" COMPILER_SUPPORTS_FUNROLL_LOOPS) +if (COMPILER_SUPPORTS_FUNROLL_LOOPS) + set (GAOL_CXXFLAGS "${GAOL_CXXFLAGS} -funroll-loops") +endif () +check_cxx_compiler_flag ("-fomit-frame-pointer" COMPILER_SUPPORTS_OMIT) +if (COMPILER_SUPPORTS_OMIT) + set (GAOL_CXXFLAGS "${GAOL_CXXFLAGS} -fomit-frame-pointer") +endif () +check_cxx_compiler_flag ("-fexpensive-optimizations" COMPILER_SUPPORTS_OPTIM) +if (COMPILER_SUPPORTS_OPTIM) + set (GAOL_CXXFLAGS "${GAOL_CXXFLAGS} -fexpensive-optimizations") +endif () +check_cxx_compiler_flag ("-frounding-math" HAVE_ROUNDING_MATH_OPTION) + +if(NOT MSVC) + set (CMAKE_C_FLAGS_RELEASE "-O2 -Wall -Wconversion") + set (CMAKE_C_FLAGS_DEBUG "-O0 -g -pg -Wall -Wconversion") + set (CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -Wconversion ${GAOL_CXXFLAGS}") + set (CMAKE_CXX_FLAGS_DEBUG "-O -g -pg -Wall -Wconversion") +else() + set (CMAKE_C_FLAGS_RELEASE "/O2") + set (CMAKE_C_FLAGS_DEBUG "/Od") + set (CMAKE_CXX_FLAGS_RELEASE "/O2") + set (CMAKE_CXX_FLAGS_DEBUG "/O1") +endif() + +### libgdtoa ################################################################### +foreach (file arith.h dmisc.c dtoa.c g_Qfmt.c g__fmt.c g_ddfmt.c g_dfmt.c + g_ffmt.c g_xLfmt.c g_xfmt.c gd_qnan.h gdtoa.c gdtoa.h gdtoaimp.h + gethex.c gmisc.c hd_init.c hexnan.c misc.c smisc.c strtoIQ.c + strtoId.c strtoIdd.c strtoIf.c strtoIg.c strtoIx.c strtoIxL.c + strtod.c strtodI.c strtodg.c strtof.c strtopQ.c strtopd.c + strtopdd.c strtopf.c strtopx.c strtopxL.c strtorQ.c strtord.c + strtordd.c strtorf.c strtorx.c strtorxL.c sum.c ulp.c) + list (APPEND SRCS "${CMAKE_CURRENT_SOURCE_DIR}/gdtoa/${file}") +endforeach () + +# gdtoa library +add_library (gdtoa ${SRCS}) + +# Need source and binary dir (for gaol/gaol_configuration.) in include dirs +set (incdirs "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/gaol") +target_include_directories (gdtoa PUBLIC "$") +target_include_directories (gdtoa PUBLIC "$/${CMAKE_INSTALL_INCLUDEDIR}>") + +# install library (and add it to ibexExport) +install(TARGETS gdtoa EXPORT ibexExport DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT devtools) +# install headers +install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/gdtoa/arith.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gdtoa/gdtoa.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gdtoa COMPONENT devtools) + +### libgaol #################################################################### +# gaol/gaol_configuration.h.in -> gaol/gaol_configuration.h +configure_file (gaol/gaol_configuration.h.in gaol/gaol_configuration.h) + +execute_process (COMMAND ${CMAKE_COMMAND} -E copy gaol/gaol_double_op_apmathlib.h gaol/gaol_double_op.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE ret + OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/copy-out.log" + ERROR_FILE "${CMAKE_CURRENT_BINARY_DIR}/copy-err.log" + ) +if (ret) + message (FATAL_ERROR "An error occurs while copying a file\n" + "See also\n${CMAKE_CURRENT_BINARY_DIR}/copy-*.log\n") +endif () + +# source and header file +unset (SRCS) +foreach (file gaol gaol.h gaol_allocator.h gaol_assert.h gaol_common.cpp + gaol_common.h gaol_config.h gaol_configuration.h gaol_double_op.h + gaol_double_op_apmathlib.h gaol_eval_stack.h gaol_exact.c + gaol_exact.h gaol_exceptions.cpp gaol_exceptions.h + gaol_expr_eval.h gaol_expr_visitor.h gaol_expression.cpp + gaol_expression.h gaol_flags.h gaol_flt_output.cpp + gaol_flt_output.h gaol_fpu.h gaol_fpu_fenv.h gaol_init_cleanup.cpp + gaol_init_cleanup.h gaol_interval.cpp gaol_interval.h + gaol_interval_fpu.h gaol_interval_sse.h gaol_intervalf.cpp + gaol_intervalf.h gaol_interval_lexer.cpp gaol_interval_parser.cpp + gaol_interval_parser.h gaol_limits.h gaol_parameters.h + gaol_parser.cpp gaol_parser.h gaol_port.cpp gaol_port.h + gaol_profile.cpp gaol_profile.h gaol_version.h s_nextafter.c) + list (APPEND SRCS "${CMAKE_CURRENT_SOURCE_DIR}/gaol/${file}") +endforeach () +list (APPEND SRCS "${CMAKE_CURRENT_BINARY_DIR}/gaol/gaol_configuration.h") +if (USING_SSE3_INSTRUCTIONS) + list (APPEND SRCS "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval2f.cpp") + list (APPEND SRCS "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval2f.h") +endif () + +# Gaol library +add_library (gaol ${SRCS}) +set_target_properties (gaol PROPERTIES VERSION 0.0.0 SOVERSION 0) + +if (USING_SSE3_INSTRUCTIONS) + target_compile_options (gaol PUBLIC "-msse3") +elseif (USING_SSE2_INSTRUCTIONS) + target_compile_options (gaol PUBLIC "-msse2") +endif () +if (HAVE_ROUNDING_MATH_OPTION) + target_compile_options (gaol PUBLIC "-frounding-math") +endif () + +# Need source and binary dir (for gaol/gaol_configuration.) in include dirs +set (incdirs "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" + "${CMAKE_CURRENT_BINARY_DIR}/gaol") +target_include_directories (gaol PUBLIC "$") +target_include_directories (gaol PUBLIC "$/${CMAKE_INSTALL_INCLUDEDIR}>") + +# install headers +install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_allocator.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_assert.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_common.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_config.h" + "${CMAKE_CURRENT_BINARY_DIR}/gaol/gaol_configuration.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_double_op_apmathlib.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_double_op_crlibm.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_double_op.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_eval_stack.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_exact.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_exceptions.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_expression.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_expr_eval.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_expr_visitor.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_flags.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_flt_output.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_fpu_fenv.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_fpu.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_init_cleanup.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval2f.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_intervalf.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval_fpu.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval_parser.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval_sse.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_limits.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_parameters.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_parser.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_port.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_profile.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_version.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gaol COMPONENT devtools) +install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/gaol/sysdeps/gaol_exact_c99.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gaol/sysdeps/gaol_exact_msvc.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gaol/sysdeps COMPONENT devtools) +if (USING_SSE3_INSTRUCTIONS) + install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/gaol/gaol_interval2f.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gaol COMPONENT devtools) +endif () + +# install library (and add it to ibexExport) +install(TARGETS gaol EXPORT ibexExport DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT devtools) diff --git a/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/gaol/gaol_configuration.h.in b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/gaol/gaol_configuration.h.in new file mode 100644 index 000000000..7c39da62b --- /dev/null +++ b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/gaol/gaol_configuration.h.in @@ -0,0 +1,265 @@ +/* gaol/gaol_configuration.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#cmakedefine AC_APPLE_UNIVERSAL_BUILD 1 + +/* Define this to 1 if function clock() is declared in time.h */ +#cmakedefine CLOCK_IN_HEADER 1 + +/* Define this if relation symbols should stand for \"certainly relations\" */ +#cmakedefine GAOL_CERTAINLY_RELATIONS 1 + +/* define this if you want debugging facilities */ +#cmakedefine GAOL_DEBUGGING 1 + +/* Define this to 1 to allow raising exceptions instead of simply aborting */ +#cmakedefine GAOL_EXCEPTIONS_ENABLED 1 + +/* Major version for gaol */ +#define GAOL_MAJOR_VERSION @GAOL_MAJOR_VERSION@ + +/* Micro version for gaol */ +#define GAOL_MICRO_VERSION @GAOL_MICRO_VERSION@ + +/* Minor version for gaol */ +#define GAOL_MINOR_VERSION @GAOL_MINOR_VERSION@ + +/* Define this if relation symbols should stand for \"possibly relations\" */ +#cmakedefine GAOL_POSSIBLY_RELATIONS 1 + +/* define this to 1 if rounding direction should be preserved */ +#cmakedefine GAOL_PRESERVE_ROUNDING 1 + +/* Define this if relation symbols should stand for \"set relations\" */ +#cmakedefine GAOL_SET_RELATIONS 1 + +/* Define this to 1 if using the IBM APMathlib library */ +#define GAOL_USING_APMATHLIB 1 + +/* define this to 1 if you want to allow ASM support */ +#cmakedefine GAOL_USING_ASM 1 + +/* Define this to 1 if using the CRLibm Mathematical library */ +/* #undef GAOL_USING_CRLIBM */ + +/* Define this to 1 to enable verbose mode */ +#cmakedefine GAOL_VERBOSE_MODE 1 + +/* Version number for gaol */ +#define GAOL_VERSION "@GAOL_VERSION@" + +/* Define this to 1 if function getrusage() is declared in sys/resource.h */ +#cmakedefine GETRUSAGE_IN_HEADER 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CASSERT 1 + +/* Define to 1 if you have the `clock' function. */ +#cmakedefine HAVE_CLOCK 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CRLIBM_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FENV_H 1 + +/* Define to 1 if you have the `fesetround' function. */ +#cmakedefine HAVE_FESETROUND 1 + +/* Define to 1 if you have the `finite' function. */ +#cmakedefine HAVE_FINITE 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `floor' function. */ +#cmakedefine HAVE_FLOOR 1 + +/* Define to 1 if you have the `getrusage' function. */ +#cmakedefine HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LIMITS 1 + +/* Define to 1 if you have the `localeconv' function. */ +#cmakedefine HAVE_LOCALECONV 1 + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +#cmakedefine HAVE_MALLOC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MATHLIB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#cmakedefine HAVE_MEMSET 1 + +/* Define to 1 if you have the `nextafter' function. */ +#cmakedefine HAVE_NEXTAFTER 1 + +/* Define to 1 if you have the `pow' function. */ +#cmakedefine HAVE_POW 1 + +/* Define to 1 if your system has a GNU libc compatible `realloc' function, + and to 0 otherwise. */ +#cmakedefine HAVE_REALLOC 1 + +/* Define to 1 if you have the `rint' function. */ +#cmakedefine HAVE_RINT + +/* Define to 1 if you have the `round' function. */ +#cmakedefine HAVE_ROUND 1 + +/* Define this to 1 if the compiler supports the "-frounding-math" option */ +#cmakedefine HAVE_ROUNDING_MATH_OPTION 1 + +/* Define to 1 if you have the `sqrt' function. */ +#cmakedefine HAVE_SQRT 1 + +/* Define to 1 if stdbool.h conforms to C99. */ +#cmakedefine HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDDEF_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H 1 + +/* Define this to 1 if the compiler supports the "-fvisibility" option */ +#cmakedefine HAVE_VISIBILITY_OPTIONS 1 + +/* Define to 1 if the system has the type `_Bool'. */ +#cmakedefine HAVE__BOOL 1 + +/* Define to 1 if you have the `__signbit' function. */ +#cmakedefine HAVE___SIGNBIT 1 + +/* Define this if your system is a cygwin-based ix86 or compatible */ +#cmakedefine IX86_CYGWIN 1 + +/* Define this if your system is a Linux-based ix86 or compatible */ +#cmakedefine IX86_LINUX 1 + +/* Define this if your system is a Linux-based ix86 or compatible */ +#cmakedefine IX86_MACOSX 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "@PACKAGE@" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "@PACKAGE_NAME@" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "@PACKAGE_STRING@" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "@PACKAGE_TARNAME@" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "@PACKAGE_URL@" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "@PACKAGE_VERSION@" + +/* Define this if your system is a PowerPc under MacOs X */ +#cmakedefine POWERPC_UNIX 1 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT @SIZEOF_INT@ + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG @SIZEOF_LONG@ + +/* The size of `long long int', as computed by sizeof. */ +#define SIZEOF_LONG_LONG_INT @SIZEOF_LONG_LONG_INT@ + +/* Define this if your system is a SUN Sparc computer under Solaris */ +#cmakedefine SPARC_SOLARIS 1 + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS 1 + +/* Define this to 1 if SSE2 instructions are to be used */ +#cmakedefine USING_SSE2_INSTRUCTIONS 1 + +/* Define this to 1 if SSE3 instructions are to be used */ +#cmakedefine USING_SSE3_INSTRUCTIONS 1 + +/* Version number of package */ +#define VERSION "@VERSION@" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +#cmakedefine WORDS_BIGENDIAN 1 +# endif +#endif + +/* Define this if the OS is a 64 bits one */ +#cmakedefine X86_64BITS 1 + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to rpl_malloc if the replacement function should be used. */ +/* #undef malloc */ + +/* Define to rpl_realloc if the replacement function should be used. */ +/* #undef realloc */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ diff --git a/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/test_sse.cpp b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/test_sse.cpp new file mode 100644 index 000000000..b56dcefb2 --- /dev/null +++ b/interval_lib_wrapper/gaol/3rd/gaol-4.2.0/test_sse.cpp @@ -0,0 +1,20 @@ +#include + +int +main (int argc, char *argv[]) +{ + unsigned int a, b, c, d; + bool have_sse2 = false; + bool have_sse3 = false; + __asm__ __volatile__ ("cpuid" : "=a" (a), "=b" (b), "=c" (c), "=d" (d) + : "a" (0)); + if (a >= 1) { + __asm__ __volatile__ ("cpuid" : "=a" (a), "=b" (b), "=c" (c), "=d" (d) + : "a" (1)); + have_sse2 = bool(d & 0x04000000); + have_sse3 = bool(c & 0x00000001); + } + std::cout << "HAVE_SSE2=" << std::boolalpha << have_sse2 << std::endl; + std::cout << "HAVE_SSE3=" << std::boolalpha << have_sse3 << std::endl; + return 0; +} diff --git a/interval_lib_wrapper/gaol/3rd/mathlib-2.1.0/CMakeLists.txt b/interval_lib_wrapper/gaol/3rd/mathlib-2.1.0/CMakeLists.txt new file mode 100644 index 000000000..4590e615b --- /dev/null +++ b/interval_lib_wrapper/gaol/3rd/mathlib-2.1.0/CMakeLists.txt @@ -0,0 +1,103 @@ +cmake_minimum_required (VERSION 3.5.1) + +project (MATHLIB VERSION 2.1.0 LANGUAGES C) + +message (STATUS "Running on system ${CMAKE_HOST_SYSTEM} with processor ${CMAKE_HOST_SYSTEM_PROCESSOR}") +if (CMAKE_CROSSCOMPILING) + message (STATUS "Targeting system ${CMAKE_SYSTEM} with processor ${CMAKE_SYSTEM_PROCESSOR}") +endif () + +# options and command-line arguments +option (BUILD_SHARED_LIBS "Set to ON to build shared libraries" OFF) +set (CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C++ header files (include)") +set (CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "object code libraries (lib)") + +# Values for config.h.in +set (VERSION ${MATHLIB_VERSION}) + +# Looking for headers (for config.h.in) +option (STDC_HEADERS "Set to OFF if you do not have standard headers" ON) +include (CheckIncludeFiles) +foreach (name "dlfcn" "fenv" "inttypes" "memory" "stdint" "stdlib" "strings" "string" "sys/stat" "sys/types" "unistd") + string (TOUPPER "${name}" uppername) + string (REPLACE "/" "_" uppername "${uppername}") + set (header "${name}.h") + set (var "HAVE_${uppername}_H") + check_include_files ("${header}" "${var}") +endforeach () + +# set some macros depending on system +if (CMAKE_SYSTEM MATCHES "Linux") + set (MATHLIB_LINUX ON) + if (CMAKE_SYSTEM_PROCESSOR MATCHES "86_64") + set (X86_64BITS ON) + set (IX86_CPU ON) + elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "i.86") + set (IX86_CPU ON) + else () + set (UNSUPPORTED_ARCH ON) + endif () +elseif (CMAKE_SYSTEM MATCHES "CYGWIN" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i.86") + set (MATHLIB_CYGWIN ON) + set (IX86_CPU ON) +elseif (CMAKE_SYSTEM MATCHES "Darwin") + set (MATHLIB_I86_MACOSX ON) + set (IX86_CPU ON) +elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc|ppc") + # TODO also check for RS/6000 processor. Do not know the value of + # CMAKE_SYSTEM_PROCESSOR for those. + # ?) + set (MATHLIB_AIX ON) +else () + # TODO check for SUN system. How to check it ? + set (UNSUPPORTED_ARCH ON) +endif () + +if (UNSUPPORTED_ARCH) + message (FATAL_ERROR "The target system is not supported by MathLib") +endif () + + +# src/mathlib_configuration.h.in -> src/mathlib_configuration.h +configure_file (src/mathlib_configuration.h.in src/mathlib_configuration.h) + +# move endian.h into utils/ +file (MAKE_DIRECTORY "src/utils") +file (RENAME "src/endian.h" "src/utils/endian.h") + +# source and header file +foreach (file atnat2.c halfulp.c mplog.c slowexp2.c ucot.c upow.c atnat.c mpa.c + mpsqrt.c slowexp.c uexp2.c urem.c branred.c mpatan2.c mptan.c + slowlog2.c uexp.c uroot.c doasin.c mpatan.c sincos32.c slowpow.c + ulog2.c usncs.c dosincos.c mpexp.c slowcot.c uasncs.c ulog.c + utan.c DPChange.c atnat2.h doasin.h mpa.h mpsqrt.h uasncs.h ulog.h + usncs.h atnat.h dosincos.h mpatan.h mydefs.h ucot.h upow.h utan.h + branred.h mpexp.h sincos32.h uexp.h urem.h dla.h mpa2.h mplog.h + trigo.h ulog2.h uroot.h LINUX_DPChange.h SUN_DPChange.h + AIX_DPChange.h IX86MACOSX_DPChange.h AIX_endian.h IX86_endian.h + SUN_endian.h DPChange.h BCB_endian.h) + list (APPEND SRCS "${CMAKE_CURRENT_SOURCE_DIR}/src/${file}") +endforeach () +list (APPEND SRCS "${CMAKE_CURRENT_BINARY_DIR}/src/mathlib_configuration.h") +list (APPEND SRCS "${CMAKE_CURRENT_SOURCE_DIR}/src/utils/endian.h") + +# Mathlib library is called ultim +add_library (ultim ${SRCS}) +set_target_properties (ultim PROPERTIES VERSION 0.0.0 SOVERSION 0) + +# Need source and binary dir (for src/mathlib_configuration.h) in include dirs +set (incdirs "${CMAKE_CURRENT_SOURCE_DIR}/src" "${CMAKE_CURRENT_BINARY_DIR}/src") +target_include_directories (ultim PUBLIC "$") +target_include_directories (ultim PRIVATE "$") +target_include_directories (ultim PUBLIC "$/${CMAKE_INSTALL_INCLUDEDIR}>") + +# install headers +install (FILES "${CMAKE_CURRENT_BINARY_DIR}/src/mathlib_configuration.h" + "${CMAKE_CURRENT_SOURCE_DIR}/src/MathLib.h" + "${CMAKE_CURRENT_SOURCE_DIR}/src/mathlib_config.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT devtools) + +# install library (and add it to ibexExport) +install(TARGETS ultim EXPORT ibexExport DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT devtools) diff --git a/interval_lib_wrapper/gaol/3rd/mathlib-2.1.0/src/mathlib_configuration.h.in b/interval_lib_wrapper/gaol/3rd/mathlib-2.1.0/src/mathlib_configuration.h.in new file mode 100644 index 000000000..35dadd4f9 --- /dev/null +++ b/interval_lib_wrapper/gaol/3rd/mathlib-2.1.0/src/mathlib_configuration.h.in @@ -0,0 +1,86 @@ +/* src/mathlib_configuration.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FENV_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H 1 + +/* Define this if your system is ix86-based */ +#cmakedefine IX86_CPU 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Define this if your system is AIX based */ +#cmakedefine MATHLIB_AIX 1 + +/* Define this if your system is a cygwin based ix86 or compatible */ +#cmakedefine MATHLIB_CYGWIN 1 + +/* Define this if your system is a ix86 running MacOSX */ +#cmakedefine MATHLIB_I86_MACOSX 1 + +/* Define this if your system is a linux based ix86 or compatible */ +#cmakedefine MATHLIB_LINUX 1 + +/* Define this if your system is SUN based */ +#cmakedefine MATHLIB_SUN 1 + +/* Name of package */ +#define PACKAGE "mathlib" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "mathlib" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "mathlib ${VERSION}" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "mathlib" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "${VERSION}" + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "${VERSION}" + +/* Define this if the OS is a 64 bits one */ +#cmakedefine X86_64BITS 1 diff --git a/interval_lib_wrapper/gaol/CMakeLists.txt b/interval_lib_wrapper/gaol/CMakeLists.txt index 065a17ec6..23fa8ac4e 100644 --- a/interval_lib_wrapper/gaol/CMakeLists.txt +++ b/interval_lib_wrapper/gaol/CMakeLists.txt @@ -1,188 +1,117 @@ -################################################################################ -# Options -################################################################################ -set (MATHLIB_DIR "" CACHE PATH "Path to the Mathlib/ultim lib and include directories") -set (GAOL_DIR "" CACHE PATH "Path to the Gaol lib and include directories") - -################################################################################ -# May be needed to install missing dependencies -################################################################################ -include (ExternalProject) -include (IbexUtils) - -################################################################################ -# Looking for Mathlib/libultim, install it if not found -################################################################################ -# Looking for MathLib.h, result is written in MATHLIB_INCDIR -find_header_custom (MATHLIB "MathLib.h" PATHS "${MATHLIB_DIR}" "${GAOL_DIR}") -# Looking for ultim library, result is written in MATHLIB_LIB -find_library_custom (MATHLIB "ultim" PATHS "${MATHLIB_DIR}" "${GAOL_DIR}") - -if (MATHLIB_INCDIR AND MATHLIB_LIB) - get_filename_component (MATHLIB_LIBDIR "${MATHLIB_LIB}" DIRECTORY) - create_target_import_and_export (ultim ${MATHLIB_LIB} MATHLIB_EXPORTFILE - NAMESPACE Ibex:: - INCLUDE_DIRECTORIES ${MATHLIB_INCDIR}) -else() - message (STATUS "Will install and use mathlib from 3rd/ subdirectory") - if(MINGW) - ExternalProject_Add (libultim_3rd - PREFIX mathlib-2.1.0 - URL ${CMAKE_CURRENT_SOURCE_DIR}/3rd/mathlib-2.1.0.tar.gz - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND sh -c "./configure --prefix= - CFLAGS=${CMAKE_C_FLAGS}" - LOG_DOWNLOAD 1 - LOG_CONFIGURE 1 - LOG_BUILD 1 - LOG_INSTALL 1 - ) - else() - ExternalProject_Add (libultim_3rd - PREFIX mathlib-2.1.0 - URL ${CMAKE_CURRENT_SOURCE_DIR}/3rd/mathlib-2.1.0.tar.gz - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND ./configure --prefix= - CFLAGS=${CMAKE_C_FLAGS} - LOG_DOWNLOAD 1 - LOG_CONFIGURE 1 - LOG_BUILD 1 - LOG_INSTALL 1 - ) - endif() - ExternalProject_Get_Property (libultim_3rd INSTALL_DIR) - set (MATHLIB_LIBDIR "${INSTALL_DIR}/lib") - set (MATHLIB_INCDIR "${INSTALL_DIR}/include") - - # absolute path to the library - lib_get_abspath_from_name (MATHLIB_LIB ${MATHLIB_LIBDIR} ultim) - - # this directory needs to exist during generation step to avoid CMake errors - file (MAKE_DIRECTORY "${MATHLIB_INCDIR}") - - # install headers - install (DIRECTORY ${MATHLIB_INCDIR}/ COMPONENT devtools - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR_3RD}) - - # - set (_incdir $$/${CMAKE_INSTALL_INCLUDEDIR_3RD}>) - create_target_import_and_export (ultim ${MATHLIB_LIB} MATHLIB_EXPORTFILE - INSTALL NAMESPACE Ibex:: - INCLUDE_DIRECTORIES ${_incdir} - COMPONENT devtools - DEPENDS libultim_3rd) - unset (INSTALL_DIR) -endif() - -################################################################################ -# Looking for Gaol, install it if not found -################################################################################ -# Looking for gaol/gaol.h, result is written in GAOL_INCDIR -find_header_custom (GAOL "gaol/gaol.h" PATHS "${GAOL_DIR}") -# Looking for gdtoa library, result is written in GDTOA_LIB -find_library_custom (GDTOA "gdtoa" PATHS "${GAOL_DIR}") -# Looking for gaol library, result is written in GAOL_LIB -find_library_custom (GAOL "gaol" PATHS "${GAOL_DIR}") - -# With Gaol, we add "-Wno-deprecated" to remove lots of warnings generated by -# a function definition in gaol_interval.h -CHECK_CXX_COMPILER_FLAG ("-Wno-deprecated" COMPILER_SUPPORTS_WNO_DEPRECATED) -if (COMPILER_SUPPORTS_WNO_DEPRECATED) - set (gaol_compile_option COMPILE_OPTIONS -Wno-deprecated) -endif() - -if (GAOL_INCDIR AND GAOL_LIB AND GDTOA_LIB) - create_target_import_and_export (gdtoa ${GDTOA_LIB} GDTOA_EXPORTFILE - NAMESPACE Ibex:: - ${gaol_compile_option} - INCLUDE_DIRECTORIES ${GAOL_INCDIR}) - create_target_import_and_export (gaol ${GAOL_LIB} GAOL_EXPORTFILE - NAMESPACE Ibex:: - ${gaol_compile_option} - INCLUDE_DIRECTORIES ${GAOL_INCDIR} - LINK_LIBRARIES Ibex::gdtoa Ibex::ultim) -else () - message (STATUS "Will install and use library gaol from 3rd/ subdirectory") - if (TARGET libultim_3rd) - set (_gaol_depends "DEPENDS" "libultim_3rd") +set (GAOL_NAME "Gaol") +set (GAOL_NAME ${GAOL_NAME} PARENT_SCOPE) + +# Look for Mathlib +include (FindMathlib.cmake) + +if (MATHLIB_FOUND) + set (MATHLIB_TARGET "Mathlib::Mathlib") + # install FindMathlib.cmake file + install (FILES FindMathlib.cmake + DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE}/cmake.utils + COMPONENT devtools) + # Write CMake file containing path hint and install it + generate_path_hints_file (Mathlib INSTALL) + + # Look for Gaol + include (FindGaol.cmake) + if (GAOL_FOUND) + set (GAOL_TARGET "Gaol::Gaol;${MATHLIB_TARGET}" PARENT_SCOPE) + # Install FindGaol.cmake file + install (FILES FindGaol.cmake + DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE}/cmake.utils + COMPONENT devtools) + # Write CMake file containing path hint and install it + generate_path_hints_file (Gaol INSTALL) endif () - set (GAOL_CONFIG_ARGS "--disable-preserve-rounding" "--enable-optimize" "--disable-verbose-mode") +else () + message (STATUS "Will install and use library Mathlib from 3rd/ subdirectory") + + ### + set (MATHLIB_NAME "Mathlib") + set (MATHLIB_VERSION "2.1.0") + set (mathlib_basename "mathlib-${MATHLIB_VERSION}") + set (mathlib_archive_name "${mathlib_basename}.tar.gz") + set (mathlib_archive "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${mathlib_archive_name}") + set (wdir "${CMAKE_CURRENT_BINARY_DIR}/${mathlib_basename}") + set (logdir "${CMAKE_CURRENT_BINARY_DIR}/log") + + file (MAKE_DIRECTORY "${logdir}") + + ### Extract + execute_process_check (COMMAND ${CMAKE_COMMAND} -E tar xzf ${mathlib_archive} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + MSG "extracting ${mathlib_archive_name}" + LOGBASENAME "${logdir}/extract" + STATUS_PREFIX "${MATHLIB_NAME}: ") + + ### Apply patch if (WIN32) - # On windows, we disable SSE instructions (it can generate failures during - # execution). You can enable SSE instructions by deleting the next line, - # do it at your own risk. - set (GAOL_CONFIG_ARGS "${GAOL_CONFIG_ARGS}" "--disable-simd") + patch ("${MATHLIB_NAME}: " "${CMAKE_CURRENT_SOURCE_DIR}/3rd" "${wdir}" + "${logdir}" "${mathlib_basename}.win32.all.patch") endif () - set (GAOL_PATCH "${CMAKE_CURRENT_SOURCE_DIR}/3rd/gaol-4.2.0.all.all.patch") - if(MINGW) - ExternalProject_Add (libgaol_3rd - PREFIX gaol-4.2.0 - ${_gaol_depends} - URL ${CMAKE_CURRENT_SOURCE_DIR}/3rd/gaol-4.2.0.tar.gz - PATCH_COMMAND patch -p1 -i ${GAOL_PATCH} - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND sh -c "./configure --prefix= - CFLAGS=${CMAKE_C_FLAGS} - CXXFLAGS=${CMAKE_CXX_FLAGS} - --with-mathlib-include=${MATHLIB_INCDIR} - --with-mathlib-lib=${MATHLIB_LIBDIR} - ${GAOL_CONFIG_ARGS}" - LOG_DOWNLOAD 1 - LOG_CONFIGURE 1 - LOG_BUILD 1 - LOG_INSTALL 1 - ) - else() - ExternalProject_Add (libgaol_3rd - PREFIX gaol-4.2.0 - ${_gaol_depends} - URL ${CMAKE_CURRENT_SOURCE_DIR}/3rd/gaol-4.2.0.tar.gz - PATCH_COMMAND patch -p1 -i ${GAOL_PATCH} - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND ./configure --prefix= - CFLAGS=${CMAKE_C_FLAGS} - CXXFLAGS=${CMAKE_CXX_FLAGS} - --with-mathlib-include=${MATHLIB_INCDIR} - --with-mathlib-lib=${MATHLIB_LIBDIR} - ${GAOL_CONFIG_ARGS} - LOG_DOWNLOAD 1 - LOG_CONFIGURE 1 - LOG_BUILD 1 - LOG_INSTALL 1 - ) - endif() - ExternalProject_Get_Property (libgaol_3rd INSTALL_DIR) - - set (_incdir ${INSTALL_DIR}/include) - - # absolute path to the library - lib_get_abspath_from_name (GAOL_LIB ${INSTALL_DIR}/lib gaol) - lib_get_abspath_from_name (GDTOA_LIB ${INSTALL_DIR}/lib gdtoa) - - # this directory needs to exist during generation step to avoid CMake errors - file (MAKE_DIRECTORY "${_incdir}") - - # install headers - install (DIRECTORY ${_incdir}/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR_3RD} - COMPONENT devtools) - - # - set (_incdir $$/${CMAKE_INSTALL_INCLUDEDIR_3RD}>) - create_target_import_and_export (gdtoa ${GDTOA_LIB} GDTOA_EXPORTFILE INSTALL - NAMESPACE Ibex:: - ${gaol_compile_option} - INCLUDE_DIRECTORIES ${_incdir} - COMPONENT devtools - DEPENDS libgaol_3rd) - create_target_import_and_export (gaol ${GAOL_LIB} GAOL_EXPORTFILE INSTALL - NAMESPACE Ibex:: - ${gaol_compile_option} - COMPONENT devtools - INCLUDE_DIRECTORIES ${_incdir} - LINK_LIBRARIES Ibex::gdtoa Ibex::ultim - DEPENDS libgaol_3rd) - unset (INSTALL_DIR) + + ### Copy files + copy ("${MATHLIB_NAME}: " + "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${mathlib_basename}" "${wdir}" + "${logdir}" "CMakeLists.txt" "src/mathlib_configuration.h.in") + + ### Configure + message (STATUS "${MATHLIB_NAME}: configure") + # Original values will be restored at the end of this file + set (CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR_3RD}) + set (CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR_3RD}) + add_subdirectory (${wdir} ${wdir}-build) + message (STATUS "${MATHLIB_NAME}: configure - done") + + ### + set (MATHLIB_TARGET "ultim") endif () -list (APPEND EXPORTFILES "${MATHLIB_EXPORTFILE}" "${GDTOA_EXPORTFILE}" "${GAOL_EXPORTFILE}") -set (EXPORTFILES "${EXPORTFILES}" PARENT_SCOPE) +if (NOT GAOL_FOUND) + ########################################################################### + message (STATUS "Will install and use library gaol from 3rd/ subdirectory") + set (GAOL_VERSION "4.2.0") + set (gaol_basename "gaol-${GAOL_VERSION}") + set (gaol_archive_name "${gaol_basename}.tar.gz") + set (gaol_archive "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${gaol_archive_name}") + set (wdir "${CMAKE_CURRENT_BINARY_DIR}/${gaol_basename}") + set (logdir "${CMAKE_CURRENT_BINARY_DIR}/log") + + file (MAKE_DIRECTORY "${logdir}") + + ### Extract + execute_process_check (COMMAND ${CMAKE_COMMAND} -E tar xzf ${gaol_archive} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + MSG "extracting ${gaol_archive_name}" + LOGBASENAME "${logdir}/extract" + STATUS_PREFIX "${GAOL_NAME}: ") + + ### Apply patch + set (GAOL_PATCHES "${gaol_basename}.all.all.patch") + if (WIN32) + list (APPEND GAOL_PATCHES "${gaol_basename}.win32.all.patch") + endif () + if (APPLE) + list (APPEND GAOL_PATCHES "${gaol_basename}.darwin.all.isfinite.patch") + endif () + patch ("${GAOL_NAME}: " "${CMAKE_CURRENT_SOURCE_DIR}/3rd" "${wdir}" + "${logdir}" ${GAOL_PATCHES}) + + ### Copy files + copy ("${GAOL_NAME}: " "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${gaol_basename}" + "${wdir}" "${logdir}" "CMakeLists.txt" "gaol/gaol_configuration.h.in" + "test_sse.cpp") + + ### Configure + message (STATUS "${GAOL_NAME}: configure") + # Original values will be restored at the end of this file + set (CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR_3RD}) + set (CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR_3RD}) + add_subdirectory (${wdir} ${wdir}-build) + message (STATUS "${GAOL_NAME}: configure - done") + + ### + set (GAOL_TARGET "gaol;gdtoa;${MATHLIB_TARGET}" PARENT_SCOPE) +endif () +set (GAOL_VERSION ${GAOL_VERSION} PARENT_SCOPE) diff --git a/interval_lib_wrapper/gaol/FindGaol.cmake b/interval_lib_wrapper/gaol/FindGaol.cmake new file mode 100644 index 000000000..2233a09c7 --- /dev/null +++ b/interval_lib_wrapper/gaol/FindGaol.cmake @@ -0,0 +1,71 @@ +# FindGaol +# ----------- +# +# The module defines the following variables: +# +# GAOL_FOUND +# GAOL_INCLUDE_DIRS +# GAOL_LIBRARIES +# GAOL_VERSION +# +# and the following imported target (if it does not already exist): +# +# Gaol::Gaol - The Gaol library +# +# +# Requires CMake >= 3.0 + +include(CheckCXXCompilerFlag) + +set (GAOL_DIR "${GAOL_DIR}" CACHE PATH "Directory to search for Gaol") + +# Look for the library +find_library (GAOL_LIBRARY NAMES gaol HINTS "${GAOL_DIR}" PATH_SUFFIXES lib) + +# Look for gdtoa +find_library (GDTOA_LIBRARY NAMES gdtoa HINTS "${GAOL_DIR}" PATH_SUFFIXES lib) + +# Might want to look close to the library first for the includes. +get_filename_component (_libdir "${GAOL_LIBRARY}" PATH) +get_filename_component (_libdir2 "${GDTOA_LIBRARY}" PATH) + +# Look for the include directory +find_path (GAOL_INC_DIR NAMES gaol/gaol.h + HINTS "${_libdir}/.." "${_libdir2}/.." "${GAOL_DIR}" + PATH_SUFFIXES include) + +if (GAOL_INC_DIR) + file (READ "${GAOL_INC_DIR}/gaol/gaol_configuration.h" _content) + string (REGEX MATCH "gaol \"[0-9]+[.][0-9]+[.][0-9]+" _match "${_content}") + string (SUBSTRING "${_match}" 6 -1 GAOL_VERSION) +endif () + +include (FindPackageHandleStandardArgs) +if (GAOL_VERSION VERSION_LESS 4.2.3) + find_package_handle_standard_args (Gaol DEFAULT_MSG GAOL_LIBRARY GDTOA_LIBRARY + GAOL_INC_DIR) +else () + find_package_handle_standard_args (Gaol DEFAULT_MSG GAOL_LIBRARY GAOL_INC_DIR) +endif () + +if (GAOL_FOUND) + if (GDTOA_LIBRARY) # is gdtoa lib required ? + set (GAOL_LIBRARIES ${GAOL_LIBRARY} ${GDTOA_LIBRARY}) + else () + set (GAOL_LIBRARIES ${GAOL_LIBRARY}) + endif () + set (GAOL_INCLUDE_DIRS "${GAOL_INC_DIR}") + mark_as_advanced (GAOL_DIR) + if (NOT TARGET Gaol::Gaol) + # For now we make the target global, because this file is included from a + # CMakeLists.txt file in a subdirectory. With CMake >= 3.11, we could make + # it global afterwards with + # set_target_properties(Gaol::Gaol PROPERTIES IMPORTED_GLOBAL TRUE) + add_library (Gaol::Gaol INTERFACE IMPORTED GLOBAL) + set_target_properties (Gaol::Gaol PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${GAOL_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${GAOL_LIBRARIES}") + endif() +endif() + +mark_as_advanced(GAOL_INC_DIR GAOL_LIBRARY) diff --git a/interval_lib_wrapper/gaol/FindMathlib.cmake b/interval_lib_wrapper/gaol/FindMathlib.cmake new file mode 100644 index 000000000..2b35ae8e1 --- /dev/null +++ b/interval_lib_wrapper/gaol/FindMathlib.cmake @@ -0,0 +1,60 @@ +# FindMathlib +# ----------- +# +# The module defines the following variables: +# +# MATHLIB_FOUND +# MATHLIB_INCLUDE_DIRS +# MATHLIB_LIBRARIES +# MATHLIB_VERSION +# +# and the following imported target (if it does not already exist): +# +# Mathlib::Mathlib - The Mathlib library +# +# +# Requires CMake >= 3.0 + +include(CheckCXXCompilerFlag) + +set (MATHLIB_DIR "${MATHLIB_DIR}" CACHE PATH "Directory to search for Mathlib") + +# Look for the library +find_library (MATHLIB_LIBRARY NAMES ultim HINTS "${MATHLIB_DIR}" + PATH_SUFFIXES lib) + +# Might want to look close to the library first for the includes. +get_filename_component (_libdir "${MATHLIB_LIBRARY}" PATH) + +# Look for the include directory +find_path (MATHLIB_INC_DIR NAMES MathLib.h + HINTS "${_libdir}/.." "${MATHLIB_DIR}" + PATH_SUFFIXES include) + +if (MATHLIB_INC_DIR) + file (READ "${MATHLIB_INC_DIR}/mathlib_configuration.h" _content) + string (REGEX MATCH "mathlib [0-9]+[.][0-9]+[.][0-9]+" _match "${_content}") + string (SUBSTRING "${_match}" 8 -1 MATHLIB_VERSION) +endif () + +include (FindPackageHandleStandardArgs) +find_package_handle_standard_args (Mathlib DEFAULT_MSG MATHLIB_LIBRARY + MATHLIB_INC_DIR) + +if (MATHLIB_FOUND) + set (MATHLIB_LIBRARIES ${MATHLIB_LIBRARY}) + set (MATHLIB_INCLUDE_DIRS "${MATHLIB_INC_DIR}") + mark_as_advanced (MATHLIB_DIR) + if (NOT TARGET Mathlib::Mathlib) + # For now we make the target global, because this file is included from a + # CMakeLists.txt file in a subdirectory. With CMake >= 3.11, we could make + # it global afterwards with + # set_target_properties(Mathlib::Mathlib PROPERTIES IMPORTED_GLOBAL TRUE) + add_library (Mathlib::Mathlib INTERFACE IMPORTED GLOBAL) + set_target_properties (Mathlib::Mathlib PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${MATHLIB_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${MATHLIB_LIBRARIES}") + endif() +endif() + +mark_as_advanced(MATHLIB_INC_DIR MATHLIB_LIBRARY) diff --git a/interval_lib_wrapper/gaol/ibex_IntervalLibWrapper.inl b/interval_lib_wrapper/gaol/ibex_IntervalLibWrapper.inl index e62f7fa00..4c6fb8def 100644 --- a/interval_lib_wrapper/gaol/ibex_IntervalLibWrapper.inl +++ b/interval_lib_wrapper/gaol/ibex_IntervalLibWrapper.inl @@ -392,6 +392,7 @@ inline Interval asinh(const Interval& x) { gaol::interval y2=gaol::asinh(gaol::interval(0,-x.lb())); res=Interval(-y2.right(),y1.right()); } + fpu_round_up(); return res; } @@ -479,28 +480,39 @@ inline bool bwd_sin(const Interval& y, Interval& x) { std::cout << "bug x=" << x.itv << " y=" << y.itv << " tmp=" << tmp << std::endl; }*/ x &= gaol::asin_rel(y.itv,x.itv); - + fpu_round_up(); return !x.is_empty(); } inline bool bwd_tan(const Interval& y, Interval& x) { x = gaol::atan_rel(y.itv,x.itv); + fpu_round_up(); return !x.is_empty(); } inline bool bwd_cosh(const Interval& y, Interval& x) { - x = gaol::acosh_rel(y.itv,x.itv); + //x = gaol::acosh_rel(y.itv,x.itv); + Interval proj=acosh(y); + Interval pos_proj= proj & x; + Interval neg_proj = (-proj) & x; + + x = pos_proj | neg_proj; + + fpu_round_up(); return !x.is_empty(); } inline bool bwd_sinh(const Interval& y, Interval& x) { //x = gaol::asinh_rel(y.itv,x.itv); x &= asinh(y); + fpu_round_up(); return !x.is_empty(); } inline bool bwd_tanh(const Interval& y, Interval& x) { - x = gaol::atanh_rel(y.itv,x.itv); + //x = gaol::atanh_rel(y.itv,x.itv); + x &= atanh(y); + fpu_round_up(); return !x.is_empty(); } diff --git a/lp_lib_wrapper/CMakeLists.txt b/lp_lib_wrapper/CMakeLists.txt index f4551af49..b541549e3 100644 --- a/lp_lib_wrapper/CMakeLists.txt +++ b/lp_lib_wrapper/CMakeLists.txt @@ -1,3 +1,5 @@ +include (ibex-install-3rd) + subdir_list (LP_LIB_LIST RELATIVE) set(LP_LIB "none" CACHE STRING "Library used for linear programming") @@ -10,12 +12,24 @@ else () message (STATUS "Library for linear programming: ${LP_LIB}") endif () +# LP_LIB in upper case +string (TOUPPER "${LP_LIB}" LP_LIB_UPPER) + # Absolute path of wrapper directory set (LP_LIB_ABSPATH ${CMAKE_CURRENT_SOURCE_DIR}/${LP_LIB}) # Go into wrapper directory add_subdirectory (${LP_LIB}) +# The proper name of the linear programming lib +set (LP_LIB_NAME ${${LP_LIB_UPPER}_NAME} PARENT_SCOPE) + +# The name of the target that ibex should depend on +set (LP_LIB_TARGET ${${LP_LIB_UPPER}_TARGET} PARENT_SCOPE) + +# The version (if available) of the linear programming lib +set (LP_LIB_VERSION ${${LP_LIB_UPPER}_VERSION} PARENT_SCOPE) + # Check that mandatory file exists and add it in IBEX_SRC set (LP_LIB_REQUIRED_FILES ibex_LPLibWrapper.cpp ibex_LPLibWrapper.h) @@ -28,13 +42,9 @@ foreach (f ${LP_LIB_REQUIRED_FILES}) endif () endforeach () -# The name of the target that ibex should depend on -set (LP_LIB_TARGET Ibex::${LP_LIB} PARENT_SCOPE) - # Add directory of wrapper in list of included directory list (APPEND IBEX_INCDIRS ${LP_LIB_ABSPATH}) # Propagate new values of list to parent scope set (IBEX_INCDIRS ${IBEX_INCDIRS} PARENT_SCOPE) set (IBEX_SRC ${IBEX_SRC} PARENT_SCOPE) -set (EXPORTFILES "${EXPORTFILES}" PARENT_SCOPE) diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6.tgz b/lp_lib_wrapper/clp/3rd/Clp-1.17.6.tgz new file mode 100644 index 000000000..13f81d2db Binary files /dev/null and b/lp_lib_wrapper/clp/3rd/Clp-1.17.6.tgz differ diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CMakeLists.txt b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CMakeLists.txt new file mode 100644 index 000000000..e4b0b367d --- /dev/null +++ b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CMakeLists.txt @@ -0,0 +1,89 @@ +cmake_minimum_required (VERSION 3.5.1) + +set (CLP_MAJOR_VERSION 1) +set (CLP_MINOR_VERSION 17) +set (CLP_MICRO_VERSION 6) +set (CLP_VERSION "${CLP_MAJOR_VERSION}.${CLP_MINOR_VERSION}.${CLP_MICRO_VERSION}") +project (CLP VERSION ${CLP_VERSION} LANGUAGES C CXX) + +set (PACKAGE_NAME Clp) +set (PACKAGE clp) +set (PACKAGE_BUGREPORT "clp@list.coin-or.org") +set (PACKAGE_STRING "${PACKAGE_NAME} ${CLP_VERSION}") +set (PACKAGE_TARNAME ${PACKAGE}) +set (PACKAGE_VERSION ${CLP_VERSION}) +set (VERSION ${CLP_VERSION}) + +message (STATUS "Running on system ${CMAKE_HOST_SYSTEM} with processor ${CMAKE_HOST_SYSTEM_PROCESSOR}") +if (CMAKE_CROSSCOMPILING) + message (STATUS "Targeting system ${CMAKE_SYSTEM} with processor ${CMAKE_SYSTEM_PROCESSOR}") +endif () + +# options and command-line arguments +option (BUILD_SHARED_LIBS "Set to ON to build shared libraries" OFF) +set (CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C++ header files (include)") +set (CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "object code libraries (lib)") + +# Looking for headers +option (STDC_HEADERS "Set to OFF if you do not have standard headers" ON) +include (CheckIncludeFiles) +foreach (name "dlfcn" "endian.h" "float" "ieeefp" "inttypes" "math" "memory" + "stdint" "stdlib" "strings" "string" "sys/stat" + "sys/types" "unistd" "windows.h") + string (TOUPPER "${name}" uppername) + string (REPLACE "/" "_" uppername "${uppername}") + set (header "${name}.h") + set (var "HAVE_${uppername}_H") + check_include_files ("${header}" "${var}") +endforeach () + +include (CheckIncludeFileCXX) +foreach (name "cfloat" "cieeefp" "cinttypes" "cmath" "cstdint") + string (TOUPPER "${name}" uppername) + set (header "${name}") + set (var "HAVE_${uppername}") + check_include_file_cxx ("${header}" "${var}") +endforeach () + +# Size of types +include (CheckTypeSize) +check_type_size ("int64_t" SIZEOF_INT64_T) +check_type_size ("long long" SIZEOF_LONG_LONG) +check_type_size ("long" SIZEOF_LONG) +check_type_size ("uint64_t" SIZEOF_UINT64_T) +check_type_size ("unsigned long long" SIZEOF_ULONG_LONG) +check_type_size ("unsigned long" SIZEOF_ULONG) +check_type_size ("intptr_t" SIZEOF_INTPTR_T) +check_type_size ("int *" SIZEOF_INT_P) +#check_type_size ("int" SIZEOF_INT) + +if (SIZEOF_INT64_T EQUAL "8") + set (COIN_INT64_T "int64_t") +elseif (SIZEOF_LONG EQUAL "8") + set (COIN_INT64_T "long") +elseif (SIZEOF_LONG_LONG EQUAL "8") + set (COIN_INT64_T "long long") +else () + message (FATAL_ERROR "Can't find suitable int64_t") +endif () + +if (SIZEOF_UINT64_T EQUAL "8") + set (COIN_UINT64_T "uint64_t") +elseif (SIZEOF_ULONG EQUAL "8") + set (COIN_INT64_T "unsigned long") +elseif (SIZEOF_ULONG_LONG EQUAL "8") + set (COIN_INT64_T "unsigned long long") +else () + message(FATAL_ERROR "Can't find suitable uint64_t") +endif () + +if (SIZEOF_INTPTR_T) + set (COIN_INTPTR_T "intptr_t") +elseif (SIZEOF_INT_P) + set (COIN_INTPTR_T "int *") +else () + message (FATAL_ERROR "Can't find suitable intptr_t") +endif () + +add_subdirectory (CoinUtils) +add_subdirectory (Clp) diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/CMakeLists.txt b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/CMakeLists.txt new file mode 100644 index 000000000..dc51aa79a --- /dev/null +++ b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/CMakeLists.txt @@ -0,0 +1,109 @@ +#set (PACKAGE coinutils) +#set (PACKAGE_BUGREPORT "http://projects.coin-or.org/CoinUtils") +#set (PACKAGE_STRING "${PACKAGE_NAME} ${CLP_VERSION}") +#set (PACKAGE_TARNAME coinutils) +#set (PACKAGE_VERSION ${CLP_VERSION}) +set (CLP_VERSION_RELEASE ${CLP_MICRO_VERSION}) + +set (CLP_HAS_ABC OFF) +set (COIN_HAS_COINUTILS ON) +set (COIN_HAS_OSI ON) + +set (COIN_CLP_CHECKLEVEL "0" CACHE INTERNAL "Clp check level") +set (COIN_CLP_VERBOSITY "0" CACHE INTERNAL "Clp verbosity level") + +# Configure file +configure_file (src/config_clp.h.in src/config_clp.h @ONLY) +configure_file (src/config.h.in src/config.h @ONLY) + +# We DO NOT follow advice from https://cmake.org/cmake/help/v3.0/command/file.html, +# and we use the command FILE (GLOB ...) to find all headers and sources files +# because we assume that no file will be added in this directory. +# If one wants to use this CMakeLists.txt file to develop Clp, one can expand +# theses variables by hand as done in ibex/src/*/CMakeLists.txt files. +file (GLOB_RECURSE SRCS src/*.cpp) +file (GLOB_RECURSE HEADERS src/*.hpp) + +set (SRCS_SOLVER src/ClpSolver.cpp src/CbcOrClpParam.cpp src/MyEventHandler.cpp + src/MyMessageHandler.cpp src/unitTest.cpp src/Clp_ampl.cpp) +set (HEADERS_SOLVER src/CbcOrClpParam.hpp src/MyEventHandler.hpp + src/MyMessageHandler.hpp src/Clp_ampl.h) +list (REMOVE_ITEM SRCS ${SRCS_SOLVER}) +list (REMOVE_ITEM HEADERS ${HEADERS_SOLVER}) + +# remove file from libClpSolver and other unused files +file (GLOB_RECURSE _rem src/ClpCholeskyTaucs.* src/OsiClp/*) + +list (REMOVE_ITEM SRCS ${_rem}) +list (REMOVE_ITEM HEADERS ${_rem}) + +# remove other files +if (NOT COIN_HAS_AMD AND NOT COIN_HAS_CHOLMOD AND NOT COIN_HAS_GLPK) + file (GLOB_RECURSE _rem src/ClpCholeskyUfl.*) + list (REMOVE_ITEM SRCS ${_rem}) + list (REMOVE_ITEM HEADERS ${_rem}) +endif () +if (NOT COIN_HAS_MUMPS) + file (GLOB_RECURSE _rem src/ClpCholeskyMumps.*) + list (REMOVE_ITEM SRCS ${_rem}) + list (REMOVE_ITEM HEADERS ${_rem}) +endif () +if (NOT COIN_HAS_WSMP) + file (GLOB_RECURSE _rem src/ClpCholeskyWssmp*.*) + list (REMOVE_ITEM SRCS ${_rem}) + list (REMOVE_ITEM HEADERS ${_rem}) +endif () +if (NOT COIN_HAS_ABC) + file (GLOB_RECURSE _rem src/Abc* src/CoinAbc*) + list (REMOVE_ITEM SRCS ${_rem}) + list (REMOVE_ITEM HEADERS ${_rem}) +endif () +if (NOT COIN_HAS_ASL) + file (GLOB_RECURSE _rem src/Clp_ampl.*) + list (REMOVE_ITEM SRCS ${_rem}) + list (REMOVE_ITEM HEADERS ${_rem}) +endif () + +# Clp and ClpSolver libraries +add_library (Clp ${SRCS} ${HEADERS}) +set_target_properties (Clp PROPERTIES VERSION 1.14.6 SOVERSION 1) +add_library (ClpSolver ${SRCS_SOLVER} ${HEADERS_SOLVER}) +set_target_properties (ClpSolver PROPERTIES VERSION 1.14.6 SOVERSION 1) + +target_link_libraries (Clp PUBLIC CoinUtils) +target_link_libraries (ClpSolver PUBLIC Clp) + +# define some macros +if (HAVE_CMATH) + target_compile_definitions (Clp PRIVATE HAVE_CMATH) + target_compile_definitions (ClpSolver PRIVATE HAVE_CMATH) +endif () +if (HAVE_MATH_H) + target_compile_definitions (Clp PRIVATE HAVE_MATH_H) + target_compile_definitions (ClpSolver PRIVATE HAVE_MATH_H) +endif () +target_compile_definitions (Clp PRIVATE COIN_HAS_CLP) +target_compile_definitions (ClpSolver PRIVATE COIN_HAS_CLP) + +# include directories +set (incdirs "${CMAKE_CURRENT_SOURCE_DIR}/src" + "${CMAKE_CURRENT_BINARY_DIR}/src" + "${CMAKE_CURRENT_BINARY_DIR}/../Osi/src/Osi" + "${CMAKE_CURRENT_BINARY_DIR}/../CoinUtils/src") +target_include_directories (Clp PUBLIC "$") +target_include_directories (Clp PUBLIC "$/${CMAKE_INSTALL_INCLUDEDIR}>") + +# install library (and add it to ibexExport) +install (TARGETS Clp ClpSolver + EXPORT ibexExport + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT devtools) + +# install headers +install (FILES ${HEADERS} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT devtools) +install (FILES ${CMAKE_CURRENT_BINARY_DIR}/src/config_clp.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + RENAME ClpConfig.h + COMPONENT devtools) diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/src/config.h.in b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/src/config.h.in new file mode 100644 index 000000000..d9e112b13 --- /dev/null +++ b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/src/config.h.in @@ -0,0 +1,153 @@ +/* src/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1, 2, 3, or 4 if Aboca should be build. */ +#cmakedefine CLP_HAS_ABC @CLP_HAS_ABC@ + +/* SVN revision number of project */ +#cmakedefine CLP_SVN_REV @CLP_SVN_REV@ + +/* Version number of project */ +#define CLP_VERSION "@CLP_VERSION@" + +/* Major Version number of project */ +#define CLP_VERSION_MAJOR @CLP_VERSION_MAJOR@ + +/* Minor Version number of project */ +#define CLP_VERSION_MINOR @CLP_VERSION_MINOR@ + +/* Release Version number of project */ +#define CLP_VERSION_RELEASE @CLP_VERSION_RELEASE@ + +/* Define to the debug sanity check level (0 is no test) */ +#define COIN_CLP_CHECKLEVEL @COIN_CLP_CHECKLEVEL@ + +/* Define to the debug verbosity level (0 is no output) */ +#define COIN_CLP_VERBOSITY @COIN_CLP_VERBOSITY@ + +/* Define to 1 if the AMD package is available */ +#cmakedefine COIN_HAS_AMD + +/* Define to 1 if the ASL package is available */ +#cmakedefine COIN_HAS_ASL 1 + +/* If defined, the BLAS Library is available. */ +#cmakedefine COIN_HAS_BLAS 1 + +/* Define to 1 if the CHOLMOD package is available */ +#cmakedefine COIN_HAS_CHOLMOD 1 + +/* Define to 1 if the CoinUtils package is available */ +#cmakedefine COIN_HAS_COINUTILS 1 + +/* Define to 1 if the Glpk package is available */ +#cmakedefine COIN_HAS_GLPK 1 + +/* Define to 1 if the Mumps package is available */ +#cmakedefine COIN_HAS_MUMPS 1 + +/* Define to 1 if the Netlib package is available */ +#cmakedefine COIN_HAS_NETLIB 1 + +/* Define to 1 if the Osi package is available */ +#cmakedefine COIN_HAS_OSI 1 + +/* Define to 1 if the OsiTests package is available */ +#cmakedefine COIN_HAS_OSITESTS 1 + +/* Define to 1 if readline is available */ +#cmakedefine COIN_HAS_READLINE 1 + +/* Define to 1 if the Sample package is available */ +#cmakedefine COIN_HAS_SAMPLE 1 + +/* Define to 1 if the WSMP package is available */ +#cmakedefine COIN_HAS_WSMP 1 + +/* Define to dummy `main' function (if any) required to link to the Fortran + libraries. */ +#cmakedefine F77_DUMMY_MAIN 1 + +/* Define to a macro mangling the given C identifier (in lower and upper + case), which must not contain underscores, for linking with Fortran. */ +#undef F77_FUNC + +/* As F77_FUNC, but for C identifiers containing underscores. */ +#undef F77_FUNC_ + +/* Define if F77 and FC dummy `main' functions are identical. */ +#cmakedefine FC_DUMMY_MAIN_EQ_F77 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CFLOAT 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CIEEEFP 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CMATH 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FLOAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_IEEEFP_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MATH_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_READLINE_READLINE_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H 1 + +/* Name of package */ +#define PACKAGE "@PACKAGE@" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "@PACKAGE_NAME@" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "@PACKAGE_STRING@" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "@PACKAGE_TARNAME@" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "@PACKAGE_VERSION@" + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "@VERSION@" diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/src/config_clp.h.in b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/src/config_clp.h.in new file mode 100644 index 000000000..436d88e00 --- /dev/null +++ b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/Clp/src/config_clp.h.in @@ -0,0 +1,16 @@ +/* src/config_clp.h.in. */ + +/* Define to 1, 2, 3, or 4 if Aboca should be build. */ +#cmakedefine CLP_HAS_ABC @CLP_HAS_ABC@ + +/* Version number of project */ +#define CLP_VERSION "@CLP_VERSION@" + +/* Major Version number of project */ +#define CLP_VERSION_MAJOR @CLP_VERSION_MAJOR@ + +/* Minor Version number of project */ +#define CLP_VERSION_MINOR @CLP_VERSION_MINOR@ + +/* Release Version number of project */ +#define CLP_VERSION_RELEASE @CLP_VERSION_RELEASE@ diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/CMakeLists.txt b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/CMakeLists.txt new file mode 100644 index 000000000..e37d46bf8 --- /dev/null +++ b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/CMakeLists.txt @@ -0,0 +1,64 @@ +set (COINUTILS_VERSION_MAJOR 2) +set (COINUTILS_VERSION_MINOR 11) +set (COINUTILS_VERSION_RELEASE 4) +set (COINUTILS_VERSION ${COINUTILS_VERSION_MAJOR}.${COINUTILS_VERSION_MINOR}.${COINUTILS_VERSION_RELEASE}) +set (VERSION ${COINUTILS_VERSION}) +set (PACKAGE coinutils) +set (PACKAGE_BUGREPORT "http://projects.coin-or.org/CoinUtils") +set (PACKAGE_NAME CoinUtils) +set (PACKAGE_STRING "${PACKAGE_NAME} ${COINUTILS_VERSION}") +set (PACKAGE_TARNAME coinutils) +set (PACKAGE_VERSION ${COINUTILS_VERSION}) + +# +#if(PTHREADS_FOUND) +# set(${NAME}_PTHREADS "1" CACHE INTERNAL "Use pthread") +#endif() + +set (COIN_COINUTILS_CHECKLEVEL "0" CACHE INTERNAL "COINUTILS check level") +set (COIN_COINUTILS_VERBOSITY "0" CACHE INTERNAL "COINUTILS verbosity level") + +set (COINUTILS_HAS_CSTDINT ${HAVE_CSTDINT}) +set (COINUTILS_HAS_STDINT_H ${HAVE_STDINT_H}) + +# Configure file +configure_file (src/config_coinutils.h.in src/config_coinutils.h @ONLY) +configure_file (src/config.h.in src/config.h @ONLY) + +# We DO NOT follow advice from https://cmake.org/cmake/help/v3.0/command/file.html, +# and we use the command FILE (GLOB ...) to find all headers and sources files +# because we assume that no file will be added in this directory. +# If one wants to use this CMakeLists.txt file to develop Clp, one can expand +# theses variables by hand as done in ibex/src/*/CMakeLists.txt files. +file (GLOB_RECURSE SRCS src/*.cpp) +file (GLOB_RECURSE HEADERS src/*.hpp) + +# CoinUtils library +add_library (CoinUtils ${SRCS} ${HEADERS}) +set_target_properties (CoinUtils PROPERTIES VERSION 3.11.4 SOVERSION 3) + +# define some macros +target_compile_definitions (CoinUtils PUBLIC HAVE_CONFIG_H + PRIVATE COINUTILS_BUILD) + +# include directories +set (incdirs "${CMAKE_CURRENT_SOURCE_DIR}/src" + "${CMAKE_CURRENT_BINARY_DIR}/src" + "${CMAKE_CURRENT_SOURCE_DIR}/../BuildTools/headers") +target_include_directories (CoinUtils PUBLIC "$") +target_include_directories (CoinUtils PUBLIC "$/${CMAKE_INSTALL_INCLUDEDIR}>") + +# install library (and add it to ibexExport) +install (TARGETS CoinUtils + EXPORT ibexExport + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT devtools) + +# install headers +install (FILES ${HEADERS} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT devtools) +install (FILES ${CMAKE_CURRENT_BINARY_DIR}/src/config_coinutils.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + RENAME CoinUtilsConfig.h + COMPONENT devtools) diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/src/config.h.in b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/src/config.h.in new file mode 100644 index 000000000..e137b5b10 --- /dev/null +++ b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/src/config.h.in @@ -0,0 +1,195 @@ +/* src/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if cstdint is available for CoinUtils */ +#cmakedefine COINUTILS_HAS_CSTDINT 1 + +/* Define to 1 if stdint.h is available for CoinUtils */ +#cmakedefine COINUTILS_HAS_STDINT_H 1 + +/* Default maximum pooled allocation size */ +#define COINUTILS_MEMPOOL_MAXPOOLED -1 + +/* Define to 1 CoinUtils should override global new/delete */ +#cmakedefine COINUTILS_MEMPOOL_OVERRIDE_NEW 1 + +/* Define to 1 if the thread aware version of CoinUtils should be compiled */ +#cmakedefine COINUTILS_PTHREADS 1 + +/* SVN revision number of project */ +#cmakedefine COINUTILS_SVN_REV @COINUTILS_SVN_REV@ + +/* Version number of project */ +#define COINUTILS_VERSION "@COINUTILS_VERSION@" + +/* Major Version number of project */ +#define COINUTILS_VERSION_MAJOR @COINUTILS_VERSION_MAJOR@ + +/* Minor Version number of project */ +#define COINUTILS_VERSION_MINOR @COINUTILS_VERSION_MINOR@ + +/* Release Version number of project */ +#define COINUTILS_VERSION_RELEASE @COINUTILS_VERSION_RELEASE@ + +/* Define to the debug sanity check level (0 is no test) */ +#define COIN_COINUTILS_CHECKLEVEL @COIN_COINUTILS_CHECKLEVEL@ + +/* Define to the debug verbosity level (0 is no output) */ +#define COIN_COINUTILS_VERBOSITY @COIN_COINUTILS_VERBOSITY@ + +/* Define to be the name of C-function for Inf check */ +#undef COIN_C_FINITE + +/* Define to be the name of C-function for NaN check */ +#undef COIN_C_ISNAN + +/* If defined, the BLAS Library is available. */ +#cmakedefine COIN_HAS_BLAS 1 + +/* Define to 1 if bzlib is available */ +#cmakedefine COIN_HAS_BZLIB 1 + +/* Define to 1 if the Glpk package is available */ +#cmakedefine COIN_HAS_GLPK 1 + +/* If defined, the LAPACK Library is available. */ +#cmakedefine COIN_HAS_LAPACK 1 + +/* Define to 1 if the Netlib package is available */ +#cmakedefine COIN_HAS_NETLIB 1 + +/* Define to 1 if readline is available */ +#cmakedefine COIN_HAS_READLINE 1 + +/* Define to 1 if the Sample package is available */ +#cmakedefine COIN_HAS_SAMPLE 1 + +/* Define to 1 if zlib is available */ +#cmakedefine COIN_HAS_ZLIB 1 + +/* Define to 64bit integer type */ +#define COIN_INT64_T @COIN_INT64_T@ + +/* Define to integer type capturing pointer */ +#define COIN_INTPTR_T @COIN_INTPTR_T@ + +/* Define to 64bit unsigned integer type */ +#define COIN_UINT64_T @COIN_UINT64_T@ + +/* Define to dummy `main' function (if any) required to link to the Fortran + libraries. */ +#cmakedefine F77_DUMMY_MAIN 1 + +/* Define to a macro mangling the given C identifier (in lower and upper + case), which must not contain underscores, for linking with Fortran. */ +#undef F77_FUNC + +/* As F77_FUNC, but for C identifiers containing underscores. */ +#undef F77_FUNC_ + +/* Define if F77 and FC dummy `main' functions are identical. */ +#cmakedefine FC_DUMMY_MAIN_EQ_F77 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_BZLIB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CFLOAT 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CIEEEFP 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CINTTYPES 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CMATH 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_CSTDINT 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FLOAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_IEEEFP_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MATH_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_READLINE_READLINE_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_WINDOWS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ZLIB_H 1 + +/* Name of package */ +#define PACKAGE "@PACKAGE@" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "@PACKAGE_NAME@" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "@PACKAGE_STRING@" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "@PACKAGE_TARNAME@" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "@PACKAGE_VERSION@" + +/* The size of a `int', as computed by sizeof. */ +#define SIZEOF_INT @SIZEOF_INT@ + +/* The size of a `int *', as computed by sizeof. */ +#define SIZEOF_INT_P @SIZEOF_INT_P@ + +/* The size of a `long', as computed by sizeof. */ +#define SIZEOF_LONG @SIZEOF_LONG@ + +/* The size of a `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@ + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "@VERSION@" diff --git a/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/src/config_coinutils.h.in b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/src/config_coinutils.h.in new file mode 100644 index 000000000..98f32aeef --- /dev/null +++ b/lp_lib_wrapper/clp/3rd/Clp-1.17.6/CoinUtils/src/config_coinutils.h.in @@ -0,0 +1,33 @@ +/* inc/config_coinutils.h.in. */ + +#ifndef __CONFIG_COINUTILS_H__ +#define __CONFIG_COINUTILS_H__ + +/* Define to 1 if stdint.h is available for CoinUtils */ +#cmakedefine COINUTILS_HAS_STDINT_H 1 + +/* Define to 1 if stdint.h is available for CoinUtils */ +#cmakedefine COINUTILS_HAS_CSTDINT 1 + +/* Version number of project */ +#define COINUTILS_VERSION "@COINUTILS_VERSION@" + +/* Major Version number of project */ +#define COINUTILS_VERSION_MAJOR @COINUTILS_VERSION_MAJOR@ + +/* Minor Version number of project */ +#define COINUTILS_VERSION_MINOR @COINUTILS_VERSION_MINOR@ + +/* Release Version number of project */ +#define COINUTILS_VERSION_RELEASE @COINUTILS_VERSION_RELEASE@ + +/* Define to 64bit integer type */ +#define COIN_INT64_T @COIN_INT64_T@ + +/* Define to integer type capturing pointer */ +#define COIN_INTPTR_T @COIN_INTPTR_T@ + +/* Define to 64bit unsigned integer type */ +#define COIN_UINT64_T @COIN_UINT64_T@ + +#endif diff --git a/lp_lib_wrapper/clp/CMakeLists.txt b/lp_lib_wrapper/clp/CMakeLists.txt new file mode 100644 index 000000000..2c4c2809a --- /dev/null +++ b/lp_lib_wrapper/clp/CMakeLists.txt @@ -0,0 +1,54 @@ +set (CLP_NAME "Clp") +set (CLP_NAME ${CLP_NAME} PARENT_SCOPE) + +# Look for Clp +include (FindClp.cmake) + +if (CLP_FOUND) + set (CLP_TARGET "Clp::Clp" PARENT_SCOPE) + # Install FindClp.cmake file + install (FILES FindClp.cmake + DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE}/cmake.utils + COMPONENT devtools) + # Write CMake file containing path hint and install it + generate_path_hints_file (Clp INSTALL) +else () + message (STATUS "Will install and use library Clp from 3rd/ subdirectory") + + ### + set (CLP_VERSION "1.17.6") + set (clp_basename "Clp-${CLP_VERSION}") + set (clp_archive_name "${clp_basename}.tgz") + set (clp_archive "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${clp_archive_name}") + set (wdir "${CMAKE_CURRENT_BINARY_DIR}/${clp_basename}") + set (logdir "${CMAKE_CURRENT_BINARY_DIR}/log") + + file (MAKE_DIRECTORY "${logdir}") + + ### Extract + execute_process_check (COMMAND ${CMAKE_COMMAND} -E tar xzf ${clp_archive} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + MSG "extracting ${clp_archive_name}" + LOGBASENAME "${logdir}/extract" + STATUS_PREFIX "${CLP_NAME}: ") + + ### Copy files + copy ("${CLP_NAME}: " + "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${clp_basename}" "${wdir}" + "${logdir}" "CMakeLists.txt" "CoinUtils/CMakeLists.txt" + "CoinUtils/src/config.h.in" "CoinUtils/src/config_coinutils.h.in" + "Clp/CMakeLists.txt" "Clp/src/config.h.in" "Clp/src/config_clp.h.in" + ) + + ### Configure + message (STATUS "${CLP_NAME}: configure") + # Original values will be restored at the end of this file + set (CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR_3RD}/coin) + set (CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR_3RD}) + add_subdirectory (${wdir} ${wdir}-build) + message (STATUS "${CLP_NAME}: configure - done") + + ### + set (CLP_TARGET "ClpSolver" PARENT_SCOPE) + set (CLP_VERSION ${CLP_VERSION} PARENT_SCOPE) +endif () diff --git a/lp_lib_wrapper/clp/FindClp.cmake b/lp_lib_wrapper/clp/FindClp.cmake new file mode 100644 index 000000000..2dfaf90da --- /dev/null +++ b/lp_lib_wrapper/clp/FindClp.cmake @@ -0,0 +1,98 @@ +# FindClp +# ----------- +# +# The module defines the following variables: +# +# COINUTILS_FOUND +# COINUTILS_INCLUDE_DIRS +# COINUTILS_LIBRARIES +# COINUTILS_VERSION +# CLP_FOUND +# CLP_INCLUDE_DIRS +# CLP_LIBRARIES +# CLP_VERSION +# +# and the following imported target (if it does not already exist): +# +# Clp::Clp - The Clp library +# +# +# Requires CMake >= 3.0 + +include(CheckCXXCompilerFlag) +find_package (PkgConfig) + +set (COINUTILS_DIR "${COIN_DIR}" CACHE PATH "Directory to search for CoinUtils") +set (CLP_DIR "${CLP_DIR}" CACHE PATH "Directory to search for Clp") + +if (COINUTILS_DIR) + set (ENV{PKG_CONFIG_PATH} "${COINUTILS_DIR}/lib/pkgconfig:${PKG_CONFIG_PATH}") +endif () +if (CLP_DIR) + set (ENV{PKG_CONFIG_PATH} "${CLP_DIR}/lib/pkgconfig:${PKG_CONFIG_PATH}") +endif () + +pkg_check_modules (CLP_PKG QUIET clp) + +# Look for the library +foreach (_lib ${CLP_PKG_LIBRARIES}) + string (TOUPPER "${_lib}" _upperlib) + find_library (${_upperlib}_LIBRARY NAMES ${_lib} + HINTS ${CLP_PKG_LIBRARY_DIRS} + PATH_SUFFIXES lib) + list (APPEND _req_vars ${_upperlib}_LIBRARY) + list (APPEND CLP_LIBRARIES "${${_upperlib}_LIBRARY}") + mark_as_advanced (${_upperlib}_LIBRARY) + unset (_upperlib) +endforeach () +unset (_lib) + +# Look for the include directory +find_path (COINUTILS_INC_DIR NAMES CoinUtilsConfig.h + HINTS ${CLP_PKG_INCLUDE_DIRS} + PATH_SUFFIXES include include/coin) +find_path (CLP_INC_DIR NAMES ClpConfig.h + HINTS ${CLP_PKG_INCLUDE_DIRS} + PATH_SUFFIXES include include/coin) + +# Look for the version +set (_version_match "VERSION \"[0-9]+[.][0-9]+[.][0-9]+") +if (COINUTILS_INC_DIR) + file (READ "${COINUTILS_INC_DIR}/CoinUtilsConfig.h" _content) + string (REGEX MATCH "COINUTILS_${_version_match}" _match "${_content}") + string (SUBSTRING "${_match}" 19 -1 COINUTILS_VERSION) +endif () + +if (CLP_INC_DIR) + file (READ "${CLP_INC_DIR}/ClpConfig.h" _content) + string (REGEX MATCH "CLP_${_version_match}" _match "${_content}") + string (SUBSTRING "${_match}" 13 -1 CLP_VERSION) +endif () +unset (_content) +unset (_match) +unset (_version_match) + +include (FindPackageHandleStandardArgs) +list (APPEND _req_vars CLP_INC_DIR) +list (APPEND _req_vars COINUTILS_INC_DIR) +find_package_handle_standard_args (Clp REQUIRED_VARS ${_req_vars} + VERSION_VAR CLP_VERSION) +unset (_req_vars) + +if (CLP_FOUND) + set (CLP_INCLUDE_DIRS ${CLP_PKG_INCLUDE_DIRS}) + mark_as_advanced (COINUTILS_DIR) + mark_as_advanced (CLP_DIR) + if (NOT TARGET Clp::Clp) + # For now we make the target global, because this file is included from a + # CMakeLists.txt file in a subdirectory. With CMake >= 3.11, we could make + # it global afterwards with + # set_target_properties(Clp::Clp PROPERTIES IMPORTED_GLOBAL TRUE) + add_library (Clp::Clp INTERFACE IMPORTED GLOBAL) + set_target_properties (Clp::Clp PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${CLP_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${CLP_LIBRARIES}") + endif() +endif() + +mark_as_advanced (CLP_INC_DIR COINUTILS_INC_DIR) diff --git a/lp_lib_wrapper/clp/ibex_LPLibWrapper.cpp b/lp_lib_wrapper/clp/ibex_LPLibWrapper.cpp new file mode 100644 index 000000000..3f010c90b --- /dev/null +++ b/lp_lib_wrapper/clp/ibex_LPLibWrapper.cpp @@ -0,0 +1,518 @@ +#include "ibex_LPSolver.h" + +namespace { + +bool isfinite(const ibex::Vector& v) { + for(int i = 0; i < v.size(); i++) { + if(!std::isfinite(v[i])) { + return false; + } + } + return true; +} + +} /* end anonymous namespace */ + +namespace ibex { + + +LPSolver::LPSolver(int nb_vars, LPSolver::Mode mode, double tolerance, + double timeout, int max_iter) +{ + assert(nb_vars > 0); + init(mode, tolerance, timeout, max_iter); + //ivec_bounds_ = IntervalVector(nb_vars); + + reset(nb_vars); +} + +LPSolver::LPSolver(std::string filename) { + init(LPSolver::Mode::NotCertified, LPSolver::default_tolerance, LPSolver::default_timeout, LPSolver::default_max_iter); + + int status = myclp->readMps(filename.c_str()); + if(status) { + std::string msg = "LPSolver: file " + filename + " could not be read."; + ibex_error(msg.c_str()); + } + ivec_bounds_ = IntervalVector(nb_vars()); + for(int i = 0; i < ivec_bounds_.size(); i++) { + ivec_bounds_[i] = Interval(myclp->columnLower()[i], myclp->columnUpper()[i]); + } +} + +LPSolver::~LPSolver() { + delete myclp; +} + +void LPSolver::init(LPSolver::Mode mode, double tolerance, double timeout, int max_iter) { + + myclp = new ClpSimplex(); + mode_ = mode; + + // no log + myclp->setLogLevel(0); + /// Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore + myclp->setOptimizationDirection(1); + + myclp->setMaximumIterations(max_iter); + myclp->setMaximumSeconds(timeout); + myclp->setPrimalTolerance(tolerance); + myclp->setDualTolerance(tolerance); +} + + +int LPSolver::add_constraint(double lhs, const Vector& row, double rhs) { + assert(row.size() == nb_vars()); + assert(std::isfinite(lhs) && std::isfinite(rhs)); + assert(isfinite(row)); + + has_changed = true; + + int* row2Index = new int[nb_vars()]; + for(int i=0;iaddRow(nb_vars(),row2Index,row.raw(),lhs,rhs); + } + catch(...) { + throw LPException(); + } + delete [] row2Index; + return nb_rows()-1; +} + +int LPSolver::add_constraint(const Vector& row, CmpOp op, double rhs) { + assert(row.size() == nb_vars()); + assert(isfinite(row)); + assert(std::isfinite(rhs)); + + has_changed = true; + + int* row2Index = new int[nb_vars()]; + for(int i=0;iaddRow(nb_vars(),row2Index,row.raw(),NEG_INFINITY,rhs); + } + else if (op==GEQ || op==GT) { + myclp->addRow(nb_vars(),row2Index,row.raw(),rhs,POS_INFINITY); + } + else + throw LPException(); + } + catch(...) { + throw LPException(); + } + delete [] row2Index; + + return nb_rows()-1; +} + + +void LPSolver::add_constraints(const Vector& lhs, const Matrix& rows, const Vector& rhs) { + for(int i = 0; i < lhs.size(); i++) { + add_constraint(lhs[i], rows.row(i), rhs[i]); + } +} + +void LPSolver::add_constraints(const Matrix& rows, CmpOp op, const Vector& rhs) { + for(int i = 0; i < rhs.size(); i++) { + add_constraint(rows.row(i), op, rhs[i]); + } +} + +LPSolver::Status LPSolver::minimize() { + invalidate(); + assert(!ivec_bounds_.is_unbounded()); + + // solve + myclp->dual(); + + int clp_status = myclp->status(); + /** Status of problem: + -1 - unknown e.g. before solve or if postSolve says not optimal + 0 - optimal + 1 - primal infeasible + 2 - dual infeasible + 3 - stopped on iterations or time + 4 - stopped due to errors + 5 - stopped by event handler (virtual int ClpEventHandler::event()) + */ + status_ = LPSolver::Status::Unknown; + switch(clp_status){ + case 0: + { + obj_ = myclp->getObjValue(); + + // the primal solution : used by choose_next_variable + double * primal= myclp->primalColumnSolution(); + // the dual solution ; used by Neumaier Shcherbina test + double * dual = myclp->dualRowSolution(); + + uncertified_primal_.resize(nb_vars()); + for(int i=0;iisProvenPrimalInfeasible() || myclp->isProvenDualInfeasible()){ + double* ray = myclp->infeasibilityRay(true); + if(ray!=NULL && myclp->rayExists()){ + has_infeasible_dir_ = true; + uncertified_infeasible_dir_.resize(nb_rows()); + for(int i=0;iunboundedRay()){ + status_ = LPSolver::Status::Unbounded; + } + else { + status_ = LPSolver::Status::Unknown; + } + } + break; + default: + // TODO: we need an option to log such warnings, see issue #440. + //std::string error_msg = "LPSolver: solve status is an internal Soplex status (" + std::to_string(soplex_status) + "). This is probably an error for you."; + //ibex_warning(error_msg.c_str()); + status_ = LPSolver::Status::Unknown; + } + //std::cout<<"Minimize done! "<setObjectiveCoefficient(i, obj[i]); + } + catch(...) { + throw LPException(); + } +} + +void LPSolver::set_cost(int index, double value) { + assert(index >= 0 && index < nb_vars()); + assert(std::isfinite(value)); + has_changed = true; + try { + myclp->setObjectiveCoefficient(index, value); + } + catch(...) { + throw LPException(); + } +} + +void LPSolver::set_bounds(const IntervalVector& bounds) { + assert(bounds.size() == nb_vars()); + assert(!bounds.is_unbounded()); + + has_changed = true; + // The bounds have to be changed in 3 places: ivec_bounds_, + // 1. ivec_bounds_ + ivec_bounds_ = bounds; + + // 2. in clp variable bounds + for(int i=0;isetColumnBounds(i,ivec_bounds_[i].lb(), ivec_bounds_[i].ub()); + + // 3. in clp bounds constraints + for(int i = 0; i < nb_vars(); i++) { + myclp->setRowBounds(i,bounds[i].lb(), bounds[i].ub()); + } +} + +void LPSolver::set_bounds(int var, const Interval& bounds) { + assert(var >= 0 && var < nb_vars()); + assert(!bounds.is_unbounded()); + has_changed = true; + ivec_bounds_[var] = bounds; + myclp->setColumnBounds(var, bounds.lb(), bounds.ub()); + myclp->setRowBounds(var,bounds.lb(), bounds.ub()); +} + +void LPSolver::set_tolerance(double tolerance) { + has_changed = true; + myclp->setPrimalTolerance(tolerance); + myclp->setDualTolerance(tolerance); +} + +void LPSolver::set_timeout(double timeout) { + has_changed = true; + myclp->setMaximumSeconds(timeout); +} + +void LPSolver::set_max_iter(int max_iter) { + has_changed = true; + myclp->setMaximumIterations(max_iter); +} + +int LPSolver::nb_rows() const { + return myclp->numberRows(); +} + +int LPSolver::nb_vars() const { + return myclp->numberColumns(); +} + +double LPSolver::tolerance() const { + return myclp->primalTolerance(); +} + +int LPSolver::max_iter() const { + return myclp->maximumIterations(); +} + +double LPSolver::timeout() const { + return myclp->maximumSeconds(); +} + +LPSolver::Status LPSolver::status() const { + return status_; +} + +Matrix LPSolver::rows() const { + Matrix A(nb_rows(),nb_vars(),0.0); + try { + CoinPackedMatrix * mat=myclp->matrix(); + if (mat->isColOrdered()) { + for (int cc=0;ccgetVectorStarts()[cc]+mat->getVectorLengths()[cc];; + for (j=mat->getVectorStarts()[cc];jgetIndices()[j])[cc] = mat->getElements()[j]; + } + } + + } else { + for (int rr=0;rrgetVectorStarts()[rr]+mat->getVectorLengths()[rr]; + for (j=mat->getVectorStarts()[rr];jgetIndices()[j]] = mat->getElements()[j]; + } + } + } + } catch(...) { + throw LPException(); + } + return A; +} + +Vector LPSolver::row(int index) const { + assert(index >= 0 && index < nb_rows()); + if (myclp->matrix()->isColOrdered()) { + myclp->matrix()->reverseOrdering(); + } + Vector Ai(nb_vars(),0.0); + + CoinPackedMatrix * mat=myclp->matrix(); + const double* Ar = mat->getElements(); + const int* idx = mat->getIndices(); + int row_start = mat->getVectorStarts()[index]; + int nb_idx = mat->getVectorSize(index); + for(int j=0;j= 0 && index < nb_vars()); + if (!myclp->matrix()->isColOrdered()) { + myclp->matrix()->reverseOrdering(); + } + Vector Aj(nb_rows(),0.0); + CoinPackedMatrix * mat=myclp->matrix(); + const double* Ac = mat->getElements(); + const int* idx = mat->getIndices(); + int col_start = mat->getVectorStarts()[index]; + int nb_idx = mat->getVectorSize(index); + for(int i=0;igetRowLower(); + for(int i=0;i= 0 && index < nb_rows()); + return myclp->getRowLower()[index]; +} + +Vector LPSolver::rhs() const { + Vector dcol(nb_rows()); + const double* rhs_=myclp->getRowUpper(); + for(int i=0;i= 0 && index < nb_rows()); + return myclp->getRowUpper()[index]; +} + +IntervalVector LPSolver::lhs_rhs() const { + IntervalVector lhs_rhs_vec(nb_rows()); + for(int i = 0; i < lhs_rhs_vec.size(); i++) { + lhs_rhs_vec[i] = Interval(myclp->getRowLower()[i], myclp->getRowUpper()[i]); + } + return lhs_rhs_vec; +} + +Interval LPSolver::lhs_rhs(int index) const { + assert(index >= 0 && index < nb_rows()); + return Interval(myclp->getRowLower()[index], myclp->getRowUpper()[index]); +} + +IntervalVector LPSolver::bounds() const { + return ivec_bounds_; +} + +Interval LPSolver::bounds(int index) const { + assert(index >= 0 && index < nb_vars()); + return ivec_bounds_[index]; +} + +Vector LPSolver::cost() const { + Vector vec(nb_vars()); + const double* cost_=myclp->getObjCoefficients(); + for(int i=0;i= 0 && index < nb_vars()); + return myclp->getObjCoefficients()[index]; +} + +Interval LPSolver::minimum() const { + if(!has_solution_) { + ibex_error("LPSolver: no solution stored. Check solver status with LPSolver::status()."); + } + return obj_; +} + +Vector LPSolver::not_proved_primal_sol() const { + if(!has_solution_) { + ibex_error("LPSolver: no solution stored. Check solver status with LPSolver::status()."); + } + return uncertified_primal_; +} +Vector LPSolver::not_proved_dual_sol() const { + if(!has_solution_) { + ibex_error("LPSolver: no solution stored. Check solver status with LPSolver::status()."); + } + return uncertified_dual_; +} + +bool LPSolver::uncertified_infeasible_dir(Vector& infeasible_dir) const { + if(has_infeasible_dir_) { + infeasible_dir = uncertified_infeasible_dir_; + return true; + } + return false; +} + +void LPSolver::write_to_file(const std::string& filename) const { + myclp->writeMps(filename.c_str()); +} + +// Clear functions +void LPSolver::set_cost_to_zero() { + for(int i=0;isetObjectiveCoefficient(i,0.0); + } +} + +// remove all constraints except bound constraints +void LPSolver::clear_constraints() { + myclp->resize(nb_vars(),nb_vars()); +} + +void LPSolver::clear_bounds() { + IntervalVector new_bounds(nb_vars(), Interval::ALL_REALS); + set_bounds(new_bounds); +} + +void LPSolver::reset(int nb_vars) { + assert(nb_vars > 0); + invalidate(); + + set_cost_to_zero(); + + // define the number of variables and reset all constraints + myclp->resize(0,nb_vars); + + ivec_bounds_ = IntervalVector(nb_vars, Interval::ALL_REALS); + + // define bounds on variables + for(int i=0;isetColumnBounds(i,COIN_DBL_MIN, COIN_DBL_MAX); + } + + // Adding explicit constraints for bounds + Vector rowValue(nb_vars,0.0); + for(int i = 0; i < nb_vars; i++) { + rowValue[i]=1.0; + add_constraint(COIN_DBL_MIN,rowValue,COIN_DBL_MAX); + rowValue[i]=0.0; + } +} + +} /* end namespace ibex */ diff --git a/lp_lib_wrapper/clp/ibex_LPLibWrapper.h b/lp_lib_wrapper/clp/ibex_LPLibWrapper.h new file mode 100644 index 000000000..7d1ab8619 --- /dev/null +++ b/lp_lib_wrapper/clp/ibex_LPLibWrapper.h @@ -0,0 +1,17 @@ +#ifndef _IBEX_LPLIBWRAPPER_H_ +#define _IBEX_LPLIBWRAPPER_H_ + +#ifdef DEBUG + #undef DEBUG + #ifndef DEBUGGING + #define DEBUGGING + #endif + #include "ClpSimplex.hpp" + #define DEBUG +#else + #include "ClpSimplex.hpp" +#endif + +#define IBEX_LPSOLVER_WRAPPER_ATTRIBUTES ClpSimplex *myclp + +#endif /* _IBEX_LPLIBWRAPPER_H_ */ diff --git a/lp_lib_wrapper/clp/wscript b/lp_lib_wrapper/clp/wscript new file mode 100644 index 000000000..3de96190e --- /dev/null +++ b/lp_lib_wrapper/clp/wscript @@ -0,0 +1,16 @@ +#! /usr/bin/env python +# encoding: utf-8 + +import os, shutil + +###################### +###### options ####### +###################### +def options (opt): + pass + +###################### +##### configure ###### +###################### +def configure (conf): + conf.fatal ("Clp not currently supported with Waf") diff --git a/lp_lib_wrapper/none/CMakeLists.txt b/lp_lib_wrapper/none/CMakeLists.txt index e2440c3bd..359b57451 100644 --- a/lp_lib_wrapper/none/CMakeLists.txt +++ b/lp_lib_wrapper/none/CMakeLists.txt @@ -1,5 +1 @@ -# interface is empty for 'none' -create_target_import_and_export (none "IGNORE" NONE_EXPORTFILE NAMESPACE Ibex::) - -list (APPEND EXPORTFILES "${NONE_EXPORTFILE}") -set (EXPORTFILES "${EXPORTFILES}" PARENT_SCOPE) +# empty: nothing to do diff --git a/lp_lib_wrapper/soplex/3rd/soplex-4.0.2.CMake.patch b/lp_lib_wrapper/soplex/3rd/soplex-4.0.2.CMake.patch new file mode 100644 index 000000000..52bcb6769 --- /dev/null +++ b/lp_lib_wrapper/soplex/3rd/soplex-4.0.2.CMake.patch @@ -0,0 +1,130 @@ +--- soplex-4.0.2/CMakeLists.txt 2020-12-10 16:07:11.143036971 +0100 ++++ soplex-4.0.2/CMakeLists.txt 2019-06-28 15:47:59.000000000 +0200 +@@ -19,8 +19,8 @@ + set(CPACK_PACKAGE_VENDOR "Zuse Institute Berlin") + include(CPack) + +-option(ZLIB "Use ZLIB" ON) +-option(GMP "Use GMP" ON) ++option(ZLIB "Use ZLIB" OFF) ++option(GMP "Use GMP" OFF) + option(STATIC_GMP "Prefer static GMP lib" OFF) + option(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS "Export all symbols into the DLL" ON) + option(MT "use static runtime libraries for Visual Studio compiler" OFF) +@@ -49,10 +49,6 @@ + # use C++11 standard + set(CMAKE_CXX_STANDARD 11) + +-# set function visibility default to hidden +-set(CMAKE_CXX_VISIBILITY_PRESET hidden) +-set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) +- + # create a target for updating the current git hash + file(WRITE ${CMAKE_BINARY_DIR}/soplex_update_githash.cmake " + find_program(GIT git) +--- soplex-4.0.2/src/CMakeLists.txt 2019-06-28 15:48:00.000000000 +0200 ++++ soplex-4.0.2/src/CMakeLists.txt 2020-12-10 16:21:43.523863588 +0100 +@@ -1,5 +1,3 @@ +-include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +- + set(sources + soplex/changesoplex.cpp + soplex/clufactor.cpp +@@ -158,81 +156,19 @@ + soplex/vector.h + soplex/wallclocktimer.h) + +- # create soplex library with pic +- add_library(libsoplex-pic STATIC ${sources}) +- set_target_properties(libsoplex-pic PROPERTIES +- POSITION_INDEPENDENT_CODE on +- VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH}.${SOPLEX_VERSION_SUB} +- SOVERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}) +-add_dependencies(libsoplex-pic soplex_update_githash) +-target_link_libraries(libsoplex-pic ${libs}) +- +-# create soplex library without pic +-add_library(libsoplex STATIC ${sources}) +-set_target_properties(libsoplex PROPERTIES +- VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH}.${SOPLEX_VERSION_SUB} +- SOVERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}) +-add_dependencies(libsoplex soplex_update_githash) +-target_link_libraries(libsoplex ${libs}) +- +-# create soplex binary using library without pic +-add_executable(soplex soplexmain.cpp) +-target_link_libraries(soplex libsoplex) +- +-if(CMAKE_BUILD_TYPE EQUAL "Debug") +- find_package(Sanitizers) +- add_sanitizers(soplex) +-endif() +- +-add_executable(example EXCLUDE_FROM_ALL example.cpp) +-target_link_libraries(example libsoplex) +- +-# set the install rpath to the installed destination +-set_target_properties(soplex PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +-# on UNIX system the 'lib' prefix is automatically added +-set_target_properties(libsoplex PROPERTIES +- OUTPUT_NAME "soplex" +- MACOSX_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +-set_target_properties(libsoplex-pic PROPERTIES +- OUTPUT_NAME "soplex-pic" +- MACOSX_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +- +-# install the header files of soplex +-install(FILES ${headers} DESTINATION include/soplex) +-install(FILES soplex.h DESTINATION include) +- +-# install the binary and the library to appropriate lcoations and add them to an export group +-install(TARGETS soplex libsoplex libsoplex-pic EXPORT soplex-targets +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib +- RUNTIME DESTINATION bin +- INCLUDES DESTINATION include) +- +-# Add library targets to the build-tree export set +-export(TARGETS libsoplex libsoplex-pic +- FILE "${CMAKE_BINARY_DIR}/soplex-targets.cmake") +- +-#configure the config file for the build tree +-set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src") +-configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in +- "${CMAKE_BINARY_DIR}/soplex-config.cmake" @ONLY) +- +-include(CMakePackageConfigHelpers) +-write_basic_package_version_file( +-${CMAKE_BINARY_DIR}/soplex-config-version.cmake +- VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH} +- COMPATIBILITY SameMajorVersion +- ) +- +- +-#configure the config file for the install +-set(CONF_INCLUDE_DIRS "\${CMAKE_CURRENT_LIST_DIR}/../../../include") +-configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in +- "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/soplex-config.cmake" @ONLY) +- +-# install the targets of the soplex export group and the config file so that other projects +-# can link easily against soplex +-install(EXPORT soplex-targets FILE soplex-targets.cmake DESTINATION lib/cmake/soplex) +-install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/soplex-config.cmake" +- ${CMAKE_BINARY_DIR}/soplex-config-version.cmake +- DESTINATION lib/cmake/soplex) ++# create soplex library ++add_library (soplex ${sources}) ++set_target_properties (soplex PROPERTIES ++ VERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}.${SOPLEX_VERSION_PATCH}.${SOPLEX_VERSION_SUB} ++ SOVERSION ${SOPLEX_VERSION_MAJOR}.${SOPLEX_VERSION_MINOR}) ++add_dependencies (soplex soplex_update_githash) ++target_include_directories (soplex PUBLIC ++ "$" ++ "$" ++ "$") ++ ++install (FILES soplex.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++install (FILES ${headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/soplex) ++install (TARGETS soplex EXPORT ibexExport ++ DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ COMPONENT devtools) diff --git a/lp_lib_wrapper/soplex/CMakeLists.txt b/lp_lib_wrapper/soplex/CMakeLists.txt index 22d0581a5..5f13bc836 100644 --- a/lp_lib_wrapper/soplex/CMakeLists.txt +++ b/lp_lib_wrapper/soplex/CMakeLists.txt @@ -1,68 +1,53 @@ -################################################################################ -# Options -################################################################################ -set (SOPLEX_DIR "" CACHE PATH "Path to the Soplex lib and include directories") - -################################################################################ -# May be needed to install missing dependencies -################################################################################ -include (ExternalProject) -include (IbexUtils) - -################################################################################ -# Looking for Soplex, install it if not found -################################################################################ -# Looking for soplex.h, result is written in SOPLEX_INCDIR -find_header_custom (SOPLEX "soplex.h" PATHS "${SOPLEX_DIR}") -# Looking for soplex library, result is written in SOPLEX_LIB -find_library_custom (SOPLEX "soplex" PATHS "${SOPLEX_DIR}") - -if (SOPLEX_INCDIR AND SOPLEX_LIB) - create_target_import_and_export (soplex ${SOPLEX_LIB} SOPLEX_EXPORTFILE - NAMESPACE Ibex:: - INCLUDE_DIRECTORIES ${SOPLEX_INCDIR}) +set (SOPLEX_NAME "SoPlex") +set (SOPLEX_NAME ${SOPLEX_NAME} PARENT_SCOPE) + +# Look for SoPlex +# TODO: can we somehow use the fact that SoPlex 4 offers install a +# soplex-config.cmake file IF SoPlex was compiled with CMake. And use the +# following include as fallback. +include (FindSoPlex.cmake) + +if (SOPLEX_FOUND) + set (SOPLEX_TARGET "SoPlex::SoPlex" PARENT_SCOPE) + # Install FindSoPlex.cmake file + install (FILES FindSoPlex.cmake + DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE}/cmake.utils + COMPONENT devtools) + # Write CMake file containing path hint and install it + generate_path_hints_file (SoPlex INSTALL) else () - message (STATUS "Will install and use library Filib from 3rd/ subdirectory") - # The installation of soplex via CMake does not work for us (linking error - # when compiling ibexsolve) - set (SOPLEX_PATCH "${CMAKE_CURRENT_SOURCE_DIR}/3rd/soplex-4.0.2.all.all.patch") - if (BUILD_SHARED_LIBS) - set (_shared "SHARED=true") - endif () - ExternalProject_Add (libsoplex_3rd - PREFIX soplex-4.0.2 - URL ${CMAKE_CURRENT_SOURCE_DIR}/3rd/soplex-4.0.2.tar - PATCH_COMMAND patch -p1 -i ${SOPLEX_PATCH} - CONFIGURE_COMMAND "" - BUILD_COMMAND $(MAKE) USRCXXFLAGS=${CMAKE_CXX_FLAGS} GMP=false ZLIB=false ${_shared} INSTALLDIR= install - INSTALL_COMMAND "" - BUILD_IN_SOURCE 1 - LOG_DOWNLOAD 1 - LOG_BUILD 1 - ) - ExternalProject_Get_Property (libsoplex_3rd INSTALL_DIR) - set (SOPLEX_LIBDIR "${INSTALL_DIR}/lib") - set (SOPLEX_INCDIR "${INSTALL_DIR}/include") - - # absolute path to the library - lib_get_abspath_from_name (SOPLEX_LIB ${SOPLEX_LIBDIR} soplex) - - # this directory needs to exist during generation step to avoid CMake errors - file (MAKE_DIRECTORY "${SOPLEX_INCDIR}") - - # install headers - install (DIRECTORY ${SOPLEX_INCDIR}/ COMPONENT devtools - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR_3RD}) - - # - set (_incdir $$/${CMAKE_INSTALL_INCLUDEDIR_3RD}>) - create_target_import_and_export (soplex ${SOPLEX_LIB} SOPLEX_EXPORTFILE - INSTALL NAMESPACE Ibex:: - INCLUDE_DIRECTORIES ${_incdir} - COMPONENT devtools - DEPENDS libsoplex_3rd) - unset (INSTALL_DIR) + message (STATUS "Will install and use library SoPlex from 3rd/ subdirectory") + + ### + set (SOPLEX_VERSION "4.0.2") + set (soplex_basename "soplex-${SOPLEX_VERSION}") + set (soplex_archive_name "${soplex_basename}.tar") + set (soplex_archive "${CMAKE_CURRENT_SOURCE_DIR}/3rd/${soplex_archive_name}") + set (wdir "${CMAKE_CURRENT_BINARY_DIR}/${soplex_basename}") + set (logdir "${CMAKE_CURRENT_BINARY_DIR}/log") + + file (MAKE_DIRECTORY "${logdir}") + + ### Extract + execute_process_check (COMMAND ${CMAKE_COMMAND} -E tar xzf ${soplex_archive} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + MSG "extracting ${soplex_archive_name}" + LOGBASENAME "${logdir}/extract" + STATUS_PREFIX "${SOPLEX_NAME}: ") + + ### Apply patch + patch ("${SOPLEX_NAME}: " "${CMAKE_CURRENT_SOURCE_DIR}/3rd" "${wdir}" + "${logdir}" "${soplex_basename}.CMake.patch") + + ### Configure + message (STATUS "${SOPLEX_NAME}: configure") + # Original values will be restored at the end of this file + set (CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR_3RD}) + set (CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR_3RD}) + add_subdirectory (${wdir} ${wdir}-build) + message (STATUS "${SOPLEX_NAME}: configure - done") + + ### + set (SOPLEX_TARGET "soplex" PARENT_SCOPE) + set (SOPLEX_VERSION ${SOPLEX_VERSION} PARENT_SCOPE) endif () - -list (APPEND EXPORTFILES "${SOPLEX_EXPORTFILE}") -set (EXPORTFILES "${EXPORTFILES}" PARENT_SCOPE) diff --git a/lp_lib_wrapper/soplex/FindSoPlex.cmake b/lp_lib_wrapper/soplex/FindSoPlex.cmake new file mode 100644 index 000000000..d7b00a1b0 --- /dev/null +++ b/lp_lib_wrapper/soplex/FindSoPlex.cmake @@ -0,0 +1,53 @@ +# FindSoPlex +# ----------- +# +# The module defines the following variables: +# +# SOPLEX_FOUND +# SOPLEX_INCLUDE_DIRS +# SOPLEX_LIBRARIES +# +# and the following imported target (if it does not already exist): +# +# SoPlex::SoPlex - The SoPlex library +# +# +# Requires CMake >= 3.0 + +include(CheckCXXCompilerFlag) + +set (SOPLEX_DIR "${SOPLEX_DIR}" CACHE PATH "Directory to search for SoPlex") + +# Look for the library +find_library (SOPLEX_LIBRARY NAMES soplex HINTS "${SOPLEX_DIR}" + PATH_SUFFIXES lib) + +# Might want to look close to the library first for the includes. +get_filename_component (_libdir "${SOPLEX_LIBRARY}" PATH) + +# Look for the include directory +find_path (SOPLEX_INC_DIR NAMES soplex.h + HINTS "${_libdir}/.." "${SOPLEX_DIR}" + PATH_SUFFIXES include) + +include (FindPackageHandleStandardArgs) +find_package_handle_standard_args (SoPlex DEFAULT_MSG SOPLEX_LIBRARY + SOPLEX_INC_DIR) + +if (SOPLEX_FOUND) + set (SOPLEX_LIBRARIES ${SOPLEX_LIBRARY}) + set (SOPLEX_INCLUDE_DIRS "${SOPLEX_INC_DIR}") + mark_as_advanced (SOPLEX_DIR) + if (NOT TARGET SoPlex::SoPlex) + # For now we make the target global, because this file is included from a + # CMakeLists.txt file in a subdirectory. With CMake >= 3.11, we could make + # it global afterwards with + # set_target_properties(SoPlex::SoPlex PROPERTIES IMPORTED_GLOBAL TRUE) + add_library (SoPlex::SoPlex INTERFACE IMPORTED GLOBAL) + set_target_properties (SoPlex::SoPlex PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SOPLEX_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${SOPLEX_LIBRARIES}") + endif() +endif() + +mark_as_advanced(SOPLEX_INC_DIR SOPLEX_LIBRARY) diff --git a/plugins/wscript b/plugins/wscript index 985989526..1b8be6633 100644 --- a/plugins/wscript +++ b/plugins/wscript @@ -10,21 +10,21 @@ from waflib import Configure ###################### def options (opt): # Call "options" for each surdir - opt.recurse (ibexutils.get_dirlist (opt.path)) + opt.recurse (ibexutils.get_dirlist (opt.path), mandatory=False) ###################### ##### configure ###### ###################### def configure (conf): # Call "configure" for each surdir - conf.recurse (ibexutils.get_dirlist (conf.path)) + conf.recurse (ibexutils.get_dirlist (conf.path), mandatory=False) ###################### ####### build ######## ###################### def build (bld): # Call "build" for each surdir - bld.recurse (ibexutils.get_dirlist (bld.path)) + bld.recurse (ibexutils.get_dirlist (bld.path), mandatory=False) ###################### ####### utest ######## diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 082a14f7e..73d3fbf51 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -71,15 +71,32 @@ target_include_directories (ibex PUBLIC ################################################################################ # Get list of headers get_target_property (IBEX_SRC ibex SOURCES) -list_filter (IBEX_HDR "\\.(h|hpp)$" ${IBEX_SRC}) -list_filter (IBEX_OPS_HDR "operators/.*\\.h" ${IBEX_SRC}) +ibex_list_filter_header (IBEX_HDR "\\.(h|hpp)$" ${IBEX_SRC}) +ibex_list_filter (IBEX_OPS_HDR "operators/.*\\.h" ${IBEX_SRC}) if (IBEX_OPS_HDR) list (REMOVE_ITEM IBEX_HDR ${IBEX_OPS_HDR}) # remove operators headers endif () # Generate ibex.h set (IBEX_MAIN_HEADER ${CMAKE_CURRENT_BINARY_DIR}/ibex.h) -generate_main_header (${IBEX_MAIN_HEADER} ${IBEX_HDR} WITH_GUARD "__IBEX_H__") +file (WRITE ${IBEX_MAIN_HEADER} "/* This file in generated by CMake */\n\n") +file (APPEND ${IBEX_MAIN_HEADER} "#ifndef __IBEX_H__\n") +file (APPEND ${IBEX_MAIN_HEADER} "#define __IBEX_H__\n\n") +foreach (hdr ${IBEX_HDR}) + get_filename_component (header_name ${hdr} NAME) + file (APPEND ${IBEX_MAIN_HEADER} "#include <${header_name}>\n") +endforeach() +file (APPEND ${IBEX_MAIN_HEADER} "\n#endif /* __IBEX_H__ */\n") + +################################################################################ +# binaries +################################################################################ +add_subdirectory (bin) + +################################################################################ +# Java +################################################################################ +add_subdirectory (java) ################################################################################ # installation @@ -92,12 +109,19 @@ install (TARGETS ibex EXPORT ibexExport DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devtools) install (FILES ${IBEX_MAIN_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT devtools) -list_filter (IBEX_SRC_INSTALLABLE "\\.(h|hpp|inl)$" ${IBEX_SRC}) +ibex_list_filter (IBEX_SRC_INSTALLABLE "\\.(h|hpp|inl)$" ${IBEX_SRC}) install (FILES ${IBEX_SRC_INSTALLABLE} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ibex COMPONENT devtools) -# export ibex target in ibex-config.cmake -install (EXPORT ibexExport FILE ibex-config.cmake +# +set (IBEX_TARGETS_CONFIG_FILE ibex-targets.cmake) +configure_file (ibex-config.cmake.in ibex-config.cmake @ONLY) +install (FILES ${CMAKE_CURRENT_BINARY_DIR}/ibex-config.cmake + DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE} + COMPONENT devtools) + +# export ibex targets in ibex-targets.cmake +install (EXPORT ibexExport FILE ${IBEX_TARGETS_CONFIG_FILE} NAMESPACE Ibex:: DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE} COMPONENT devtools) @@ -108,8 +132,3 @@ set (VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/ibex-config-version.cmake") write_basic_package_version_file (${VERSION_FILE} COMPATIBILITY AnyNewerVersion) install (FILES ${VERSION_FILE} DESTINATION ${CMAKE_INSTALL_CONFIGCMAKE} COMPONENT devtools) - -################################################################################ -# binaries -################################################################################ -add_subdirectory (bin) diff --git a/src/arithmetic/ibex_Matrix.cpp b/src/arithmetic/ibex_Matrix.cpp index 5530f4a70..2d542e57f 100644 --- a/src/arithmetic/ibex_Matrix.cpp +++ b/src/arithmetic/ibex_Matrix.cpp @@ -137,6 +137,14 @@ void Matrix::resize(int nb_rows1, int nb_cols1) { _nb_cols = nb_cols1; } +Matrix Matrix::operator[](const BitSet& rows) const { + Matrix res(rows.size(),nb_cols()); + int j=0; + for (BitSet::const_iterator i=rows.begin(); i!=rows.end(); ++i) + res[j++]=(*this)[i]; + return res; +} + Matrix Matrix::submatrix(int row_start_index, int row_end_index, int col_start_index, int col_end_index) const { return _submatrix(*this, row_start_index,row_end_index,col_start_index,col_end_index); } diff --git a/src/arithmetic/ibex_Matrix.h b/src/arithmetic/ibex_Matrix.h index 94c3ef015..009e8fabc 100644 --- a/src/arithmetic/ibex_Matrix.h +++ b/src/arithmetic/ibex_Matrix.h @@ -13,6 +13,7 @@ #define __IBEX_MATRIX_H__ #include "ibex_Vector.h" +#include "ibex_BitSet.h" #include #include @@ -113,6 +114,11 @@ class Matrix { */ const Vector& operator[](int i) const; + /** + * \brief Return some specific rows + */ + Matrix operator[](const BitSet& rows) const; + /** * \brief Return a submatrix. */ diff --git a/src/arithmetic/ibex_Vector.cpp b/src/arithmetic/ibex_Vector.cpp index a1b7bfe56..662ef3f0a 100644 --- a/src/arithmetic/ibex_Vector.cpp +++ b/src/arithmetic/ibex_Vector.cpp @@ -63,6 +63,14 @@ void Vector::resize(int n2) { vec = newVec; } +inline Vector Vector::operator[](const BitSet& components) const { + Vector res(components.size()); + int j=0; + for (BitSet::const_iterator i=components.begin(); i!=components.end(); ++i) + res[j++]=(*this)[i]; + return res; +} + double Vector::min() const { double res=DBL_MAX; for (int i=0; i #include +#include "ibex_BitSet.h" + namespace ibex { class Matrix; // declared only for friendship @@ -88,6 +90,12 @@ class Vector { */ double& operator[](int i); + + /** + * \brief Return some specific components + */ + Vector operator[](const BitSet& components) const; + /** * \brief Resize this Vector. * diff --git a/src/bin/ibexopt.cpp b/src/bin/ibexopt.cpp index cf590eadd..ef7e7f404 100644 --- a/src/bin/ibexopt.cpp +++ b/src/bin/ibexopt.cpp @@ -41,7 +41,7 @@ int main(int argc, char** argv) { args::ValueFlag eps_h(parser, "float", _eps_h.str(), {"eps-h"}); args::ValueFlag timeout(parser, "float", "Timeout (time in seconds). Default value is +oo.", {'t', "timeout"}); args::ValueFlag random_seed(parser, "float", _random_seed.str(), {"random-seed"}); - args::ValueFlag eps_x(parser, "float", _eps_x.str(), {"eps-x"}); + args::ValueFlag eps_x_arg(parser, "float", _eps_x.str(), {"eps-x"}); args::ValueFlag simpl_level(parser, "int", "Expression simplification level. Possible values are:\n" "\t\t* 0:\tno simplification at all (fast).\n" "\t\t* 1:\tbasic simplifications (fairly fast). E.g. x+1+1 --> x+2\n" @@ -58,6 +58,7 @@ int main(int argc, char** argv) { args::Flag output_no_obj(parser, "output-no-obj", "Generate a COV with domains of variables only (not objective values).", {"output-no-obj"}); args::Flag trace(parser, "trace", "Activate trace. Updates of loup/uplo are printed while minimizing.", {"trace"}); args::Flag format(parser, "format", "Give a description of the COV format used by IbexOpt", {"format"}); + args::ValueFlag no_split_arg(parser, "vars","Prevent some variables to be bisected, separated by '+'.\nExample: --no-split=x+y",{"no-split"}); args::Flag quiet(parser, "quiet", "Print no report on the standard output.",{'q',"quiet"}); args::Positional filename(parser, "filename", "The name of the MINIBEX file."); @@ -105,16 +106,8 @@ int main(int argc, char** argv) { string extension = filename.Get().substr(filename.Get().find_last_of('.')+1); if (extension == "nl") { - -#ifdef _IBEX_WITH_AMPL_ - AmplInterface ampl(filename.Get()); - if (simpl_level) - ampl.set_simplification_level(simpl_level.Get()); - sys = new System(ampl); -#else - cerr << "\n\033[31mCannot read \".nl\" files: AMPL plugin required \033[0m(try reconfigure with --with-ampl)\n\n"; + cerr << "\n\033[31mAMPL files can only be read with optimizer04 (ibex-opt-extra package).\n\n"; exit(0); -#endif } else // Load a system of equations @@ -154,12 +147,40 @@ int main(int argc, char** argv) { cout << " eps-h:\t\t" << eps_h.Get() << "\t(equality thickening)" << endl; } - if (eps_x) { - config.set_eps_x(eps_x.Get()); + if (eps_x_arg) { if (!quiet) - cout << " eps-x:\t\t" << eps_x.Get() << "\t(precision on variables domain)" << endl; + cout << " eps-x:\t\t" << eps_x_arg.Get() << "\t(precision on variables domain)" << endl; + } + + Vector eps_x(sys->nb_var, eps_x_arg ? eps_x_arg.Get() : OptimizerConfig::default_eps_x); + + if (no_split_arg) { + if (!quiet) + cout << " don't split:\t\t"; + + vector no_split = parse_symbols_list(sys->args, no_split_arg.Get()); + + if (!quiet) { + for (vector::const_iterator it=no_split.begin(); it!=no_split.end(); ++it) + cout << **it << ' '; + cout << endl; + } + + if (!no_split.empty()) { + // we use VarSet for convenience (handling of indexed symbols) + VarSet varset(sys->f_ctrs,no_split,true); + + for (int i=0; i::iterator it=no_split.begin(); it!=no_split.end(); ++it) { + cleanup(**it,false); + } + } } + config.set_eps_x(eps_x); + // This option certifies feasibility with equalities if (rigor) { config.set_rigor(rigor.Get()); diff --git a/src/bin/ibexsolve.cpp b/src/bin/ibexsolve.cpp index 3952cbfa1..93f99980e 100644 --- a/src/bin/ibexsolve.cpp +++ b/src/bin/ibexsolve.cpp @@ -32,7 +32,7 @@ int main(int argc, char** argv) { args::ArgumentParser parser("********* IbexSolve (defaultsolver) *********.", "Solve a Minibex file."); args::HelpFlag help(parser, "help", "Display this help menu", {'h', "help"}); args::Flag version(parser, "version", "Display the version of this plugin (same as the version of Ibex).", {'v',"version"}); - args::ValueFlag eps_x_min(parser, "float", _eps_x_min.str(), {'e', "eps-min"}); + args::ValueFlag eps_x_min_arg(parser, "float", _eps_x_min.str(), {'e', "eps-min"}); args::ValueFlag eps_x_max(parser, "float", _eps_x_max.str(), {'E', "eps-max"}); args::ValueFlag timeout(parser, "float", "Timeout (time in seconds). Default value is +oo (none).", {'t', "timeout"}); args::ValueFlag simpl_level(parser, "int", "Expression simplification level. Possible values are:\n" @@ -59,6 +59,7 @@ int main(int argc, char** argv) { args::ValueFlag random_seed(parser, "float", _random_seed.str(), {"random-seed"}); args::Flag quiet(parser, "quiet", "Print no report on the standard output.",{'q',"quiet"}); args::ValueFlag forced_params(parser, "vars","Force some variables to be parameters in the parametric proofs, separated by '+'. Example: --forced-params=x+y",{"forced-params"}); + args::ValueFlag no_split_arg(parser, "vars","Prevent some variables to be bisected, separated by '+'.\nExample: --no-split=x+y",{"no-split"}); args::Positional filename(parser, "filename", "The name of the MINIBEX file."); try @@ -104,8 +105,8 @@ int main(int argc, char** argv) { cout << endl << "***************************** setup *****************************" << endl; cout << " file loaded:\t\t" << filename.Get() << endl; - if (eps_x_min) - cout << " eps-x:\t\t" << eps_x_min.Get() << "\t(precision on variables domain)" << endl; + if (eps_x_min_arg) + cout << " eps-x:\t\t" << eps_x_min_arg.Get() << "\t(precision on variables domain)" << endl; if (simpl_level) cout << " symbolic simpl level:\t" << simpl_level.Get() << "\t" << endl; @@ -162,9 +163,36 @@ int main(int argc, char** argv) { cout << " output file:\t\t" << output_manifold_file << "\n"; } + Vector eps_x_min(sys.nb_var, eps_x_min_arg ? eps_x_min_arg.Get() : DefaultSolver::default_eps_x_min); + + if (no_split_arg) { + if (!quiet) + cout << " don't split:\t\t"; + + vector no_split = parse_symbols_list(sys.args, no_split_arg.Get()); + + if (!quiet) { + for (vector::const_iterator it=no_split.begin(); it!=no_split.end(); ++it) + cout << **it << ' '; + cout << endl; + } + + if (!no_split.empty()) { + // we use VarSet for convenience (handling of indexed symbols) + VarSet varset(sys.f_ctrs,no_split,true); + + for (int i=0; i::iterator it=no_split.begin(); it!=no_split.end(); ++it) { + cleanup(**it,false); + } + } + } + // Build the default solver DefaultSolver s(sys, - eps_x_min ? eps_x_min.Get() : DefaultSolver::default_eps_x_min, + eps_x_min, eps_x_max ? eps_x_max.Get() : DefaultSolver::default_eps_x_max, !bfs, random_seed? random_seed.Get() : DefaultSolver::default_random_seed); @@ -191,26 +219,14 @@ int main(int argc, char** argv) { if (forced_params) { if (!quiet) cout << " forced params:\t"; - SymbolMap symbols; - for (int i=0; i params; - int j; - do { - j=vars.find("+"); - if (j!=-1) { - params.push_back(&parse_indexed_symbol(symbols,vars.substr(0,j))); - vars=vars.substr(j+1,vars.size()-j-1); - } else { - params.push_back(&parse_indexed_symbol(symbols,vars)); - } - if (!quiet) cout << *params.back() << ' '; - } while (j!=-1); - - if (!quiet) cout << endl; + + vector params = parse_symbols_list(sys.args, forced_params.Get()); + + if (!quiet) { + for (vector::const_iterator it=params.begin(); it!=params.end(); ++it) + cout << **it << ' '; + cout << endl; + } if (!params.empty()) { s.set_params(VarSet(sys.f_ctrs,params,false)); //Array(params))); diff --git a/src/bisector/ibex_Bsc.cpp b/src/bisector/ibex_Bsc.cpp index ff5923d57..87b3ae60f 100644 --- a/src/bisector/ibex_Bsc.cpp +++ b/src/bisector/ibex_Bsc.cpp @@ -27,7 +27,7 @@ Bsc::Bsc(double prec) : _prec(1,prec) { Bsc::Bsc(const Vector& prec) : _prec(prec) { for (int i=0; il) { + var = i; + l = l_tmp; + } + } + } + } } - return LargestFirst::choose_var(cell) ; + // special conditions for choosing the objective as variable to bisect + if ((choose_obj == true) + && !(nobisectable (box,goal_var)) + && (l < box[goal_var].diam()) + && box[goal_var].diam()/l < objectivebisect_ratiolimit) + var=goal_var; + // cout << " bisected var " << var << " l " << l << endl ; + if (var !=-1){ + return BisectionPoint(var,ratio,true); + } + else { + throw NoBisectableVariableException(); + } + } - - // supplementary sufficient condition for not bisecting the objective (not bounded or too big :max_diam_nobj is the maximum diameter for the other variables) - bool OptimLargestFirst::nobisectable(const IntervalVector& box, int i) const { - return (LargestFirst::nobisectable ( box, i) - || - (i == goal_var && - ((choose_obj==false) // the objective should not be chosen - || // to avoid bisecting a no bounded objective - (max_diam_nobj < DBL_MAX - && box[i].diam()/max_diam_nobj > objectivebisect_ratiolimit)) - ) - ); - } - } // end namespace ibex diff --git a/src/bisector/ibex_OptimLargestFirst.h b/src/bisector/ibex_OptimLargestFirst.h index 97eb4ebad..adcb27b95 100644 --- a/src/bisector/ibex_OptimLargestFirst.h +++ b/src/bisector/ibex_OptimLargestFirst.h @@ -26,8 +26,10 @@ class OptimLargestFirst : public LargestFirst { public: /** - * \brief Create a bisector with largest-first heuristic. + * \brief Create a bisector with largest-first heuristic specialized for optimization problems * + * \param goal_var - integer indicating the variable representing the objective + * \param choose_obj - boolean indicating if the objective can be bisected (1 for bisectable) * \param prec - see #Bsc::Bsc(double). By default, 0 which means an endless uniform bisection process. * \param ratio (optional) - the ratio between the diameters of the left and the right parts of the * bisected interval. Default value is 0.45. @@ -37,21 +39,23 @@ class OptimLargestFirst : public LargestFirst { /** * \brief Create a bisector with largest first heuristic. * + * \param goal_var - integer indicating the variable representing the objective + * \param choose_obj - boolean indicating if the objective can be bisected (1 for bisectable) * \param prec - see #Bsc::Bsc(double). * \param ratio (optional) - the ratio between the diameters of the left and the right parts of the * bisected interval. Default value is 0.45. */ - OptimLargestFirst(int goal_var,bool choose_obj,const Vector& prec, double ratio=Bsc::default_ratio()); + OptimLargestFirst(int goal_var,bool choose_obj,const Vector& prec, double ratio=Bsc::default_ratio()); /** * \brief Return next variable to be bisected. * * called by Bsc::bisect(...) */ - virtual BisectionPoint choose_var(const Cell& cell); + BisectionPoint choose_var(const Cell& cell); - +protected: /** * \brief The variable representing the objective @@ -62,14 +66,7 @@ class OptimLargestFirst : public LargestFirst { * \brief Boolean indicating whether the objective variable can be bisected. */ bool choose_obj; - protected : -/** - * \brief Condition for not bisecting the variable i - */ - bool nobisectable(const IntervalVector& box, int i) const; - - private : - double max_diam_nobj; + }; diff --git a/src/bisector/ibex_SmearFunction.cpp b/src/bisector/ibex_SmearFunction.cpp index fef15b071..1f4033d45 100644 --- a/src/bisector/ibex_SmearFunction.cpp +++ b/src/bisector/ibex_SmearFunction.cpp @@ -16,155 +16,155 @@ using namespace std; namespace ibex { - void SmearFunction::add_property(const IntervalVector& init_box, BoxProperties& map) { +void SmearFunction::add_property(const IntervalVector& init_box, BoxProperties& map) { lf->add_property(init_box, map); - } - - - SmearFunction::~SmearFunction() {if (lftodelete) delete lf;} - - - // used in optimization with an ExtendedSystem sys ; returns the index of the goal ctr in sys - // if sys is not an Extended system , returns -1 - int SmearFunction::goal_ctr() const { - if (dynamic_cast (&sys)) { - return dynamic_cast (&sys)->goal_ctr(); - } - else return -1; - } - // used in optim plugin by LSmear bisector - int SmearFunction::goal_var() const { - if (dynamic_cast (&sys)) { - return dynamic_cast (&sys)->goal_var(); - } - else return -1; - } - - // Used in optimization to not consider an inactive constraint - // returns true if it is not an extended system , the constraint is inactive or it is the objective - bool SmearFunction::constraint_to_consider (int i, const IntervalVector & box) const { - if (i==goal_ctr() && _goal_to_consider==false ) return 0; - return (goal_ctr()==-1 || i== goal_ctr() || ((sys.ops[i]==LEQ || sys.ops[i]==LT) && sys.f_ctrs[i].eval(box).ub() >= 0.0)); - } - - // test to not consider the objective when it is equal to a variable - bool SmearFunction::goal_to_consider(const IntervalMatrix& J, int i) const{ - int nvar0=0; - int nvar1=0; - for (int j=0; j 1.e-10) nvar0++; - if (J[i][j].diam() ==0 && J[i][j].mag() ==1) nvar1++; - } - if (nvar0==2 && nvar1==2) return false; - else return true; - } - - - BisectionPoint SmearFunction::choose_var(const Cell& cell) { - const IntervalVector& box=cell.box; - - IntervalMatrix J(sys.f_ctrs.image_dim(), sys.nb_var); - - sys.f_ctrs.jacobian(box,J); - // in case of infinite derivatives changing to largestfirst bisection - - for (int i=0; ichoose_var(cell); - // check if the goal is to be considered - if (i==goal_ctr()){ - _goal_to_consider=goal_to_consider(J,i); - } - } - - int var = var_to_bisect (J,box); - - // in case of selected var with infinite domain, change to largestfirst bisection - if (var == -1 || !(box[var].is_bisectable())) - return lf->choose_var(cell); - else - return BisectionPoint(var,lf->ratio,true); - } - - - // computes the variable with the greatest maximal impact - int SmearMax::var_to_bisect (IntervalMatrix& J, const IntervalVector& box) const { +} + +SmearFunction::~SmearFunction() { + if (lftodelete) delete lf; +} + +// used in optimization with an ExtendedSystem sys ; returns the index of the goal ctr in sys +// if sys is not an Extended system , returns -1 +int SmearFunction::goal_ctr() const { + if (dynamic_cast (&sys)) { + return dynamic_cast (&sys)->goal_ctr(); + } + else return -1; +} +// used in optim plugin by LSmear bisector +int SmearFunction::goal_var() const { + if (dynamic_cast (&sys)) { + return dynamic_cast (&sys)->goal_var(); + } + else return -1; +} + +// Used in optimization to not consider an inactive constraint +// returns true if it is not an extended system, the constraint is inactive or it is the objective +bool SmearFunction::constraint_to_consider(int i, const IntervalVector & box) const { + if (i==goal_ctr() && _goal_to_consider==false ) return 0; + return (goal_ctr()==-1 || i== goal_ctr() || ((sys.ops[i]==LEQ || sys.ops[i]==LT) && sys.f_ctrs[i].eval(box).ub() >= 0.0)); +} + +// test to not consider the objective when it is equal to a variable +bool SmearFunction::goal_to_consider(const IntervalMatrix& J, int i) const{ + int nvar0=0; + int nvar1=0; + for (int j=0; j 1.e-10) nvar0++; + if (J[i][j].diam() ==0 && J[i][j].mag() ==1) nvar1++; + } + if (nvar0==2 && nvar1==2) return false; + else return true; +} + + +BisectionPoint SmearFunction::choose_var(const Cell& cell) { + const IntervalVector& box=cell.box; + + IntervalMatrix J(sys.f_ctrs.image_dim(), sys.nb_var); + + sys.f_ctrs.jacobian(box,J); + // in case of infinite derivatives changing to largest first bisection + + for (int i=0; ichoose_var(cell); + // check if the goal is to be considered + if (i==goal_ctr()){ + _goal_to_consider=goal_to_consider(J,i); + } + } + + int var = var_to_bisect (J,box); + + // in case of selected var with infinite domain, change to largest first bisection + if (var == -1 || !(box[var].is_bisectable())) + return lf->choose_var(cell); + else + return BisectionPoint(var,lf->ratio,true); +} + + +// computes the variable with the greatest maximal impact +int SmearMax::var_to_bisect(IntervalMatrix& J, const IntervalVector& box) const { double max_magn = NEG_INFINITY; int var=-1; for (int j=0; j= prec(j))) { - for (int i=0; i max_magn ) { - max_magn = J[i][j].mag()* box[j].diam(); - var = j; + if ((!too_small(box,j))) { // && (box[j].mag() <1 || box[j].diam()/ box[j].mag() >= prec(j))) { + for (int i=0; i max_magn ) { + max_magn = J[i][j].mag()* box[j].diam(); + var = j; + } + } } - } - } } return var; - } - - // computes the variable with the greatest sum of impacts - int SmearSum::var_to_bisect(IntervalMatrix& J, const IntervalVector& box) const { - double max_magn = NEG_INFINITY; - int var = -1; - for (int j=0; j= prec(j))) { - double sum_smear=0; - for (int i=0; i max_magn) { - max_magn = sum_smear; - var = j; - } - } - } - return var; - } - - int SmearSumRelative::var_to_bisect(IntervalMatrix& J, const IntervalVector& box) const { - double max_magn = NEG_INFINITY; - int var = -1; - // the normalizing factor per constraint - double* ctrjsum = new double[sys.f_ctrs.image_dim()]; - - for (int i=0; i= prec(j))) { + double sum_smear=0; + for (int i=0; i max_magn) { + max_magn = sum_smear; + var = j; + } + } } - } - // computes the variable with the maximal sum of normalized impacts - for (int j=0; j= prec(j))) { - double sum_smear=0; + return var; +} + +int SmearSumRelative::var_to_bisect(IntervalMatrix& J, const IntervalVector& box) const { + double max_magn = NEG_INFINITY; + int var = -1; + // the normalizing factor per constraint + double* ctrjsum = new double[sys.f_ctrs.image_dim()]; + for (int i=0; i= prec(j))) { + double sum_smear=0; + for (int i=0; i max_magn) { + max_magn = sum_smear; + var = j; + } + } - - if (sum_smear > max_magn) { - max_magn = sum_smear; - var = j; } - } - - } - delete[] ctrjsum; - return var; - } + delete[] ctrjsum; + return var; +} - int SmearMaxRelative::var_to_bisect(IntervalMatrix& J, const IntervalVector& box) const { +int SmearMaxRelative::var_to_bisect(IntervalMatrix& J, const IntervalVector& box) const { - double max_magn = NEG_INFINITY; - int var = -1; + double max_magn = NEG_INFINITY; + int var = -1; double* ctrjsum = new double[sys.f_ctrs.image_dim()]; // the normalizing factor per constraint for (int i=0; i= prec(j))) { - for (int i=0; i max_magn) { - max_magn = maxsmear; - var = j; - } - } + for (int i=0; i max_magn) { + max_magn = maxsmear; + var = j; + } + } } } delete[] ctrjsum; return var; - } +} } // end namespace ibex diff --git a/src/bisector/ibex_SmearFunction.h b/src/bisector/ibex_SmearFunction.h index 5435bbbfa..94e095283 100644 --- a/src/bisector/ibex_SmearFunction.h +++ b/src/bisector/ibex_SmearFunction.h @@ -53,7 +53,9 @@ class SmearFunction : public Bsc { SmearFunction(System& sys, const Vector& prec, double ratio=Bsc::default_ratio()); SmearFunction(System& sys, const Vector& prec,LargestFirst& lf); + ~SmearFunction(); + /** * \brief Return next variable to be bisected. * @@ -86,12 +88,13 @@ protected : int nbvars; System& sys; - int goal_ctr () const; - int goal_var () const; + int goal_ctr () const; + int goal_var () const; bool constraint_to_consider(int i, const IntervalVector & box) const; bool goal_to_consider( const IntervalMatrix& J, int i) const; - private : - bool lftodelete; // = true means that default bisector has to be deleted by the destuctor when the it has been allocated by the constructor. + +private : + bool lftodelete; // = true means that default bisector has to be deleted by the destuctor when the it has been allocated by the constructor. bool _goal_to_consider; }; @@ -322,7 +325,11 @@ inline SmearSumRelative::SmearSumRelative(System& sys, const Vector& prec, doubl } - inline SmearSumRelative::SmearSumRelative(System& sys, double prec, LargestFirst& lf) : SmearFunction(sys,prec,lf) { +inline SmearSumRelative::SmearSumRelative(System& sys, const Vector& prec, LargestFirst& lf) : SmearFunction(sys,prec,lf) { + +} + +inline SmearSumRelative::SmearSumRelative(System& sys, double prec, LargestFirst& lf) : SmearFunction(sys,prec,lf) { } diff --git a/src/function/ibex_VarSet.h b/src/function/ibex_VarSet.h index b9ea1b9b6..d3b2e0557 100644 --- a/src/function/ibex_VarSet.h +++ b/src/function/ibex_VarSet.h @@ -176,7 +176,7 @@ class VarSet { IntervalVector param_box(const IntervalVector& full_box) const; /** - * \brief Retun the ith variable + * \brief Return the ith variable * * Return the index of the ith variable in all the dimensions * of the "full box". diff --git a/src/ibex-config.cmake.in b/src/ibex-config.cmake.in new file mode 100644 index 000000000..0616c0c20 --- /dev/null +++ b/src/ibex-config.cmake.in @@ -0,0 +1,66 @@ +# Get path of current directory +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) + +# Load main config file +include(${_DIR}/@IBEX_TARGETS_CONFIG_FILE@) + +# Set some variables that can be useful for plugins +set (IBEX_INTERVAL_LIB_NAME @INTERVAL_LIB_NAME@) +set (IBEX_INTERVAL_LIB_VERSION @INTERVAL_LIB_VERSION@) +set (IBEX_LP_LIB_NAME @LP_LIB_NAME@) +set (IBEX_LP_LIB_VERSION @LP_LIB_VERSION@) + +# Append to CMAKE_MODULE_PATH the directory containing some useful CMake scripts +# installed by Ibex. In particular, it contains the Find.cmake files +# that are needed for dependencies of Ibex, if they were not install +# automatically. +list (APPEND CMAKE_MODULE_PATH "${_DIR}/cmake.utils") + +# These files contain paths (like GAOL_DIR, FILIB_DIR, ..., if they exist) that +# are used as hints to where we found dependencies of Ibex. The paths can be +# overriden on CMake command-line with -D_DIR=. +file(GLOB _cfg_files "${_DIR}/@IBEX_CMAKE_PATH_FILES_PREFIX@-*.cmake") +foreach(_f ${_cfg_files}) + include(${_f}) +endforeach() +unset (_cfg_files) +unset (_f) + +# Set some var to respect QUIET et REQUIRED when looking for dependencies +if (${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) + set (_quiet_arg QUIET) +endif () +if (${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) + set (_required_arg REQUIRED) +endif () + +# +get_target_property (_list_libs Ibex::ibex INTERFACE_LINK_LIBRARIES) +if (_list_libs) + foreach (_lib ${_list_libs}) + if (NOT _lib MATCHES "^@IBEX_NAMESPACE@::") + string (REGEX REPLACE "^.*::" "" _name ${_lib}) + string (TOUPPER "${_name}" _name_upper) + find_package (${_name} ${_quiet_arg} ${_required_arg}) + if (NOT ${_name_upper}_FOUND) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "${CMAKE_FIND_PACKAGE_NAME} could not be found \ + because dependency ${_name} could not be found.") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + endif() + unset (_name) + unset (_name_upper) + endif () + endforeach () + unset (_lib) +endif () +unset (_list_libs) + +unset (_quiet_arg) +unset (_required_arg) + +# Include main utility script (useful for development of plugins) +include(@IBEX_DEV_UTILS_FILENAME@) + +# +unset (_DIR) diff --git a/src/java/CMakeLists.txt b/src/java/CMakeLists.txt new file mode 100644 index 000000000..5d8677eb2 --- /dev/null +++ b/src/java/CMakeLists.txt @@ -0,0 +1,57 @@ +option (BUILD_JAVA_INTERFACE "Set to ON to build Java Interface" OFF) +set (JAVA_PACKAGE ibex CACHE STRING "Name of Ibex Java package (if enabled)") + +if (BUILD_JAVA_INTERFACE) + message (STATUS "Building the Java Interface: yes") + # We need shared lib for Java + if (NOT BUILD_SHARED_LIBS) + message (FATAL_ERROR "Building Java Interface requires building Ibex as a " + "shared library: '-DBUILD_SHARED_LIBS=ON' needs" + " to be added to CMake command-line arguments") + endif () + # Looking for Java + find_package (Java COMPONENTS Development REQUIRED) + find_package (JNI REQUIRED) + + # Compute JAVA_SIGNATURE from JAVA_PACKAGE + string (REPLACE "." "_" JAVA_SIGNATURE ${JAVA_PACKAGE}) + + # Perform replacement in *.in files + configure_file (ibex_Java.cpp.in ibex_Java.cpp @ONLY) + configure_file (Ibex.java.in Ibex.java @ONLY) + + # Load CMake's tools for Java + include (UseJava) + + # Build the jar + add_jar (ibex-java-jar SOURCES ${CMAKE_CURRENT_BINARY_DIR}/Ibex.java + OUTPUT_NAME ${JAVA_PACKAGE}) + + # Generate header file + #set (Java_JAVAH_EXECUTABLE ${Java_JAVAC_EXECUTABLE}) + if (Java_VERSION VERSION_LESS "10") + create_javah (TARGET ${JAVA_SIGNATURE}_Ibex.h + CLASSES ${JAVA_PACKAGE}.Ibex + DEPENDS ibex-java-jar) + else () + add_custom_command (OUTPUT ${JAVA_SIGNATURE}_Ibex.h + COMMAND "${Java_JAVAC_EXECUTABLE}" Ibex.java -h . + DEPENDS ibex-java-jar + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Building C header files from classes...") + add_custom_target (ibex-java-header ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${JAVA_SIGNATURE}_Ibex.h) + endif () + + # Build the ibex-java lib + add_library (ibex-java ${CMAKE_CURRENT_BINARY_DIR}/ibex_Java.cpp + ${CMAKE_CURRENT_BINARY_DIR}/${JAVA_SIGNATURE}_Ibex.h) + target_include_directories (ibex-java PUBLIC "${JNI_INCLUDE_DIRS}") + target_link_libraries (ibex-java ibex) + + # Installation + install_jar (ibex-java-jar DESTINATION ${CMAKE_INSTALL_JARDIR}) + install (TARGETS ibex-java DESTINATION ${CMAKE_INSTALL_LIBDIR}) +else () + message (STATUS "Building the Java Interface: no") +endif () diff --git a/src/java/Ibex.java.in b/src/java/Ibex.java.in new file mode 100644 index 000000000..9424f2097 --- /dev/null +++ b/src/java/Ibex.java.in @@ -0,0 +1,296 @@ +//============================================================================ +// I B E X +// File : Ibex.java.in +// Author : Gilles Chabert +// Copyright : IMT Atlantique (France) +// License : See the LICENSE file +// Created : Jul 18, 2012 +// Last Update : Nov 02, 2017 +//============================================================================ + +package @JAVA_PACKAGE@; + +public class Ibex { + + /* A contraction is considered as + * significant when at least 1% of a + * domain has been reduced */ + public static final double RATIO = 0.01; + + /* Constants for the status of a contraction. */ + public static final int FAIL = 0; + public static final int ENTAILED = 1; + public static final int CONTRACT = 2; + public static final int NOTHING = 3; + + /* Constants for the status of an inflation. */ + public static final int NOT_SIGNIFICANT = 4; + public static final int INFLATE = 5; + public static final int FULL_INFLATE = 6; + public static final int BAD_POINT = 7; + public static final int UNKNOWN_POINT = 8; + + /* Return values of start_solve. */ + public static final int STARTED = 0; + public static final int DISCRETE_NOT_INSTANCIATED = 1; + + /* Return values of next_solution. */ + public static final int UNKNOWN = 0; + public static final int SOLUTION = 1; + public static final int SEARCH_OVER = 2; + public static final int NOT_STARTED = 3; + + /* Constants for describing a boolean domain (by an integer). */ + public static final int FALSE = 0; + public static final int TRUE = 1; + public static final int FALSE_OR_TRUE = 2; + + /* Other error codes */ + public static final int BAD_DOMAIN = -2; + public static final int NOT_BUILT = -3; + + + static { + System.loadLibrary("ibex-java"); + } + + /** + * Create a new Ibex object. + * + * An IBEX (and only one) object has to be created for each different CSP. + * The IBEX object gathers all the constraints. + * + * @param prec - An array of n double (where n is the total number of variables of the CSP). + * Each double indicates whether a variable is integral or not, and in the + * case of a real variable, the precision required. More precisely: + * + * prec[i]==-1 => the ith variable is integral. + * prec[i]>=0 => the ith variable is real and the precision is prec[i]. + * + * @preserve_rounding - Under Linux/MacOS, Ibex (if linked with Gaol) does not use the standard + * rounding mode of the FPU (round-to-nearest) but the upward rounding mode, in order + * to get better performances. If preserve_rounding is true, Ibex will activate the + * upward rounding mode at each function call (contract, etc.) and restore the default + * rounding mode in return, which is transparent from Java but which also mean a loss + * of efficiency. If set to false, the rounding mode is only activated once by the + * construtor. In this case, the rounding mode is also changed on Java side. + */ + public Ibex(double[] prec, boolean preserve_rounding) { + init(prec, preserve_rounding); + } + + /** + * Same as previous constructor with preserve_rounding=false. + * + * For backward compatibility. + */ + public Ibex(double[] prec) { + init(prec, false); + } + + /** + * Add a new constraint. + * + * Important: The "build()" method has to be called once + * all constraints are added. + * + * Example: add_ctr({0}={1}) will add the constraint x=y. + * + * @param syntax - The constraint + * + * @return + * + * true - OK (success) + * + * false - error: build() has already been called. + */ + public native boolean add_ctr(String syntax); + + /** + * Build the object (with all constraints added via add_ctr(...)) + * + * @return + * + * true - OK (success) + * + * false - error: one constraint has not been parsed successfully. + */ + public native boolean build(); + + /** + * Call the contractor associated to a constraint or its negation. + * + * We consider here the reified constraint R(b,c) : b<=>c(x_1,...,x_n). + * + * @param i - Number of the constraint (in the order of creation) + * @param bounds - The bounds of domains under the following form: + * (x1-,x1+,x2-,x2+,...,xn-,xn+), where xi- (resp. xi+) is the + * lower (resp. upper) bound of the domain of x_i. + * @param reif - Domain of the reification variable b with the following accepted values: + * FALSE, TRUE, FALSE_OR_TRUE. + * + * @param rel_eps- Threshold under which a contraction is considered as unsufficient and + * therefore ignored. + * If we denote by w_i the width of the initial domain of the ith variable + * and by w_i' the width of the contracted domain, all contractions + * will be discarded (and the return status will be NOTHING) if for all i, + * (w_i - w_i') < rel_eps * w_i. + * + * @return The status of contraction or fail/entailment test. Note that the name of the + * constant in return refers to the constraint c, not R. Hence "FAIL" means that + * no tuple satisfies c (should R be satisfiable or not). + * + * FAIL - No tuple satisfies c. If reif==FALSE, the bounds of x may have been + * impacted (the part of the domain inside c has been removed and the + * remaining part has been proven to be outside c). If reif==TRUE, the + * bounds have not been impacted but we have to consider that the domain + * has been reduced to the empty set. If reif==FALSE_OR_TRUE, bounds have + * not been impacted. + * + * ENTAILED - All the tuples satisfy the constraint. If reif==FALSE, the bounds have + * not been impacted but we have to consider that the domain has been + * reduced to the empty set. If reif==TRUE, the bounds of x may have been + * impacted (the part of the domain outside c has been removed and the + * remaining part has been proven to be inside c). If reif==FALSE_OR_TRUE, + * bounds have not been impacted. + * + * CONTRACT - This value can only be returned if reif==FALSE or reif==TRUE. At least + * one bound of x has been reduced by more than RATIO. If reif==FALSE, the + * removed part of the domain is inside c. If reif==TRUE, the removed part + * is outside. + * + * NOTHING - No bound has been significantly reduced and nothing could be proven. + * + * BAD_DOMAIN - The domain has not the expected number of dimensions. + * + * NOT_BUILT - Object not built (build() must be called before) + */ + public native int contract(int i, double bounds[], int reif, double rel_eps); + + /** + * Same as contract(int, double bounds[], int reif, double rel_eps) with reif=TRUE. + */ + public native int contract(int i, double bounds[], double rel_eps); + + /** + * Same as contract(int, double bounds[], int reif, double rel_eps) with rel_eps=RATIO. + */ + public native int contract(int i, double bounds[], int reify); + + /** + * Same as contract(int, double bounds[], int reif, double rel_eps) with reif=TRUE and rel_eps=RATIO. + */ + public native int contract(int i, double bounds[]); + + /** + * Inflate a point to a box with respect to a constraint or its negation. + * + * Given a constraint "c", we say that a point is "inside" (resp. "outside") if it satisfies + * (resp. does not satisfy) c. A box is said to be "inside"/"outside" if all its points are + * inside/outside c. + * + * This method takes an initial point "p" and an enclosing box "x". It tries to inflate p + * inside x with respect to a constraint "c" or its negation. That is, it builds a box "y", + * containing p and contained in "x": + *
+ * p ∈ y ⊆ x + *
+ * If in==TRUE, y must be inside c. Otherwise, it must be outside. + * + * @param i - Number of the constraint c (in the order of creation) + * + * @param p - The coordinates of the point to inflate: (p1,...pn) + * + * @param bounds - The bounds of the enclosing box x under the following form: + * (x1-,x1+,x2-,x2+,...,xn-,xn+), where xi- (resp. xi+) is the + * lower (resp. upper) bound of the domain of x_i. + * + * @param in - TRUE if the box has to be inflated inside c (-> inner region), + * FALSE if it has to be inflated outside c (-> forbidden region). + * + * @return The status of inflation. If in==TRUE (resp. FALSE): + * + * NOT_SIGNIFICANT - The point p has been proven to be inside (resp. outside). However, it + * could not be inflated to a "significant" box y. A box y is considered to + * be significant if, on each of its dimension, the width of the + * interval y_i is at least RATIO times the width of x_i. + * + * INFLATE - The point p has been inflated to a significant box y that is inside + * (reps. outside) the constraint. + * + * FULL_INFLATE - The whole box x has been proven to be inside (resp. outside). + * + * BAD_POINT - No inflation was possible because p has been proven to be outside (resp. + * inside). + * + * UNKWOWN_POINT - No inflation at all could be done and it could even not be decided + * whether p is inside or outside the constraint. + * + * BAD_DOMAIN - The domain has not the expected number of dimensions. + * + * NOT_BUILT - Object not built (build() must be called before) + */ + public native int inflate(int i, double p[], double bounds[], boolean in); + + /** + * Let IBEX terminates the solving process for the CSP, once all the integer + * variables have been instanciated. + * + * This function initializes the solving process. Each solution is then retrieved + * in turn via a call to next_solution(...). + * + * @param + * + * domains - the domain in which all solutions will be searched + * (include all variables, real and integer ones). + * + * @return + * + * SUCCESS _ - OK + * + * DISCRETE_NOT_INSTANCIATED - One discrete variable is not instanciated + * + * BAD_DOMAIN - The domain has not the expected number of dimensions. + * + * NOT_BUILT - Object not built (build() must be called before)) + */ + public native int start_solve(double bounds[]); + + /** + * Look up for the next solution. + * + * The first call to solution(...) in a given solving process must be preceded by a + * call to start_solve(...). + * + * domains - (output argument): array in which the solution will + * be stored (if any) + * @return + * + * SOLUTION - A certified solution has been found + * + * UNKNOWN - An uncertified solution has been found + * + * SEARCH_OVER - No more solution + * + * BAD_DOMAIN - The domain has not the expected number of dimensions. + * + * NOT_BUILT - Object not built (build() must be called before)) + */ + public native int next_solution(double sol[]); + + /** + * Free IBEX structures from memory + */ + public native void release(); + + /** + * Initialize IBEX variables. + * + * This method is automatically called by the constructor. + */ + private native void init(double[] prec, boolean preserve_rounding); + + // Internal: do not modify! + // This is a pointer to native c++ data + private long data; +}; diff --git a/src/java/ibex_Java.cpp.in b/src/java/ibex_Java.cpp.in new file mode 100644 index 000000000..d2991e2c6 --- /dev/null +++ b/src/java/ibex_Java.cpp.in @@ -0,0 +1,574 @@ +//============================================================================ +// I B E X +// File : Ibex_java.cpp.in +// Author : Gilles Chabert +// Copyright : Ecole des Mines de Nantes (France) +// License : See the LICENSE file +// Created : Jul 18, 2012 +// Last Update : Nov 02, 2017 +//============================================================================ + +#include "@JAVA_SIGNATURE@_Ibex.h" +#include "ibex_CtcCompo.h" +#include "ibex_CtcHC4.h" +#include "ibex_CtcNewton.h" +#include "ibex_CtcFwdBwd.h" +#include "ibex_CtcInteger.h" +#include "ibex_CtcNotIn.h" +#include "ibex_CtcUnion.h" +#include "ibex_CtcIdentity.h" +#include "ibex_SyntaxError.h" +#include "ibex_System.h" +#include "ibex_VarSet.h" +#include "ibex_SmearFunction.h" +#include "ibex_Solver.h" +#include "ibex_CellStack.h" + +#include +#include +#include +#include +#include + +using namespace std; +using namespace ibex; + + +namespace { + +// Restore the environement of Ibex +// (rounding mode for Gaol) +// see issue #307 (ibex-lib) +void ibex_restore() { +// note: cannot replace with if (strcmp(_IBEX_INTERVAL_LIB_,"GAOL")==0) +// because we need this at preprocessing +#ifdef __gaol__ + gaol::round_upward(); +#endif +} + +// Restore the default rounding mode for Java +// see issue #3 (ibex-java) +void java_restore() { +#ifdef __gaol__ + gaol::round_nearest(); +#endif +} + +enum { + FAIL = 0, + ENTAILED = 1, + CONTRACT = 2, + NOTHING = 3, +}; + +enum { + NOT_SIGNIFICANT = 4, + INFLATE = 5, + FULL_INFLATE = 6, + BAD_POINT = 7, + UNKNOWN_POINT = 8 +}; + +enum { + STARTED = 0, + DISCRETE_NOT_INSTANCIATED = 1 +}; + +enum { + UNKNOWN = 0, + SOLUTION = 1, + SEARCH_OVER = 2, + NOT_STARTED = 3 +}; + +enum { + FALSE_ = 0, + TRUE_ = 1, + FALSE_OR_TRUE = 2 +}; + +enum { + //SYNTAX_ERROR = -1, + BAD_DOMAIN = -2, + NOT_BUILT = -3 +}; + +class Instance { +public: + int nb_var; + BitSet params; + Vector prec; + vector ctrs_syntax; + + System* sys; // all the constraints + CtcCompo* ctc; // contractor for the system + CtcUnion* neg; // contractor for the negation + + SmearSumRelative* bis; // bisector for the solver + CellStack* stack; // cell buffer for the solver + Solver* solver; // the solver + bool preserve_rounding; + + Instance(int n, const BitSet& _params, const Vector& prec, bool preserve_rounding) : nb_var(n), params(_params), prec(prec), sys(NULL), + ctc(NULL), neg(NULL), bis(NULL), stack(NULL), solver(NULL), preserve_rounding(preserve_rounding) { + + } + + void build() { + //cout << " [ibex] new constraint:" << _syntax << " nb var=" << nb_var << " option=" << option << endl; + + if (!preserve_rounding) + ibex_restore(); // do this once for all + + stringstream s; + for (size_t i=0; i0) s << ';'; + s << ctrs_syntax[i]; + } + + sys=new System(nb_var,s.str().c_str()); // may throw SyntaxError + + Array c_out(sys->nb_ctr); + for (int i=0; inb_ctr; i++) { + c_out.set_ref(i,*new CtcFwdBwd(sys->ctrs[i])); + } + ctc = new CtcCompo(c_out); + + Array c_in(sys->nb_ctr); + for (int i=0; inb_ctr; i++) { + NumConstraint& ctr=sys->ctrs[i]; + c_in.set_ref(i,*new CtcNotIn(ctr.f,ctr.right_hand_side())); + } + neg = new CtcUnion(c_in); + + bis=new SmearSumRelative(*sys, prec); + stack=new CellStack(); + + Vector eps_max(nb_var,POS_INFINITY); + solver = new Solver(*sys, *ctc, *bis, *stack, prec, eps_max); + solver->set_params(VarSet(sys->nb_var, params, false)); + } + + IntervalVector read_box(JNIEnv *env, const jdouble* d, int size) { + + if (size!=nb_var*2) return IntervalVector::empty(nb_var); + + IntervalVector box(nb_var); + + for (int i=0; ilist.size(); i++) { + delete &ctc->list[i]; + } + delete ctc; + + for (int i=0; ilist.size(); i++) { + delete &neg->list[i]; + } + delete neg; + + delete bis; + delete stack; + delete solver; + } + + for (size_t i=0; iGetObjectClass(obj); + jfieldID _data = env->GetFieldID(clazz, "data", "J"); // J stands for "long" (64 bits) + jlong address = env->GetLongField(obj ,_data); + return (Instance*) address; +} + +// either return BAD_POINT, UNKNOWN_POINT or INFLATE (the latter case also corresponds to the NOT_SIGNIFICANT case) +jint inflate(NumConstraint& ctr, const IntervalVector& xin, IntervalVector& x, jboolean in) { + + jint result; + + Interval yin=ctr.f.eval(xin); + + if (ctr.op==EQ) { + // we check this is not a vector-valued constraint + assert(ctr.f.image_dim()==1); + // the only thing we can do is to check "p" + if (yin==Interval::zero()) result=INFLATE; + else result=UNKNOWN_POINT; + x=xin; + } else { + Interval y; + + switch (ctr.op) { + case LT: y = in? Interval(NEG_INFINITY,ibex::previous_float(0)) : Interval::pos_reals(); break; + case LEQ: y = in? Interval::neg_reals() : Interval(ibex::next_float(0),POS_INFINITY); break; + case GEQ: y = in? Interval::pos_reals() : Interval(NEG_INFINITY,ibex::previous_float(0)); break; + case GT: y = in? Interval(ibex::next_float(0),POS_INFINITY) : Interval::neg_reals(); break; + case EQ: ibex_error("inflation with equalities"); break; + } + + if (!yin.is_subset(y)) { + if ((yin & y).is_empty()) result=BAD_POINT; + else result=UNKNOWN_POINT; + x=xin; + } else { + ctr.f.ibwd(y,x,xin); + result=INFLATE; + } + } + + return result; +} + +#define EPS_CONTRACT 0.01 + +} + +JNIEXPORT void JNICALL Java_@JAVA_SIGNATURE@_Ibex_init(JNIEnv* env, jobject obj, jdoubleArray _prec, jboolean preserve_rounding) { + jint size = env->GetArrayLength(_prec); + jdouble* prec = env->GetDoubleArrayElements(_prec, 0); + + + BitSet b(size); + Vector prec_vec(size); + + for (int i=0; iGetObjectClass(obj); + jfieldID _data = env->GetFieldID(clazz, "data", "J"); + env->SetLongField(obj ,_data, (jlong) new Instance(size, b, prec_vec, preserve_rounding)); + + env->ReleaseDoubleArrayElements(_prec, prec, 0); +} + +JNIEXPORT jboolean JNICALL Java_@JAVA_SIGNATURE@_Ibex_add_1ctr(JNIEnv* env, jobject obj, jstring _syntax) { + + Instance& inst = *get_instance(env,obj); + + if (inst.sys!=NULL) return false; + + const char* syntax = env->GetStringUTFChars(_syntax, 0); + + inst.ctrs_syntax.push_back(strdup(syntax)); + + env->ReleaseStringUTFChars(_syntax, syntax); + + return true; +} + +JNIEXPORT jboolean JNICALL Java_@JAVA_SIGNATURE@_Ibex_build(JNIEnv* env, jobject obj) { + + Instance& inst = *get_instance(env,obj); + + if (inst.preserve_rounding) ibex_restore(); // required as the parser may perform interval ops + + if (inst.sys==NULL) { + try { + inst.build(); + if (inst.preserve_rounding) java_restore(); + return true; + } catch(SyntaxError&) { + if (inst.preserve_rounding) java_restore(); + return false; + } + } else { + if (inst.preserve_rounding) java_restore(); + return true; + } +} + +JNIEXPORT jint JNICALL Java_@JAVA_SIGNATURE@_Ibex_contract__I_3DID(JNIEnv* env, jobject obj, jint n, jdoubleArray _d, jint reif, jdouble rel_eps) { + + + Instance& inst = *get_instance(env,obj); + + if (inst.sys==NULL) { + return NOT_BUILT; + } + + if (inst.preserve_rounding) ibex_restore(); + + jint result = NOTHING; // by default + + jdouble* d = env->GetDoubleArrayElements(_d, 0); + IntervalVector box=inst.read_box(env,d,env->GetArrayLength(_d)); + if (box.is_empty()) { + env->ReleaseDoubleArrayElements(_d, d, 0); + if (inst.preserve_rounding) java_restore(); + return BAD_DOMAIN; + } + + IntervalVector savebox(box); + + //cout << " [ibex] contract n°" << n << " with box=" << box << endl; + if (reif==TRUE_ || reif==FALSE_OR_TRUE) { + + inst.ctc->list[n].contract(box); + + if (box.is_empty()) { + //cout << " [ibex] emtpybox --> FAILED\n"; + result=FAIL; + } + + else { + if (reif==TRUE_ && savebox.rel_distance(box) >= rel_eps) { + + //cout << " [ibex] --> CONTRACT to " << box << "\n"; + savebox = box; + result=CONTRACT; // temporary assignment (final result may be ENTAILED) + } + + //cout << " [ibex] try negation.\n"; + inst.neg->list[n].contract(box); + + if (box.is_empty()) { + //cout << " [ibex] emtpybox --> ENTAILED\n"; + result=ENTAILED; + } + else if (result==CONTRACT) { + //cout << " [ibex] nothing --> CONTRACT to " << savebox << "\n"; + inst.write_box(env,savebox,d); + } + } + } + + if (reif==FALSE_OR_TRUE) box=savebox; + + if (reif==FALSE_ || reif==FALSE_OR_TRUE) { + + inst.neg->list[n].contract(box); + + if (box.is_empty()) { + result=ENTAILED; + } else { + + if (reif==FALSE_ && savebox.rel_distance(box) >= rel_eps) { + savebox = box; + result=CONTRACT; // temporary assignment (final result may be FAIL) + } + + inst.ctc->list[n].contract(box); + + if (box.is_empty()) { + result=FAIL; + } else if (result==CONTRACT) { + inst.write_box(env,savebox,d); + } + } + } + + env->ReleaseDoubleArrayElements(_d, d, 0); + + if (inst.preserve_rounding) java_restore(); + return result; +} + +JNIEXPORT jint JNICALL Java_@JAVA_SIGNATURE@_Ibex_contract__I_3DD(JNIEnv* env, jobject obj, jint n, jdoubleArray _d, jdouble rel_eps) { + return Java_@JAVA_SIGNATURE@_Ibex_contract__I_3DID(env,obj,n,_d,1,rel_eps); +} + +JNIEXPORT jint JNICALL Java_@JAVA_SIGNATURE@_Ibex_contract__I_3DI(JNIEnv* env, jobject obj, jint n, jdoubleArray _d, jint reif) { + return Java_@JAVA_SIGNATURE@_Ibex_contract__I_3DID(env,obj,n,_d,reif,EPS_CONTRACT); +} + +JNIEXPORT jint JNICALL Java_@JAVA_SIGNATURE@_Ibex_contract__I_3D(JNIEnv* env, jobject obj, jint n, jdoubleArray _d) { + return Java_@JAVA_SIGNATURE@_Ibex_contract__I_3DID(env,obj,n,_d,1,EPS_CONTRACT); +} + +JNIEXPORT jint JNICALL Java_@JAVA_SIGNATURE@_Ibex_inflate(JNIEnv* env, jobject obj, jint n, jdoubleArray _din, jdoubleArray _d, jboolean in) { + + Instance& inst = *get_instance(env,obj); + + if (inst.sys==NULL) { + return NOT_BUILT; + } + + if (inst.preserve_rounding) ibex_restore(); + + jint result; + + jdouble* d = env->GetDoubleArrayElements(_d, 0); + IntervalVector x=inst.read_box(env,d,env->GetArrayLength(_d)); + if (x.is_empty()) { + env->ReleaseDoubleArrayElements(_d, d, 0); + if (inst.preserve_rounding) java_restore(); + return BAD_DOMAIN; + } + + jdouble* din = env->GetDoubleArrayElements(_din, NULL); + if (env->GetArrayLength(_din)!=inst.nb_var) { + env->ReleaseDoubleArrayElements(_d, d, 0); + env->ReleaseDoubleArrayElements(_din, din, 0); + if (inst.preserve_rounding) java_restore(); + return BAD_DOMAIN; + } + + IntervalVector xin(inst.nb_var); // we cannot use read_box because din is a vector (not interval) + for (int i=0; ilist[n].contract(x); + + if (x.is_empty()) + result=FULL_INFLATE; + else + result=INFLATE; // by default + + x=savebox; // result==FULL_INFLATE => savebox is entirely "inside" this constraint + + if (result!=FULL_INFLATE) { + // old note (for the case of a list of several sub-constraints): + // in principle, we could also slightly optimize the + // loop below by using the negation contractor of + // sub-constraints (to remove the inner rounding effect). + // But this would bring non significant gain since the + // result would probably not be FULL_INFLATE in this case. + result=inflate(inst.sys->ctrs[n],xin,x,in); // will "contract" x to the inflated box. + } + } else { + + // same comments as above + inst.ctc->list[n].contract(x); + + if (x.is_empty()) + result=FULL_INFLATE; + else + result=BAD_POINT; // by default + + x=savebox; + + if (result!=FULL_INFLATE) { + + result=inflate(inst.sys->ctrs[n],xin,x,in); + + } + } + + //cout << "savebox=" << savebox << " box=" << x << endl; + + if (result==INFLATE) { + if (savebox.is_subset(x)) + result=FULL_INFLATE; + else if (savebox.rel_distance(x) <= (1.0-EPS_CONTRACT)) + inst.write_box(env,x,d); + else + result=NOT_SIGNIFICANT; + } + + env->ReleaseDoubleArrayElements(_d, d, 0); + env->ReleaseDoubleArrayElements(_din, din, 0); + + if (inst.preserve_rounding) java_restore(); + return result; +} + +JNIEXPORT jint JNICALL Java_@JAVA_SIGNATURE@_Ibex_start_1solve(JNIEnv* env, jobject obj, jdoubleArray _d) { + + Instance& inst = *get_instance(env,obj); + + if (inst.sys==NULL) { + return NOT_BUILT; + } + + if (inst.preserve_rounding) ibex_restore(); + + jdouble* d = env->GetDoubleArrayElements(_d, 0); + + IntervalVector box=inst.read_box(env,d,env->GetArrayLength(_d)); + if (box.is_empty()) { + env->ReleaseDoubleArrayElements(_d, d, 0); + if (inst.preserve_rounding) java_restore(); + return BAD_DOMAIN; + } + + for (int i=0; istart(box); + + env->ReleaseDoubleArrayElements(_d, d, 0); + + if (inst.preserve_rounding) java_restore(); + return STARTED; +} + +JNIEXPORT jint JNICALL Java_@JAVA_SIGNATURE@_Ibex_next_1solution(JNIEnv* env, jobject obj, jdoubleArray _d) { + Instance& inst = *get_instance(env,obj); + + if (inst.sys==NULL) { + return NOT_BUILT; + } + + if (inst.preserve_rounding) ibex_restore(); + + jint result; + + jdouble* d = env->GetDoubleArrayElements(_d, 0); + + IntervalVector box=inst.read_box(env,d,env->GetArrayLength(_d)); + if (box.is_empty()) { + env->ReleaseDoubleArrayElements(_d, d, 0); + if (inst.preserve_rounding) java_restore(); + return BAD_DOMAIN; + } + + const IntervalVector* sol = NULL; + + CovSolverData::BoxStatus status; + + inst.solver->next(status,&sol); + + if (sol!=NULL) { + inst.write_box(env,*sol,d); + result = status==CovSolverData::UNKNOWN? UNKNOWN : SOLUTION; + } else { + result = SEARCH_OVER; + } + + env->ReleaseDoubleArrayElements(_d, d, 0); + + if (inst.preserve_rounding) java_restore(); + return result; +} + +JNIEXPORT void JNICALL Java_@JAVA_SIGNATURE@_Ibex_release(JNIEnv* env, jobject obj) { + delete get_instance(env,obj); +} diff --git a/src/loup/ibex_LoupFinderCertify.cpp b/src/loup/ibex_LoupFinderCertify.cpp index 19966e6b3..d7e87a9ff 100644 --- a/src/loup/ibex_LoupFinderCertify.cpp +++ b/src/loup/ibex_LoupFinderCertify.cpp @@ -46,7 +46,7 @@ std::pair LoupFinderCertify::find(const IntervalVector& if (pseudo_loup_found && !has_equality) return p; - // Loop while the number of active constraints is less + // Loop until the number of active constraints is less // than the number of variables (we cannot make proofs // with overconstrained sytems) @@ -70,6 +70,8 @@ std::pair LoupFinderCertify::find(const IntervalVector& } while (af->image_dim() > sys.nb_var && eps_h>min_activity_thershold); if (af->image_dim() > sys.nb_var) { ibex_warning("too many active constraints, cannot prove feasibility -> loup lost!"); + delete af; + throw NotFound(); } // ==================================================== diff --git a/src/loup/ibex_LoupFinderDefault.cpp b/src/loup/ibex_LoupFinderDefault.cpp index 65b7eb318..a59094461 100644 --- a/src/loup/ibex_LoupFinderDefault.cpp +++ b/src/loup/ibex_LoupFinderDefault.cpp @@ -13,20 +13,23 @@ #include "ibex_LoupFinderFwdBwd.h" #include "ibex_BxpLinearRelaxArgMin.h" #include "ibex_LoupFinderProbing.h" +#include "ibex_LinearizerXTaylor.h" +#include "ibex_LinearizerAbsTaylor.h" //borrar + using namespace std; namespace ibex { LoupFinderDefault::LoupFinderDefault(const System& sys, bool inHC4) : - finder_probing(inHC4? (LoupFinder&) *new LoupFinderInHC4(sys) : (LoupFinder&) *new LoupFinderFwdBwd(sys)), - finder_x_taylor(sys) { - + finder_probing(inHC4? (LoupFinder&) *new LoupFinderInHC4(sys) : (LoupFinder&) *new LoupFinderFwdBwd(sys)) { + LinearizerXTaylor* lr = new LinearizerXTaylor(sys,LinearizerXTaylor::RESTRICT,LinearizerXTaylor::RANDOM); + finder_x_taylor = new LoupFinderIP(sys,lr); } void LoupFinderDefault::add_property(const IntervalVector& init_box, BoxProperties& prop) { finder_probing.add_property(init_box,prop); - finder_x_taylor.add_property(init_box,prop); + finder_x_taylor->add_property(init_box,prop); //-------------------------------------------------------------------------- /* Using line search from LP relaxation minimizer seems not interesting. */ @@ -51,7 +54,7 @@ std::pair LoupFinderDefault::find(const IntervalVector& try { // TODO // in_x_taylor.set_inactive_ctr(entailed->norm_entailed); - p=finder_x_taylor.find(box,p.first,p.second,prop); + p=finder_x_taylor->find(box,p.first,p.second); found=true; } catch(NotFound&) { } @@ -65,7 +68,7 @@ std::pair LoupFinderDefault::find(const IntervalVector& if (argmin && argmin->argmin()) { Vector loup_point = p.first.lb(); double loup = p.second; - LoupFinderProbing(finder_x_taylor.sys).dichotomic_line_search(loup_point, loup, *argmin->argmin(), false); + LoupFinderProbing(finder_x_taylor->sys).dichotomic_line_search(loup_point, loup, *argmin->argmin(), false); //cout << "better loup found! " << loup << endl; p=make_pair(loup_point,loup); } diff --git a/src/loup/ibex_LoupFinderDefault.h b/src/loup/ibex_LoupFinderDefault.h index c1c3f201c..45d579828 100644 --- a/src/loup/ibex_LoupFinderDefault.h +++ b/src/loup/ibex_LoupFinderDefault.h @@ -12,7 +12,8 @@ #include "ibex_LoupFinder.h" #include "ibex_System.h" -#include "ibex_LoupFinderXTaylor.h" +#include "ibex_LoupFinderIterative.h" +#include "ibex_LoupFinderIP.h" namespace ibex { @@ -79,9 +80,9 @@ class LoupFinderDefault : public LoupFinder { LoupFinder& finder_probing; /** - * Loup finder using inner polytopes. - */ - LoupFinderXTaylor finder_x_taylor; + * Loup finder using inner polytopes, which uses the XTaylor linearization. + */ + LoupFinderIP* finder_x_taylor; }; inline std::pair LoupFinderDefault::find(const IntervalVector& box, const IntervalVector& loup_point, double loup) { diff --git a/src/loup/ibex_LoupFinderIP.cpp b/src/loup/ibex_LoupFinderIP.cpp new file mode 100644 index 000000000..f72d7fe15 --- /dev/null +++ b/src/loup/ibex_LoupFinderIP.cpp @@ -0,0 +1,81 @@ +/* ============================================================================ + * I B E X - Inner Polytope loup finder + * ============================================================================ + * + * Author(s) : Ignacio Araya, Victor Reyes + * Created : April 2021 + * Updated : April 2021 + * ---------------------------------------------------------------------------- */ + +#include "ibex_LoupFinderIP.h" +#include +#include + +using namespace std; + +namespace ibex { + +//TODO: remove this recipe for the argument of the max number of iterations of the LP solver +LoupFinderIP::LoupFinderIP(const System& sys, Linearizer* lr) : sys(sys), lp_solver((dynamic_cast(lr))? sys.nb_var:(2*sys.nb_var)),lr(lr) { + lp_solver.set_max_iter(std::min(sys.nb_var*3, int(LPSolver::default_max_iter))); + +} + +void LoupFinderIP::add_property(const IntervalVector& init_box, BoxProperties& prop) { + lr->add_property(init_box,prop); +} + +std::pair LoupFinderIP::find(const IntervalVector& box, const IntervalVector&, double current_loup, BoxProperties& prop) { + + + int n=sys.nb_var; + + if (box.is_unbounded()) + throw NotFound(); + + lp_solver.clear_constraints(); + + IntervalVector ig=sys.goal->gradient(box.mid()); + if (ig.is_empty()) // unfortunately, at the midpoint the function is not differentiable + throw NotFound(); // not a big deal: wait for another box... + + Vector g=ig.mid(); + + // set the objective coefficient + // TODO: replace with lp_solver.set_cost(g) when implemented + for (int j=0; jlinearize(box,lp_solver,prop); + + if (count==-1) { + lp_solver.clear_constraints(); + throw NotFound(); + } + LPSolver::Status stat = lp_solver.minimize(); + + if (stat == LPSolver::Status::Optimal) { + //the linear solution is mapped to intervals and evaluated + Vector loup_point = lp_solver.not_proved_primal_sol(); + loup_point.resize(box.size()); //for abstaylor + // we allow a loup to be outside of the current box, but + // not outside of the system box. + // To deal with the latter case, we apply the following + // simple change to the loup point (which would be lost anyway) + + for (uint i=0; i sys.box[i].ub()) loup_point[i] = sys.box[i].ub(); + } + + double new_loup=current_loup; + + if (check(sys,loup_point,new_loup,false)) { + return std::make_pair(loup_point,new_loup); + } + } + + throw NotFound(); +} + +} /* namespace ibex */ diff --git a/src/loup/ibex_LoupFinderXTaylor.h b/src/loup/ibex_LoupFinderIP.h similarity index 59% rename from src/loup/ibex_LoupFinderXTaylor.h rename to src/loup/ibex_LoupFinderIP.h index d7c45d4d0..e3c986054 100644 --- a/src/loup/ibex_LoupFinderXTaylor.h +++ b/src/loup/ibex_LoupFinderIP.h @@ -1,43 +1,38 @@ -//============================================================================ -// I B E X -// File : ibex_LoupFinderXTaylor.h -// Author : Gilles Chabert, Ignacio Araya, Bertrand Neveu -// Copyright : IMT Atlantique (France) -// License : See the LICENSE file -// Created : Jul 12, 2012 -// Last Update : Jul 09, 2017 -//============================================================================ - -#ifndef __IBEX_LOUP_FINDER_X_TAYLOR_H__ -#define __IBEX_LOUP_FINDER_X_TAYLOR_H__ + +#ifndef __IBEX_LOUP_FINDER_IP_H__ +#define __IBEX_LOUP_FINDER_IP_H__ #include "ibex_LinearizerXTaylor.h" +#include "ibex_LinearizerAbsTaylor.h" + + #include "ibex_LoupFinder.h" #include "ibex_LPSolver.h" namespace ibex { /** - * \ingroup optim * - * \brief Upper-bounding algorithm based on XTaylor restriction. + * \brief Upper-bounding algorithm based on finding inner feasible polytopes. * * The algorithm builds an inner (feasible) polytope inside the - * current box (see #LinearizerXTaylor) and then minimizes a + * current box (see #LinearizerXTaylor and #LinearizerAbsTaylor) and then minimizes a * linear approximation of the goal function on this polytope via * a LP solver. The resulting point is verified a posteriori to * be feasible (wrt nonlinear constraint) and a new "loup". * * \note Only works with inequality constraints. */ -class LoupFinderXTaylor : public LoupFinder { +class LoupFinderIP : public LoupFinder { + public: /** * \brief Create the algorithm for a given system. * * \param sys - The NLP problem. + * \param lr - The linearization method. */ - LoupFinderXTaylor(const System& sys); + LoupFinderIP(const System& sys, Linearizer* lr); /** * \brief Find a new loup in a given box. @@ -57,34 +52,27 @@ class LoupFinderXTaylor : public LoupFinder { * \brief Add properties required by this loup finder. */ virtual void add_property(const IntervalVector& init_box, BoxProperties& prop); - /** * \brief The NLP problem. */ const System& sys; +private: protected: - /** Linearization technique. */ - LinearizerXTaylor lr; + Linearizer* lr; /** linear solver */ LPSolver lp_solver; - - /** Miscellaneous for statistics */ -// int nb_simplex; -// double diam_simplex; }; /*============================================ inline implementation ============================================ */ -inline std::pair LoupFinderXTaylor::find(const IntervalVector& box, const IntervalVector& loup_point, double loup) { +inline std::pair LoupFinderIP::find(const IntervalVector& box, const IntervalVector& loup_point, double loup) { BoxProperties prop(box); return find(box, loup_point, loup, prop); } } /* namespace ibex */ - - -#endif /* __IBEX_LOUP_FINDER_X_TAYLOR_H__ */ +#endif /* __IBEX_LOUP_FINDER_IP_H__ */ diff --git a/src/loup/ibex_LoupFinderIterative.cpp b/src/loup/ibex_LoupFinderIterative.cpp new file mode 100644 index 000000000..30aaa6466 --- /dev/null +++ b/src/loup/ibex_LoupFinderIterative.cpp @@ -0,0 +1,110 @@ +/* ============================================================================ + * I B E X - Iterative loup finder + * ============================================================================ + * + * Author(s) : Ignacio Araya, Victor Reyes + * Created : May 2021 + * Updated : May 2021 + * ---------------------------------------------------------------------------- */ + +#include "ibex_LoupFinderIterative.h" + +using namespace std; + +namespace ibex { + + +LoupFinderIterative::LoupFinderIterative(const System& sys,const IntervalVector& initial_box,std::vector loup_finders,double alpha,int max_iter,double prec) : + initial_box(initial_box),alpha(alpha),sys(sys),max_iter(max_iter),prec(prec),trace(false),loup_finders(loup_finders) { + + if (loup_finders.size() == 0) get_default_finders(LoupFinderIterative::loup_finders); +} + +void LoupFinderIterative::get_default_finders(std::vector & loup_finders){ + LinearizerXTaylor* lr = new LinearizerXTaylor(sys,LinearizerXTaylor::RESTRICT,LinearizerXTaylor::RANDOM); + LinearizerAbsTaylor* lr2 = new LinearizerAbsTaylor(sys); + LoupFinderIP* finder_ip_abst = new LoupFinderIP(sys,lr2); LoupFinderIP* finder_ip_xt = new LoupFinderIP(sys,lr); + loup_finders.push_back(finder_ip_abst); loup_finders.push_back(finder_ip_xt); +} + + +void LoupFinderIterative::reduce_and_move(IntervalVector& box_aux, Vector old_exp){ + for (int i = 0 ; i < box_aux.size() ; i++){ + if ((old_exp[i]-(alpha)*box_aux[i].diam()/2>=initial_box[i].lb()) && (old_exp[i]+(alpha)*box_aux[i].diam()/2<=initial_box[i].ub())) + box_aux[i] = Interval(old_exp[i]-(alpha)*box_aux[i].diam()/2,old_exp[i]+(alpha)*box_aux[i].diam()/2); + else if ((old_exp[i]-(alpha)*box_aux[i].diam()/2>=initial_box[i].lb()) && (old_exp[i]+(alpha)*box_aux[i].diam()/2>initial_box[i].ub())) + box_aux[i] = Interval(old_exp[i]-(alpha)*box_aux[i].diam()/2,initial_box[i].ub()); + else if ((old_exp[i]-(alpha)*box_aux[i].diam()/2initial_box[i].ub())) + box_aux[i] = Interval(initial_box[i].lb(),initial_box[i].ub()); + } +} + +void LoupFinderIterative::print_ub(std::pair p){ + cout << "The point : "; + cout << p.first.ub() << endl; + cout << "corresponds to an upperbound of the problem with a cost of "; + cout << p.second << endl << endl; +} + +std::pair LoupFinderIterative::find(const IntervalVector& box, const IntervalVector& old_point, double old_loup) { + + pair p=make_pair(old_point, old_loup); + + bool found=false; + pair new_ub = p; + pair old_ub = p; + bool flag = true; + + for (int i = 0 ; i < loup_finders.size() ; i++){ + try{ + pair new_ub=loup_finders[i]->find(box,old_point,p.second); + if(new_ub.second < p.second){ + found = true; + p = new_ub; + if (trace) print_ub(p); + } + else throw NotFound(); + } catch(NotFound&) { } + } + + if (!found){ + throw NotFound(); + } + IntervalVector box_aux(box.size()); + box_aux = box; + int nb_iter = 0; + while ((old_ub.second-p.second > prec) || (flag)){ + if (old_ub.second-p.second < prec) flag = false; + else flag = true; + + Vector old_exp = p.first.mid(); + reduce_and_move(box_aux,old_exp); + old_ub = p; + + try { + new_ub=loup_finders[0]->find(box_aux,p.first,p.second); + if(new_ub.second < p.second){ + p = new_ub; + if (trace) print_ub(p); + } + } catch(NotFound&) {} + + nb_iter++; + if (nb_iter >= max_iter) + break; + } + if (found){ + return p; + } + else + throw NotFound(); +} + + +LoupFinderIterative::~LoupFinderIterative() { + +} + +} /* namespace ibex */ diff --git a/src/loup/ibex_LoupFinderIterative.h b/src/loup/ibex_LoupFinderIterative.h new file mode 100644 index 000000000..fa18f934e --- /dev/null +++ b/src/loup/ibex_LoupFinderIterative.h @@ -0,0 +1,101 @@ +/* ============================================================================ + * I B E X - Iterative loup finder + * ============================================================================ + * + * Author(s) : Ignacio Araya, Victor Reyes + * Created : May 2021 + * Updated : May 2021 + * ---------------------------------------------------------------------------- */ + + +#ifndef __IBEX_LOUP_FINDER_ITERATIVE_H__ +#define __IBEX_LOUP_FINDER_ITERATIVE_H__ + +#include "ibex_LoupFinder.h" +#include "ibex_System.h" +#include "ibex_LoupFinderIP.h" +#include "ibex_Vector.h" + +namespace ibex { + +class LoupFinderIterative : public LoupFinder { + + /** + * \ingroup optim + * + * \brief An iterative algorithm based on XTaylor and/or AbsTaylor. + * + * The algorithm builds an inner (feasible) polytope inside the + * current box by using either AbsTaylor or XTaylor; and then minimizes a + * linear approximation of the goal function on this polytope via + * a LP solver. If the algorithm success, then it construct a new box (inside the + * search space), continuing the search of better upperbounds. + * + * For more details check the paper: Reyes, V., & Araya, I. (2021). AbsTaylor: upper + * bounding with inner regions in nonlinear continuous global optimization problems. + */ + +public: + + /** + * \brief Create the algorithm for a given system. + * + * \param sys - The NLP problem. + * \param initial_box - The initial search space. + * \param loup_finder - List of loup finders. The complete list is used to find a first loup. Then + * the first element of the list is used during the iteration process. + * \param alpha - parameter to reduce the box + * \param max_iter - maximum number of iterations + * \param prec - the precision of the algorithm + */ + + LoupFinderIterative(const System& sys, const IntervalVector& initial_box,std::vector loup_finders=std::vector(0), double alpha=0.9,int max_iter=10, double prec=1e-3); + + /** + * \brief Delete this. + */ + virtual ~LoupFinderIterative(); + + /** + * \brief Find a new loup in a given box and the neighborhood by using + * a LoupFinder (e.g. AbsTaylor/XTaylor). + */ + virtual std::pair find(const IntervalVector& box, const IntervalVector& loup_point, double loup); + /** + * \brief To use for checking the progress of the upperbounds + */ + void set_trace(bool trace){this->trace = trace;} + /** + * \brief For printing the ub, in case the trace function is active + */ + void print_ub(std::pair p); + /** + * \brief Changes the size and position of the current search box. Always inside + * the root box. + */ + void reduce_and_move(IntervalVector& box_aux, Vector old_exp); + /* + * \brief This function constructs the list of the "default" loop finders. + */ + void get_default_finders(std::vector & loup_finders); + /**The system**/ + const System& sys; +private: + + /**LoupFinder IP - AbsTaylor/XTaylor**/ + std::vector loup_finders; + /**The initial box (search space)**/ + const IntervalVector& initial_box; + /**User parameter for convergence purposes**/ + double alpha; + /*maximum number of iterations*/ + int max_iter; + /*the precision */ + double prec; + /*trace, just for testing & example purposes*/ + bool trace; +}; + +} /* namespace ibex */ + +#endif /* __IBEX_LOUP_FINDER_ITERATIVE_H__ */ diff --git a/src/loup/ibex_LoupFinderXTaylor.cpp b/src/loup/ibex_LoupFinderXTaylor.cpp deleted file mode 100644 index 5c4faeddd..000000000 --- a/src/loup/ibex_LoupFinderXTaylor.cpp +++ /dev/null @@ -1,75 +0,0 @@ - //============================================================================ -// I B E X -// File : ibex_LoupFinderXTaylor.cpp -// Author : Gilles Chabert, Ignacio Araya, Bertrand Neveu -// Copyright : IMT Atlantique (France) -// License : See the LICENSE file -// Created : Jul 12, 2012 -// Last Update : Jul 09, 2017 -//============================================================================ - -#include "ibex_LoupFinderXTaylor.h" - -using namespace std; - -namespace ibex { - -//TODO: remove this recipe for the argument of the max number of iterations of the LP solver -LoupFinderXTaylor::LoupFinderXTaylor(const System& sys) : sys(sys), lr(sys,LinearizerXTaylor::RESTRICT,LinearizerXTaylor::RANDOM), lp_solver(sys.nb_var) { - lp_solver.set_max_iter(std::min(sys.nb_var*3, int(LPSolver::default_max_iter))); -// nb_simplex=0; -// diam_simplex=0; -} - -void LoupFinderXTaylor::add_property(const IntervalVector& init_box, BoxProperties& prop) { - lr.add_property(init_box,prop); -} - -std::pair LoupFinderXTaylor::find(const IntervalVector& box, const IntervalVector&, double current_loup, BoxProperties& prop) { - - int n=sys.nb_var; - - if (box.is_unbounded()) - throw NotFound(); - - lp_solver.clear_constraints(); - lp_solver.set_bounds(box); - - IntervalVector ig=sys.goal->gradient(box.mid()); - if (ig.is_empty()) // unfortunately, at the midpoint the function is not differentiable - throw NotFound(); // not a big deal: wait for another box... - - Vector g=ig.mid(); - - // set the objective coefficient - // TODO: replace with lp_solver.set_cost(g) when implemented - for (int j=0; j + +using namespace std; + +namespace ibex { + +namespace { + class Unsatisfiability : public Exception { }; + class NoExpansionPoint : public Exception { }; +} + +LinearizerAbsTaylor::LinearizerAbsTaylor(const System& _sys, point_policy point): + Linearizer(_sys.nb_var), sys(_sys), + m(sys.f_ctrs.image_dim()), goal_ctr(-1 /*tmp*/), + lp_solver(NULL), point(point) { + + if (dynamic_cast(&sys)) { + ((int&) goal_ctr)=((const ExtendedSystem&) sys).goal_ctr(); + } + +} + +LinearizerAbsTaylor::~LinearizerAbsTaylor() { + +} + +int LinearizerAbsTaylor::linearize(const IntervalVector& box, LPSolver& _lp_solver) { + lp_solver = &_lp_solver; + IntervalVector box2(n*2); + for(int i=0;iset_bounds(box2); + return linear_restrict(box); +} + +int LinearizerAbsTaylor::linear_restrict(const IntervalVector& box) { + + // expansion point + Vector exp_point(box.size()); + if (point == MID) + exp_point = box.mid(); + else if (point == RANDOM){ + for (int i = 0 ; i < box.size() ; i++) + exp_point[i] = RNG::rand(box[i].lb(),box[i].ub()); + } + + BitSet active=sys.active_ctrs(box); + if (active.empty()) return 0; + + try { + + IntervalMatrix J=sys.f_ctrs.jacobian(box,active); + //IntervalMatrix J=sys.active_ctrs_jacobian(box); // --> better with SystemBox + + if (J.is_empty()) return -1; // note: no way to inform that the box is actually infeasible + + IntervalVector g_mid(sys.f_ctrs.eval_vector(exp_point,active)); + if (g_mid.is_empty()) return -1; + + // total number of added constraint + // may be less than active.size() if + // a constraint was not detected as inactive + int count=0; + int c; // constraint number + + for (int i=0; iadd_constraint(a, LEQ, -exp_point[i] ); + lp_solver->add_constraint(a2, LEQ, exp_point[i] ); + count +=2; + } + + return count; + } catch(NoExpansionPoint&) { + return -1; + } + +} + + +int LinearizerAbsTaylor::linearize_leq_mid(const IntervalVector& box, const Vector& point, const IntervalVector& dg_box, const Interval& g_mid) { + Vector a(2*n); // vector of coefficients + + // ========= compute matrix of coefficients =========== + // Fix each coefficient to the lower/upper bound of the + // constraint gradient, depending on the position of the + // corresponding component of the corner and the + // linearization mode. + for (int j=0; jtolerance(); + + double b = rhs.lb() ; + + // may throw Unsatisfiability and LPException + return check_and_add_constraint(box,a,b); +} + +int LinearizerAbsTaylor::check_and_add_constraint(const IntervalVector& box, const Vector& a, double b) { + + Interval ax=a*box; // for fast (in)feasibility check + + // ======= Quick (in)feasibility checks + // a*[x] <= rhs ? + if (ax.lb()>b) + // the constraint is not satisfied + throw Unsatisfiability(); + else if (ax.ub()<=b) { + // the (linear) constraint is satisfied for any point in the box + return 0; + } else { + //cout << "add constraint " << a << "*x<=" << b << endl; + lp_solver->add_constraint(a, LEQ, b); + return 1; + } +} + +} // end namespace diff --git a/src/numeric/ibex_LinearizerAbsTaylor.h b/src/numeric/ibex_LinearizerAbsTaylor.h new file mode 100644 index 000000000..7cd4009fd --- /dev/null +++ b/src/numeric/ibex_LinearizerAbsTaylor.h @@ -0,0 +1,107 @@ +/* ============================================================================ + * I B E X - AbsTaylor linearizer + * ============================================================================ + * + * Author(s) : Ignacio Araya, Victor Reyes + * Created : May 2021 + * Updated : May 2021 + * ---------------------------------------------------------------------------- */ + +#ifndef __IBEX_LINEARIZER_ABS_TAYLOR__ +#define __IBEX_LINEARIZER_ABS_TAYLOR__ + +#include "ibex_Linearizer.h" +#include "ibex_System.h" + + +namespace ibex { + +/** + * \ingroup numeric + * + * \brief AbsTaylor linearization technique. + * + * This class is an implementation of the AbsTaylor algorithm + * + * \see Reyes, V., & Araya, I. (2021). AbsTaylor: upper + * bounding with inner regions in nonlinear continuous global optimization problems. + * Journal of Global Optimization, 79(2), 413-429. + * + */ +class LinearizerAbsTaylor : public Linearizer { + +public: + /** + * \brief Policy for selecting the expansion point. + * + * - MID - The mid point of the box + * - RANDOM - A random point inside the box + */ + typedef enum {MID, RANDOM} point_policy; + /** + * \brief Creates the X_Taylor linearizer. + * + * \param sys - The system (extended or not). + */ + LinearizerAbsTaylor(const System& sys, point_policy = MID); + + /** + * \brief Deletes this. + */ + ~LinearizerAbsTaylor(); + + /** + * \brief Generation of the linear inequalities + * + * \param box - The current box + * \param lp_solver - The linear solver. + */ + virtual int linearize(const IntervalVector& box, LPSolver& lp_solver); + +private: + + /** + * \brief Linearization (RESTRICT mode) + */ + int linear_restrict(const IntervalVector& box); + + /** + * \brief Linearize a constraint g(x)<=0 inside a box, from the midpoint. + * + * \param dg_box: dg([box]) + * \param g_mid: g(mid) + */ + int linearize_leq_mid(const IntervalVector& box, const Vector& point, const IntervalVector& dg_box, const Interval& g_mid); + + /** + * \brief Add the constraint ax<=b in the LP solver. + */ + int check_and_add_constraint(const IntervalVector& box, const Vector& a, double b); + + /** + * \brief The system + */ + const System& sys; + + /** + * \brief Number of (real-valued) constraints + */ + int m; + + /** + * \brief Goal constraint (in case of extended system, -1 otherwise). + */ + const int goal_ctr; + /** + * Current LP solver + */ + LPSolver* lp_solver; + /* + * Point policy + */ + point_policy point; +}; + +} // end namespace ibex + +#endif /* __IBEX_LINEARIZER_ABS_TAYLOR__ */ diff --git a/src/numeric/ibex_LinearizerXTaylor.cpp b/src/numeric/ibex_LinearizerXTaylor.cpp index 11a19bdac..f540c6772 100644 --- a/src/numeric/ibex_LinearizerXTaylor.cpp +++ b/src/numeric/ibex_LinearizerXTaylor.cpp @@ -78,7 +78,7 @@ int LinearizerXTaylor::linearize(const IntervalVector& box, LPSolver& _lp_solver int LinearizerXTaylor::linearize(const IntervalVector& box, LPSolver& _lp_solver, BoxProperties& prop) { lp_solver = &_lp_solver; - + lp_solver->set_bounds(box); // ========= get active constraints =========== BitSet* active; diff --git a/src/optim/ibex_DefaultOptimizerConfig.cpp b/src/optim/ibex_DefaultOptimizerConfig.cpp index 3fb10f505..1433701cb 100644 --- a/src/optim/ibex_DefaultOptimizerConfig.cpp +++ b/src/optim/ibex_DefaultOptimizerConfig.cpp @@ -54,7 +54,7 @@ DefaultOptimizerConfig::DefaultOptimizerConfig(const System& sys) : sys(sys), kk // note:deprecated. DefaultOptimizerConfig::DefaultOptimizerConfig(const System& sys, double rel_eps_f, double abs_eps_f, double eps_h, bool rigor, bool inHC4, bool kkt, - double random_seed, double eps_x) : sys(sys) { + double random_seed, const Vector& eps_x) : sys(sys) { set_rel_eps_f(rel_eps_f); set_abs_eps_f(abs_eps_f); @@ -180,9 +180,23 @@ Bsc& DefaultOptimizerConfig::get_bsc() { if (found(BSC_TAG)) // in practice, get_bsc() is only called once by Optimizer. return get(BSC_TAG); + ExtendedSystem& ext_sys=get_ext_sys(); + + const Vector& eps_x=get_eps_x(); + Vector eps_x_extended(ext_sys.nb_var); + + if (eps_x.size()==1) // not initialized + ext_sys.write_ext_vec(Vector(sys.nb_var,eps_x[0]), eps_x_extended); + else + ext_sys.write_ext_vec(eps_x, eps_x_extended); + + // TODO: should the following value be set to "abs_eps_f" instead? + // This question is probably related to the discussion #400 + eps_x_extended[ext_sys.goal_var()] = OptimizerConfig::default_eps_x; + return rec(new LSmear( - get_ext_sys(),eps_x, - rec(new OptimLargestFirst(get_ext_sys().goal_var(),true,eps_x,default_bisect_ratio))), + ext_sys, eps_x_extended, + rec(new OptimLargestFirst(ext_sys.goal_var(),true, eps_x_extended, default_bisect_ratio))), BSC_TAG); } diff --git a/src/optim/ibex_DefaultOptimizerConfig.h b/src/optim/ibex_DefaultOptimizerConfig.h index 6de81ab0f..3947a3373 100644 --- a/src/optim/ibex_DefaultOptimizerConfig.h +++ b/src/optim/ibex_DefaultOptimizerConfig.h @@ -42,7 +42,7 @@ class DefaultOptimizerConfig : public OptimizerConfig, protected Memory { */ DefaultOptimizerConfig( const System& sys, double rel_eps_f, double abs_eps_f, double eps_h, bool rigor, bool inHC4, bool kkt, - double random_seed, double eps_x); + double random_seed, const Vector& eps_x); /** * \brief Delete this. diff --git a/src/optim/ibex_Optimizer.cpp b/src/optim/ibex_Optimizer.cpp index f0f1b7b60..674217925 100644 --- a/src/optim/ibex_Optimizer.cpp +++ b/src/optim/ibex_Optimizer.cpp @@ -46,7 +46,7 @@ Optimizer::Optimizer(int n, Ctc& ctc, Bsc& bsc, LoupFinder& finder, int goal_var, double eps_x, double rel_eps_f, double abs_eps_f) : n(n), goal_var(goal_var), ctc(ctc), bsc(bsc), loup_finder(finder), buffer(buffer), - eps_x(eps_x), rel_eps_f(rel_eps_f), abs_eps_f(abs_eps_f), + eps_x(n, eps_x), rel_eps_f(rel_eps_f), abs_eps_f(abs_eps_f), trace(0), timeout(-1), extended_COV(true), anticipated_upper_bounding(true), status(SUCCESS), uplo(NEG_INFINITY), uplo_of_epsboxes(POS_INFINITY), loup(POS_INFINITY), @@ -270,10 +270,10 @@ void Optimizer::contract_and_bound(Cell& c) { // Note: there are three different cases of "epsilon" box, // - NoBisectableVariableException raised by the bisector (---> see optimize(...)) which // is independent from the optimizer - // - the width of the box is less than the precision given to the optimizer ("prec" for the original variables - // and "goal_abs_prec" for the goal variable) - // - the extended box has no bisectable domains (if prec=0 or <1 ulp) - if ((tmp_box.max_diam()<=eps_x && y.diam() <=abs_eps_f) || !c.box.is_bisectable()) { + // - the width of the box is less than the precision given to the optimizer ("eps_x" for + // the original variables and "abs_eps_f" for the goal variable) + // - the extended box has no bisectable domains (if eps_x=0 or <1 ulp) + if (((tmp_box.diam()-eps_x).max()<=0 && y.diam() <=abs_eps_f) || !c.box.is_bisectable()) { update_uplo_of_epsboxes(y.lb()); c.box.set_empty(); return; diff --git a/src/optim/ibex_Optimizer.h b/src/optim/ibex_Optimizer.h index 47eb8a518..67eee82a0 100644 --- a/src/optim/ibex_Optimizer.h +++ b/src/optim/ibex_Optimizer.h @@ -259,8 +259,10 @@ class Optimizer { */ CellBufferOptim& buffer; - /** Precision (bisection control) */ - const double eps_x; + /** Precision on variables (bisection control). + * Vector of size n. The goal variable precision + * is controlled #via abs_eps_f. */ + const Vector eps_x; /** Relative precision on the objective */ const double rel_eps_f; diff --git a/src/optim/ibex_Optimizer04Config.cpp b/src/optim/ibex_Optimizer04Config.cpp index fb92bf29a..505e8ad47 100644 --- a/src/optim/ibex_Optimizer04Config.cpp +++ b/src/optim/ibex_Optimizer04Config.cpp @@ -17,6 +17,7 @@ #include "ibex_CtcNewton.h" #include "ibex_CtcFixPoint.h" #include "ibex_CtcKuhnTucker.h" +#include "ibex_Exception.h" #include "ibex_OptimLargestFirst.h" #include "ibex_RoundRobin.h" #include "ibex_SmearFunction.h" @@ -24,21 +25,12 @@ #include "ibex_Random.h" #include "ibex_NormalizedSystem.h" #include "ibex_LinearizerXTaylor.h" -#include "ibex_LinearizerCompo.h" #include "ibex_CellHeap.h" #include "ibex_CellDoubleHeap.h" #include "ibex_CellBeamSearch.h" #include "ibex_LoupFinderDefault.h" #include "ibex_SyntaxError.h" -#ifdef _IBEX_WITH_AFFINE_ -#include "ibex_LinearizerAffine2.h" -#endif - -#ifdef _IBEX_WITH_AMPL_ -#include "ibex_AmplInterface.h" -#endif - #include #include @@ -52,20 +44,16 @@ Optimizer04Config::Optimizer04Config(int argc, char** argv) { if (argc<8) { ibex_error("usage: optimizer04 filename filtering linear_relaxation bisection strategy [beamsize] prec goal_prec timelimit randomseed"); } -#ifdef _IBEX_WITH_AMPL_ - std::size_t found = string(argv[1]).find(".nl"); - if (found!=std::string::npos) { - AmplInterface interface (argv[1]); - sys = &rec(new System(interface)); - } else - sys = &rec(new System(argv[1])); -#else - sys = &rec(new System(argv[1])); -#endif + + load_sys(argv[1]); + } catch(SyntaxError& e) { ibex_error(e.msg.c_str()); } +// if (simpl_level) +// sys->set_simplification_level(simpl_level.Get()); + filtering = argv[2]; linearrelaxation = argv[3]; bisection = argv[4]; @@ -97,7 +85,7 @@ Optimizer04Config::Optimizer04Config(int argc, char** argv) { cout << " randomseed " << randomseed << endl; */ - set_eps_x(prec); + set_eps_x(Vector(sys->nb_var,prec)); set_rel_eps_f(goalprec); set_abs_eps_f(goalprec); @@ -114,33 +102,31 @@ unsigned int Optimizer04Config::nb_var() { return sys->nb_var; } +void Optimizer04Config::load_sys(const char* filename) { + std::size_t found = string(filename).find(".nl"); + + if (found!=std::string::npos) { + cerr << "\n\033[31mAMPL files can only be read with optimizer04 (ibex-opt-extra package).\n\n"; + exit(0); + } else + sys = &rec(new System(filename)); +} Linearizer* Optimizer04Config::get_linear_relax() { Linearizer* lr; if (linearrelaxation=="art") -#ifdef _IBEX_WITH_AFFINE_ - lr = &rec(new LinearizerAffine2(*ext_sys)); -#else - ibex_error("[Optimizer04Config]: ART mode requires \"--with-affine\" option"); -#endif + ibex_error("[Optimizer04Config]: ART mode available only in ibex-affine package\n"); else if (linearrelaxation=="compo") -#ifdef _IBEX_WITH_AFFINE_ - lr = &rec(new LinearizerCompo( - rec(new LinearizerXTaylor(*ext_sys)), - rec(new LinearizerAffine2(*ext_sys)))); -#else - ibex_error("[Optimizer04Config]: COMPO mode requires \"--with-affine\" option"); -#endif + ibex_error("[Optimizer04Config]: COMPO mode available only in ibex-affine package\n"); else if (linearrelaxation=="xn") lr = &rec(new LinearizerXTaylor(*ext_sys)); -/* else { + /* else { stringstream ss; ss << "[optimizer04] " << linearrelaxation << " is not an implemented relaxation mode "; ibex_error(ss.str().c_str()); } */ - return lr; } @@ -207,7 +193,18 @@ Ctc& Optimizer04Config::get_ctc() { Bsc& Optimizer04Config::get_bsc() { Bsc* bs; - double prec = get_eps_x(); + const Vector& eps_x=get_eps_x(); + Vector prec(ext_sys->nb_var); + + if (eps_x.size()==1) // not really initialized + ext_sys->write_ext_vec(Vector(ext_sys->nb_var,eps_x[0]), prec); + else + ext_sys->write_ext_vec(eps_x, prec); + + // TODO: should the following value be set to "abs_eps_f" instead? + // This question is probably related to the discussion #400 + prec[ext_sys->goal_var()] = OptimizerConfig::default_eps_x; + if (bisection=="roundrobin") bs = &rec(new RoundRobin (prec,0.5)); diff --git a/src/optim/ibex_Optimizer04Config.h b/src/optim/ibex_Optimizer04Config.h index a3068d1e2..c5df0d208 100644 --- a/src/optim/ibex_Optimizer04Config.h +++ b/src/optim/ibex_Optimizer04Config.h @@ -5,7 +5,7 @@ // Copyright : IMT Atlantique (France) // License : See the LICENSE file // Created : Dec 11, 2014 -// Last Update : Oct 14, 2019 +// Last Update : Dec 04, 2020 //============================================================================ #ifndef __IBEX_OPTIMIZER_04_CONFIG_ @@ -13,6 +13,7 @@ #include "ibex_OptimizerConfig.h" #include "ibex_OptimMemory.h" +#include "ibex_Linearizer.h" #include "ibex_ExtendedSystem.h" namespace ibex { @@ -32,12 +33,16 @@ class Optimizer04Config : public OptimizerConfig, protected Memory { protected: // ============================================================================ + virtual void load_sys(const char* filename); + virtual unsigned int nb_var(); virtual Ctc& get_ctc(); virtual Bsc& get_bsc(); + virtual Linearizer* get_linear_relax(); + virtual LoupFinder& get_loup_finder(); virtual CellBufferOptim& get_cell_buffer(); @@ -45,7 +50,6 @@ class Optimizer04Config : public OptimizerConfig, protected Memory { virtual int goal_var(); // ============================================================================ - Linearizer* get_linear_relax(); NormalizedSystem *norm_sys; ExtendedSystem *ext_sys; diff --git a/src/optim/ibex_OptimizerConfig.h b/src/optim/ibex_OptimizerConfig.h index fa971ee29..6b7aa6119 100644 --- a/src/optim/ibex_OptimizerConfig.h +++ b/src/optim/ibex_OptimizerConfig.h @@ -68,7 +68,7 @@ class OptimizerConfig { * * \deprecated. Should be 0. */ - void set_eps_x(double eps_x); + void set_eps_x(const Vector& eps_x); /** * \brief Set trace activation flag. @@ -120,8 +120,11 @@ class OptimizerConfig { /** see #set_abs_eps_f(). */ double get_abs_eps_f() const; - /** see #set_eps_x(). */ - double get_eps_x() const; + /** see #set_eps_x(). + * + * \warning A 1-sized vector if not initialized explicitly (TODO) + */ + const Vector& get_eps_x() const; /** see #set_trace(). */ int get_trace() const; @@ -179,17 +182,17 @@ class OptimizerConfig { double rel_eps_f; double abs_eps_f; - double eps_x; + Vector eps_x; // some component may be +oo (to skip bisection) int trace; double timeout; bool extended_COV; bool anticipated_UB; }; -inline OptimizerConfig::OptimizerConfig() { +inline OptimizerConfig::OptimizerConfig() : eps_x(1) { rel_eps_f = OptimizerConfig::default_rel_eps_f; abs_eps_f = OptimizerConfig::default_abs_eps_f; - eps_x = OptimizerConfig::default_eps_x; + eps_x[0] = OptimizerConfig::default_eps_x; trace = OptimizerConfig::default_trace; timeout = OptimizerConfig::default_timeout; extended_COV = OptimizerConfig::default_extended_cov; @@ -200,7 +203,7 @@ inline void OptimizerConfig::set_rel_eps_f(double _rel_eps_f) { rel_eps_f = inline void OptimizerConfig::set_abs_eps_f(double _abs_eps_f) { abs_eps_f = _abs_eps_f; } -inline void OptimizerConfig::set_eps_x(double _eps_x) { eps_x = _eps_x; } +inline void OptimizerConfig::set_eps_x(const Vector& _eps_x) { eps_x = _eps_x; } inline void OptimizerConfig::set_trace(int _trace) { trace = _trace; } @@ -214,7 +217,7 @@ inline double OptimizerConfig::get_rel_eps_f() const { return re inline double OptimizerConfig::get_abs_eps_f() const { return abs_eps_f; } -inline double OptimizerConfig::get_eps_x() const { return eps_x; } +inline const Vector& OptimizerConfig::get_eps_x() const { return eps_x; } inline int OptimizerConfig::get_trace() const { return trace; } diff --git a/src/predicate/ibex_PdcHansenFeasibility.h b/src/predicate/ibex_PdcHansenFeasibility.h index 692528a02..0f4b18f2b 100644 --- a/src/predicate/ibex_PdcHansenFeasibility.h +++ b/src/predicate/ibex_PdcHansenFeasibility.h @@ -22,6 +22,10 @@ namespace ibex { * \brief Hansen feasibility test for equality (under-)constrained problems * * Inspired by the sections §12.3 -> §12.5 of his 1992 book. + * + * In the case of an overconstrained system, the test is performed on a square + * subset of equations. + * */ class PdcHansenFeasibility : public Pdc { public: diff --git a/src/solver/ibex_Solver.cpp b/src/solver/ibex_Solver.cpp index afd83d08c..5de1af54e 100644 --- a/src/solver/ibex_Solver.cpp +++ b/src/solver/ibex_Solver.cpp @@ -198,7 +198,7 @@ bool Solver::next(CovSolverData::BoxStatus& status, const IntervalVector** sol) // 2nd condition: certification is performed at // each intermediate step only if the system is under constrained - if (m==0 || (mbox))) { + if (mbox)) { // note: cannot return PENDING status status=check_sol(c->box); if (status!=CovSolverData::UNKNOWN) { // <=> solution or boundary @@ -316,20 +316,24 @@ bool Solver::check_ineq(const IntervalVector& box) { if (!ineqs) return true; - Interval y,r; - bool not_inner=false; - for (int i=0; inb_ctr; i++) { - NumConstraint& c=ineqs->ctrs[i]; - assert(c.f.image_dim()==1); - y=c.f.eval(box); - r=c.right_hand_side().i(); + IntervalVector y=ineqs->f_ctrs.eval_vector(box); + + Interval right_cst; - if (y.is_disjoint(r)) { + for (int i=0; iops[i]) { + case LT : + case LEQ : right_cst=Interval::neg_reals(); break; + case EQ : right_cst=Interval::zero(); break; + case GEQ : + case GT : right_cst=Interval::pos_reals(); break; + } + if (y[i].is_disjoint(right_cst)) { throw EmptyBoxException(); } - else if (!y.is_subset(r)) { + else if (!y[i].is_subset(right_cst)) { not_inner=true; } } diff --git a/src/solver/ibex_Solver.h b/src/solver/ibex_Solver.h index d66b5212d..ee60aa522 100644 --- a/src/solver/ibex_Solver.h +++ b/src/solver/ibex_Solver.h @@ -288,15 +288,18 @@ class Solver { Status solve(bool stop_at_first); /* - * \brief Return a new "output box" that potentially contains solutions. - * \throw An exception otherwise (no solution inside). + * \brief Check if a box is solution/boundary and + * if it is the case, add it in the manifold + * (CovSolverData structure). + * + * \throw EmptyBoxException if it is proven that there + * is no solution inside the box. * * \param box - input box - * \param sol - output box. * - * If the status of the return box is INNER, the box may have + * If the status of the return box is SOLUTION, the box may have * slightly changed (due to inflating Newton) and the actual "solution" - * is stored in the existence box of the output. + * is stored in the existence box. */ CovSolverData::BoxStatus check_sol(const IntervalVector& box); diff --git a/src/symbolic/ibex_ExprVisitor.h b/src/symbolic/ibex_ExprVisitor.h index 561390433..53018fb89 100644 --- a/src/symbolic/ibex_ExprVisitor.h +++ b/src/symbolic/ibex_ExprVisitor.h @@ -380,7 +380,7 @@ T ExprNode::accept_visitor(ExprVisitor& v, ArgTypes&&... args) co case NumExprFloor: return v.visit((const ExprFloor&) *this, args...); break; case NumExprCeil: return v.visit((const ExprCeil&) *this, args...); break; case NumExprSaw: return v.visit((const ExprSaw&) *this, args...); break; - default: assert(false); + default: ibex_error("unexpected expression node type identifier"); } } diff --git a/src/system/ibex_System.cpp b/src/system/ibex_System.cpp index 8f9eeef59..11f9bc246 100644 --- a/src/system/ibex_System.cpp +++ b/src/system/ibex_System.cpp @@ -17,6 +17,7 @@ #include "ibex_P_Struct.h" #include "ibex_Domain.h" #include "ibex_Exception.h" +#include "ibex_String.h" #include #include @@ -151,14 +152,18 @@ std::string System::minibex(bool human) const { if (nb_ctr>0) { s << "constraints\n"; - for (int i=0; i0) s << ','; - s << args[i]; - } - s << ')' << '[' << i << ']'<< ops[i] << "0;\n"; + char* main_node = next_generated_var_name(); + s << main_node << "=" << f_ctrs.name << '('; + for (int i=0; i0) s << ','; + s << args[i]; } + s << ");\n"; + for (int i=0; i goal_vars(input_args.size()); varcopy(input_args,goal_vars); const ExprNode& goal_expr=ExprCopy().copy(input_args, goal_vars, goal).simplify(simpl_level); - this->goal = new Function(goal_vars, goal_expr); + this->goal = new Function(goal_vars, goal_expr, name); } void SystemFactory::add_goal(const Function& goal) { @@ -118,14 +118,14 @@ void SystemFactory::add_goal(const Function& goal) { this->goal = new Function(goal); } -void SystemFactory::add_ctr(const ExprCtr& ctr) { +void SystemFactory::add_ctr(const ExprCtr& ctr, const char* name) { init_args(); Array ctr_args(input_args.size()); varcopy(input_args,ctr_args); const ExprNode& ctr_expr=ExprCopy().copy(input_args, ctr_args, ctr.e).simplify(simpl_level); - ctrs.push_back(new NumConstraint(*new Function(ctr_args, ctr_expr), ctr.op, true)); + ctrs.push_back(new NumConstraint(*new Function(ctr_args, ctr_expr, name), ctr.op, true)); f_ctrs.push_back(& f_ctrs_copy.copy(input_args, sys_args, ctr.e, true)); } diff --git a/src/system/ibex_SystemFactory.h b/src/system/ibex_SystemFactory.h index ad2058a48..830171273 100644 --- a/src/system/ibex_SystemFactory.h +++ b/src/system/ibex_SystemFactory.h @@ -59,7 +59,7 @@ class SystemFactory { * \warning for convenience, goal is cleaned up (the expression * does not exist anymore after this function call). */ - void add_goal(const ExprNode& goal); + void add_goal(const ExprNode& goal,const char* name=NULL); /** * \brief Add a goal function (by copy). @@ -74,7 +74,7 @@ class SystemFactory { * \warning the ctr expression must no be deleted until the final system has been built * (the factory keeps track of nodes for building DAGS). */ - void add_ctr(const ExprCtr& ctr); + void add_ctr(const ExprCtr& ctr, const char* name=NULL); /** * \brief Add a new constraint (by copy). diff --git a/src/tools/ibex_String.cpp b/src/tools/ibex_String.cpp index 214b96520..e6a141f95 100644 --- a/src/tools/ibex_String.cpp +++ b/src/tools/ibex_String.cpp @@ -195,6 +195,27 @@ const ExprNode& parse_indexed_symbol(const SymbolMap& symbols } } +vector parse_symbols_list(const Array& args, const string& _vars) { + string vars=_vars; + SymbolMap symbols; + for (int i=0; i res; + int j; + do { + j=vars.find("+"); + if (j!=-1) { + res.push_back(&parse_indexed_symbol(symbols,vars.substr(0,j))); + vars=vars.substr(j+1,vars.size()-j-1); + } else { + res.push_back(&parse_indexed_symbol(symbols,vars)); + } + } while (j!=-1); + + return res; +} + char* random_alphanum_string(int len) { static const char alphanum[] = "0123456789" diff --git a/src/tools/ibex_String.h b/src/tools/ibex_String.h index aa3ad6ca1..457079615 100644 --- a/src/tools/ibex_String.h +++ b/src/tools/ibex_String.h @@ -72,6 +72,16 @@ int parse_integer(const std::string& str); const ExprNode& parse_indexed_symbol(const SymbolMap& symbols, const std::string& str); +/** + * \brief Parse a list of (indexed) symbols, separated by '+' + * + * Example: x+y[0] + * + * \note If the result contains indexed symbols, they have + * to be freed (call "cleanup(...,false)"). + */ +std::vector parse_symbols_list(const Array& args, const std::string& vars); + /** * \brief Alpha-numeric random string * diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ad1ead60d..a11006310 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,30 +1,10 @@ # Looking for cppunit -set (DO_TEST ON) -set (CPPUNIT_DIR "" CACHE PATH "Path to cppunit lib and include directories") - -# first try with pkg-config -include (FindPkgConfig) -pkg_check_modules(CPPUNIT cppunit) - -# otherwise do it ourself -if (NOT CPPUNIT_FOUND) - # Looking for cppunit/Test.h, result is written in CPPUNIT_INCDIR - find_header_custom (CPPUNIT "cppunit/Test.h" PATHS "${CPPUNIT_DIR}") - # Looking for cppunit library, result is written in CPPUNIT_LIB - find_library_custom (CPPUNIT "cppunit" PATHS "${CPPUNIT_DIR}") - - if (NOT CPPUNIT_INCDIR OR NOT CPPUNIT_LIB) - set (DO_TEST OFF) - message (STATUS "Will not run tests, needed cppunit library was not found") - endif () -endif () +find_package (CppUnit) # Only add the test targets if cppunit was found -if (DO_TEST) +if (CPPUNIT_FOUND) # Compile common stuff for the tests - add_library (test_common STATIC utest.cpp utest.h utils.cpp utils.h - ExFunction.cpp ExFunction.h Instance.cpp - Instance.h Ponts30.cpp Ponts30.h) + add_library (test_common utest.cpp utils.cpp utils.h Ponts30.cpp Ponts30.h) target_link_libraries (test_common PUBLIC ibex) set (srcdir_test_flag -DSRCDIR_TESTS="${CMAKE_CURRENT_SOURCE_DIR}") @@ -33,8 +13,9 @@ if (DO_TEST) TestCtcForAll TestCtcFwdBwd TestCtcHC4 TestCtcInteger TestCtcNotIn TestDim TestDomain TestDoubleHeap TestDoubleIndex TestEval TestExpr2DAG TestExpr2Minibex TestExprCmp - TestExprCopy TestExpr TestExprDiff TestExprLinearity TestExprMonomial - TestExprPolynomial TestExprSimplify TestExprSimplify2 TestFncKuhnTucker TestKuhnTuckerSystem + TestExprCopy TestExpr TestExprDiff TestExprLinearity + TestExprMonomial TestExprPolynomial TestExprSimplify + TestExprSimplify2 TestFncKuhnTucker TestKuhnTuckerSystem TestFunction TestGradient TestHC4Revise TestInHC4Revise TestInnerArith TestInterval TestIntervalMatrix TestIntervalVector TestKernel TestLinear TestLPSolver @@ -47,20 +28,13 @@ if (DO_TEST) foreach (test ${TESTS_LIST}) # /!\ The test and the target building the executable have the same name add_executable (${test} ${test}.cpp ${test}.h) - target_link_libraries (${test} test_common) - if (CPPUNIT_FOUND) # found via pkg-config - target_link_libraries (${test} ${CPPUNIT_LIBRARIES}) - target_include_directories (${test} PUBLIC ${CPPUNIT_INCLUDE_DIRS}) - target_compile_options (${test} PUBLIC ${CPPUNIT_CFLAGS_OTHER}) - else () # found ourself - target_link_libraries (${test} ${CPPUNIT_LIB}) - target_include_directories (${test} PUBLIC ${CPPUNIT_INCDIR}) - endif () + target_link_libraries (${test} test_common CppUnit::CppUnit) target_compile_definitions (${test} PRIVATE ${srcdir_test_flag}) add_dependencies (check ${test}) add_test (${test} ${test}) endforeach () else () + message (STATUS "Will not run tests, required cppunit library was not found") set (MSG "No tests will be run as CMake failed to find the cppunit library \ during the configuration step. If you want to run the tests, you need to \ install cppunit. Then, you need to re-run the configuration step of CMake. You \ diff --git a/tests/TestLPSolver.cpp b/tests/TestLPSolver.cpp index 7f43a08c6..dca8c538b 100644 --- a/tests/TestLPSolver.cpp +++ b/tests/TestLPSolver.cpp @@ -234,4 +234,315 @@ void TestLinearSolver::cost_parallel_to_constraint() { * c = x - beta y + beta * beta: 0 -> 1/alpha */ + + +void TestLinearSolver::test_easy_feasible() { + /** + maximize 3*x1 + 2*x2 + st: + x1 + 2*x2 <= 4 + x1 - x2 <= 1 + x1,x2 >= 0 + + Minimum at (2,1) with objective of 8 + **/ + LPSolver lp(2,LPSolver::Mode::NotCertified); + + IntervalVector x(2); + for(int i=0;i= 0 + + Minimum at (2,1) with objective of 8 + **/ + LPSolver lp_cert(2,LPSolver::Mode::Certified); + + IntervalVector x(2); + for(int i=0;i= 4 + x1 - x2 >= 1 + x1,x2 >= 0 + + Unbounded + **/ + LPSolver lp(2,LPSolver::Mode::NotCertified); + + IntervalVector x(2); + for(int i=0;i= 1 + x1,x2 >= 0 + + Minimum at (2,1) with objective of 8 + **/ + + LPSolver lp(2,LPSolver::Mode::NotCertified); + + IntervalVector x(2); + for(int i=0;i= 1 + x1,x2 >= 0 + + Minimum at (2,1) with objective of 8 + **/ + + LPSolver lp_cert(2,LPSolver::Mode::Certified); + + IntervalVector x(2); + for(int i=0;i= 0 + + Minimum at (2,1) with objective of 8 + **/ + LPSolver lp(2,LPSolver::Mode::Certified); + + IntervalVector x(2); + for(int i=0;i= 1e308); + CPPUNIT_ASSERT(rhs[1] >= 1e308); + CPPUNIT_ASSERT(rhs[2] == 4); + CPPUNIT_ASSERT(rhs[3] == 1); + + IntervalVector lhs_rhs = lp.lhs_rhs(); + CPPUNIT_ASSERT(lhs_rhs[0].lb() == 0); + CPPUNIT_ASSERT(lhs_rhs[1].lb() == 0); + CPPUNIT_ASSERT(lhs_rhs[2].lb() <= -1e308); + CPPUNIT_ASSERT(lhs_rhs[3].lb() <= -1e308); + CPPUNIT_ASSERT(lhs_rhs[0].ub() >= 1e308); + CPPUNIT_ASSERT(lhs_rhs[1].ub() >= 1e308); + CPPUNIT_ASSERT(lhs_rhs[2].ub() == 4); + CPPUNIT_ASSERT(lhs_rhs[3].ub() == 1); + + Vector cost = lp.cost(); + CPPUNIT_ASSERT(cost[0] == -3); + CPPUNIT_ASSERT(cost[1] == -2); + + IntervalVector bnds = lp.bounds(); + CPPUNIT_ASSERT(bnds[0].lb() == 0); + CPPUNIT_ASSERT(bnds[1].lb() == 0); + CPPUNIT_ASSERT(bnds[0].ub() == POS_INFINITY); + CPPUNIT_ASSERT(bnds[1].ub() == POS_INFINITY); + + Interval bnd_0 = lp.bounds(0); + CPPUNIT_ASSERT(bnd_0.lb() == 0); + CPPUNIT_ASSERT(bnd_0.ub() == POS_INFINITY); + + lp.clear_constraints(); + CPPUNIT_ASSERT(lp.nb_rows() == lp.nb_vars()); + + lp.clear_bounds(); + CPPUNIT_ASSERT(lp.bounds()[0] == Interval::ALL_REALS); + CPPUNIT_ASSERT(lp.bounds()[1] == Interval::ALL_REALS); + + lp.reset(lp.nb_vars()); + CPPUNIT_ASSERT(lp.status() == LPSolver::Status::Unknown); + CPPUNIT_ASSERT(lp.cost()[0] == 0); + CPPUNIT_ASSERT(lp.cost()[1] == 0); + CPPUNIT_ASSERT(lp.nb_rows() == lp.nb_vars()); + CPPUNIT_ASSERT(lp.bounds()[0] == Interval::ALL_REALS); + CPPUNIT_ASSERT(lp.bounds()[1] == Interval::ALL_REALS); + +} + + } // end namespace diff --git a/tests/TestLPSolver.h b/tests/TestLPSolver.h index f7c9cd8e5..47a936b8e 100644 --- a/tests/TestLPSolver.h +++ b/tests/TestLPSolver.h @@ -36,6 +36,15 @@ class TestLinearSolver : public CppUnit::TestFixture { CPPUNIT_TEST(p25fv47); CPPUNIT_TEST(nearly_parallel_constraints); CPPUNIT_TEST(cost_parallel_to_constraint); + + CPPUNIT_TEST(test_easy_feasible); + CPPUNIT_TEST(test_easy_feasible_certified); + CPPUNIT_TEST(test_unbounded); + CPPUNIT_TEST(test_unbounded_certified); + CPPUNIT_TEST(test_infeasible); + CPPUNIT_TEST(test_infeasible_certified); + + CPPUNIT_TEST(test_model); #endif CPPUNIT_TEST_SUITE_END(); @@ -52,11 +61,19 @@ class TestLinearSolver : public CppUnit::TestFixture { void nearly_parallel_constraints(); void cost_parallel_to_constraint(); void test_known_problem(std::string filename, double optimal); - void afiro() { test_known_problem("../../tests/lp-test-problems/afiro.mps", -4.6475314286E+02);}; - void adlittle() { test_known_problem("../../tests/lp-test-problems/adlittle.mps", 2.2549496316E+05);}; - void p25fv47() { test_known_problem("../../tests/lp-test-problems/25fv47.mps", 5.5018458883E+03);}; - + void afiro() { test_known_problem(SRCDIR_TESTS "/lp-test-problems/afiro.mps", -4.6475314286E+02);}; + void adlittle() { test_known_problem(SRCDIR_TESTS "/lp-test-problems/adlittle.mps", 2.2549496316E+05);}; + void p25fv47() { test_known_problem(SRCDIR_TESTS "/lp-test-problems/25fv47.mps", 5.5018458883E+03);}; + + void test_easy_feasible(); + void test_unbounded(); + void test_infeasible(); + void test_easy_feasible_certified(); + void test_unbounded_certified(); + void test_infeasible_certified(); + + void test_model(); }; CPPUNIT_TEST_SUITE_REGISTRATION(TestLinearSolver); diff --git a/tests/utest.h b/tests/utest.h deleted file mode 100644 index 2dd3f436d..000000000 --- a/tests/utest.h +++ /dev/null @@ -1,17 +0,0 @@ -/* ============================================================================ - * I B E X - Main unit testing program - * ============================================================================ - * Copyright : Ecole des Mines de Nantes (FRANCE) - * License : This program can be distributed under the terms of the GNU LGPL. - * See the file COPYING.LESSER. - * - * Author(s) : Gilles Chabert - * Created : Dec 07, 2011 - * ---------------------------------------------------------------------------- */ - -#ifndef UTEST_H_ -#define UTEST_H_ - -int main(); - -#endif /* UTEST_H_ */ diff --git a/wscript b/wscript index 7d60a90e2..fb6f51a78 100644 --- a/wscript +++ b/wscript @@ -14,6 +14,9 @@ APPNAME='ibex-lib' top = '.' out = '__build__' +plugins = {} +plugins_dependencies = {} + ###################### ###### options ####### ###################### @@ -37,8 +40,16 @@ def options (opt): opt.recurse ("interval_lib_wrapper") opt.recurse ("lp_lib_wrapper") + opt.plugins = {} + opt.plugins_dependencies = {} + # recurse on plugins directory opt.recurse("plugins") + + # added by gch + plugins.update(opt.plugins) + plugins_dependencies.update(opt.plugins_dependencies) + ###################### ##### configure ###### @@ -48,6 +59,16 @@ def configure (conf): conf.prepare_env(conf.env) + # added by gch + for plugin in plugins_dependencies.keys(): + if getattr(conf.options, plugin) == True: + for dependency in plugins_dependencies[plugin]: + if not dependency in plugins.keys(): + conf.fatal (dependency+" required but plugin not found") + else: + Logs.info("Enabling dependency "+dependency); + setattr(conf.options, plugins[dependency], True) + # For information conf.msg ("sys.platform", sys.platform)