diff --git a/.travis.yml b/.travis.yml
index ca8c2381b4c..bb5f03e72e6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -145,13 +145,16 @@ install:
eval ${PRE_COMMAND} ${COMMAND}
- COMMAND="make -C src CXX=\"$COMPILER\" CXXFLAGS=\"-Wall -Werror -pedantic -O2 -g $EXTRA_CXXFLAGS\" -j2" &&
eval ${PRE_COMMAND} ${COMMAND}
- - COMMAND="make -C src CXX=\"$COMPILER\" CXXFLAGS=\"$FLAGS $EXTRA_CXXFLAGS\" -j2 cegis.dir clobber.dir memory-models.dir musketeer.dir" &&
+ - COMMAND="make -C src CXX=\"$COMPILER\" CXXFLAGS=\"$FLAGS $EXTRA_CXXFLAGS\" -j2 clobber.dir memory-models.dir musketeer.dir" &&
eval ${PRE_COMMAND} ${COMMAND}
script:
- if [ -e bin/gcc ] ; then export PATH=$PWD/bin:$PATH ; fi ;
COMMAND="env UBSAN_OPTIONS=print_stacktrace=1 make -C regression test" &&
eval ${PRE_COMMAND} ${COMMAND}
+ - COMMAND="make -C unit CXX=\"$COMPILER\" CXXFLAGS=\"-Wall -Werror -pedantic -O2 -g $EXTRA_CXXFLAGS\" -j2" &&
+ eval ${PRE_COMMAND} ${COMMAND}
+ - COMMAND="make -C unit test" && eval ${PRE_COMMAND} ${COMMAND}
before_cache:
- ccache -s
diff --git a/CODING_STANDARD b/CODING_STANDARD
index d079889bb8d..ebc2b31f594 100644
--- a/CODING_STANDARD
+++ b/CODING_STANDARD
@@ -26,23 +26,23 @@ Whitespaces:
- No whitespaces in blank lines
- Put argument lists on next line (and ident 2 spaces) if too long
- Put parameters on separate lines (and ident 2 spaces) if too long
-- No whitespaces around colon for inheritance,
+- No whitespaces around colon for inheritance,
put inherited into separate lines in case of multiple inheritance
- The initializer list follows the constructor without a whitespace
around the colon. Break line after the colon if required and indent members.
- if(...), else, for(...), do, and while(...) are always in a separate line
-- Break expressions in if, for, while if necessary and align them
+- Break expressions in if, for, while if necessary and align them
with the first character following the opening parenthesis
- Use {} instead of ; for the empty statement
-- Single line blocks without { } are allowed,
+- Single line blocks without { } are allowed,
but put braces around multi-line blocks
-- Use blank lines to visually separate logically cohesive code blocks
+- Use blank lines to visually separate logically cohesive code blocks
within a function
- Have a newline at the end of a file
Comments:
- Do not use /* */ except for file and function comment blocks
-- Each source and header file must start with a comment block
+- Each source and header file must start with a comment block
stating the Module name and Author [will be changed when we roll out doxygen]
- Each function in the source file (not the header) is preceded
by a function comment header consisting of a comment block stating
@@ -75,9 +75,9 @@ Comments:
- Use #ifdef DEBUG to guard debug code
Naming:
-- Identifiers may use the characters [a-z0-9_] and should start with a
+- Identifiers may use the characters [a-z0-9_] and should start with a
lower-case letter (parameters in constructors may start with _).
-- Use american spelling for identifiers.
+- Use american spelling for identifiers.
- Separate basic words by _
- Avoid abbreviations (e.g. prefer symbol_table to of st).
- User defined type identifiers have to be terminated by 't'. Moreover,
@@ -122,7 +122,7 @@ Program Command Line Options
from the command line into the options
C++ features:
-- Do not use namespaces.
+- Do not use namespaces, except for anonymous namespaces.
- Prefer use of 'typedef' insted of 'using'.
- Prefer use of 'class' instead of 'struct'.
- Write type modifiers before the type specifier.
@@ -136,7 +136,7 @@ C++ features:
- Avoid iterators, use ranged for instead
- Avoid allocation with new/delete, use unique_ptr
- Avoid pointers, use references
-- Avoid char *, use std::string
+- Avoid char *, use std::string
- For numbers, use int, unsigned, long, unsigned long, double
- Use mp_integer, not BigInt
- Use the functions in util for conversions between numbers and strings
@@ -146,13 +146,13 @@ C++ features:
- Use instances of std::size_t for comparison with return values of .size() of
STL containers and algorithms, and use them as indices to arrays or vectors.
- Do not use default values in public functions
-- Use assertions to detect programming errors, e.g. whenever you make
+- Use assertions to detect programming errors, e.g. whenever you make
assumptions on how your code is used
-- Use exceptions only when the execution of the program has to abort
+- Use exceptions only when the execution of the program has to abort
because of erroneous user input
-- We allow to use 3rd-party libraries directly.
- No wrapper matching the coding rules is required.
- Allowed libraries are: STL.
+- We allow to use 3rd-party libraries directly.
+ No wrapper matching the coding rules is required.
+ Allowed libraries are: STL.
- When throwing, omit the brackets, i.e. `throw "error"`.
- Error messages should start with a lower case letter.
- Use the auto keyword if and only if one of the following
@@ -165,12 +165,30 @@ Architecture-specific code:
- Don't include architecture-specific header files without #ifdef ...
Output:
-- Do not output to cout or cerr directly (except in temporary debug code,
+- Do not output to cout or cerr directly (except in temporary debug code,
and then guard #include by #ifdef DEBUG)
- Derive from messaget if the class produces output and use the streams provided
(status(), error(), debug(), etc)
- Use '\n' instead of std::endl
+Unit tests:
+ - Unit tests are written using Catch: https://github.com/philsquared/Catch/
+ - For large classes:
+ - Create a separate file that contains the tests for each method of each
+ class
+ - The file should be named according to
+ `unit/class/path/class_name/function_name.cpp`
+ - For small classes:
+ - Create a separate file that contains the tests for all methods of each
+ class
+ - The file should be named according to unit/class/path/class_name.cpp
+ - Catch supports tagging, tests should be tagged with all the following tags:
+ - [core] should be used for all tests unless the test takes more than 1
+ second to run, then it should be tagged with [long]
+ - [folder_name] of the file being tested
+ - [class_name] of the class being tested
+ - [function_name] of the function being tested
+
You are allowed to break rules if you have a good reason to do so.
Pre-commit hook to run cpplint locally
diff --git a/COMPILING b/COMPILING
index 7cbdfcaab13..4b47b38b790 100644
--- a/COMPILING
+++ b/COMPILING
@@ -38,7 +38,7 @@ We assume that you have a Debian/Ubuntu or Red Hat-like distribution.
yum install gcc gcc-c++ flex bison perl-libwww-perl patch devtoolset-6
- Note that you need g++ version 5.2 or newer.
+ Note that you need g++ version 4.9 or newer.
1) As a user, get the CBMC source via
diff --git a/appveyor.yml b/appveyor.yml
index 5f287b193d4..f1f66142620 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -54,7 +54,7 @@ build_script:
cp -r deps/minisat2-2.2.1 minisat-2.2.1
patch -d minisat-2.2.1 -p1 < scripts/minisat-2.2.1-patch
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
- sed -i "s/BUILD_ENV.*/BUILD_ENV = MSVC/" src/config.inc
+ sed -i "s/BUILD_ENV[ ]*=.*/BUILD_ENV = MSVC/" src/config.inc
make -C src -j2
test_script:
@@ -108,3 +108,7 @@ test_script:
rmdir /s /q goto-instrument\slice08
make test
+
+ cd ..
+ make -C unit all
+ make -C unit test
diff --git a/doc/html-manual/api.shtml b/doc/html-manual/api.shtml
index 3cfae3cfeb9..141ae88b80a 100644
--- a/doc/html-manual/api.shtml
+++ b/doc/html-manual/api.shtml
@@ -111,11 +111,14 @@ void __CPROVER_cover(_Bool condition);
+This statement defines a custom coverage criterion, for usage
+with the test suite generation feature.
+
-__CPROVER_isnan, __CPROVER_isfinite, __CPROVER_isfinite,
-__CPROVER_isfinite, __CPROVER_sign
+__CPROVER_isnan, __CPROVER_isfinite, __CPROVER_isinf,
+__CPROVER_isnormal, __CPROVER_sign
diff --git a/doc/html-manual/cover.shtml b/doc/html-manual/cover.shtml
index 5e3bfaffad8..54480059399 100644
--- a/doc/html-manual/cover.shtml
+++ b/doc/html-manual/cover.shtml
@@ -10,8 +10,6 @@
A Small Tutorial with A Case Study
-
-
We assume that CBMC is installed on your system. If not so, follow
these instructions.
@@ -238,4 +236,42 @@ coverage criteria like branch
, decision
,
path
etc. are also available when calling CBMC.
+Coverage Criteria
+
+
+The table below summarizes the coverage criteria that CBMC supports.
+
+
+
+
+Criterion | Definition |
+
+assertion |
+For every assertion, generate a test that reaches it |
+
+location |
+For every location, generate a test that reaches it |
+
+branch |
+Generate a test for every branch outcome |
+
+decision |
+Generate a test for both outcomes of every Boolean expression
+that is not an operand of a propositional connective |
+
+condition |
+Generate a test for both outcomes of every Boolean expression |
+
+mcdc |
+Modified Condition/Decision Coverage (MC/DC) |
+
+path |
+Bounded path coverage |
+
+cover |
+Generate a test for every __CPROVER_cover statement
+ |
+
+
+
diff --git a/doc/html-manual/modeling-nondet.shtml b/doc/html-manual/modeling-nondet.shtml
index ffd146ba4f6..3b0809ffb79 100644
--- a/doc/html-manual/modeling-nondet.shtml
+++ b/doc/html-manual/modeling-nondet.shtml
@@ -39,9 +39,8 @@ prefix nondet_
. As an example, the following function
returns a nondeterministically chosen unsigned short int:
-
-unsigned short int nondet_ushortint();
-
+unsigned short int nondet_ushortint();
+
Note that the body of the function is not defined. The
name of the function itself is irrelevant (save for the prefix), but must be
diff --git a/pkg/arch/PKGBUILD b/pkg/arch/PKGBUILD
new file mode 100644
index 00000000000..1a19dce9e39
--- /dev/null
+++ b/pkg/arch/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Vlastimil Zeman
+
+pkgname=cbmc
+pkgver=5.7
+pkgrel=1
+pkgdesc="Bounded Model Checker for C and C++ programs"
+arch=("x86_64")
+url="https://github.com/diffblue/cbmc"
+license=("BSD-4-Clause")
+depends=("gcc-libs>=6.3")
+makedepends=("gcc>=6.3"
+ "make>=4.2"
+ "patch>=2.7"
+ "perl-libwww>=6.24"
+ "bison>=3.0"
+ "flex>=2.6")
+source=("https://github.com/diffblue/cbmc/archive/$pkgname-$pkgver.tar.gz")
+sha256sums=("4f98cdce609532d3fc2587299ee4a6544f63aff5cf42e89d2baaa3d3562edf3e")
+
+
+build() {
+ make -C "$pkgname-$pkgname-$pkgver/src" minisat2-download
+ make -C "$pkgname-$pkgname-$pkgver/src" -j$(getconf _NPROCESSORS_ONLN)
+}
+
+
+check() {
+ make -C "$pkgname-$pkgname-$pkgver/regression" test
+}
+
+
+package() {
+ mkdir -p "$pkgdir/usr/bin/"
+ for binary in $pkgname goto-analyzer goto-cc goto-diff goto-instrument
+ do
+ cp "$pkgname-$pkgname-$pkgver/src/$binary/$binary" "$pkgdir/usr/bin/"
+ chmod 755 "$pkgdir/usr/bin/$binary"
+ chown root:root "$pkgdir/usr/bin/$binary"
+ done
+}
diff --git a/pkg/arch/README.md b/pkg/arch/README.md
new file mode 100644
index 00000000000..05dea5516dc
--- /dev/null
+++ b/pkg/arch/README.md
@@ -0,0 +1,17 @@
+# Arch Linux Package
+
+Update packages and install build dependencies
+
+```bash
+sudo pacman -Sy archlinux-keyring && sudo pacman -Syyu
+sudo pacman -S gcc bison flex make patch perl-libwww fakeroot
+```
+
+Create folder for package and copy [PKGBUILD](PKGBUILD) file there.
+
+Build package by running `makepkg` in that folder. That will compile *CBMC* and
+run all tests. To install package run
+
+```bash
+sudo pacman -U cbmc-5.7-1-x86_64.pkg.tar.xz`
+```
diff --git a/regression/cbmc-cover/built-ins1/main.c b/regression/cbmc-cover/built-ins1/main.c
new file mode 100644
index 00000000000..2822ea8e7b2
--- /dev/null
+++ b/regression/cbmc-cover/built-ins1/main.c
@@ -0,0 +1,17 @@
+int main()
+{
+ char a[10];
+ __CPROVER_input("a[3]", a[3]);
+
+ int len = strlen(a);
+
+ if(len==3)
+ {
+ return 0;
+ }
+ else if(len==4)
+ {
+ return -1;
+ }
+ return 1;
+}
diff --git a/regression/cbmc-cover/built-ins1/test.desc b/regression/cbmc-cover/built-ins1/test.desc
new file mode 100644
index 00000000000..49b517629f3
--- /dev/null
+++ b/regression/cbmc-cover/built-ins1/test.desc
@@ -0,0 +1,9 @@
+CORE
+main.c
+--cover location --unwind 1
+^EXIT=0$
+^SIGNAL=0$
+^\*\* 4 of 7 covered
+--
+^warning: ignoring
+^\[.*
+
+int main()
+{
+ const char *s="test";
+ int ret=puts(s); //return value is nondet (internal to built-in, thus non-controllable)
+
+ if(ret<0)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/regression/cbmc-cover/built-ins3/test.desc b/regression/cbmc-cover/built-ins3/test.desc
new file mode 100644
index 00000000000..bd3fc9fdaa3
--- /dev/null
+++ b/regression/cbmc-cover/built-ins3/test.desc
@@ -0,0 +1,9 @@
+CORE
+main.c
+--cover location --unwind 10
+^EXIT=0$
+^SIGNAL=0$
+^\*\* 4 of 4 covered
+--
+^warning: ignoring
+^\[.*
+#include
+
+int main()
+{
+ printf("PRINT d1 %d, %d\n", 123, -123);
+ printf("PRINT g1 %g, %g, %g, %g\n", 123.0, -123.0, 123.123, 0.123);
+ printf("PRINT e1 %e, %e, %e, %e\n", 123.0, -123.0, 123.123, 0.123);
+ printf("PRINT f1 %f, %f, %f, %f\n", 123.0, -123.0, 123.123, 0.123);
+ assert(0);
+}
diff --git a/regression/cbmc/printf1/test.desc b/regression/cbmc/printf1/test.desc
new file mode 100644
index 00000000000..b5c8583e4ff
--- /dev/null
+++ b/regression/cbmc/printf1/test.desc
@@ -0,0 +1,11 @@
+CORE
+main.c
+--trace
+^EXIT=10$
+^SIGNAL=0$
+^PRINT d1 123, -123$
+^PRINT g1 123, -123, 123\.123, 0\.123$
+^PRINT e1 1\.230000e\+2, -1\.230000e\+2, 1\.231230e\+2, 1\.230000e-1$
+^PRINT f1 123\.000000, -123\.000000, 123\.123000, 0\.123000$
+--
+^warning: ignoring
diff --git a/regression/cegis/cegis_control_benchmark_01/SatelliteB2.c b/regression/cegis/cegis_control_benchmark_01/SatelliteB2.c
deleted file mode 100644
index 65f807bfbeb..00000000000
--- a/regression/cegis/cegis_control_benchmark_01/SatelliteB2.c
+++ /dev/null
@@ -1,5311 +0,0 @@
-// tag-#anon#ST[ARR100{F64}$F64$'a'|S32'a_size'|U32'$pad0'|ARR100{F64}$F64$'b'|S32'b_size'|U32'$pad1'|F64'sample_time'|ARR100{F64}$F64$'a_uncertainty'|ARR100{F64}$F64$'b_uncertainty']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 144
-struct anonymous$0;
-
-// tag-#anon#ST[ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'A'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'B'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'C'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'D'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'states'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'outputs'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'inputs'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'K'|U32'nStates'|U32'nInputs'|U32'nOutputs'|U32'$pad0']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 156
-struct anonymous$1;
-
-// tag-#anon#ST[S32'int_bits'|S32'frac_bits'|F64'max'|F64'min'|S32'default_realization'|U32'$pad0'|F64'delta'|S32'scale'|U32'$pad1'|F64'max_error']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 171
-struct anonymous$3;
-
-// tag-#anon#ST[S32'push'|S32'in'|S32'sbiw'|S32'cli'|S32'out'|S32'std'|S32'ldd'|S32'subi'|S32'sbci'|S32'lsl'|S32'rol'|S32'add'|S32'adc'|S32'adiw'|S32'rjmp'|S32'mov'|S32'sbc'|S32'ld'|S32'rcall'|S32'cp'|S32'cpc'|S32'ldi'|S32'brge'|S32'pop'|S32'ret'|S32'st'|S32'brlt'|S32'cpi']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 183
-struct anonymous;
-
-// tag-#anon#ST[S64'clock'|S32'device'|U32'$pad0'|F64'cycle'|SYM#tag-#anon#ST[S32'push'|S32'in'|S32'sbiw'|S32'cli'|S32'out'|S32'std'|S32'ldd'|S32'subi'|S32'sbci'|S32'lsl'|S32'rol'|S32'add'|S32'adc'|S32'adiw'|S32'rjmp'|S32'mov'|S32'sbc'|S32'ld'|S32'rcall'|S32'cp'|S32'cpc'|S32'ldi'|S32'brge'|S32'pop'|S32'ret'|S32'st'|S32'brlt'|S32'cpi']#'assembly']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 215
-struct anonymous$2;
-
-#include
-
-#ifndef IEEE_FLOAT_EQUAL
-#define IEEE_FLOAT_EQUAL(x,y) ((x)==(y))
-#endif
-#ifndef IEEE_FLOAT_NOTEQUAL
-#define IEEE_FLOAT_NOTEQUAL(x,y) ((x)!=(y))
-#endif
-
-// __DSVERIFIER_assert
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 35
-void __DSVERIFIER_assert(_Bool expression);
-// __DSVERIFIER_assert_msg
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 39
-void __DSVERIFIER_assert_msg(_Bool expression, char *msg);
-// __DSVERIFIER_assume
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 21
-void __DSVERIFIER_assume(_Bool expression);
-// __assert_fail
-// file /usr/include/assert.h line 67
-extern void __assert_fail(const char *, const char *, unsigned int, const char *) _Noreturn;
-// call_closedloop_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 369
-void call_closedloop_verification_task(void *closedloop_verification_task);
-// call_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 268
-void call_verification_task(void *verification_task);
-// check_stability
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 59
-signed int check_stability(double *a, signed int n);
-// check_stability_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 70
-signed int check_stability_closedloop(double *a, signed int n, double *plant_num, signed int p_num_size, double *plant_den, signed int p_den_size);
-// determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 498
-double determinant(double (*a)[20l], signed int n);
-// double_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 315
-void double_add_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l]);
-// double_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 218
-void double_check_limit_cycle(double *y, signed int y_size);
-// double_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 187
-void double_check_oscillations(double *y, signed int y_size);
-// double_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 254
-void double_check_persistent_limit_cycle(double *y, signed int y_size);
-// double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 83
-double double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb);
-// double_direct_form_1_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 205
-double double_direct_form_1_MSP430(double *y, double *x, double *a, double *b, signed int Na, signed int Nb);
-// double_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 364
-void double_direct_form_1_impl2(double *x, signed int x_size, double *b, signed int b_size, double *a, signed int a_size, double *y);
-// double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 102
-double double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// double_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 230
-double double_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// double_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 428
-void double_exp_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], unsigned int expNumber, double (*result)[20l]);
-// double_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 337
-void double_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, double (*m1)[20l], double (*m2)[20l], double (*m3)[20l]);
-// double_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 23
-double double_state_space_representation(void);
-// double_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 326
-void double_sub_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l]);
-// double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 122
-double double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// double_transposed_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 257
-double double_transposed_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// exit
-// file /usr/include/stdlib.h line 543
-extern void exit(signed int) _Noreturn;
-// fatorial
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 54
-signed int fatorial(signed int n);
-// float_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 144
-float float_direct_form_1(float *y, float *x, float *a, float *b, signed int Na, signed int Nb);
-// float_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 163
-float float_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// float_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 183
-float float_transposed_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// ft_closedloop_feedback
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 57
-void ft_closedloop_feedback(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den);
-// ft_closedloop_sensitivity
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 42
-void ft_closedloop_sensitivity(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den);
-// ft_closedloop_series
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 28
-void ft_closedloop_series(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den);
-// fxp_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 303
-signed long int fxp_abs(signed long int a);
-// fxp_add
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 315
-signed long int fxp_add(signed long int aadd, signed long int badd);
-// fxp_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 467
-void fxp_add_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l]);
-// fxp_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 163
-void fxp_check_limit_cycle(signed long int *y, signed int y_size);
-// fxp_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 253
-void fxp_check_oscillations(signed long int *y, signed int y_size);
-// fxp_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 201
-void fxp_check_persistent_limit_cycle(signed long int *y, signed int y_size);
-// fxp_determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 529
-double fxp_determinant(signed long int (*a_fxp)[20l], signed int n);
-// fxp_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 22
-signed long int fxp_direct_form_1(signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// fxp_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 388
-void fxp_direct_form_1_impl2(signed long int *x, signed int x_size, signed long int *b, signed int b_size, signed long int *a, signed int a_size, signed long int *y);
-// fxp_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 41
-signed long int fxp_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// fxp_div
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 357
-signed long int fxp_div(signed long int a, signed long int b);
-// fxp_double_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 211
-signed long int fxp_double_to_fxp(double value);
-// fxp_double_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 247
-void fxp_double_to_fxp_array(double *f, signed long int *r, signed int N);
-// fxp_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 390
-void fxp_exp_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], unsigned int expNumber, signed long int (*result)[20l]);
-// fxp_float_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 198
-signed long int fxp_float_to_fxp(float f);
-// fxp_float_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 240
-void fxp_float_to_fxp_array(float *f, signed long int *r, signed int N);
-// fxp_get_frac_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 125
-signed long int fxp_get_frac_part(signed long int in);
-// fxp_get_int_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 115
-signed long int fxp_get_int_part(signed long int in);
-// fxp_int_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 170
-signed long int fxp_int_to_fxp(signed int in);
-// fxp_ln
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 288
-signed int fxp_ln(signed int x);
-// fxp_log10
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 345
-double fxp_log10(double x);
-// fxp_log10_low
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 333
-double fxp_log10_low(double x);
-// fxp_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 368
-void fxp_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*m3)[20l]);
-// fxp_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 339
-signed long int fxp_mult(signed long int amult, signed long int bmult);
-// fxp_neg
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 367
-signed long int fxp_neg(signed long int aneg);
-// fxp_print_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 407
-void fxp_print_float(signed long int a);
-// fxp_print_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 411
-void fxp_print_float_array(signed long int *a, signed int N);
-// fxp_print_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 403
-void fxp_print_int(signed long int a);
-// fxp_quantize
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 136
-signed long int fxp_quantize(signed long int aquant);
-// fxp_shrl
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 390
-signed long int fxp_shrl(signed long int in, signed int shift);
-// fxp_sign
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 380
-signed long int fxp_sign(signed long int a);
-// fxp_square
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 399
-signed long int fxp_square(signed long int a);
-// fxp_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 67
-double fxp_state_space_representation(void);
-// fxp_sub
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 327
-signed long int fxp_sub(signed long int asub, signed long int bsub);
-// fxp_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 474
-void fxp_sub_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l]);
-// fxp_to_double
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 271
-double fxp_to_double(signed long int fxp);
-// fxp_to_double_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 291
-void fxp_to_double_array(double *f, signed long int *r, signed int N);
-// fxp_to_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 264
-float fxp_to_float(signed long int fxp);
-// fxp_to_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 284
-void fxp_to_float_array(float *f, signed long int *r, signed int N);
-// fxp_to_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 182
-signed int fxp_to_int(signed long int fxp);
-// fxp_transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 582
-void fxp_transpose(signed long int (*a)[20l], signed long int (*b)[20l], signed int n, signed int m);
-// fxp_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 61
-signed long int fxp_transposed_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// fxp_verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 153
-void fxp_verify_overflow(signed long int value);
-// fxp_verify_overflow_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 158
-void fxp_verify_overflow_array(signed long int *array, signed int n);
-// generate_delta_coefficients
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 33
-void generate_delta_coefficients(double *vetor, double *out, signed int n, double delta);
-// generic_timing_double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 286
-double generic_timing_double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb);
-// generic_timing_double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 311
-double generic_timing_double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// generic_timing_double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 338
-double generic_timing_double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// generic_timing_shift_l_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 20
-double generic_timing_shift_l_double(double zIn, double *z, signed int N);
-// generic_timing_shift_r_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 37
-double generic_timing_shift_r_double(double zIn, double *z, signed int N);
-// get_delta_transfer_function
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 52
-void get_delta_transfer_function(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta);
-// get_delta_transfer_function_with_base
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 59
-void get_delta_transfer_function_with_base(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta);
-// iirIIOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 428
-float iirIIOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// iirIItOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 452
-float iirIItOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// iirIItOutTime_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 479
-double iirIItOutTime_double(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// iirOutBoth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 506
-void iirOutBoth(float *yf, float *xf, float *af, float *bf, float *sumf_ref, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int *sum_ref, signed int Na, signed int Nb);
-// iirOutBothL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 586
-float iirOutBothL(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb);
-// iirOutBothL2
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 626
-float iirOutBothL2(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb);
-// iirOutFixedL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 536
-signed long int iirOutFixedL(signed long int *y, signed long int *x, signed long int xin, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// iirOutFloatL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 561
-float iirOutFloatL(float *y, float *x, float xin, float *a, float *b, signed int Na, signed int Nb);
-// initialization
-// file /home/lucascordeiro/dsverifier/bmc/core/initialization.h line 24
-void initialization();
-// initialize_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 22
-void initialize_array(double *v, signed int n);
-// initials
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 52
-extern void initials();
-// internal_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 49
-double internal_abs(double a);
-// internal_pow
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 39
-double internal_pow(double a, double b);
-// nchoosek
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 23
-signed int nchoosek(signed int n, signed int k);
-// nondet_double
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle_closedloop.h line 27
-double nondet_double();
-// nondet_float
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 18
-float nondet_float();
-// nondet_int
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 17
-signed int nondet_int();
-// order
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 158
-signed int order(signed int Na, signed int Nb);
-// poly_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 165
-void poly_mult(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans);
-// poly_sum
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 141
-void poly_sum(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans);
-// print_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 305
-void print_array_elements(char *name, double *v, signed int n);
-// print_fxp_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 419
-void print_fxp_array_elements(char *name, signed long int *v, signed int n);
-// print_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 481
-void print_matrix(double (*matrix)[20l], unsigned int lines, unsigned int columns);
-// printf
-// file /usr/include/stdio.h line 362
-extern signed int printf(const char *, ...);
-// rand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 417
-extern signed int rand(void);
-// revert_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 30
-void revert_array(double *v, double *out, signed int n);
-// shiftL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 53
-signed long int shiftL(signed long int zIn, signed long int *z, signed int N);
-// shiftLDouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 119
-double shiftLDouble(double zIn, double *z, signed int N);
-// shiftLboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 130
-void shiftLboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N);
-// shiftLfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 75
-float shiftLfloat(float zIn, float *z, signed int N);
-// shiftR
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 64
-signed long int shiftR(signed long int zIn, signed long int *z, signed int N);
-// shiftRDdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 97
-double shiftRDdouble(double zIn, double *z, signed int N);
-// shiftRboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 144
-void shiftRboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N);
-// shiftRdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 108
-double shiftRdouble(double zIn, double *z, signed int N);
-// shiftRfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 86
-float shiftRfloat(float zIn, float *z, signed int N);
-// snrPoint
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 402
-float snrPoint(float *s, float *n, signed int blksz);
-// snrPower
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 381
-float snrPower(float *s, float *n, signed int blksz);
-// snrVariance
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 357
-float snrVariance(float *s, float *n, signed int blksz);
-// srand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 423
-extern void srand(unsigned int seed);
-// transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 571
-void transpose(double (*a)[20l], double (*b)[20l], signed int n, signed int m);
-// validation
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 125
-void validation();
-// verify_controllability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 16
-signed int verify_controllability(void);
-// verify_controllability_double
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 120
-signed int verify_controllability_double(void);
-// verify_error
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error.h line 20
-signed int verify_error(void);
-// verify_error_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_closedloop.h line 27
-signed int verify_error_closedloop(void);
-// verify_error_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_state_space.h line 20
-signed int verify_error_state_space(void);
-// verify_generic_timing
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_generic_timing.h line 25
-signed int verify_generic_timing(void);
-// verify_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 111
-signed int verify_limit_cycle(void);
-// verify_limit_cycle_closed_loop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle_closedloop.h line 29
-signed int verify_limit_cycle_closed_loop(void);
-// verify_limit_cycle_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 21
-signed int verify_limit_cycle_state_space(void);
-// verify_minimum_phase
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_minimum_phase.h line 24
-signed int verify_minimum_phase(void);
-// verify_observability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_observability.h line 19
-signed int verify_observability(void);
-// verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 23
-signed int verify_overflow(void);
-// verify_stability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability.h line 24
-signed int verify_stability(void);
-// verify_stability_closedloop_using_dslib
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability_closedloop.h line 21
-signed int verify_stability_closedloop_using_dslib(void);
-// verify_timing_msp_430
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_timing_msp430.h line 22
-signed int verify_timing_msp_430(void);
-// verify_zero_input_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_zero_input_limit_cycle.h line 16
-signed int verify_zero_input_limit_cycle(void);
-// wrap
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 100
-signed long int wrap(signed long int kX, signed long int kLowerBound, signed long int kUpperBound);
-
-struct anonymous$0
-{
- // a
- double a[100l];
- // a_size
- signed int a_size;
- // b
- double b[100l];
- // b_size
- signed int b_size;
- // sample_time
- double sample_time;
- // a_uncertainty
- double a_uncertainty[100l];
- // b_uncertainty
- double b_uncertainty[100l];
-};
-
-struct anonymous$1
-{
- // A
- double A[20l][20l];
- // B
- double B[20l][20l];
- // C
- double C[20l][20l];
- // D
- double D[20l][20l];
- // states
- double states[20l][20l];
- // outputs
- double outputs[20l][20l];
- // inputs
- double inputs[20l][20l];
- // K
- double K[20l][20l];
- // nStates
- unsigned int nStates;
- // nInputs
- unsigned int nInputs;
- // nOutputs
- unsigned int nOutputs;
-};
-
-struct anonymous$3
-{
- // int_bits
- signed int int_bits;
- // frac_bits
- signed int frac_bits;
- // max
- double max;
- // min
- double min;
- // default_realization
- signed int default_realization;
- // delta
- double delta;
- // scale
- signed int scale;
- // max_error
- double max_error;
-};
-
-struct anonymous
-{
- // push
- signed int push;
- // in
- signed int in;
- // sbiw
- signed int sbiw;
- // cli
- signed int cli;
- // out
- signed int out;
- // std
- signed int std;
- // ldd
- signed int ldd;
- // subi
- signed int subi;
- // sbci
- signed int sbci;
- // lsl
- signed int lsl;
- // rol
- signed int rol;
- // add
- signed int add;
- // adc
- signed int adc;
- // adiw
- signed int adiw;
- // rjmp
- signed int rjmp;
- // mov
- signed int mov;
- // sbc
- signed int sbc;
- // ld
- signed int ld;
- // rcall
- signed int rcall;
- // cp
- signed int cp;
- // cpc
- signed int cpc;
- // ldi
- signed int ldi;
- // brge
- signed int brge;
- // pop
- signed int pop;
- // ret
- signed int ret;
- // st
- signed int st;
- // brlt
- signed int brlt;
- // cpi
- signed int cpi;
-};
-
-struct anonymous$2
-{
- // clock
- signed long int clock;
- // device
- signed int device;
- // cycle
- double cycle;
- // assembly
- struct anonymous assembly;
-};
-
-
-// X_SIZE_VALUE
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 121
-signed int X_SIZE_VALUE=0;
-// _controller
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 17
-extern struct anonymous$1 _controller;
-// _dbl_max
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 45
-double _dbl_max;
-// _dbl_min
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 46
-double _dbl_min;
-// _fxp_fmask
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 49
-signed long int _fxp_fmask;
-// _fxp_half
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 39
-signed long int _fxp_half;
-// _fxp_imask
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 52
-signed long int _fxp_imask;
-// _fxp_max
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 42
-signed long int _fxp_max;
-// _fxp_min
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 41
-signed long int _fxp_min;
-// _fxp_minus_one
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 40
-signed long int _fxp_minus_one;
-// _fxp_one
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 38
-signed long int _fxp_one;
-// controller
-// file input.c line 3
-struct anonymous$0 controller={ .a={ 1.000000, (double)-4.200000e-1f, (double)-3.465000e-1f, (double)-3.915000e-2f, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .a_size=4,
- .b={ 2.880000e+0, (double)-4.896000e+0f, 2.074000e+0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_size=3,
- .sample_time=1.000000, .a_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 } };
-// ds
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 17
-extern struct anonymous$0 ds;
-// error_limit
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_state_space.h line 18
-extern double error_limit;
-// generic_timer
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_generic_timing.h line 23
-signed int generic_timer=0;
-// hw
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 18
-extern struct anonymous$2 hw;
-// impl
-// file input.c line 11
-struct anonymous$3 impl={ .int_bits=3, .frac_bits=7, .max=1.000000, .min=-1.000000,
- .default_realization=0, .delta=0.000000,
- .scale=1, .max_error=0.000000 };
-// nInputs
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 20
-extern signed int nInputs;
-// nOutputs
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 21
-extern signed int nOutputs;
-// nStates
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 19
-extern signed int nStates;
-// next
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 416
-unsigned long int next=1ul;
-// overflow_mode
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 122
-signed int overflow_mode=1;
-// plant
-// file input.c line 19
-struct anonymous$0 plant={ .a={ 1.000000, (double)-2.000000f, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .a_size=3,
- .b={ 1.250000e-1, 1.250000e-1, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_size=2,
- .sample_time=0.000000, .a_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 } };
-// plant_cbmc
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 46
-struct anonymous$0 plant_cbmc;
-// rounding_mode
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 123
-signed int rounding_mode=0;
-// scale_factor
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 55
-static const double scale_factor[31l]={ 1.000000, 2.000000, 4.000000, 8.000000, 16.000000, 32.000000, 64.000000, 128.000000, 256.000000, 512.000000, 1024.000000, 2048.000000, 4096.000000, 8192.000000, 16384.000000, 32768.000000, 65536.000000, 1.310720e+5, 2.621440e+5, 5.242880e+5, 1.048576e+6, 2.097152e+6, 4.194304e+6, 8.388608e+6, 1.677722e+7, 3.355443e+7, 6.710886e+7, 1.342177e+8, 2.684355e+8, 5.368709e+8, 1.073742e+9 };
-// scale_factor_inv
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 62
-static const double scale_factor_inv[31l]={ 1.000000, 5.000000e-1, 2.500000e-1, 1.250000e-1, 6.250000e-2, 3.125000e-2, 1.562500e-2, 7.812500e-3, 3.906250e-3, 1.953125e-3, 9.765625e-4, 4.882813e-4, 2.441406e-4, 1.220703e-4, 6.103516e-5, 3.051758e-5, 1.525879e-5, 7.629395e-6, 3.814697e-6, 1.907349e-6, 9.536743e-7, 4.768372e-7, 2.384186e-7, 1.192093e-7, 5.960465e-8, 2.980232e-8, 1.490116e-8, 7.450581e-9, 3.725290e-9, 1.862645e-9, 9.313230e-10 };
-
-// __DSVERIFIER_assert
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 35
-void __DSVERIFIER_assert(_Bool expression)
-{
- /* assertion expression */
- assert(expression != (_Bool)0);
- if(!(expression == (_Bool)0))
- (void)0;
-
-}
-
-// __DSVERIFIER_assert_msg
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 39
-void __DSVERIFIER_assert_msg(_Bool expression, char *msg)
-{
- printf("%c", msg);
- /* assertion expression */
- assert(expression != (_Bool)0);
- if(!(expression == (_Bool)0))
- (void)0;
-
-}
-
-// __DSVERIFIER_assume
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 21
-void __DSVERIFIER_assume(_Bool expression)
-{
- __CPROVER_assume(expression != (_Bool)0);
-}
-
-// call_closedloop_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 369
-void call_closedloop_verification_task(void *closedloop_verification_task)
-{
- _Bool base_case_executed=(_Bool)0;
- signed int i=0;
- i = 0;
- for( ; !(i >= plant.b_size); i = i + 1)
- {
- if(plant.b_uncertainty[(signed long int)i] > 0.000000)
- {
- double call_closedloop_verification_task$$1$$1$$1$$1$$factor=(plant.b[(signed long int)i] * plant.b_uncertainty[(signed long int)i]) / 100.000000;
- call_closedloop_verification_task$$1$$1$$1$$1$$factor = call_closedloop_verification_task$$1$$1$$1$$1$$factor < 0.000000 ? call_closedloop_verification_task$$1$$1$$1$$1$$factor * (double)-1 : call_closedloop_verification_task$$1$$1$$1$$1$$factor;
- double call_closedloop_verification_task$$1$$1$$1$$1$$min=plant.b[(signed long int)i] - call_closedloop_verification_task$$1$$1$$1$$1$$factor;
- double call_closedloop_verification_task$$1$$1$$1$$1$$max=plant.b[(signed long int)i] + call_closedloop_verification_task$$1$$1$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_closedloop_verification_task$$1$$1$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L9;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_closedloop_verification_task$$1$$1$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- plant_cbmc.b[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$1;
- if(plant_cbmc.b[(signed long int)i] >= call_closedloop_verification_task$$1$$1$$1$$1$$min)
- tmp_if_expr$1 = plant_cbmc.b[(signed long int)i] <= call_closedloop_verification_task$$1$$1$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$1);
- }
-
- else
- plant_cbmc.b[(signed long int)i] = plant.b[(signed long int)i];
-
- __CPROVER_DUMP_L9:
- ;
- }
- i = 0;
- for( ; !(i >= plant.a_size); i = i + 1)
- {
- if(plant.a_uncertainty[(signed long int)i] > 0.000000)
- {
- double factor=(plant.a[(signed long int)i] * plant.a_uncertainty[(signed long int)i]) / 100.000000;
- factor = factor < 0.000000 ? factor * (double)-1 : factor;
- double min=plant.a[(signed long int)i] - factor;
- double max=plant.a[(signed long int)i] + factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- goto __CPROVER_DUMP_L19;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- plant_cbmc.a[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$2;
- if(plant_cbmc.a[(signed long int)i] >= min)
- tmp_if_expr$2 = plant_cbmc.a[(signed long int)i] <= max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
-
- else
- plant_cbmc.a[(signed long int)i] = plant.a[(signed long int)i];
-
- __CPROVER_DUMP_L19:
- ;
- }
- ((void (*)())closedloop_verification_task)();
-}
-
-// call_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 268
-void call_verification_task(void *verification_task)
-{
- signed int i=0;
- _Bool base_case_executed=(_Bool)0;
- if((_Bool)0)
- {
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- {
- if(ds.b_uncertainty[(signed long int)i] > 0.000000)
- {
- double call_verification_task$$1$$1$$1$$1$$1$$factor=ds.b_uncertainty[(signed long int)i];
- call_verification_task$$1$$1$$1$$1$$1$$factor = call_verification_task$$1$$1$$1$$1$$1$$factor < 0.000000 ? call_verification_task$$1$$1$$1$$1$$1$$factor * (double)-1 : call_verification_task$$1$$1$$1$$1$$1$$factor;
- double min=ds.b[(signed long int)i] - call_verification_task$$1$$1$$1$$1$$1$$factor;
- double max=ds.b[(signed long int)i] + call_verification_task$$1$$1$$1$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$1$$1$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L8;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$1$$1$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.b[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$1;
- if(ds.b[(signed long int)i] >= min)
- tmp_if_expr$1 = ds.b[(signed long int)i] <= max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$1);
- }
-
-
- __CPROVER_DUMP_L8:
- ;
- }
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- {
- if(ds.a_uncertainty[(signed long int)i] > 0.000000)
- {
- double factor=ds.a_uncertainty[(signed long int)i];
- factor = factor < 0.000000 ? factor * (double)-1 : factor;
- double call_verification_task$$1$$1$$2$$1$$1$$min=ds.a[(signed long int)i] - factor;
- double call_verification_task$$1$$1$$2$$1$$1$$max=ds.a[(signed long int)i] + factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- goto __CPROVER_DUMP_L17;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.a[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$2;
- if(ds.a[(signed long int)i] >= call_verification_task$$1$$1$$2$$1$$1$$min)
- tmp_if_expr$2 = ds.a[(signed long int)i] <= call_verification_task$$1$$1$$2$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
-
-
- __CPROVER_DUMP_L17:
- ;
- }
- }
-
- else
- {
- signed int call_verification_task$$1$$2$$i=0;
- call_verification_task$$1$$2$$i = 0;
- for( ; !(call_verification_task$$1$$2$$i >= ds.b_size); call_verification_task$$1$$2$$i = call_verification_task$$1$$2$$i + 1)
- {
- if(ds.b_uncertainty[(signed long int)call_verification_task$$1$$2$$i] > 0.000000)
- {
- double call_verification_task$$1$$2$$1$$1$$1$$factor=(ds.b[(signed long int)call_verification_task$$1$$2$$i] * ds.b_uncertainty[(signed long int)call_verification_task$$1$$2$$i]) / 100.000000;
- call_verification_task$$1$$2$$1$$1$$1$$factor = call_verification_task$$1$$2$$1$$1$$1$$factor < 0.000000 ? call_verification_task$$1$$2$$1$$1$$1$$factor * (double)-1 : call_verification_task$$1$$2$$1$$1$$1$$factor;
- double call_verification_task$$1$$2$$1$$1$$1$$min=ds.b[(signed long int)call_verification_task$$1$$2$$i] - call_verification_task$$1$$2$$1$$1$$1$$factor;
- double call_verification_task$$1$$2$$1$$1$$1$$max=ds.b[(signed long int)call_verification_task$$1$$2$$i] + call_verification_task$$1$$2$$1$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$1$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L27;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$1$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.b[(signed long int)call_verification_task$$1$$2$$i] = nondet_double();
- _Bool tmp_if_expr$3;
- if(ds.b[(signed long int)call_verification_task$$1$$2$$i] >= call_verification_task$$1$$2$$1$$1$$1$$min)
- tmp_if_expr$3 = ds.b[(signed long int)call_verification_task$$1$$2$$i] <= call_verification_task$$1$$2$$1$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$3 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$3);
- }
-
-
- __CPROVER_DUMP_L27:
- ;
- }
- call_verification_task$$1$$2$$i = 0;
- for( ; !(call_verification_task$$1$$2$$i >= ds.a_size); call_verification_task$$1$$2$$i = call_verification_task$$1$$2$$i + 1)
- {
- if(ds.a_uncertainty[(signed long int)call_verification_task$$1$$2$$i] > 0.000000)
- {
- double call_verification_task$$1$$2$$2$$1$$1$$factor=(ds.a[(signed long int)call_verification_task$$1$$2$$i] * ds.a_uncertainty[(signed long int)call_verification_task$$1$$2$$i]) / 100.000000;
- call_verification_task$$1$$2$$2$$1$$1$$factor = call_verification_task$$1$$2$$2$$1$$1$$factor < 0.000000 ? call_verification_task$$1$$2$$2$$1$$1$$factor * (double)-1 : call_verification_task$$1$$2$$2$$1$$1$$factor;
- double call_verification_task$$1$$2$$2$$1$$1$$min=ds.a[(signed long int)call_verification_task$$1$$2$$i] - call_verification_task$$1$$2$$2$$1$$1$$factor;
- double call_verification_task$$1$$2$$2$$1$$1$$max=ds.a[(signed long int)call_verification_task$$1$$2$$i] + call_verification_task$$1$$2$$2$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$2$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L36;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$2$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.a[(signed long int)call_verification_task$$1$$2$$i] = nondet_double();
- _Bool tmp_if_expr$4;
- if(ds.a[(signed long int)call_verification_task$$1$$2$$i] >= call_verification_task$$1$$2$$2$$1$$1$$min)
- tmp_if_expr$4 = ds.a[(signed long int)call_verification_task$$1$$2$$i] <= call_verification_task$$1$$2$$2$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$4 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$4);
- }
-
-
- __CPROVER_DUMP_L36:
- ;
- }
- }
- ((void (*)())verification_task)();
-}
-
-// check_stability
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 59
-signed int check_stability(double *a, signed int n)
-{
- signed int lines=2 * n - 1;
- signed int columns=n;
- const signed long int columns$array_size0=(signed long int)n;
- const signed long int columns$array_size1=(signed long int)lines;
- double m[columns$array_size1][columns$array_size0];
- signed int i;
- signed int j;
- const signed long int j$array_size0=(signed long int)n;
- double current_stability[j$array_size0];
- i = 0;
- for( ; !(i >= n); i = i + 1)
- current_stability[(signed long int)i] = a[(signed long int)i];
- double sum=0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- sum = sum + a[(signed long int)i];
- if(sum <= 0.000000)
- {
- printf("[DEBUG] the first constraint of Jury criteria failed: (F(1) > 0)");
- return 0;
- }
-
- else
- {
- sum = 0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- double return_value_internal_pow$1=internal_pow((double)-1, (double)((n - 1) - i));
- sum = sum + a[(signed long int)i] * return_value_internal_pow$1;
- }
- double return_value_internal_pow$2=internal_pow((double)-1, (double)(n - 1));
- sum = sum * return_value_internal_pow$2;
- if(sum <= 0.000000)
- {
- printf("[DEBUG] the second constraint of Jury criteria failed: (F(-1)*(-1)^n > 0)");
- return 0;
- }
-
- else
- {
- double return_value_internal_abs$3=internal_abs(a[(signed long int)(n - 1)]);
- if(return_value_internal_abs$3 > *a)
- {
- printf("[DEBUG] the third constraint of Jury criteria failed: (abs(a0) < a_{n}*z^{n})");
- return 0;
- }
-
- else
- {
- i = 0;
- for( ; !(i >= lines); i = i + 1)
- {
- j = 0;
- for( ; !(j >= columns); j = j + 1)
- m[(signed long int)i][(signed long int)j] = 0.000000;
- }
- i = 0;
- for( ; !(i >= lines); i = i + 1)
- {
- j = 0;
- for( ; !(j >= columns); j = j + 1)
- if(i == 0)
- m[(signed long int)i][(signed long int)j] = a[(signed long int)j];
-
- else
- if(!(i % 2 == 0))
- {
- signed int x=0;
- for( ; !(x >= columns); x = x + 1)
- m[(signed long int)i][(signed long int)x] = m[(signed long int)(i - 1)][(signed long int)((columns - x) - 1)];
- columns = columns - 1;
- j = columns;
- }
-
- else
- m[(signed long int)i][(signed long int)j] = m[(signed long int)(i - 2)][(signed long int)j] - (m[(signed long int)(i - 2)][(signed long int)columns] / m[(signed long int)(i - 2)][0l]) * m[(signed long int)(i - 1)][(signed long int)j];
- }
- signed int first_is_positive=m[0l][0l] >= 0.000000 ? 1 : 0;
- i = 0;
- for( ; !(i >= lines); i = i + 1)
- if(i % 2 == 0)
- {
- signed int line_is_positive=m[(signed long int)i][0l] >= 0.000000 ? 1 : 0;
- if(!(first_is_positive == line_is_positive))
- return 0;
-
- }
-
- return 1;
- }
- }
- }
-}
-
-// check_stability_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 70
-signed int check_stability_closedloop(double *a, signed int n, double *plant_num, signed int p_num_size, double *plant_den, signed int p_den_size)
-{
- signed int columns=n;
- const signed long int columns$array_size0=(signed long int)n;
- const signed long int columns$array_size1=(signed long int)(2 * n - 1);
- double m[columns$array_size1][columns$array_size0];
- signed int i;
- signed int j;
- signed int first_is_positive=0;
- double *p_num=plant_num;
- double *p_den=plant_den;
- double sum=0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- sum = sum + a[(signed long int)i];
- __DSVERIFIER_assert(sum > 0.000000);
- sum = 0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- double return_value_internal_pow$1=internal_pow((double)-1, (double)((n - 1) - i));
- sum = sum + a[(signed long int)i] * return_value_internal_pow$1;
- }
- double return_value_internal_pow$2=internal_pow((double)-1, (double)(n - 1));
- sum = sum * return_value_internal_pow$2;
- __DSVERIFIER_assert(sum > 0.000000);
- double return_value_internal_abs$3=internal_abs(a[(signed long int)(n - 1)]);
- __DSVERIFIER_assert(return_value_internal_abs$3 < a[0l]);
- i = 0;
- for( ; !(i >= 2 * n + -1); i = i + 1)
- {
- j = 0;
- for( ; !(j >= columns); j = j + 1)
- {
- m[(signed long int)i][(signed long int)j] = 0.000000;
- if(i == 0)
- m[(signed long int)i][(signed long int)j] = a[(signed long int)j];
-
- else
- if(!(i % 2 == 0))
- {
- signed int x=0;
- for( ; !(x >= columns); x = x + 1)
- m[(signed long int)i][(signed long int)x] = m[(signed long int)(i - 1)][(signed long int)((columns - x) - 1)];
- columns = columns - 1;
- j = columns;
- }
-
- else
- {
- m[(signed long int)i][(signed long int)j] = m[(signed long int)(i - 2)][(signed long int)j] - (m[(signed long int)(i - 2)][(signed long int)columns] / m[(signed long int)(i - 2)][0l]) * m[(signed long int)(i - 1)][(signed long int)j];
- _Bool tmp_if_expr$4;
- if(m[0l][0l] >= 0.000000)
- tmp_if_expr$4 = m[(signed long int)i][0l] >= 0.000000 ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$4 = (_Bool)0;
- __DSVERIFIER_assert(tmp_if_expr$4);
- }
- }
- }
- return 1;
-}
-
-// determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 498
-double determinant(double (*a)[20l], signed int n)
-{
- signed int i;
- signed int j;
- signed int j1;
- signed int j2;
- double det=0.000000;
- double m[20l][20l];
- if(n >= 1)
- {
- if(n == 1)
- det = a[0l][0l];
-
- else
- if(n == 2)
- det = a[0l][0l] * a[1l][1l] - a[1l][0l] * a[0l][1l];
-
- else
- {
- det = 0.000000;
- j1 = 0;
- for( ; !(j1 >= n); j1 = j1 + 1)
- {
- i = 0;
- for( ; !(i >= -1 + n); i = i + 1)
- {
- i = 1;
- for( ; !(i >= n); i = i + 1)
- {
- j2 = 0;
- j = 0;
- for( ; !(j >= n); j = j + 1)
- if(!(j == j1))
- {
- m[(signed long int)(i - 1)][(signed long int)j2] = a[(signed long int)i][(signed long int)j];
- j2 = j2 + 1;
- }
-
- }
- }
- double return_value_internal_pow$1=internal_pow(-1.000000, 1.000000 + (double)j1 + 1.000000);
- double return_value_determinant$2=determinant(m, n - 1);
- det = det + return_value_internal_pow$1 * a[0l][(signed long int)j1] * return_value_determinant$2;
- }
- }
- }
-
- return det;
-}
-
-// double_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 315
-void double_add_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j] + m2[(signed long int)i][(signed long int)j];
- }
-}
-
-// double_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 218
-void double_check_limit_cycle(double *y, signed int y_size)
-{
- double reference=y[(signed long int)(y_size - 1)];
- signed int idx=0;
- signed int window_size=1;
- idx = y_size - 2;
- for( ; idx >= 0; idx = idx - 1)
- if(IEEE_FLOAT_NOTEQUAL(y[(signed long int)idx], reference))
- window_size = window_size + 1;
-
- else
- break;
- __DSVERIFIER_assume(window_size != y_size && window_size != 1);
- printf("window_size %d\n", window_size);
- signed int desired_elements=2 * window_size;
- signed int found_elements=0;
- idx = y_size - 1;
- for( ; idx >= 0; idx = idx - 1)
- if(!(-1 + y_size + -window_size >= idx))
- {
- printf("%.0f == %.0f\n", y[(signed long int)idx], y[(signed long int)(idx - window_size)]);
- signed int cmp_idx=idx - window_size;
- _Bool tmp_if_expr$1;
- if(cmp_idx >= 1)
- tmp_if_expr$1 = IEEE_FLOAT_EQUAL(y[(signed long int)idx], y[(signed long int)(idx - window_size)]) ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- if(tmp_if_expr$1)
- found_elements = found_elements + 2;
-
- else
- break;
- }
-
- printf("desired_elements %d\n", desired_elements);
- printf("found_elements %d\n", found_elements);
- __DSVERIFIER_assert(desired_elements != found_elements);
-}
-
-// double_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 187
-void double_check_oscillations(double *y, signed int y_size)
-{
- __DSVERIFIER_assume(IEEE_FLOAT_NOTEQUAL(y[0l], y[(signed long int)(y_size - 1)]));
- signed int window_timer=0;
- signed int window_count=0;
- signed int i;
- signed int j;
- i = 2;
- for( ; !(i >= y_size); i = i + 1)
- {
- signed int window_size=i;
- j = 0;
- for( ; !(j >= y_size); j = j + 1)
- {
- if(!(window_size >= window_timer))
- {
- window_timer = 0;
- window_count = 0;
- }
-
- signed int window_index=j + window_size;
- if(!(window_index >= y_size))
- {
- if(IEEE_FLOAT_EQUAL(y[(signed long int)j], y[(signed long int)window_index]))
- {
- window_count = window_count + 1;
- /* assertion !(window_count == window_size) */
- assert(!(window_count == window_size));
- if(!(window_count == window_size))
- (void)0;
-
- }
-
- }
-
- else
- break;
- window_timer = window_timer + 1;
- }
- }
-}
-
-// double_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 254
-void double_check_persistent_limit_cycle(double *y, signed int y_size)
-{
- signed int idy=0;
- signed int count_same=0;
- signed int window_size=0;
- double reference=y[0l];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(IEEE_FLOAT_NOTEQUAL(y[(signed long int)idy], reference))
- window_size = window_size + 1;
-
- else
- if(!(window_size == 0))
- break;
-
- else
- count_same = count_same + 1;
- window_size = window_size + count_same;
- __DSVERIFIER_assume(window_size > 1 && window_size <= y_size / 2);
- const signed long int reference$array_size0=(signed long int)window_size;
- double lco_elements[reference$array_size0];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(!(idy >= window_size))
- lco_elements[(signed long int)idy] = y[(signed long int)idy];
-
- idy = 0;
- signed int lco_idy=0;
- _Bool is_persistent=(_Bool)0;
- while(!(idy >= y_size))
- {
- signed int tmp_post$1=idy;
- idy = idy + 1;
- signed int tmp_post$2=lco_idy;
- lco_idy = lco_idy + 1;
- if(IEEE_FLOAT_EQUAL(y[(signed long int)tmp_post$1], lco_elements[(signed long int)tmp_post$2]))
- is_persistent = (_Bool)0;
-
- else
- {
- is_persistent = (_Bool)0;
- break;
- }
- if(lco_idy == window_size)
- lco_idy = 0;
-
- }
- __DSVERIFIER_assert((signed int)is_persistent == 0);
-}
-
-// double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 83
-double double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb)
-{
- double *a_ptr;
- double *y_ptr;
- double *b_ptr;
- double *x_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- }
- sum = sum / a[0l];
- return sum;
-}
-
-// double_direct_form_1_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 205
-double double_direct_form_1_MSP430(double *y, double *x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *y_ptr;
- double *b_ptr;
- double *x_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- timer1 = timer1 + 91;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- timer1 = timer1 + 47;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- timer1 = timer1 + 57;
- }
- timer1 = timer1 + 3;
- /* assertion (double) timer1 * hw.cycle <= ds.sample_time */
- assert((double)timer1 * hw.cycle <= ds.sample_time);
- if((double)timer1 * hw.cycle <= ds.sample_time)
- (void)0;
-
- return sum;
-}
-
-// double_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 364
-void double_direct_form_1_impl2(double *x, signed int x_size, double *b, signed int b_size, double *a, signed int a_size, double *y)
-{
- signed int i=0;
- signed int j=0;
- const signed long int j$array_size0=(signed long int)x_size;
- double v[j$array_size0];
- i = 0;
- for( ; !(i >= x_size); i = i + 1)
- {
- v[(signed long int)i] = 0.000000;
- j = 0;
- for( ; !(j >= b_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- v[(signed long int)i] = v[(signed long int)i] + x[(signed long int)(i - j)] * b[(signed long int)j];
- }
- }
- y[0l] = v[0l];
- i = 1;
- for( ; !(i >= x_size); i = i + 1)
- {
- y[(signed long int)i] = 0.000000;
- y[(signed long int)i] = y[(signed long int)i] + v[(signed long int)i];
- j = 1;
- for( ; !(j >= a_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- y[(signed long int)i] = y[(signed long int)i] + y[(signed long int)(i - j)] * (double)-1 * a[(signed long int)j];
- }
- }
-}
-
-// double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 102
-double double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- double *a_ptr;
- double *b_ptr;
- double *w_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j=1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- }
- w[0l] = w[0l] + x;
- w[0l] = w[0l] / a[0l];
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- }
- return sum;
-}
-
-// double_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 230
-double double_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *b_ptr;
- double *w_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j;
- timer1 = timer1 + 71;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- timer1 = timer1 + 54;
- }
- w[0l] = w[0l] + x;
- w[0l] = w[0l] / a[0l];
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- timer1 = timer1 + 46;
- }
- timer1 = timer1 + 38;
- /* assertion (double) timer1 * hw.cycle <= ds.sample_time */
- assert((double)timer1 * hw.cycle <= ds.sample_time);
- if((double)timer1 * hw.cycle <= ds.sample_time)
- (void)0;
-
- return sum;
-}
-
-// double_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 428
-void double_exp_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], unsigned int expNumber, double (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int k;
- unsigned int l;
- double m2[20l][20l];
- if(expNumber == 0u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- if(i == j)
- result[(signed long int)i][(signed long int)j] = 1.000000;
-
- else
- result[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
-
- else
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j];
- }
- if(!(expNumber == 1u))
- {
- l = 1u;
- for( ; !(l >= expNumber); l = l + 1u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- m2[(signed long int)i][(signed long int)j] = result[(signed long int)i][(signed long int)j];
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = 0.000000;
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= columns); k = k + 1u)
- result[(signed long int)i][(signed long int)j] = result[(signed long int)i][(signed long int)j] + m2[(signed long int)i][(signed long int)k] * m1[(signed long int)k][(signed long int)j];
- }
- }
- }
- }
-
- }
-}
-
-// double_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 337
-void double_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, double (*m1)[20l], double (*m2)[20l], double (*m3)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int k;
- if(j1 == i2)
- {
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- m3[(signed long int)i][(signed long int)j] = 0.000000;
- }
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= j1); k = k + 1u)
- {
- double mult=m1[(signed long int)i][(signed long int)k] * m2[(signed long int)k][(signed long int)j];
- m3[(signed long int)i][(signed long int)j] = m3[(signed long int)i][(signed long int)j] + m1[(signed long int)i][(signed long int)k] * m2[(signed long int)k][(signed long int)j];
- }
- }
- }
- }
-
- else
- printf("\nError! Operation invalid, please enter with valid matrices.\n");
-}
-
-// double_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 23
-double double_state_space_representation(void)
-{
- double result1[20l][20l];
- double result2[20l][20l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- {
- result1[(signed long int)i][(signed long int)j] = 0.000000;
- result2[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- i = 1;
- for( ; !(i >= 0); i = i + 1)
- {
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.A, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.B, _controller.inputs, result2);
- double_add_matrix((unsigned int)nStates, 1u, result1, result2, _controller.states);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- }
- return _controller.outputs[0l][0l];
-}
-
-// double_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 326
-void double_sub_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j] - m2[(signed long int)i][(signed long int)j];
- }
-}
-
-// double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 122
-double double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- yout = yout / a[0l];
- signed int j=0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- }
-
- }
- return yout;
-}
-
-// double_transposed_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 257
-double double_transposed_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- timer1 = timer1 + 105;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- timer1 = timer1 + 41;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- timer1 = timer1 + 38;
- }
-
- timer1 = timer1 + 54;
- }
- timer1 = timer1 + 7;
- /* assertion (double) timer1 * hw.cycle <= ds.sample_time */
- assert((double)timer1 * hw.cycle <= ds.sample_time);
- if((double)timer1 * hw.cycle <= ds.sample_time)
- (void)0;
-
- return yout;
-}
-
-// fatorial
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 54
-signed int fatorial(signed int n)
-{
- signed int tmp_if_expr$2;
- signed int return_value_fatorial$1;
- if(n == 0)
- tmp_if_expr$2 = 1;
-
- else
- {
- return_value_fatorial$1=fatorial(n - 1);
- tmp_if_expr$2 = n * return_value_fatorial$1;
- }
- return tmp_if_expr$2;
-}
-
-// float_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 144
-float float_direct_form_1(float *y, float *x, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *y_ptr;
- float *b_ptr;
- float *x_ptr;
- float sum=0.000000f;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- float *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- float *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- float *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- }
- sum = sum / a[0l];
- return sum;
-}
-
-// float_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 163
-float float_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *b_ptr;
- float *w_ptr;
- float sum=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j=1;
- for( ; !(j >= Na); j = j + 1)
- {
- float *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- float *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- }
- w[0l] = w[0l] + x;
- w[0l] = w[0l] / a[0l];
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- float *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- }
- return sum;
-}
-
-// float_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 183
-float float_transposed_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *b_ptr;
- float yout=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- yout = yout / a[0l];
- signed int j=0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- float *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- }
-
- if(!(j >= -1 + Nb))
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- }
-
- }
- return yout;
-}
-
-// ft_closedloop_feedback
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 57
-void ft_closedloop_feedback(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den)
-{
- Nans_num = (Nc_den + Nmodel_num) - 1;
- Nans_den = (Nc_den + Nmodel_den) - 1;
- signed int Nnum_mult=(Nc_num + Nmodel_num) - 1;
- const signed long int Nnum_mult$array_size0=(signed long int)Nans_den;
- double den_mult[Nnum_mult$array_size0];
- const signed long int den_mult$array_size0=(signed long int)Nnum_mult;
- double num_mult[den_mult$array_size0];
- poly_mult(c_num, Nc_num, model_num, Nmodel_num, num_mult, Nnum_mult);
- poly_mult(c_den, Nc_den, model_den, Nmodel_den, den_mult, Nans_den);
- poly_sum(num_mult, Nnum_mult, den_mult, Nans_den, ans_den, Nans_den);
- poly_mult(c_den, Nc_den, model_num, Nmodel_num, ans_num, Nans_num);
-}
-
-// ft_closedloop_sensitivity
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 42
-void ft_closedloop_sensitivity(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den)
-{
- signed int Nans_num_p=(Nc_num + Nmodel_num) - 1;
- Nans_den = (Nc_den + Nmodel_den) - 1;
- Nans_num = (Nc_den + Nmodel_den) - 1;
- const signed long int Nans_num_p$array_size0=(signed long int)Nans_num_p;
- double num_mult[Nans_num_p$array_size0];
- poly_mult(c_den, Nc_den, model_den, Nmodel_den, ans_num, Nans_num);
- poly_mult(c_num, Nc_num, model_num, Nmodel_num, num_mult, Nans_num_p);
- poly_sum(ans_num, Nans_num, num_mult, Nans_num_p, ans_den, Nans_den);
-}
-
-// ft_closedloop_series
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 28
-void ft_closedloop_series(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den)
-{
- Nans_num = (Nc_num + Nmodel_num) - 1;
- Nans_den = (Nc_den + Nmodel_den) - 1;
- const signed long int ft_closedloop_series$array_size0=(signed long int)Nans_den;
- double den_mult[ft_closedloop_series$array_size0];
- poly_mult(c_num, Nc_num, model_num, Nmodel_num, ans_num, Nans_num);
- poly_mult(c_den, Nc_den, model_den, Nmodel_den, den_mult, Nans_den);
- poly_sum(ans_num, Nans_num, den_mult, Nans_den, ans_den, Nans_den);
-}
-
-// fxp_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 303
-signed long int fxp_abs(signed long int a)
-{
- signed long int tmp=a < 0l ? -((signed long int)a) : a;
- return tmp;
-}
-
-// fxp_add
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 315
-signed long int fxp_add(signed long int aadd, signed long int badd)
-{
- signed long int tmpadd=(signed long int)aadd + (signed long int)badd;
- return tmpadd;
-}
-
-// fxp_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 467
-void fxp_add_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j]=fxp_add(m1[(signed long int)i][(signed long int)j], m2[(signed long int)i][(signed long int)j]);
- }
-}
-
-// fxp_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 163
-void fxp_check_limit_cycle(signed long int *y, signed int y_size)
-{
- signed long int reference=y[(signed long int)(y_size - 1)];
- signed int idx=0;
- signed int window_size=1;
- idx = y_size - 2;
- for( ; idx >= 0; idx = idx - 1)
- if(!(y[(signed long int)idx] == reference))
- window_size = window_size + 1;
-
- else
- break;
- __DSVERIFIER_assume(window_size != y_size && window_size != 1);
- printf("window_size %d\n", window_size);
- signed int desired_elements=2 * window_size;
- signed int found_elements=0;
- idx = y_size - 1;
- for( ; idx >= 0; idx = idx - 1)
- if(!(-1 + y_size + -window_size >= idx))
- {
- printf("%.0f == %.0f\n", y[(signed long int)idx], y[(signed long int)(idx - window_size)]);
- signed int cmp_idx=idx - window_size;
- _Bool tmp_if_expr$1;
- if(cmp_idx >= 1)
- tmp_if_expr$1 = y[(signed long int)idx] == y[(signed long int)(idx - window_size)] ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- if(tmp_if_expr$1)
- found_elements = found_elements + 2;
-
- else
- break;
- }
-
- __DSVERIFIER_assume(found_elements > 0);
- printf("desired_elements %d\n", desired_elements);
- printf("found_elements %d\n", found_elements);
- __DSVERIFIER_assume(found_elements == desired_elements);
- __DSVERIFIER_assert((_Bool)0);
-}
-
-// fxp_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 253
-void fxp_check_oscillations(signed long int *y, signed int y_size)
-{
- _Bool tmp_if_expr$1;
- if(!(*y == y[(signed long int)(-1 + y_size)]))
- tmp_if_expr$1 = y[(signed long int)(y_size - 1)] != y[(signed long int)(y_size - 2)] ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$1);
- signed int window_timer=0;
- signed int window_count=0;
- signed int i;
- signed int j;
- i = 2;
- for( ; !(i >= y_size); i = i + 1)
- {
- signed int window_size=i;
- j = 0;
- for( ; !(j >= y_size); j = j + 1)
- {
- if(!(window_size >= window_timer))
- {
- window_timer = 0;
- window_count = 0;
- }
-
- signed int window_index=j + window_size;
- if(!(window_index >= y_size))
- {
- if(y[(signed long int)j] == y[(signed long int)window_index])
- {
- window_count = window_count + 1;
- __DSVERIFIER_assert(!(window_count == window_size));
- }
-
- }
-
- else
- break;
- window_timer = window_timer + 1;
- }
- }
-}
-
-// fxp_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 201
-void fxp_check_persistent_limit_cycle(signed long int *y, signed int y_size)
-{
- signed int idy=0;
- signed int count_same=0;
- signed int window_size=0;
- signed long int reference=y[0l];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(!(y[(signed long int)idy] == reference))
- window_size = window_size + 1;
-
- else
- if(!(window_size == 0))
- break;
-
- else
- count_same = count_same + 1;
- window_size = window_size + count_same;
- __DSVERIFIER_assume(window_size > 1 && window_size <= y_size / 2);
- const signed long int reference$array_size0=(signed long int)window_size;
- signed long int lco_elements[reference$array_size0];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(!(idy >= window_size))
- lco_elements[(signed long int)idy] = y[(signed long int)idy];
-
- idy = 0;
- signed int lco_idy=0;
- _Bool is_persistent=(_Bool)0;
- while(!(idy >= y_size))
- {
- signed int tmp_post$1=idy;
- idy = idy + 1;
- signed int tmp_post$2=lco_idy;
- lco_idy = lco_idy + 1;
- if(y[(signed long int)tmp_post$1] == lco_elements[(signed long int)tmp_post$2])
- is_persistent = (_Bool)0;
-
- else
- {
- is_persistent = (_Bool)0;
- break;
- }
- if(lco_idy == window_size)
- lco_idy = 0;
-
- }
- __DSVERIFIER_assert((signed int)is_persistent == 0);
-}
-
-// fxp_determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 529
-double fxp_determinant(signed long int (*a_fxp)[20l], signed int n)
-{
- signed int i;
- signed int j;
- signed int j1;
- signed int j2;
- double a[20l][20l];
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- j = 0;
- for( ; !(j >= n); j = j + 1)
- a[(signed long int)i][(signed long int)j]=fxp_to_double(a_fxp[(signed long int)i][(signed long int)j]);
- }
- double det=0.000000;
- double m[20l][20l];
- if(n >= 1)
- {
- if(n == 1)
- det = a[0l][0l];
-
- else
- if(n == 2)
- det = a[0l][0l] * a[1l][1l] - a[1l][0l] * a[0l][1l];
-
- else
- {
- det = 0.000000;
- j1 = 0;
- for( ; !(j1 >= n); j1 = j1 + 1)
- {
- i = 0;
- for( ; !(i >= -1 + n); i = i + 1)
- {
- i = 1;
- for( ; !(i >= n); i = i + 1)
- {
- j2 = 0;
- j = 0;
- for( ; !(j >= n); j = j + 1)
- if(!(j == j1))
- {
- m[(signed long int)(i - 1)][(signed long int)j2] = a[(signed long int)i][(signed long int)j];
- j2 = j2 + 1;
- }
-
- }
- }
- double return_value_internal_pow$1=internal_pow(-1.000000, 1.000000 + (double)j1 + 1.000000);
- double return_value_determinant$2=determinant(m, n - 1);
- det = det + return_value_internal_pow$1 * a[0l][(signed long int)j1] * return_value_determinant$2;
- }
- }
- }
-
- return det;
-}
-
-// fxp_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 22
-signed long int fxp_direct_form_1(signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- signed long int *tmp_post$4=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int *tmp_post$5=y_ptr;
- y_ptr = y_ptr - 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$4, *tmp_post$5);
- sum=fxp_sub(sum, return_value_fxp_mult$6);
- }
- sum=fxp_div(sum, a[0l]);
- signed long int return_value_fxp_quantize$7=fxp_quantize(sum);
- return return_value_fxp_quantize$7;
-}
-
-// fxp_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 388
-void fxp_direct_form_1_impl2(signed long int *x, signed int x_size, signed long int *b, signed int b_size, signed long int *a, signed int a_size, signed long int *y)
-{
- signed int i=0;
- signed int j=0;
- const signed long int j$array_size0=(signed long int)x_size;
- signed long int v[j$array_size0];
- i = 0;
- for( ; !(i >= x_size); i = i + 1)
- {
- v[(signed long int)i] = 0l;
- j = 0;
- for( ; !(j >= b_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- signed long int return_value_fxp_mult$1=fxp_mult(x[(signed long int)(i - j)], b[(signed long int)j]);
- v[(signed long int)i]=fxp_add(v[(signed long int)i], return_value_fxp_mult$1);
- }
- }
- y[0l] = v[0l];
- i = 1;
- for( ; !(i >= x_size); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- y[(signed long int)i]=fxp_add(y[(signed long int)i], v[(signed long int)i]);
- j = 1;
- for( ; !(j >= a_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- signed long int return_value_fxp_mult$2=fxp_mult(y[(signed long int)(i - j)], -a[(signed long int)j]);
- y[(signed long int)i]=fxp_add(y[(signed long int)i], return_value_fxp_mult$2);
- }
- }
-}
-
-// fxp_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 41
-signed long int fxp_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *b_ptr;
- signed long int *w_ptr;
- signed long int sum=0l;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j=1;
- for( ; !(j >= Na); j = j + 1)
- {
- signed long int *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- w[0l]=fxp_sub(w[0l], return_value_fxp_mult$3);
- }
- w[0l]=fxp_add(w[0l], x);
- w[0l]=fxp_div(w[0l], a[0l]);
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- signed long int *tmp_post$4=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int *tmp_post$5=w_ptr;
- w_ptr = w_ptr + 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$4, *tmp_post$5);
- sum=fxp_add(sum, return_value_fxp_mult$6);
- }
- signed long int return_value_fxp_quantize$7=fxp_quantize(sum);
- return return_value_fxp_quantize$7;
-}
-
-// fxp_div
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 357
-signed long int fxp_div(signed long int a, signed long int b)
-{
- signed long int tmpdiv=(a << impl.frac_bits) / b;
- return tmpdiv;
-}
-
-// fxp_double_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 211
-signed long int fxp_double_to_fxp(double value)
-{
- signed long int tmp;
- double ftemp=value * scale_factor[(signed long int)impl.frac_bits];
- if(rounding_mode == 0)
- {
- if(value >= 0.000000)
- tmp = (signed long int)(ftemp + 5.000000e-1);
-
- else
- tmp = (signed long int)(ftemp - 5.000000e-1);
- }
-
- else
- if(rounding_mode == 1)
- {
- tmp = (signed long int)ftemp;
- double residue=ftemp - (double)tmp;
- if(value < 0.000000 && IEEE_FLOAT_NOTEQUAL(residue, 0.000000))
- {
- ftemp = ftemp - 1.000000;
- tmp = (signed long int)ftemp;
- }
-
- }
-
- else
- if(rounding_mode == 0)
- tmp = (signed long int)ftemp;
-
- return tmp;
-}
-
-// fxp_double_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 247
-void fxp_double_to_fxp_array(double *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- r[(signed long int)i]=fxp_double_to_fxp(f[(signed long int)i]);
-}
-
-// fxp_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 390
-void fxp_exp_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], unsigned int expNumber, signed long int (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int l;
- unsigned int k;
- signed long int m2[20l][20l];
- if(expNumber == 0u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- if(i == j)
- result[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(1.000000);
-
- else
- result[(signed long int)i][(signed long int)j] = 0l;
- }
- }
-
- else
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j];
- }
- if(!(expNumber == 1u))
- {
- l = 1u;
- for( ; !(l >= expNumber); l = l + 1u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- m2[(signed long int)i][(signed long int)j] = result[(signed long int)i][(signed long int)j];
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= columns); k = k + 1u)
- {
- signed long int return_value_fxp_mult$1=fxp_mult(m2[(signed long int)i][(signed long int)k], m1[(signed long int)k][(signed long int)j]);
- result[(signed long int)i][(signed long int)j]=fxp_add(result[(signed long int)i][(signed long int)j], return_value_fxp_mult$1);
- }
- }
- }
- }
- }
-
- }
-}
-
-// fxp_float_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 198
-signed long int fxp_float_to_fxp(float f)
-{
- signed long int tmp;
- double ftemp=(double)f * scale_factor[(signed long int)impl.frac_bits];
- if(f >= 0.000000f)
- tmp = (signed long int)(ftemp + 5.000000e-1);
-
- else
- tmp = (signed long int)(ftemp - 5.000000e-1);
- return tmp;
-}
-
-// fxp_float_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 240
-void fxp_float_to_fxp_array(float *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- r[(signed long int)i]=fxp_float_to_fxp(f[(signed long int)i]);
-}
-
-// fxp_get_frac_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 125
-signed long int fxp_get_frac_part(signed long int in)
-{
- return in < 0l ? -(-in & _fxp_fmask) : in & _fxp_fmask;
-}
-
-// fxp_get_int_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 115
-signed long int fxp_get_int_part(signed long int in)
-{
- return in < 0l ? -(-in & _fxp_imask) : in & _fxp_imask;
-}
-
-// fxp_int_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 170
-signed long int fxp_int_to_fxp(signed int in)
-{
- signed long int lin=(signed long int)in * _fxp_one;
- return lin;
-}
-
-// fxp_ln
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 288
-signed int fxp_ln(signed int x)
-{
- signed int t;
- signed int y=0xA65AF;
- if(!(x >= 0x8000))
- {
- x = x << 16;
- y = y - 0xB1721;
- }
-
- if(!(x >= 0x800000))
- {
- x = x << 8;
- y = y - 0x58B91;
- }
-
- if(!(x >= 0x8000000))
- {
- x = x << 4;
- y = y - 0x2C5C8;
- }
-
- if(!(x >= 0x20000000))
- {
- x = x << 2;
- y = y - 0x162E4;
- }
-
- if(!(x >= 0x40000000))
- {
- x = x << 1;
- y = y - 0xB172;
- }
-
- t = x + (x >> 1);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x67CD;
- }
-
- t = x + (x >> 2);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x3920;
- }
-
- t = x + (x >> 3);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x1E27;
- }
-
- t = x + (x >> 4);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0xF85;
- }
-
- t = x + (x >> 5);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x7E1;
- }
-
- t = x + (x >> 6);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x3F8;
- }
-
- t = x + (x >> 7);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x1FE;
- }
-
- x = (signed int)(0x80000000u - (unsigned int)x);
- y = y - (x >> 15);
- return y;
-}
-
-// fxp_log10
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 345
-double fxp_log10(double x)
-{
- if(x > 32767.000000)
- {
- if(x > 1.073676e+9)
- {
- x = x / 1.073676e+9;
- double return_value_fxp_log10_low$1=fxp_log10_low(x);
- return return_value_fxp_log10_low$1 + 9.030873e+0;
- }
-
- x = x / 32767.000000;
- double return_value_fxp_log10_low$2=fxp_log10_low(x);
- return return_value_fxp_log10_low$2 + 4.515437e+0;
- }
-
- else
- {
- double return_value_fxp_log10_low$3=fxp_log10_low(x);
- return return_value_fxp_log10_low$3;
- }
-}
-
-// fxp_log10_low
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 333
-double fxp_log10_low(double x)
-{
- signed int xint=(signed int)(x * 65536.000000 + 5.000000e-1);
- signed int lnum=fxp_ln(xint);
- signed int lden=fxp_ln(655360);
- return (double)lnum / (double)lden;
-}
-
-// fxp_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 368
-void fxp_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*m3)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int k;
- if(j1 == i2)
- {
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- m3[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= j1); k = k + 1u)
- {
- signed long int return_value_fxp_mult$1=fxp_mult(m1[(signed long int)i][(signed long int)k], m2[(signed long int)k][(signed long int)j]);
- m3[(signed long int)i][(signed long int)j]=fxp_add(m3[(signed long int)i][(signed long int)j], return_value_fxp_mult$1);
- }
- }
- }
- }
-
- else
- printf("\nError! Operation invalid, please enter with valid matrices.\n");
-}
-
-// fxp_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 339
-signed long int fxp_mult(signed long int amult, signed long int bmult)
-{
- signed long int tmpmult;
- signed long int tmpmultprec;
- tmpmult = (signed long int)((signed long int)amult * (signed long int)bmult);
- if(tmpmult >= 0l)
- tmpmultprec = tmpmult + ((tmpmult & (signed long int)(1 << impl.frac_bits - 1)) << 1) >> impl.frac_bits;
-
- else
- tmpmultprec = -(-tmpmult + ((-tmpmult & (signed long int)(1 << impl.frac_bits - 1)) << 1) >> impl.frac_bits);
- return tmpmultprec;
-}
-
-// fxp_neg
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 367
-signed long int fxp_neg(signed long int aneg)
-{
- signed long int tmpneg=-((signed long int)aneg);
- return tmpneg;
-}
-
-// fxp_print_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 407
-void fxp_print_float(signed long int a)
-{
- float return_value_fxp_to_float$1=fxp_to_float(a);
- printf("\n%f", return_value_fxp_to_float$1);
-}
-
-// fxp_print_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 411
-void fxp_print_float_array(signed long int *a, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- {
- float return_value_fxp_to_float$1=fxp_to_float(a[(signed long int)i]);
- printf("\n%f", return_value_fxp_to_float$1);
- }
-}
-
-// fxp_print_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 403
-void fxp_print_int(signed long int a)
-{
- printf("\n%i", (signed int)a);
-}
-
-// fxp_quantize
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 136
-signed long int fxp_quantize(signed long int aquant)
-{
- if(overflow_mode == 2)
- {
- if(!(aquant >= _fxp_min))
- return _fxp_min;
-
- else
- if(!(_fxp_max >= aquant))
- return _fxp_max;
-
- }
-
- else
- if(overflow_mode == 3)
- {
- if(!(_fxp_max >= aquant) || !(aquant >= _fxp_min))
- {
- signed long int return_value_wrap$1=wrap(aquant, _fxp_min, _fxp_max);
- return return_value_wrap$1;
- }
-
- }
-
- return (signed long int)aquant;
-}
-
-// fxp_shrl
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 390
-signed long int fxp_shrl(signed long int in, signed int shift)
-{
- return (signed long int)((unsigned int)in >> shift);
-}
-
-// fxp_sign
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 380
-signed long int fxp_sign(signed long int a)
-{
- return a == 0l ? 0l : (a < 0l ? _fxp_minus_one : _fxp_one);
-}
-
-// fxp_square
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 399
-signed long int fxp_square(signed long int a)
-{
- signed long int return_value_fxp_mult$1=fxp_mult(a, a);
- return return_value_fxp_mult$1;
-}
-
-// fxp_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 67
-double fxp_state_space_representation(void)
-{
- signed long int result1[20l][20l];
- signed long int result2[20l][20l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- {
- result1[(signed long int)i][(signed long int)j] = 0l;
- result2[(signed long int)i][(signed long int)j] = 0l;
- }
- }
- signed long int A_fpx[20l][20l];
- signed long int B_fpx[20l][20l];
- signed long int C_fpx[20l][20l];
- signed long int D_fpx[20l][20l];
- signed long int states_fpx[20l][20l];
- signed long int inputs_fpx[20l][20l];
- signed long int outputs_fpx[20l][20l];
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- B_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- C_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- D_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- states_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- inputs_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- outputs_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.A[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- B_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.B[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- C_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.C[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- D_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.D[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- states_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.states[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nInputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- inputs_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.inputs[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- outputs_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.outputs[(signed long int)i][(signed long int)j]);
- }
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, C_fpx, states_fpx, result1);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, D_fpx, inputs_fpx, result2);
- fxp_add_matrix((unsigned int)nOutputs, 1u, result1, result2, outputs_fpx);
- i = 1;
- for( ; !(i >= 0); i = i + 1)
- {
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, 1u, A_fpx, states_fpx, result1);
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nInputs, (unsigned int)nInputs, 1u, B_fpx, inputs_fpx, result2);
- fxp_add_matrix((unsigned int)nStates, 1u, result1, result2, states_fpx);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, C_fpx, states_fpx, result1);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, D_fpx, inputs_fpx, result2);
- fxp_add_matrix((unsigned int)nOutputs, 1u, result1, result2, outputs_fpx);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.states[(signed long int)i][(signed long int)j]=fxp_to_double(states_fpx[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.outputs[(signed long int)i][(signed long int)j]=fxp_to_double(outputs_fpx[(signed long int)i][(signed long int)j]);
- }
- return _controller.outputs[0l][0l];
-}
-
-// fxp_sub
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 327
-signed long int fxp_sub(signed long int asub, signed long int bsub)
-{
- signed long int tmpsub=(signed long int)((signed long int)asub - (signed long int)bsub);
- return tmpsub;
-}
-
-// fxp_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 474
-void fxp_sub_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j]=fxp_sub(m1[(signed long int)i][(signed long int)j], m2[(signed long int)i][(signed long int)j]);
- }
-}
-
-// fxp_to_double
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 271
-double fxp_to_double(signed long int fxp)
-{
- double f;
- signed int f_int=(signed int)fxp;
- f = (double)f_int * scale_factor_inv[(signed long int)impl.frac_bits];
- return f;
-}
-
-// fxp_to_double_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 291
-void fxp_to_double_array(double *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- f[(signed long int)i]=fxp_to_double(r[(signed long int)i]);
-}
-
-// fxp_to_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 264
-float fxp_to_float(signed long int fxp)
-{
- float f;
- signed int f_int=(signed int)fxp;
- f = (float)((double)f_int * scale_factor_inv[(signed long int)impl.frac_bits]);
- return f;
-}
-
-// fxp_to_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 284
-void fxp_to_float_array(float *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- f[(signed long int)i]=fxp_to_float(r[(signed long int)i]);
-}
-
-// fxp_to_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 182
-signed int fxp_to_int(signed long int fxp)
-{
- if(fxp >= 0l)
- fxp = fxp + _fxp_half;
-
- else
- fxp = fxp - _fxp_half;
- fxp = fxp >> impl.frac_bits;
- return (signed int)fxp;
-}
-
-// fxp_transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 582
-void fxp_transpose(signed long int (*a)[20l], signed long int (*b)[20l], signed int n, signed int m)
-{
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- j = 0;
- for( ; !(j >= m); j = j + 1)
- b[(signed long int)j][(signed long int)i] = a[(signed long int)i][(signed long int)j];
- }
-}
-
-// fxp_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 61
-signed long int fxp_transposed_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *b_ptr;
- signed long int yout=0l;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int return_value_fxp_mult$2=fxp_mult(*tmp_post$1, x);
- yout=fxp_add(return_value_fxp_mult$2, w[0l]);
- yout=fxp_div(yout, a[0l]);
- signed int j=0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- signed long int *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int return_value_fxp_mult$4=fxp_mult(*tmp_post$3, yout);
- w[(signed long int)j]=fxp_sub(w[(signed long int)j], return_value_fxp_mult$4);
- }
-
- if(!(j >= -1 + Nb))
- {
- signed long int *tmp_post$5=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$5, x);
- w[(signed long int)j]=fxp_add(w[(signed long int)j], return_value_fxp_mult$6);
- }
-
- }
- signed long int return_value_fxp_quantize$7=fxp_quantize(yout);
- return return_value_fxp_quantize$7;
-}
-
-// fxp_verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 153
-void fxp_verify_overflow(signed long int value)
-{
- fxp_quantize(value);
- __DSVERIFIER_assert(value <= _fxp_max && value >= _fxp_min);
-}
-
-// fxp_verify_overflow_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 158
-void fxp_verify_overflow_array(signed long int *array, signed int n)
-{
- signed int i=0;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- fxp_verify_overflow(array[(signed long int)i]);
-}
-
-// generate_delta_coefficients
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 33
-void generate_delta_coefficients(double *vetor, double *out, signed int n, double delta)
-{
- signed int i;
- signed int j;
- signed int N=n - 1;
- double sum_delta_operator;
- i = 0;
- for( ; N >= i; i = i + 1)
- {
- sum_delta_operator = 0.000000;
- j = 0;
- for( ; i >= j; j = j + 1)
- {
- signed int return_value_nchoosek$1=nchoosek(N - j, i - j);
- sum_delta_operator = sum_delta_operator + vetor[(signed long int)j] * (double)return_value_nchoosek$1;
- }
- double return_value_internal_pow$2=internal_pow(delta, (double)(N - i));
- out[(signed long int)i] = return_value_internal_pow$2 * sum_delta_operator;
- }
-}
-
-// generic_timing_double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 286
-double generic_timing_double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb)
-{
- generic_timer = generic_timer + 6 * hw.assembly.push + 3 * hw.assembly.in + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli + 3 * hw.assembly.out + 12 * hw.assembly.std;
- double *a_ptr;
- double *y_ptr;
- double *b_ptr;
- double *x_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- generic_timer = generic_timer + 12 * hw.assembly.std + 12 * hw.assembly.ldd + 2 * hw.assembly.subi + 2 * hw.assembly.sbci + 4 * hw.assembly.lsl + 4 * hw.assembly.rol + 2 * hw.assembly.add + 2 * hw.assembly.adc + 1 * hw.assembly.adiw;
- signed int i;
- signed int j;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- generic_timer = generic_timer + 20 * hw.assembly.ldd + 24 * hw.assembly.mov + 2 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.sbc + 10 * hw.assembly.std + 2 * hw.assembly.ld + 2 * hw.assembly.rcall + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.adiw + 1 * hw.assembly.brge + 1 * hw.assembly.rjmp;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- generic_timer = generic_timer + 2 * hw.assembly.ldi + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- generic_timer = generic_timer + 22 * hw.assembly.ldd + 24 * hw.assembly.mov + 2 * hw.assembly.subi + 8 * hw.assembly.std + 1 * hw.assembly.sbci + 2 * hw.assembly.ld + 2 * hw.assembly.rcall + 1 * hw.assembly.sbc + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.adiw + 1 * hw.assembly.brge + 1 * hw.assembly.rjmp;
- double *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- }
- generic_timer = generic_timer + 4 * hw.assembly.ldd + 4 * hw.assembly.mov + 1 * hw.assembly.adiw + 1 * hw.assembly.in + 1 * hw.assembly.cli + 3 * hw.assembly.out + 6 * hw.assembly.pop + 1 * hw.assembly.ret;
- return sum;
-}
-
-// generic_timing_double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 311
-double generic_timing_double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- generic_timer = generic_timer + 8 * hw.assembly.push + 14 * hw.assembly.std + 3 * hw.assembly.out + 3 * hw.assembly.in + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli;
- double *a_ptr;
- double *b_ptr;
- double *w_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j;
- generic_timer = generic_timer + 10 * hw.assembly.std + 6 * hw.assembly.ldd + 2 * hw.assembly.adiw;
- generic_timer = generic_timer + 2 * hw.assembly.ldi + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- generic_timer = generic_timer + 23 * hw.assembly.ldd + 32 * hw.assembly.mov + 9 * hw.assembly.std + 2 * hw.assembly.subi + 3 * hw.assembly.ld + 2 * hw.assembly.rcall + 2 * hw.assembly.sbci + 1 * hw.assembly.st + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brge;
- }
- w[0l] = w[0l] + x;
- w_ptr = &w[0l];
- generic_timer = generic_timer + 13 * hw.assembly.ldd + 12 * hw.assembly.mov + 5 * hw.assembly.std + 1 * hw.assembly.st + 1 * hw.assembly.ld + 1 * hw.assembly.rcall;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- generic_timer = generic_timer + 20 * hw.assembly.ldd + 24 * hw.assembly.mov + 10 * hw.assembly.std + 2 * hw.assembly.rcall + 2 * hw.assembly.ld + 2 * hw.assembly.subi + 2 * hw.assembly.sbci + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brge + 1 * hw.assembly.rjmp;
- }
- generic_timer = generic_timer + 4 * hw.assembly.ldd + 4 * hw.assembly.mov + 1 * hw.assembly.adiw + 1 * hw.assembly.in + 1 * hw.assembly.cli + 3 * hw.assembly.out + 8 * hw.assembly.pop + 1 * hw.assembly.ret;
- return sum;
-}
-
-// generic_timing_double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 338
-double generic_timing_double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- generic_timer = generic_timer + 8 * hw.assembly.push + 14 * hw.assembly.std + 3 * hw.assembly.out + 3 * hw.assembly.in + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli;
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- generic_timer = generic_timer + 15 * hw.assembly.std + 22 * hw.assembly.ldd + 24 * hw.assembly.mov + 2 * hw.assembly.rcall + 2 * hw.assembly.ld + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.brge + 1 * hw.assembly.adiw;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- }
-
- generic_timer = generic_timer + 70 * hw.assembly.mov + 65 * hw.assembly.ldd + 12 * hw.assembly.lsl + 12 * hw.assembly.rol + 15 * hw.assembly.std + 6 * hw.assembly.add + 6 * hw.assembly.adc + 2 * hw.assembly.adiw + 3 * hw.assembly.cpc + 3 * hw.assembly.cp + 5 * hw.assembly.ld + 4 * hw.assembly.rcall + 5 * hw.assembly.subi + 3 * hw.assembly.rjmp + 2 * hw.assembly.brlt + 3 * hw.assembly.st + 2 * hw.assembly.sbci + 3 * hw.assembly.sbc + 1 * hw.assembly.brge;
- }
- generic_timer = generic_timer + 4 * hw.assembly.ldd + 4 * hw.assembly.mov + 8 * hw.assembly.pop + 3 * hw.assembly.out + 1 * hw.assembly.in + 1 * hw.assembly.cli + 1 * hw.assembly.adiw + 1 * hw.assembly.ret;
- return yout;
-}
-
-// generic_timing_shift_l_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 20
-double generic_timing_shift_l_double(double zIn, double *z, signed int N)
-{
- generic_timer = generic_timer + 2 * hw.assembly.push + 3 * hw.assembly.in + 3 * hw.assembly.out + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli + 8 * hw.assembly.std;
- signed int i;
- double zOut=z[0l];
- generic_timer = generic_timer + 5 * hw.assembly.ldd + 2 * hw.assembly.mov + 4 * hw.assembly.std + 1 * hw.assembly.ld;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- {
- generic_timer = generic_timer + 17 * hw.assembly.ldd + 4 * hw.assembly.lsl + 4 * hw.assembly.rol + 2 * hw.assembly.add + 2 * hw.assembly.adc + 6 * hw.assembly.mov + 2 * hw.assembly.adiw + 5 * hw.assembly.std + 1 * hw.assembly.ld + 1 * hw.assembly.st + 1 * hw.assembly.subi + 1 * hw.assembly.sbc + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brlt;
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- }
- z[(signed long int)(N - 1)] = zIn;
- generic_timer = generic_timer + 12 * hw.assembly.ldd + 6 * hw.assembly.mov + 3 * hw.assembly.std + 2 * hw.assembly.lsl + 2 * hw.assembly.rol + 1 * hw.assembly.adc + 1 * hw.assembly.add + 1 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.st + 1 * hw.assembly.adiw + 1 * hw.assembly.in + 1 * hw.assembly.cli;
- generic_timer = generic_timer + 3 * hw.assembly.out + 2 * hw.assembly.pop + 1 * hw.assembly.ret;
- return zOut;
-}
-
-// generic_timing_shift_r_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 37
-double generic_timing_shift_r_double(double zIn, double *z, signed int N)
-{
- generic_timer = generic_timer + 2 * hw.assembly.push + 3 * hw.assembly.in + 3 * hw.assembly.out + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli + 8 * hw.assembly.std;
- signed int i;
- double zOut=z[(signed long int)(N - 1)];
- generic_timer = generic_timer + 7 * hw.assembly.ldd + 2 * hw.assembly.rol + 2 * hw.assembly.lsl + 2 * hw.assembly.mov + 4 * hw.assembly.std + 1 * hw.assembly.add + 1 * hw.assembly.adc + 1 * hw.assembly.ld + 1 * hw.assembly.subi + 1 * hw.assembly.sbci;
- generic_timer = generic_timer + 2 * hw.assembly.ldd + 2 * hw.assembly.std + 1 * hw.assembly.sbiw + 1 * hw.assembly.rjmp;
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- {
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- generic_timer = generic_timer + 15 * hw.assembly.ldd + 4 * hw.assembly.lsl + 4 * hw.assembly.rol + 2 * hw.assembly.add + 2 * hw.assembly.adc + 4 * hw.assembly.mov + 5 * hw.assembly.std + 1 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.ld + 1 * hw.assembly.st + 1 * hw.assembly.sbiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brlt;
- }
- z[0l] = zIn;
- generic_timer = generic_timer + 10 * hw.assembly.ldd + 5 * hw.assembly.mov + 3 * hw.assembly.std + 3 * hw.assembly.out + 2 * hw.assembly.pop + 1 * hw.assembly.ret + 1 * hw.assembly.ret + 1 * hw.assembly.cli + 1 * hw.assembly.in + 1 * hw.assembly.st + 1 * hw.assembly.adiw;
- return zOut;
-}
-
-// get_delta_transfer_function
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 52
-void get_delta_transfer_function(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta)
-{
- generate_delta_coefficients(b, b_out, b_size, delta);
- generate_delta_coefficients(a, a_out, a_size, delta);
-}
-
-// get_delta_transfer_function_with_base
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 59
-void get_delta_transfer_function_with_base(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta)
-{
- signed int i;
- signed int j;
- signed int N=a_size - 1;
- signed int M=b_size - 1;
- double sum_delta_operator;
- i = 0;
- for( ; N >= i; i = i + 1)
- {
- sum_delta_operator = 0.000000;
- j = 0;
- for( ; i >= j; j = j + 1)
- {
- signed int return_value_nchoosek$1=nchoosek(N - j, i - j);
- sum_delta_operator = sum_delta_operator + a[(signed long int)j] * (double)return_value_nchoosek$1;
- }
- double return_value_internal_pow$2=internal_pow(delta, (double)(N - i));
- a_out[(signed long int)i] = return_value_internal_pow$2 * sum_delta_operator;
- }
- i = 0;
- for( ; M >= i; i = i + 1)
- {
- sum_delta_operator = 0.000000;
- j = 0;
- for( ; i >= j; j = j + 1)
- {
- signed int return_value_nchoosek$3=nchoosek(M - j, i - j);
- sum_delta_operator = sum_delta_operator + b[(signed long int)j] * (double)return_value_nchoosek$3;
- }
- double return_value_internal_pow$4=internal_pow(delta, (double)(M - i));
- b_out[(signed long int)i] = return_value_internal_pow$4 * sum_delta_operator;
- }
-}
-
-// iirIIOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 428
-float iirIIOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- float *a_ptr;
- float *b_ptr;
- float *w_ptr;
- float sum=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j;
- timer1 = timer1 + 71;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- float *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- float *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- timer1 = timer1 + 54;
- }
- w[0l] = w[0l] + x;
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- float *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- timer1 = timer1 + 46;
- }
- timer1 = timer1 + 38;
- /* assertion (double)timer1*CYCLE <= (double)DEADLINE */
- assert(((double)timer1 * 1.000000) / 1.600000e+7 <= 1.000000 / 100.000000);
- if((double)timer1 / 1.600000e+7 <= 1.000000 / 100.000000)
- (void)0;
-
- return sum;
-}
-
-// iirIItOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 452
-float iirIItOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- float *a_ptr;
- float *b_ptr;
- float yout=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- timer1 = timer1 + 105;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- float *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- timer1 = timer1 + 41;
- }
-
- if(!(j >= -1 + Nb))
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- timer1 = timer1 + 38;
- }
-
- timer1 = timer1 + 54;
- }
- timer1 = timer1 + 7;
- /* assertion (double)timer1*CYCLE <= (double)DEADLINE */
- assert(((double)timer1 * 1.000000) / 1.600000e+7 <= 1.000000 / 100.000000);
- if((double)timer1 / 1.600000e+7 <= 1.000000 / 100.000000)
- (void)0;
-
- return yout;
-}
-
-// iirIItOutTime_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 479
-double iirIItOutTime_double(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- timer1 = timer1 + 105;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- timer1 = timer1 + 41;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- timer1 = timer1 + 38;
- }
-
- timer1 = timer1 + 54;
- }
- timer1 = timer1 + 7;
- /* assertion (double)timer1*CYCLE <= (double)DEADLINE */
- assert(((double)timer1 * 1.000000) / 1.600000e+7 <= 1.000000 / 100.000000);
- if((double)timer1 / 1.600000e+7 <= 1.000000 / 100.000000)
- (void)0;
-
- return yout;
-}
-
-// iirOutBoth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 506
-void iirOutBoth(float *yf, float *xf, float *af, float *bf, float *sumf_ref, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int *sum_ref, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- float *af_ptr;
- float *yf_ptr;
- float *bf_ptr;
- float *xf_ptr;
- signed long int sum=0l;
- float sumf=0.000000f;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- af_ptr = &af[1l];
- yf_ptr = &yf[(signed long int)(Na - 1)];
- bf_ptr = &bf[0l];
- xf_ptr = &xf[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- float *tmp_post$4=bf_ptr;
- bf_ptr = bf_ptr + 1l;
- float *tmp_post$5=xf_ptr;
- xf_ptr = xf_ptr - 1l;
- sumf = sumf + *tmp_post$4 * *tmp_post$5;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- signed long int *tmp_post$6=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int *tmp_post$7=y_ptr;
- y_ptr = y_ptr - 1l;
- signed long int return_value_fxp_mult$8=fxp_mult(*tmp_post$6, *tmp_post$7);
- sum=fxp_sub(sum, return_value_fxp_mult$8);
- float *tmp_post$9=af_ptr;
- af_ptr = af_ptr + 1l;
- float *tmp_post$10=yf_ptr;
- yf_ptr = yf_ptr - 1l;
- sumf = sumf - *tmp_post$9 * *tmp_post$10;
- }
- *sum_ref = sum;
- *sumf_ref = sumf;
-}
-
-// iirOutBothL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 586
-float iirOutBothL(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- float *af_ptr;
- float *yf_ptr;
- float *bf_ptr;
- float *xf_ptr;
- float sumf=0.000000f;
- af_ptr = &af[(signed long int)(Na - 1)];
- yf_ptr = &yf[1l];
- bf_ptr = &bf[(signed long int)(Nb - 1)];
- xf_ptr = &xf[0l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- xf[(signed long int)i] = xf[(signed long int)(i + 1)];
- float *tmp_post$4=bf_ptr;
- bf_ptr = bf_ptr - 1l;
- float *tmp_post$5=xf_ptr;
- xf_ptr = xf_ptr + 1l;
- sumf = sumf + *tmp_post$4 * *tmp_post$5;
- }
- x[(signed long int)(Nb - 1)] = xin;
- signed long int *tmp_post$6=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$7=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$8=fxp_mult(*tmp_post$6, *tmp_post$7);
- sum=fxp_add(sum, return_value_fxp_mult$8);
- xf[(signed long int)(Nb - 1)] = xfin;
- float *tmp_post$9=bf_ptr;
- bf_ptr = bf_ptr - 1l;
- float *tmp_post$10=xf_ptr;
- xf_ptr = xf_ptr + 1l;
- sumf = sumf + *tmp_post$9 * *tmp_post$10;
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- signed long int *tmp_post$11=a_ptr;
- a_ptr = a_ptr - 1l;
- signed long int *tmp_post$12=y_ptr;
- y_ptr = y_ptr + 1l;
- signed long int return_value_fxp_mult$13=fxp_mult(*tmp_post$11, *tmp_post$12);
- sum=fxp_sub(sum, return_value_fxp_mult$13);
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- float *tmp_post$14=af_ptr;
- af_ptr = af_ptr - 1l;
- float *tmp_post$15=yf_ptr;
- yf_ptr = yf_ptr + 1l;
- sumf = sumf - *tmp_post$14 * *tmp_post$15;
- yf[(signed long int)j] = yf[(signed long int)(j + 1)];
- }
- signed long int *tmp_post$16;
- signed long int *tmp_post$17;
- signed long int return_value_fxp_mult$18;
- if(Na >= 2)
- {
- tmp_post$16 = a_ptr;
- a_ptr = a_ptr - 1l;
- tmp_post$17 = y_ptr;
- y_ptr = y_ptr + 1l;
- return_value_fxp_mult$18=fxp_mult(*tmp_post$16, *tmp_post$17);
- sum=fxp_sub(sum, return_value_fxp_mult$18);
- }
-
- y[(signed long int)(Na - 1)] = sum;
- float *tmp_post$19;
- float *tmp_post$20;
- if(Na >= 2)
- {
- tmp_post$19 = af_ptr;
- af_ptr = af_ptr - 1l;
- tmp_post$20 = yf_ptr;
- yf_ptr = yf_ptr + 1l;
- sumf = sumf - *tmp_post$19 * *tmp_post$20;
- }
-
- yf[(signed long int)(Na - 1)] = sumf;
- float return_value_fxp_to_float$21=fxp_to_float(sum);
- return return_value_fxp_to_float$21 - sumf;
-}
-
-// iirOutBothL2
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 626
-float iirOutBothL2(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- float *af_ptr;
- float *yf_ptr;
- float *bf_ptr;
- float *xf_ptr;
- float sumf=0.000000f;
- af_ptr = &af[(signed long int)(Na - 1)];
- yf_ptr = &yf[1l];
- bf_ptr = &bf[(signed long int)(Nb - 1)];
- xf_ptr = &xf[0l];
- signed int i=0;
- signed int j=1;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- signed long int return_value_fxp_mult$1=fxp_mult(b[(signed long int)((Nb - 1) - i)], x[(signed long int)i]);
- sum=fxp_add(sum, return_value_fxp_mult$1);
- xf[(signed long int)i] = xf[(signed long int)(i + 1)];
- sumf = sumf + bf[(signed long int)((Nb - 1) - i)] * xf[(signed long int)i];
- }
- x[(signed long int)(Nb - 1)] = xin;
- signed long int return_value_fxp_mult$2=fxp_mult(b[(signed long int)((Nb - 1) - i)], x[(signed long int)i]);
- sum=fxp_add(sum, return_value_fxp_mult$2);
- xf[(signed long int)(Nb - 1)] = xfin;
- sumf = sumf + bf[(signed long int)((Nb - 1) - i)] * xf[(signed long int)i];
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- signed long int return_value_fxp_mult$3=fxp_mult(a[(signed long int)(Na - j)], y[(signed long int)j]);
- sum=fxp_sub(sum, return_value_fxp_mult$3);
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- sumf = sumf - af[(signed long int)(Na - j)] * yf[(signed long int)j];
- yf[(signed long int)j] = yf[(signed long int)(j + 1)];
- }
- signed long int return_value_fxp_mult$4;
- if(Na >= 2)
- {
- return_value_fxp_mult$4=fxp_mult(a[(signed long int)(Na - j)], y[(signed long int)j]);
- sum=fxp_sub(sum, return_value_fxp_mult$4);
- }
-
- y[(signed long int)(Na - 1)] = sum;
- if(Na >= 2)
- sumf = sumf - af[(signed long int)(Na - j)] * yf[(signed long int)j];
-
- yf[(signed long int)(Na - 1)] = sumf;
- float return_value_fxp_to_float$5=fxp_to_float(sum);
- return return_value_fxp_to_float$5 - sumf;
-}
-
-// iirOutFixedL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 536
-signed long int iirOutFixedL(signed long int *y, signed long int *x, signed long int xin, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- }
- x[(signed long int)(Nb - 1)] = xin;
- signed long int *tmp_post$4=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$5=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$4, *tmp_post$5);
- sum=fxp_add(sum, return_value_fxp_mult$6);
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- signed long int *tmp_post$7=a_ptr;
- a_ptr = a_ptr - 1l;
- signed long int *tmp_post$8=y_ptr;
- y_ptr = y_ptr + 1l;
- signed long int return_value_fxp_mult$9=fxp_mult(*tmp_post$7, *tmp_post$8);
- sum=fxp_sub(sum, return_value_fxp_mult$9);
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- }
- signed long int *tmp_post$10;
- signed long int *tmp_post$11;
- signed long int return_value_fxp_mult$12;
- if(Na >= 2)
- {
- tmp_post$10 = a_ptr;
- a_ptr = a_ptr - 1l;
- tmp_post$11 = y_ptr;
- y_ptr = y_ptr + 1l;
- return_value_fxp_mult$12=fxp_mult(*tmp_post$10, *tmp_post$11);
- sum=fxp_sub(sum, return_value_fxp_mult$12);
- }
-
- y[(signed long int)(Na - 1)] = sum;
- return sum;
-}
-
-// iirOutFloatL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 561
-float iirOutFloatL(float *y, float *x, float xin, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *y_ptr;
- float *b_ptr;
- float *x_ptr;
- float sum=0.000000f;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr - 1l;
- float *tmp_post$2=x_ptr;
- x_ptr = x_ptr + 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- x[(signed long int)(Nb - 1)] = xin;
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr - 1l;
- float *tmp_post$4=x_ptr;
- x_ptr = x_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- float *tmp_post$5=a_ptr;
- a_ptr = a_ptr - 1l;
- float *tmp_post$6=y_ptr;
- y_ptr = y_ptr + 1l;
- sum = sum - *tmp_post$5 * *tmp_post$6;
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- }
- float *tmp_post$7;
- float *tmp_post$8;
- if(Na >= 2)
- {
- tmp_post$7 = a_ptr;
- a_ptr = a_ptr - 1l;
- tmp_post$8 = y_ptr;
- y_ptr = y_ptr + 1l;
- sum = sum - *tmp_post$7 * *tmp_post$8;
- }
-
- y[(signed long int)(Na - 1)] = sum;
- return sum;
-}
-
-// initialization
-// file /home/lucascordeiro/dsverifier/bmc/core/initialization.h line 24
-void initialization()
-{
- if(impl.frac_bits >= 32)
- printf("impl.frac_bits must be less than word width!\n");
-
- if(impl.int_bits >= 32 + -impl.frac_bits)
- {
- printf("impl.int_bits must be less than word width subtracted by precision!\n");
- /* assertion 0 */
- assert(0 != 0);
- }
-
- if(impl.frac_bits >= 31)
- _fxp_one = 2147483647l;
-
- else
- _fxp_one = (signed long int)(0x1 << impl.frac_bits);
- _fxp_half = (signed long int)(0x1 << impl.frac_bits - 1);
- _fxp_minus_one = (signed long int)-(0x1 << impl.frac_bits);
- _fxp_min = (signed long int)-(0x1 << (impl.frac_bits + impl.int_bits) - 1);
- _fxp_max = (signed long int)((0x1 << (impl.frac_bits + impl.int_bits) - 1) - 1);
- _fxp_fmask = (signed long int)((1 << impl.frac_bits) - 1);
- _fxp_imask = (signed long int)(0x80000000u >> (32 - impl.frac_bits) - 1);
- _dbl_min = (double)_fxp_min;
- _dbl_min = _dbl_min / (double)(1 << impl.frac_bits);
- _dbl_max = (double)_fxp_max;
- _dbl_max = _dbl_max / (double)(1 << impl.frac_bits);
- if(impl.scale == 0 || impl.scale == 1)
- impl.scale = 1;
-
- else
- {
- if(IEEE_FLOAT_NOTEQUAL(impl.min, 0.000000))
- impl.min = impl.min / (double)impl.scale;
-
- if(IEEE_FLOAT_NOTEQUAL(impl.max, 0.000000))
- impl.max = impl.max / (double)impl.scale;
-
- }
-}
-
-// initialize_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 22
-void initialize_array(double *v, signed int n)
-{
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- v[(signed long int)i] = 0.000000;
-}
-
-// internal_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 49
-double internal_abs(double a)
-{
- return a < 0.000000 ? -a : a;
-}
-
-// internal_pow
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 39
-double internal_pow(double a, double b)
-{
- signed int i;
- double acc=1.000000;
- i = 0;
- for( ; (double)i < b; i = i + 1)
- acc = acc * a;
- return acc;
-}
-
-// main
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 60
-signed int main()
-{
- initialization();
- validation();
- rounding_mode = 1;
- call_closedloop_verification_task((void *)verify_stability_closedloop_using_dslib);
- return 0;
-}
-
-// nchoosek
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 23
-signed int nchoosek(signed int n, signed int k)
-{
- if(k == 0)
- return 1;
-
- else
- {
- signed int return_value_nchoosek$1=nchoosek(n - 1, k - 1);
- return (n * return_value_nchoosek$1) / k;
- }
-}
-
-// order
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 158
-signed int order(signed int Na, signed int Nb)
-{
- return Na > Nb ? Na - 1 : Nb - 1;
-}
-
-// poly_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 165
-void poly_mult(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans)
-{
- signed int i;
- signed int j;
- signed int k;
- Nans = (Na + Nb) - 1;
- i = 0;
- for( ; !(i >= Na); i = i + 1)
- {
- j = 0;
- for( ; !(j >= Nb); j = j + 1)
- {
- k = (((Na + Nb) - i) - j) - 2;
- ans[(signed long int)k] = 0.000000;
- }
- }
- i = 0;
- for( ; !(i >= Na); i = i + 1)
- {
- j = 0;
- for( ; !(j >= Nb); j = j + 1)
- {
- k = (((Na + Nb) - i) - j) - 2;
- ans[(signed long int)k] = ans[(signed long int)k] + a[(signed long int)((Na - i) - 1)] * b[(signed long int)((Nb - j) - 1)];
- }
- }
-}
-
-// poly_sum
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 141
-void poly_sum(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans)
-{
- signed int i;
- Nans = Na > Nb ? Na : Nb;
- i = 0;
- for( ; !(i >= Nans); i = i + 1)
- if(!(Nb >= Na))
- {
- ans[(signed long int)i] = a[(signed long int)i];
- if(!(-1 + Na + -Nb >= i))
- ans[(signed long int)i] = ans[(signed long int)i] + b[(signed long int)((i - Na) + Nb)];
-
- }
-
- else
- {
- ans[(signed long int)i] = b[(signed long int)i];
- if(!(-1 + Nb + -Na >= i))
- ans[(signed long int)i] = ans[(signed long int)i] + a[(signed long int)((i - Nb) + Na)];
-
- }
-}
-
-// print_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 305
-void print_array_elements(char *name, double *v, signed int n)
-{
- printf("%s = {", name);
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- printf(" %.32f ", v[(signed long int)i]);
- printf("}\n");
-}
-
-// print_fxp_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 419
-void print_fxp_array_elements(char *name, signed long int *v, signed int n)
-{
- printf("%s = {", name);
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- printf(" %jd ", v[(signed long int)i]);
- printf("}\n");
-}
-
-// print_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 481
-void print_matrix(double (*matrix)[20l], unsigned int lines, unsigned int columns)
-{
- printf("\nMatrix\n=====================\n\n");
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- printf("#matrix[%d][%d]: %2.2f ", i, j, matrix[(signed long int)i][(signed long int)j]);
- printf("\n");
- }
- printf("\n");
-}
-
-// rand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 417
-extern signed int rand(void)
-{
- next = next * 1103515245ul + 12345ul;
- return (signed int)((unsigned int)(next / 65536ul) % 32768u);
-}
-
-// revert_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 30
-void revert_array(double *v, double *out, signed int n)
-{
- initialize_array(out, n);
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- out[(signed long int)i] = v[(signed long int)((n - i) - 1)];
-}
-
-// shiftL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 53
-signed long int shiftL(signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftLDouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 119
-double shiftLDouble(double zIn, double *z, signed int N)
-{
- signed int i;
- double zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftLboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 130
-void shiftLboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut;
- float zfOut;
- zOut = z[0l];
- zfOut = zf[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- {
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- zf[(signed long int)i] = zf[(signed long int)(i + 1)];
- }
- z[(signed long int)(N - 1)] = zIn;
- zf[(signed long int)(N - 1)] = zfIn;
-}
-
-// shiftLfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 75
-float shiftLfloat(float zIn, float *z, signed int N)
-{
- signed int i;
- float zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftR
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 64
-signed long int shiftR(signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut=z[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- z[0l] = zIn;
- return zOut;
-}
-
-// shiftRDdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 97
-double shiftRDdouble(double zIn, double *z, signed int N)
-{
- signed int i;
- double zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftRboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 144
-void shiftRboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut;
- float zfOut;
- zOut = z[(signed long int)(N - 1)];
- zfOut = zf[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- {
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- zf[(signed long int)i] = zf[(signed long int)(i - 1)];
- }
- z[0l] = zIn;
- zf[0l] = zfIn;
-}
-
-// shiftRdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 108
-double shiftRdouble(double zIn, double *z, signed int N)
-{
- signed int i;
- double zOut=z[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- z[0l] = zIn;
- return zOut;
-}
-
-// shiftRfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 86
-float shiftRfloat(float zIn, float *z, signed int N)
-{
- signed int i;
- float zOut=z[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- z[0l] = zIn;
- return zOut;
-}
-
-// snrPoint
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 402
-float snrPoint(float *s, float *n, signed int blksz)
-{
- signed int i;
- double ratio=0.000000;
- double power=0.000000;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- if(!IEEE_FLOAT_EQUAL(n[(signed long int)i], 0.000000f))
- {
- ratio = (double)(s[(signed long int)i] / n[(signed long int)i]);
- if(!(ratio < -150.000000) && !(ratio > 150.000000))
- {
- power = ratio * ratio;
- /* assertion power >= 1.0f */
- assert(power >= 1.000000);
- if(power >= 1.000000)
- (void)0;
-
- }
-
- }
-
- return 9.999900e+3f;
-}
-
-// snrPower
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 381
-float snrPower(float *s, float *n, signed int blksz)
-{
- signed int i;
- double sv=0.000000;
- double nv=0.000000;
- double snr;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- {
- sv = sv + (double)(s[(signed long int)i] * s[(signed long int)i]);
- nv = nv + (double)(n[(signed long int)i] * n[(signed long int)i]);
- }
- if(IEEE_FLOAT_NOTEQUAL(nv, 0.000000))
- {
- /* assertion sv >= nv */
- assert(sv >= nv);
- if(sv >= nv)
- (void)0;
-
- snr = sv / nv;
- return (float)snr;
- }
-
- else
- return 9.999900e+3f;
-}
-
-// snrVariance
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 357
-float snrVariance(float *s, float *n, signed int blksz)
-{
- signed int i;
- double sm=0.000000;
- double nm=0.000000;
- double sv=0.000000;
- double nv=0.000000;
- double snr;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- {
- sm = sm + (double)s[(signed long int)i];
- nm = nm + (double)n[(signed long int)i];
- }
- sm = sm / (double)blksz;
- nm = nm / (double)blksz;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- {
- sv = sv + ((double)s[(signed long int)i] - sm) * ((double)s[(signed long int)i] - sm);
- nv = nv + ((double)n[(signed long int)i] - nm) * ((double)n[(signed long int)i] - nm);
- }
- if(IEEE_FLOAT_NOTEQUAL(nv, 0.000000))
- {
- /* assertion sv >= nv */
- assert(sv >= nv);
- if(sv >= nv)
- (void)0;
-
- snr = sv / nv;
- return (float)snr;
- }
-
- else
- return 9.999900e+3f;
-}
-
-// srand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 423
-extern void srand(unsigned int seed)
-{
- next = (unsigned long int)seed;
-}
-
-// transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 571
-void transpose(double (*a)[20l], double (*b)[20l], signed int n, signed int m)
-{
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- j = 0;
- for( ; !(j >= m); j = j + 1)
- b[(signed long int)j][(signed long int)i] = a[(signed long int)i][(signed long int)j];
- }
-}
-
-// validation
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 125
-void validation()
-{
- if(controller.a_size == 0 || plant.b_size == 0 || impl.int_bits == 0)
- {
- printf("\n\n*****************************************************************************************************\n");
- printf("* set (controller, plant, and impl) parameters to check CLOSED LOOP with DSVerifier *\n");
- printf("*****************************************************************************************************\n");
- __DSVERIFIER_assert((_Bool)0);
- }
-
- else
- {
- printf("\n\n*****************************************************************************************************\n");
- printf("* set (controller and impl) parameters so that they do not overflow *\n");
- printf("*****************************************************************************************************\n");
- unsigned int j=0u;
- for( ; !(j >= (unsigned int)controller.a_size); j = j + 1u)
- {
- const double validation$$1$$6$$2$$1$$1$$value=controller.a[(signed long int)j];
- __DSVERIFIER_assert(validation$$1$$6$$2$$1$$1$$value <= _dbl_max);
- __DSVERIFIER_assert(validation$$1$$6$$2$$1$$1$$value >= _dbl_min);
- }
- j = 0u;
- for( ; !(j >= (unsigned int)controller.b_size); j = j + 1u)
- {
- const double value=controller.b[(signed long int)j];
- __DSVERIFIER_assert(value <= _dbl_max);
- __DSVERIFIER_assert(value >= _dbl_min);
- }
- }
-}
-
-// verify_controllability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 16
-signed int verify_controllability(void)
-{
- signed int i;
- signed int j;
- signed long int A_fpx[20l][20l];
- signed long int B_fpx[20l][20l];
- signed long int controllabilityMatrix[20l][20l];
- signed long int backup[20l][20l];
- signed long int backupSecond[20l][20l];
- double controllabilityMatrix_double[20l][20l];
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs * nStates); j = j + 1)
- {
- A_fpx[(signed long int)i][(signed long int)j] = 0l;
- B_fpx[(signed long int)i][(signed long int)j] = 0l;
- controllabilityMatrix[(signed long int)i][(signed long int)j] = 0l;
- backup[(signed long int)i][(signed long int)j] = 0l;
- backupSecond[(signed long int)i][(signed long int)j] = 0l;
- controllabilityMatrix_double[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.A[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- B_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.B[(signed long int)i][(signed long int)j]);
- }
- if(nInputs >= 2)
- {
- signed int l=0;
- j = 0;
- while(!(j >= nInputs * nStates))
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)l, backup);
- l = l + 1;
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, B_fpx, backupSecond);
- signed int k=0;
- for( ; !(k >= nInputs); k = k + 1)
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][(signed long int)k];
- j = j + 1;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs * nStates); j = j + 1)
- backup[(signed long int)i][(signed long int)j] = 0l;
- }
- fxp_transpose(controllabilityMatrix, backup, nStates, nStates * nInputs);
- signed long int mimo_controllabilityMatrix_fxp[20l][20l];
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)(nStates * nInputs), (unsigned int)(nStates * nInputs), (unsigned int)nStates, controllabilityMatrix, backup, mimo_controllabilityMatrix_fxp);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- controllabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(mimo_controllabilityMatrix_fxp[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$1=determinant(controllabilityMatrix_double, nStates);
- /* assertion determinant(controllabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000))
- (void)0;
-
- }
-
- else
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)j, backup);
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, B_fpx, backupSecond);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][0l];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- controllabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(controllabilityMatrix[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$2=determinant(controllabilityMatrix_double, nStates);
- /* assertion determinant(controllabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000))
- (void)0;
-
- }
- return 0;
-}
-
-// verify_controllability_double
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 120
-signed int verify_controllability_double(void)
-{
- signed int i;
- signed int j;
- double controllabilityMatrix[20l][20l];
- double backup[20l][20l];
- double backupSecond[20l][20l];
- double controllabilityMatrix_double[20l][20l];
- if(nInputs >= 2)
- {
- signed int l=0;
- j = 0;
- while(!(j >= nInputs * nStates))
- {
- double_exp_matrix((unsigned int)nStates, (unsigned int)nStates, _controller.A, (unsigned int)l, backup);
- l = l + 1;
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, _controller.B, backupSecond);
- signed int k=0;
- for( ; !(k >= nInputs); k = k + 1)
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][(signed long int)k];
- j = j + 1;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs * nStates); j = j + 1)
- backup[(signed long int)i][(signed long int)j] = 0.000000;
- }
- transpose(controllabilityMatrix, backup, nStates, nStates * nInputs);
- double mimo_controllabilityMatrix_double[20l][20l];
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)(nStates * nInputs), (unsigned int)(nStates * nInputs), (unsigned int)nStates, controllabilityMatrix, backup, mimo_controllabilityMatrix_double);
- double return_value_determinant$1=determinant(mimo_controllabilityMatrix_double, nStates);
- /* assertion determinant(mimo_controllabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000))
- (void)0;
-
- }
-
- else
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- {
- double_exp_matrix((unsigned int)nStates, (unsigned int)nStates, _controller.A, (unsigned int)j, backup);
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, _controller.B, backupSecond);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][0l];
- }
- double return_value_determinant$2=determinant(controllabilityMatrix, nStates);
- /* assertion determinant(controllabilityMatrix,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000))
- (void)0;
-
- }
- return 0;
-}
-
-// verify_error
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error.h line 20
-signed int verify_error(void)
-{
- overflow_mode = 2;
- double a_cascade[100l];
- signed int a_cascade_size;
- double b_cascade[100l];
- signed int b_cascade_size;
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[max_fxp$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- const signed long int x$array_size0=(signed long int)X_SIZE_VALUE;
- double yf[x$array_size0];
- const signed long int yf$array_size0=(signed long int)X_SIZE_VALUE;
- double xf[yf$array_size0];
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- signed long int xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- signed long int waux[xaux$array_size0];
- const signed long int waux$array_size0=(signed long int)ds.a_size;
- double yfaux[waux$array_size0];
- const signed long int yfaux$array_size0=(signed long int)ds.b_size;
- double xfaux[yfaux$array_size0];
- const signed long int xfaux$array_size0=(signed long int)Nw;
- double wfaux[xfaux$array_size0];
- signed int i=0;
- for( ; !(i >= ds.a_size); i = i + 1)
- {
- yaux[(signed long int)i] = 0l;
- yfaux[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- {
- xaux[(signed long int)i] = 0l;
- xfaux[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- waux[(signed long int)i] = 0l;
- wfaux[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- signed int return_value_nondet_int$1=nondet_int();
- x[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = x[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- yf[(signed long int)i] = 0.000000;
- xf[(signed long int)i]=fxp_to_double(x[(signed long int)i]);
- }
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- double absolute_error;
- double return_value_fxp_to_double$3=fxp_to_double(y[(signed long int)i]);
- absolute_error = yf[(signed long int)i] - return_value_fxp_to_double$3;
- __DSVERIFIER_assert(absolute_error < impl.max_error && absolute_error > -impl.max_error);
- }
- return 0;
-}
-
-// verify_error_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_closedloop.h line 27
-signed int verify_error_closedloop(void)
-{
- overflow_mode = 3;
- double *c_num=controller.b;
- signed int c_num_size=controller.b_size;
- double *c_den=controller.a;
- signed int c_den_size=controller.a_size;
- const signed long int c_den_size$array_size0=(signed long int)controller.b_size;
- signed long int c_num_fxp[c_den_size$array_size0];
- fxp_double_to_fxp_array(c_num, c_num_fxp, controller.b_size);
- const signed long int c_num_fxp$array_size0=(signed long int)controller.a_size;
- signed long int c_den_fxp[c_num_fxp$array_size0];
- fxp_double_to_fxp_array(c_den, c_den_fxp, controller.a_size);
- const signed long int c_den_fxp$array_size0=(signed long int)controller.b_size;
- double c_num_qtz[c_den_fxp$array_size0];
- fxp_to_double_array(c_num_qtz, c_num_fxp, controller.b_size);
- const signed long int c_num_qtz$array_size0=(signed long int)controller.a_size;
- double c_den_qtz[c_num_qtz$array_size0];
- fxp_to_double_array(c_den_qtz, c_den_fxp, controller.a_size);
- double *p_num=plant_cbmc.b;
- signed int p_num_size=plant.b_size;
- double *p_den=plant_cbmc.a;
- signed int p_den_size=plant.a_size;
- double ans_num_double[100l];
- double ans_num_qtz[100l];
- signed int ans_num_size=(controller.b_size + plant.b_size) - 1;
- double ans_den_qtz[100l];
- double ans_den_double[100l];
- signed int ans_den_size=(controller.a_size + plant.a_size) - 1;
- ft_closedloop_series(c_num_qtz, c_num_size, c_den_qtz, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num_qtz, ans_num_size, ans_den_qtz, ans_den_size);
- ft_closedloop_series(c_num, c_num_size, c_den, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num_double, ans_num_size, ans_den_double, ans_den_size);
- signed int i;
- const signed long int i$array_size0=(signed long int)X_SIZE_VALUE;
- double y_qtz[i$array_size0];
- const signed long int y_qtz$array_size0=(signed long int)X_SIZE_VALUE;
- double y_double[y_qtz$array_size0];
- const signed long int y_double$array_size0=(signed long int)X_SIZE_VALUE;
- double x_qtz[y_double$array_size0];
- const signed long int x_qtz$array_size0=(signed long int)X_SIZE_VALUE;
- double x_double[x_qtz$array_size0];
- const signed long int x_double$array_size0=(signed long int)ans_num_size;
- double xaux_qtz[x_double$array_size0];
- const signed long int xaux_qtz$array_size0=(signed long int)ans_num_size;
- double xaux_double[xaux_qtz$array_size0];
- const signed long int xaux_double$array_size0=(signed long int)ans_num_size;
- double xaux[xaux_double$array_size0];
- double nondet_constant_input=nondet_double();
- __DSVERIFIER_assume(nondet_constant_input >= impl.min && nondet_constant_input <= impl.max);
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- x_qtz[(signed long int)i] = nondet_constant_input;
- x_double[(signed long int)i] = nondet_constant_input;
- y_qtz[(signed long int)i] = 0.000000;
- y_double[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= ans_num_size); i = i + 1)
- {
- xaux_qtz[(signed long int)i] = nondet_constant_input;
- xaux_double[(signed long int)i] = nondet_constant_input;
- }
- const signed long int nondet_constant_input$array_size0=(signed long int)ans_den_size;
- double yaux_qtz[nondet_constant_input$array_size0];
- const signed long int yaux_qtz$array_size0=(signed long int)ans_den_size;
- double yaux_double[yaux_qtz$array_size0];
- const signed long int yaux_double$array_size0=(signed long int)ans_den_size;
- double y0_qtz[yaux_double$array_size0];
- const signed long int y0_qtz$array_size0=(signed long int)ans_den_size;
- double y0_double[y0_qtz$array_size0];
- signed int Nw=ans_den_size > ans_num_size ? ans_den_size : ans_num_size;
- const signed long int Nw$array_size0=(signed long int)Nw;
- double waux_qtz[Nw$array_size0];
- const signed long int waux_qtz$array_size0=(signed long int)Nw;
- double waux_double[waux_qtz$array_size0];
- const signed long int waux_double$array_size0=(signed long int)Nw;
- double w0_qtz[waux_double$array_size0];
- const signed long int w0_qtz$array_size0=(signed long int)Nw;
- double w0_double[w0_qtz$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- waux_qtz[(signed long int)i] = 0.000000;
- waux_double[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- double absolute_error;
- double return_value_fxp_to_double$1=fxp_to_double((signed long int)y_qtz[(signed long int)i]);
- absolute_error = y_double[(signed long int)i] - return_value_fxp_to_double$1;
- __DSVERIFIER_assert(absolute_error < impl.max_error && absolute_error > -impl.max_error);
- }
- return 0;
-}
-
-// verify_error_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_state_space.h line 20
-signed int verify_error_state_space(void)
-{
- overflow_mode = 0;
- struct anonymous$1 __backupController;
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- __backupController.A[(signed long int)i][(signed long int)j] = _controller.A[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- __backupController.B[(signed long int)i][(signed long int)j] = _controller.B[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- __backupController.C[(signed long int)i][(signed long int)j] = _controller.C[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- __backupController.D[(signed long int)i][(signed long int)j] = _controller.D[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- __backupController.states[(signed long int)i][(signed long int)j] = _controller.states[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nInputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- __backupController.inputs[(signed long int)i][(signed long int)j] = _controller.inputs[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- __backupController.outputs[(signed long int)i][(signed long int)j] = _controller.outputs[(signed long int)i][(signed long int)j];
- }
- double __quant_error=0.000000;
- double output_double=double_state_space_representation();
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- _controller.A[(signed long int)i][(signed long int)j] = __backupController.A[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- _controller.B[(signed long int)i][(signed long int)j] = __backupController.B[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- _controller.C[(signed long int)i][(signed long int)j] = __backupController.C[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- _controller.D[(signed long int)i][(signed long int)j] = __backupController.D[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.states[(signed long int)i][(signed long int)j] = __backupController.states[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nInputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.inputs[(signed long int)i][(signed long int)j] = __backupController.inputs[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.outputs[(signed long int)i][(signed long int)j] = __backupController.outputs[(signed long int)i][(signed long int)j];
- }
- double output_fxp=fxp_state_space_representation();
- fxp_verify_overflow((signed long int)output_fxp);
- __quant_error = ((output_fxp - output_double) / output_double) * 100.000000;
- /* assertion __quant_error < error_limit && __quant_error > (-error_limit) */
- assert(__quant_error < error_limit && __quant_error > -error_limit);
- if(__quant_error < error_limit && __quant_error > -error_limit)
- (void)0;
-
- return 0;
-}
-
-// verify_generic_timing
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_generic_timing.h line 25
-signed int verify_generic_timing(void)
-{
- const signed long int verify_generic_timing$array_size0=(signed long int)X_SIZE_VALUE;
- double y[verify_generic_timing$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- double x[y$array_size0];
- signed int i=0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0.000000;
- float return_value_nondet_float$1=nondet_float();
- x[(signed long int)i] = (double)return_value_nondet_float$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= impl.min)
- tmp_if_expr$2 = x[(signed long int)i] <= impl.max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- double yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- double xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- double waux[xaux$array_size0];
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- yaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- waux[(signed long int)i] = 0.000000;
- double xk;
- double temp;
- double *aptr;
- double *bptr;
- double *xptr;
- double *yptr;
- double *wptr;
- signed int j;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- double initial_timer=(double)generic_timer;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- generic_timer = generic_timer + 2 * hw.assembly.ldd + 1 * hw.assembly.adiw + 2 * hw.assembly.std;
- generic_timer = generic_timer + 2 * hw.assembly.ldd + 1 * hw.assembly.cpi + 1 * hw.assembly.cpc + 1 * hw.assembly.brlt;
- double spent_time=(double)generic_timer * hw.cycle;
- /* assertion spent_time <= ds.sample_time */
- assert(spent_time <= ds.sample_time);
- if(spent_time <= ds.sample_time)
- (void)0;
-
- generic_timer = (signed int)initial_timer;
- }
- return 0;
-}
-
-// verify_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 111
-signed int verify_limit_cycle(void)
-{
- overflow_mode = 3;
- signed int i;
- signed int Set_xsize_at_least_two_times_Na=2 * ds.a_size;
- printf("X_SIZE must be at least 2 * ds.a_size");
- __DSVERIFIER_assert(X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na);
- const signed long int Set_xsize_at_least_two_times_Na$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[Set_xsize_at_least_two_times_Na$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)ds.b_size;
- signed long int xaux[max_fxp$array_size0];
- signed int nondet_constant_input=nondet_int();
- __DSVERIFIER_assume((signed long int)nondet_constant_input >= min_fxp && (signed long int)nondet_constant_input <= max_fxp);
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- x[(signed long int)i] = (signed long int)nondet_constant_input;
- y[(signed long int)i] = 0l;
- }
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = (signed long int)nondet_constant_input;
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.a_size;
- signed long int y0[yaux$array_size0];
- const signed long int y0$array_size0=(signed long int)Nw;
- signed long int waux[y0$array_size0];
- const signed long int waux$array_size0=(signed long int)Nw;
- signed long int w0[waux$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- signed int return_value_nondet_int$1=nondet_int();
- waux[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(waux[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = waux[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- w0[(signed long int)i] = waux[(signed long int)i];
- }
- signed long int xk;
- signed long int temp;
- signed long int *aptr;
- signed long int *bptr;
- signed long int *xptr;
- signed long int *yptr;
- signed long int *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- fxp_check_persistent_limit_cycle(y, X_SIZE_VALUE);
- return 0;
-}
-
-// verify_limit_cycle_closed_loop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle_closedloop.h line 29
-signed int verify_limit_cycle_closed_loop(void)
-{
- overflow_mode = 3;
- double *c_num=controller.b;
- signed int c_num_size=controller.b_size;
- double *c_den=controller.a;
- signed int c_den_size=controller.a_size;
- const signed long int c_den_size$array_size0=(signed long int)controller.b_size;
- signed long int c_num_fxp[c_den_size$array_size0];
- fxp_double_to_fxp_array(c_num, c_num_fxp, controller.b_size);
- const signed long int c_num_fxp$array_size0=(signed long int)controller.a_size;
- signed long int c_den_fxp[c_num_fxp$array_size0];
- fxp_double_to_fxp_array(c_den, c_den_fxp, controller.a_size);
- const signed long int c_den_fxp$array_size0=(signed long int)controller.b_size;
- double c_num_qtz[c_den_fxp$array_size0];
- fxp_to_double_array(c_num_qtz, c_num_fxp, controller.b_size);
- const signed long int c_num_qtz$array_size0=(signed long int)controller.a_size;
- double c_den_qtz[c_num_qtz$array_size0];
- fxp_to_double_array(c_den_qtz, c_den_fxp, controller.a_size);
- double *p_num=plant_cbmc.b;
- signed int p_num_size=plant.b_size;
- double *p_den=plant_cbmc.a;
- signed int p_den_size=plant.a_size;
- double ans_num[100l];
- signed int ans_num_size=(controller.b_size + plant.b_size) - 1;
- double ans_den[100l];
- signed int ans_den_size=(controller.a_size + plant.a_size) - 1;
- ft_closedloop_series(c_num_qtz, c_num_size, c_den_qtz, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num, ans_num_size, ans_den, ans_den_size);
- signed int i;
- const signed long int i$array_size0=(signed long int)X_SIZE_VALUE;
- double y[i$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- double x[y$array_size0];
- const signed long int x$array_size0=(signed long int)ans_num_size;
- double xaux[x$array_size0];
- double nondet_constant_input=nondet_double();
- __DSVERIFIER_assume(nondet_constant_input >= impl.min && nondet_constant_input <= impl.max);
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- x[(signed long int)i] = nondet_constant_input;
- y[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= ans_num_size); i = i + 1)
- xaux[(signed long int)i] = nondet_constant_input;
- const signed long int nondet_constant_input$array_size0=(signed long int)ans_den_size;
- double yaux[nondet_constant_input$array_size0];
- const signed long int yaux$array_size0=(signed long int)ans_den_size;
- double y0[yaux$array_size0];
- signed int Nw=ans_den_size > ans_num_size ? ans_den_size : ans_num_size;
- const signed long int Nw$array_size0=(signed long int)Nw;
- double waux[Nw$array_size0];
- const signed long int waux$array_size0=(signed long int)Nw;
- double w0[waux$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- signed int return_value_nondet_int$1=nondet_int();
- waux[(signed long int)i] = (double)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(waux[(signed long int)i] >= impl.min)
- tmp_if_expr$2 = waux[(signed long int)i] <= impl.max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- w0[(signed long int)i] = waux[(signed long int)i];
- }
- double xk;
- double temp;
- double *aptr;
- double *bptr;
- double *xptr;
- double *yptr;
- double *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- double_check_persistent_limit_cycle(y, X_SIZE_VALUE);
- return 0;
-}
-
-// verify_limit_cycle_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 21
-signed int verify_limit_cycle_state_space(void)
-{
- double stateMatrix[20l][20l];
- double outputMatrix[20l][20l];
- double arrayLimitCycle[20l];
- double result1[20l][20l];
- double result2[20l][20l];
- signed int i;
- signed int j;
- signed int k;
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- {
- result1[(signed long int)i][(signed long int)j] = 0.000000;
- result2[(signed long int)i][(signed long int)j] = 0.000000;
- stateMatrix[(signed long int)i][(signed long int)j] = 0.000000;
- outputMatrix[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- k = 0;
- i = 1;
- for( ; !(i >= 0); i = i + 1)
- {
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.A, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.B, _controller.inputs, result2);
- double_add_matrix((unsigned int)nStates, 1u, result1, result2, _controller.states);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- signed int l=0;
- for( ; !(l >= nStates); l = l + 1)
- stateMatrix[(signed long int)l][(signed long int)k] = _controller.states[(signed long int)l][0l];
- l = 0;
- for( ; !(l >= nOutputs); l = l + 1)
- stateMatrix[(signed long int)l][(signed long int)k] = _controller.outputs[(signed long int)l][0l];
- k = k + 1;
- }
- printf("#matrix STATES -------------------------------");
- print_matrix(stateMatrix, (unsigned int)nStates, 0u);
- printf("#matrix OUTPUTS -------------------------------");
- print_matrix(outputMatrix, (unsigned int)nOutputs, 0u);
- /* assertion 0 */
- assert(0 != 0);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 0); j = j + 1)
- arrayLimitCycle[(signed long int)j] = stateMatrix[(signed long int)i][(signed long int)j];
- double_check_persistent_limit_cycle(arrayLimitCycle, 0);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 0); j = j + 1)
- arrayLimitCycle[(signed long int)j] = outputMatrix[(signed long int)i][(signed long int)j];
- double_check_persistent_limit_cycle(arrayLimitCycle, 0);
- }
- /* assertion 0 */
- assert(0 != 0);
-}
-
-// verify_minimum_phase
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_minimum_phase.h line 24
-signed int verify_minimum_phase(void)
-{
- overflow_mode = 0;
- return 0;
-}
-
-// verify_observability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_observability.h line 19
-signed int verify_observability(void)
-{
- signed int i;
- signed int j;
- signed long int A_fpx[20l][20l];
- signed long int C_fpx[20l][20l];
- signed long int observabilityMatrix[20l][20l];
- signed long int backup[20l][20l];
- signed long int backupSecond[20l][20l];
- double observabilityMatrix_double[20l][20l];
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- {
- observabilityMatrix[(signed long int)i][(signed long int)j] = 0l;
- A_fpx[(signed long int)i][(signed long int)j] = 0l;
- C_fpx[(signed long int)i][(signed long int)j] = 0l;
- backup[(signed long int)i][(signed long int)j] = 0l;
- backupSecond[(signed long int)i][(signed long int)j] = 0l;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.A[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- C_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.C[(signed long int)i][(signed long int)j]);
- }
- if(nOutputs >= 2)
- {
- signed int l;
- j = 0;
- l = 0;
- while(!(l >= nStates))
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)l, backup);
- l = l + 1;
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, C_fpx, backup, backupSecond);
- signed int k=0;
- for( ; !(k >= nOutputs); k = k + 1)
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- observabilityMatrix[(signed long int)j][(signed long int)i] = backupSecond[(signed long int)k][(signed long int)i];
- j = j + 1;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nOutputs * nStates); j = j + 1)
- backup[(signed long int)i][(signed long int)j] = 0l;
- }
- fxp_transpose(observabilityMatrix, backup, nStates * nOutputs, nStates);
- signed long int mimo_observabilityMatrix_fxp[20l][20l];
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)(nStates * nOutputs), (unsigned int)(nStates * nOutputs), (unsigned int)nStates, backup, observabilityMatrix, mimo_observabilityMatrix_fxp);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- observabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(mimo_observabilityMatrix_fxp[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$1=determinant(observabilityMatrix_double, nStates);
- /* assertion determinant(observabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000))
- (void)0;
-
- }
-
- else
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)i, backup);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, C_fpx, backup, backupSecond);
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- observabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[0l][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- observabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(observabilityMatrix[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$2=determinant(observabilityMatrix_double, nStates);
- /* assertion determinant(observabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000))
- (void)0;
-
- }
- return 0;
-}
-
-// verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 23
-signed int verify_overflow(void)
-{
- overflow_mode = 1;
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[max_fxp$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- signed int i=0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- signed int return_value_nondet_int$1=nondet_int();
- x[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = x[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- signed long int xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- signed long int waux[xaux$array_size0];
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- yaux[(signed long int)i] = 0l;
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0l;
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- waux[(signed long int)i] = 0l;
- signed long int xk;
- signed long int temp;
- signed long int *aptr;
- signed long int *bptr;
- signed long int *xptr;
- signed long int *yptr;
- signed long int *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- fxp_verify_overflow_array(y, X_SIZE_VALUE);
- return 0;
-}
-
-// verify_stability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability.h line 24
-signed int verify_stability(void)
-{
- overflow_mode = 0;
- return 0;
-}
-
-// verify_stability_closedloop_using_dslib
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability_closedloop.h line 21
-signed int verify_stability_closedloop_using_dslib(void)
-{
- double *c_num=controller.b;
- signed int c_num_size=controller.b_size;
- double *c_den=controller.a;
- signed int c_den_size=controller.a_size;
- const signed long int c_den_size$array_size0=(signed long int)controller.b_size;
- signed long int c_num_fxp[c_den_size$array_size0];
- fxp_double_to_fxp_array(c_num, c_num_fxp, controller.b_size);
- const signed long int c_num_fxp$array_size0=(signed long int)controller.a_size;
- signed long int c_den_fxp[c_num_fxp$array_size0];
- fxp_double_to_fxp_array(c_den, c_den_fxp, controller.a_size);
- const signed long int c_den_fxp$array_size0=(signed long int)controller.b_size;
- double c_num_qtz[c_den_fxp$array_size0];
- fxp_to_double_array(c_num_qtz, c_num_fxp, controller.b_size);
- const signed long int c_num_qtz$array_size0=(signed long int)controller.a_size;
- double c_den_qtz[c_num_qtz$array_size0];
- fxp_to_double_array(c_den_qtz, c_den_fxp, controller.a_size);
- double *p_num=plant_cbmc.b;
- signed int p_num_size=plant.b_size;
- double *p_den=plant_cbmc.a;
- signed int p_den_size=plant.a_size;
- double ans_num[100l];
- signed int ans_num_size=(controller.b_size + plant.b_size) - 1;
- double ans_den[100l];
- signed int ans_den_size=(controller.a_size + plant.a_size) - 1;
- ft_closedloop_series(c_num_qtz, c_num_size, c_den_qtz, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num, ans_num_size, ans_den, ans_den_size);
- printf("Verifying stability for closedloop function\n");
- signed int return_value_check_stability_closedloop$1=check_stability_closedloop(ans_den, ans_den_size, p_num, p_num_size, p_den, p_den_size);
- __DSVERIFIER_assert((_Bool)return_value_check_stability_closedloop$1);
- return 0;
-}
-
-// verify_timing_msp_430
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_timing_msp430.h line 22
-signed int verify_timing_msp_430(void)
-{
- const signed long int verify_timing_msp_430$array_size0=(signed long int)X_SIZE_VALUE;
- double y[verify_timing_msp_430$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- double x[y$array_size0];
- signed int i=0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0.000000;
- float return_value_nondet_float$1=nondet_float();
- x[(signed long int)i] = (double)return_value_nondet_float$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= impl.min)
- tmp_if_expr$2 = x[(signed long int)i] <= impl.max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- double yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- double xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- double waux[xaux$array_size0];
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- yaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- waux[(signed long int)i] = 0.000000;
- double xk;
- double temp;
- double *aptr;
- double *bptr;
- double *xptr;
- double *yptr;
- double *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- return 0;
-}
-
-// verify_zero_input_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_zero_input_limit_cycle.h line 16
-signed int verify_zero_input_limit_cycle(void)
-{
- overflow_mode = 3;
- signed int i;
- signed int j;
- signed int Set_xsize_at_least_two_times_Na=2 * ds.a_size;
- printf("X_SIZE must be at least 2 * ds.a_size");
- /* assertion X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na */
- assert(X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na);
- if(X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na)
- (void)0;
-
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[max_fxp$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- x[(signed long int)i] = 0l;
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- signed long int xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- signed long int waux[xaux$array_size0];
- const signed long int waux$array_size0=(signed long int)ds.a_size;
- signed long int y0[waux$array_size0];
- const signed long int y0$array_size0=(signed long int)Nw;
- signed long int w0[y0$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- signed int return_value_nondet_int$1=nondet_int();
- waux[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(waux[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = waux[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- w0[(signed long int)i] = waux[(signed long int)i];
- }
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0l;
- signed long int xk;
- signed long int temp;
- signed long int *aptr;
- signed long int *bptr;
- signed long int *xptr;
- signed long int *yptr;
- signed long int *wptr;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- fxp_check_persistent_limit_cycle(y, X_SIZE_VALUE);
- return 0;
-}
-
-// wrap
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 100
-signed long int wrap(signed long int kX, signed long int kLowerBound, signed long int kUpperBound)
-{
- signed int range_size=(signed int)((kUpperBound - kLowerBound) + 1l);
- if(!(kX >= kLowerBound))
- kX = kX + (signed long int)range_size * ((kLowerBound - kX) / (signed long int)range_size + 1l);
-
- return kLowerBound + (kX - kLowerBound) % (signed long int)range_size;
-}
-
diff --git a/regression/cegis/cegis_control_benchmark_01/cegis-control-float.sh b/regression/cegis/cegis_control_benchmark_01/cegis-control-float.sh
deleted file mode 100755
index 3fc9b8b5807..00000000000
--- a/regression/cegis/cegis_control_benchmark_01/cegis-control-float.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-export PATH=${PATH//cbmc-5190/cbmc-trunk-diffblue-control-synthesis}
-export PATH=${PATH}:/users/pkesseli/software/cpp/cbmc/cbmc-trunk-diffblue-control-synthesis/src/cegis:/users/pkesseli/software/cpp/cbmc/cbmc-trunk-diffblue-control-synthesis-analyzer/src/goto-analyzer
-
-benchmark_basedir='/users/pkesseli/software/cpp/cbmc/cbmc-trunk-diffblue-control-synthesis/regression'
-cd ${benchmark_basedir}
-
-benchmark_dir=$1
-cd ${benchmark_dir}
-
-function get_exponent_width() {
- if [ $1 -le 8 ]; then return 2; fi
- if [ $1 -le 10 ]; then return 3; fi
- if [ $1 -le 12 ]; then return 4; fi
- if [ $1 -le 14 ]; then return 5; fi
- if [ $1 -le 16 ]; then return 6; fi
- if [ $1 -le 26 ]; then return 7; fi
- if [ $1 -le 37 ]; then return 8; fi
- if [ $1 -le 48 ]; then return 9; fi
- if [ $1 -le 58 ]; then return 10; fi
- return 11
-}
-
-for word_width in {8..64}; do
- get_exponent_width ${word_width}
- exponent_width=$?
- fraction_width=$((word_width - exponent_width - 1))
- echo "exp: $exponent_width, frac: $fraction_width"
- cegis -D _EXPONENT_WIDTH=${fraction_width} -D _FRACTION_WIDTH=${exponent_width} --cegis-control --cegis-statistics --cegis-max-size 1 *.c
- if [ $? -eq 0 ]; then exit 0; fi
-done
-exit 10
diff --git a/regression/cegis/cegis_control_benchmark_01/cegis-control.sh b/regression/cegis/cegis_control_benchmark_01/cegis-control.sh
deleted file mode 100755
index e868d3f6cfa..00000000000
--- a/regression/cegis/cegis_control_benchmark_01/cegis-control.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-export PATH=${PATH//cbmc-5190/cbmc-trunk-diffblue-control-synthesis}
-export PATH=${PATH}:/users/pkesseli/software/cpp/cbmc/cbmc-trunk-diffblue-control-synthesis/src/cegis:/users/pkesseli/software/cpp/cbmc/cbmc-trunk-diffblue-control-synthesis-analyzer/src/goto-analyzer
-
-benchmark_basedir='/users/pkesseli/software/cpp/cbmc/cbmc-trunk-diffblue-control-synthesis/regression'
-cd ${benchmark_basedir}
-
-benchmark_dir=$1
-cd ${benchmark_dir}
-
-for word_width in {8..64..2}; do
- echo "width: $word_width"
- cegis -D _FIXEDBV -D _CONTROL_FLOAT_WIDTH=${word_width} --fixedbv --cegis-control --cegis-statistics --cegis-max-size 1 *.c >/dev/null 2>&1
- if [ $? -eq 0 ]; then exit 0; fi
-done
-exit 10
diff --git a/regression/cegis/cegis_control_benchmark_01/controller.h b/regression/cegis/cegis_control_benchmark_01/controller.h
deleted file mode 100644
index 5b581b371a2..00000000000
--- a/regression/cegis/cegis_control_benchmark_01/controller.h
+++ /dev/null
@@ -1 +0,0 @@
-struct anonymous3 controller={ .den={ 1.000000, (double)-4.200000e-1f, (double)-3.465000e-1f, (double)-3.915000e-2f }, .den_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000 }, .den_size=4, .num={ 2.880000e+0, (double)-4.896000e+0f, 2.074000e+0 }, .num_uncertainty={ 0.000000, 0.000000, 0.000000 }, .num_size=3 };
diff --git a/regression/cegis/cegis_control_benchmark_01/plant.h b/regression/cegis/cegis_control_benchmark_01/plant.h
deleted file mode 100644
index 5895230e9bb..00000000000
--- a/regression/cegis/cegis_control_benchmark_01/plant.h
+++ /dev/null
@@ -1 +0,0 @@
-struct anonymous3 plant={ .den={ 1.000000, (double)-2.000000f, 1.000000 }, .den_uncertainty={ 0.000000, 0.000000, 0.000000 }, .den_size=3, .num={ 1.250000e-1, 1.250000e-1 }, .num_uncertainty={ 0.000000, 0.000000 }, .num_size=2 };
diff --git a/regression/cegis/cegis_control_benchmark_01/simplified_noise.c b/regression/cegis/cegis_control_benchmark_01/simplified_noise.c
deleted file mode 100644
index d3f7d64ffc6..00000000000
--- a/regression/cegis/cegis_control_benchmark_01/simplified_noise.c
+++ /dev/null
@@ -1,505 +0,0 @@
-#include
-#include
-
-/*#define __CONTROLLER_DEN_SIZE 3
-#define __CONTROLLER_NUM_SIZE 3
-#define __PLANT_DEN_SIZE 2
-#define __PLANT_NUM_SIZE 1
-#define SOLUTION_DEN_SIZE 3
-#define SOLUTION_NUM_SIZE 3*/
-#include "sizes.h"
-#define __OPENLOOP_DEN_SIZE (__CONTROLLER_DEN_SIZE+__PLANT_DEN_SIZE-1)
-#define __OPENLOOP_NUM_SIZE (__CONTROLLER_NUM_SIZE+__PLANT_NUM_SIZE-1)
-
-#define __NORMALIZED
-#ifdef __CPROVER
-#ifndef _FIXEDBV
- #ifndef _EXPONENT_WIDTH
- #define _EXPONENT_WIDTH 16
- #endif
- #ifndef _FRACTION_WIDTH
- #define _FRACTION_WIDTH 11
- #endif
- typedef __CPROVER_floatbv[_EXPONENT_WIDTH][_FRACTION_WIDTH] control_floatt;
- control_floatt _imp_max=(((1 <<(_EXPONENT_WIDTH-1))-1)<<1)+1;
-#else
- #ifndef _CONTROL_FLOAT_WIDTH
- #define _CONTROL_FLOAT_WIDTH 16
- #endif
- #ifndef _CONTORL_RADIX_WIDTH
- #define _CONTORL_RADIX_WIDTH _CONTROL_FLOAT_WIDTH / 2
- #endif
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] control_floatt;
- control_floatt _imp_max=(((1 <<(_CONTROL_FLOAT_WIDTH-1))-1)<<1)+1;
-#endif
- typedef unsigned char cnttype;
-#else
- typedef double control_floatt;
- typedef unsigned int cnttype;
- #include
- #include
-#endif
-
-struct anonymous0
-{
- cnttype int_bits;
- cnttype frac_bits;
-};
-
-struct anonymous3
-{
- control_floatt den[SOLUTION_DEN_SIZE];
- control_floatt den_uncertainty[SOLUTION_DEN_SIZE];
- cnttype den_size;
- control_floatt num[SOLUTION_NUM_SIZE];
- control_floatt num_uncertainty[SOLUTION_NUM_SIZE];
- cnttype num_size;
-};
-
-control_floatt _dbl_max;
-control_floatt _dbl_min;
-signed long int _fxp_max;
-signed long int _fxp_min;
-signed long int _fxp_one;
-control_floatt _dbl_lsb;
-control_floatt _poly_error;
-control_floatt _sum_error;
-control_floatt _plant_norm;
-
-struct anonymous0 impl={ .int_bits=_CONTROLER_INT_BITS, .frac_bits=_CONTROLER_FRAC_BITS};
-
-#include "plant.h"
-/*struct anonymous3 plant={ .den={ 1.0, -9.998000e-1, 0.0}, .den_uncertainty={0.0, 0.0, 0.0}, .den_size=2,
-.num={ 2.640000e-2, 0.0, 0.0}, .num_uncertainty={0.0, 0.0, 0.0}, .num_size=1};*/
-/*struct anonymous3 plant={ .den={ 1.0, -3.32481248817168, 1.64872127070013 }, .den_size=3,
- .num={ 0.548693198268086, -0.886738807003861, 0.0 }, .num_size=2};*/
-
-struct anonymous3 plant_cbmc,controller_cbmc;
-//#ifdef __CPROVER
-#include "controller.h"
-//extern struct anonymous3 controller;
-/*#else
-//struct anonymous3 controller = { .den={ 32218.8125, 3544.125, 29723.25 }, .den_uncertainty={0.0, 0.0, 0.0}, .den_size=3,
-// .num={ 17509.4375, 7878.25, 12107.6875 }, .num_uncertainty={0.0, 0.0, 0.0}, .num_size=3};
-struct anonymous3 controller = { .den={ 25868.375, -12550.9375, 5127.375 },.den_uncertainty={0.0, 0.0, 0.0}, .den_size=3,
- .num={ 26097, -303.0625, -23076.25 }, .num_uncertainty={0.0, 0.0, 0.0}, .num_size=3};
-#endif*/
-
-void __DSVERIFIER_assume(_Bool expression)
-{
-#ifdef __CPROVER
- __CPROVER_assume(expression != (_Bool)0);
-#endif
-}
-
-void __DSVERIFIER_assert(_Bool expression)
-{
- /* assertion expression */
- assert(expression != (_Bool)0);
-}
-
-void initialization()
-{
- __DSVERIFIER_assert(impl.int_bits+impl.frac_bits < 32);
-#ifdef __NORMALIZED
- _fxp_one = 1 << (impl.frac_bits + impl.int_bits);
- _dbl_lsb=1.0/(1 << impl.frac_bits + impl.int_bits);
- _fxp_min = -(1 << (impl.frac_bits + impl.int_bits -1));
- _fxp_max = (1 << (impl.frac_bits + impl.int_bits-1))-1;
- _dbl_max = (1.0-_dbl_lsb);//Fractional part
-#else
- if(impl.frac_bits >= 31)
- _fxp_one = 2147483647l;
- else
- _fxp_one = (1 << impl.frac_bits);
- _dbl_lsb=1.0/(1 << impl.frac_bits);
- _fxp_min = -(1 << (impl.frac_bits + impl.int_bits -1));
- _fxp_max = (1 << (impl.frac_bits + impl.int_bits-1))-1;
- _dbl_max = (1 << (impl.int_bits-1))-1;//Integer part
- _dbl_max += (1.0-_dbl_lsb);//Fractional part
-#endif
- _dbl_min = -_dbl_max;
-#ifdef __CHECK_FP
- if (SOLUTION_DEN_SIZE>SOLUTION_NUM_SIZE)
- {
- _poly_error=2*_dbl_lsb*SOLUTION_DEN_SIZE;
- _sum_error=2*_poly_error*SOLUTION_DEN_SIZE;
- }
- else
- {
- _poly_error=2*_dbl_lsb*SOLUTION_NUM_SIZE;
- _sum_error=2*_poly_error*SOLUTION_DEN_SIZE;
- }
-#else
- _poly_error=0;
- _sum_error=0;
-#endif
-}
-
-int validation()
-{
- cnttype i;
- control_floatt max=0;
- for (i=0;imax) max=plant.num[i];
- else if (-plant.num[i]>max) max=-plant.num[i];
- }
- for (i=0;imax) max=plant.den[i];
- else if (-plant.den[i]>max) max=-plant.den[i];
- }
- unsigned int max_int=max;
-#ifdef __NORMALIZED
- cnttype mult_bits=1;
-#else
- cnttype mult_bits=12;
-#endif
- while (max_int>0)
- {
- mult_bits++;
- max_int>>=1;
- }
- _plant_norm=1<= _dbl_min);
-#else
- printf("value=%f", value);
- if(value > _dbl_max) return 10;
- if(value < _dbl_min) return 10;
-#endif
- }
-#ifdef __CPROVER
- __DSVERIFIER_assume(zero_count < __CONTROLLER_DEN_SIZE);
-#else
- if (zero_count == __CONTROLLER_DEN_SIZE) return 10;
-#endif
- zero_count = 0;
- for(i = 0 ; i < __CONTROLLER_NUM_SIZE; i++)
- {
- const control_floatt value=controller.num[i];
- if(value == 0.0) ++zero_count;
-#ifdef __CPROVER
- __DSVERIFIER_assume(value <= _dbl_max);
- __DSVERIFIER_assume(value >= _dbl_min);
-#else
- if (value > _dbl_max) return 10;
- if (value < _dbl_min) return 10;
-#endif
- }
-#ifdef __CPROVER
- __DSVERIFIER_assume(zero_count < __CONTROLLER_DEN_SIZE);
-#else
- if (zero_count == __CONTROLLER_DEN_SIZE) return 10;
-#endif
- return 0;
-}
-
-#ifndef __CPROVER
-void print_poly(control_floatt *pol,cnttype n)
-{
- cnttype i;
- for (i=0;i 0.0)
- {
- control_floatt factor=(plant.num[i] * plant.num_uncertainty[i]) / 100.0;
- factor = factor < 0.0 ? -factor : factor;
- control_floatt min=plant.num[i] -factor;
- control_floatt max=plant.num[i] +factor;
- plant_cbmc.num[i] = nondet_double();
- __DSVERIFIER_assume(plant_cbmc.num[i] >= min);
- __DSVERIFIER_assume(plant_cbmc.num[i] <= max);
-#ifdef __NORMALIZED
- plant_cbmc.num[i]/=_plant_norm;
-#endif
- }
- else
-#endif
-#ifdef __NORMALIZED
- plant_cbmc.num[i] = plant.num[i]/_plant_norm;
-#else
- plant_cbmc.num[i] = plant.num[i];
-#endif
- plant_cbmc.den_size=plant.den_size;
- for(i = 0; i < plant.den_size; i++)
-#ifdef __CPROVER
- if(plant.den_uncertainty[i] > 0.0)
- {
- control_floatt factor=(plant.den[i] * plant.den_uncertainty[i]) / 100.0;
- factor = factor < 0.000000 ? -factor : factor;
- control_floatt min=plant.den[i] -factor;
- control_floatt max=plant.den[i] +factor;
- plant_cbmc.den[i] = nondet_double();
- __DSVERIFIER_assume(plant_cbmc.den[i] >= min);
- __DSVERIFIER_assume(plant_cbmc.den[i] <= max);
-#ifdef __NORMALIZED
- plant_cbmc.den[i]/=_plant_norm;
-#endif
- }
- else
-#endif
-#ifdef __NORMALIZED
- plant_cbmc.den[i] = plant.den[i]/_plant_norm;
-#else
- plant_cbmc.den[i] = plant.den[i];
-#endif
-}
-
-signed int check_stability_closedloop(control_floatt *a, cnttype n)
-{
- cnttype columns=n;
- control_floatt m[n][n];
- cnttype i;
- cnttype j;
- control_floatt sum=0.0;
- for(i = 0 ; i < n; i++) { sum += a[i]; }
-#ifdef __CPROVER
- __DSVERIFIER_assert(a[0] > _poly_error);
- __DSVERIFIER_assert(sum > _sum_error);
- __DSVERIFIER_assert(a[n-1]+_poly_error < a[0]);
- __DSVERIFIER_assert(-a[n-1]+_poly_error < a[0]);
-#else
- printf("m[0]=%f>0\n", a[0]);
- //std::cout << "m[0]=" << a[0] << ">0" << std::endl;
- printf("fabs(m[%d]=%f)0\n", sum);
- //std::cout << "sum=" << sum << ">0" << std::endl;
- if (!(a[0] > _poly_error)) return 0;
- if (!(sum > _sum_error)) return 0;
- if (!(a[n - 1]+_poly_error < a[0])) return 0;
- if (!(-a[n - 1]+_poly_error < a[0])) return 0;
-#endif
- sum = 0.0;
- for(i = 0 ; i < n; i++)
- {
- if (((n -i)&1)!=0) sum+=a[i];
- else sum-=a[i];
- }
- if ((n&1)==0) sum=-sum;
-#ifdef __CPROVER
- __DSVERIFIER_assert(sum > _sum_error);
-#else
- printf("sumEven-sumOdd=%f>0\n", sum);
- //std::cout << "sumEven-sumOdd=" << sum << ">0" << std::endl;
- if (!(sum > _sum_error)) return 0;
-#endif
- for(j=0;j0
- control_floatt factor=m[i-1][columns] / m[i-1][0];
-#ifdef __CHECK_FP
- if (m[i-1][0]<0) __DSVERIFIER_assert(m[i-1][0]<-(mag*mag/_imp_max+_poly_error));
- else __DSVERIFIER_assert(m[i-1][0]> (mag*mag/_imp_max+_poly_error));//check for overflow.
- control_floatt efactor=m[i-1][columns];
- if (efactor<0) efactor=-efactor;
- efactor+=_poly_error;
- efactor/=m[i-1][0]-_poly_error;
- efactor-=factor;
- __DSVERIFIER_assert(efactor<_poly_error*mag);
- if (factor>0)
- {
- _poly_error*=2+factor;//Unsound! does not consider the error in factor (a+e/b-e = a/(b-e) +e/(b-e))
- mag+=mag*factor;
- }
- else
- {
- _poly_error*=2-factor;
- mag-=mag*factor;
- }
-#endif
- for(j=0;j= _poly_error);
-#else
- printf("m[%d]=%f>0\n", i, m[i][0]);
- //std::cout << "m[" << i << "]=" << m[i][0] << ">0" << std::endl;
- if (!(m[i][0] >= _poly_error)) return 0;
-#endif
- columns--;
- }
- return 1;
-}
-
-signed long int fxp_control_floatt_to_fxp(control_floatt value)
-{
- signed long int tmp;
- control_floatt ftemp=value * _fxp_one;
- tmp = ftemp;
- control_floatt residue=ftemp - tmp;
- if(value < 0.0 && (residue != 0.0))
- {
- ftemp = ftemp - 1.0;
- tmp = ftemp;
- }
- return tmp;
-}
-
-void fxp_check(control_floatt *value)
-{
-#ifdef __CPROVER
- control_floatt tmp_value=*value;
- if (tmp_value < 0.0) tmp_value=-tmp_value;
- __DSVERIFIER_assert((~_dbl_max&tmp_value)==0);
-#else
- *value=fxp_control_floatt_to_fxp(*value);
- *value/=_fxp_one;
-#endif
-}
-
-void fxp_check_array(control_floatt *f, cnttype N)
-{
- for(cnttype i=0; i < N; i++) fxp_check(&f[i]);
-}
-
-void poly_mult(control_floatt *a, cnttype Na, control_floatt *b, cnttype Nb, control_floatt *ans, cnttype Nans)
-{
- cnttype i;
- cnttype j;
- cnttype k;
- Nans = Na + Nb - 1;
- for(i = 0 ; i
-
-typedef __CPROVER_fixedbv[24][12] __CPROVER_EIGEN_fixedbvt;
-
-typedef struct {
- //__CPROVER_EIGEN_fixedbvt A[3][3];
- __CPROVER_EIGEN_fixedbvt A[4][4];
- //__CPROVER_EIGEN_fixedbvt B[3][1];
- __CPROVER_EIGEN_fixedbvt B[4][4];
- //__CPROVER_EIGEN_fixedbvt C[1][3];
- __CPROVER_EIGEN_fixedbvt C[4][4];
- //__CPROVER_EIGEN_fixedbvt D[1][1];
- __CPROVER_EIGEN_fixedbvt D[4][4];
- __CPROVER_EIGEN_fixedbvt states[4][4];
- __CPROVER_EIGEN_fixedbvt outputs[4][4];
- __CPROVER_EIGEN_fixedbvt inputs[1][1];
- __CPROVER_EIGEN_fixedbvt K[4][4];
- unsigned int nStates;
- unsigned int nInputs;
- unsigned int nOutputs;
-} digital_system_state_space;
-
-__CPROVER_EIGEN_fixedbvt nondet_double(void);
-
-//implementation <7,3>
-//states = 3;
-//inputs = 1;
-//outputs = 1;
-//A = [4.6764e-166,0,0;5.1253e-144,0,0;0,2.5627e-144,0]
-//B = [0.125;0;0]
-//C = [0.16,-5.9787e-32,0]
-//D = [0]
-//inputs = [1]
-#define NSTATES 3u
-#define NINPUTS 1u
-#define NOUTPUTS 1u
-
-const digital_system_state_space _controller=
-{
- .A = { { 4.6764e-166,0.0,0.0,0.0 }, { 5.1253e-144,0.0,0.0,0.0 }, { 0,2.5627e-144,0.0,0.0 } },
- .B = { { 0.125,0.0,0.0,0.0 }, { 0.0,0.0,0.0,0.0 }, { 0.0,0.0,0.0,0.0 } },
- .C = { { 0.16,-5.9787e-32,0.0,0.0 } },
- .D = { { 0.0 } },
- .K = { { nondet_double(), nondet_double(), nondet_double() } },
- .inputs = { { 1.0 } },
- .nStates = NSTATES,
- .nInputs = NINPUTS,
- .nOutputs = NOUTPUTS
-};
-
-extern __CPROVER_EIGEN_fixedbvt K_fxp[4][4];
-
-
-//typedef int __CPROVER_EIGEN_fixedbvt;
-#define __CPROVER_EIGEN_MATRIX_SIZE 3u
-#define __CPROVER_EIGEN_POLY_SIZE (__CPROVER_EIGEN_MATRIX_SIZE + 1u)
-//const __CPROVER_EIGEN_fixedbvt __CPROVER_EIGEN_TEST_A[__CPROVER_EIGEN_MATRIX_SIZE][__CPROVER_EIGEN_MATRIX_SIZE] = { { 0.0, 1.0, 0.0 }, { 0.0, 0.0, 1.0 }, { 1.0, 0.0, 0.0 } };
-extern const __CPROVER_EIGEN_fixedbvt __CPROVER_EIGEN_TEST_A[__CPROVER_EIGEN_MATRIX_SIZE][__CPROVER_EIGEN_MATRIX_SIZE];
-__CPROVER_EIGEN_fixedbvt __CPROVER_EIGEN_poly[__CPROVER_EIGEN_POLY_SIZE];
-
-__CPROVER_EIGEN_fixedbvt internal_pow(__CPROVER_EIGEN_fixedbvt a, unsigned int b){
- unsigned int i;
- __CPROVER_EIGEN_fixedbvt acc = 1.0;
- for (i=0; i < b; i++){
- acc = acc*a;
- }
- return acc;
-}
-
-__CPROVER_EIGEN_fixedbvt internal_abs(__CPROVER_EIGEN_fixedbvt a){
- return a < 0 ? -a : a;
-}
-
-int check_stability(void){
-#define __a __CPROVER_EIGEN_poly
-#define __n __CPROVER_EIGEN_POLY_SIZE
- int lines = 2 * __n - 1;
- int columns = __n;
- __CPROVER_EIGEN_fixedbvt m[lines][__n];
- int i,j;
-
- /* to put current values in stability counter-example
- * look for current_stability (use: --no-slice) */
- __CPROVER_EIGEN_fixedbvt current_stability[__n];
- for (i=0; i < __n; i++){
- current_stability[i] = __a[i];
- }
-
- /* check the first constraint condition F(1) > 0 */
- __CPROVER_EIGEN_fixedbvt sum = 0;
- for (i=0; i < __n; i++){
- sum += __a[i];
- }
- if (sum <= 0){
- printf("[DEBUG] the first constraint of Jury criteria failed: (F(1) > 0)");
- return 0;
- }
-
- /* check the second constraint condition F(-1)*(-1)^n > 0 */
- sum = 0;
- for (i=0; i < __n; i++){
- sum += __a[i] * internal_pow(-1, __n-1-i);
- }
- sum = sum * internal_pow(-1, __n-1);
- if (sum <= 0){
- printf("[DEBUG] the second constraint of Jury criteria failed: (F(-1)*(-1)^n > 0)");
- return 0;
- }
-
- /* check the third constraint condition abs(a0 < an*(z^n) */
- if (internal_abs(__a[__n-1]) > __a[0]){
- printf("[DEBUG] the third constraint of Jury criteria failed: (abs(a0) < a_{n}*z^{n})");
- return 0;
- }
-
- /* check the fourth constraint of condition (Jury Table) */
- for (i=0; i < lines; i++){
- for (j=0; j < columns; j++){
- m[i][j] = 0;
- }
- }
- for (i=0; i < lines; i++){
- for (j=0; j < columns; j++){
- if (i == 0){
- m[i][j] = __a[j];
- continue;
- }
- if (i % 2 != 0 ){
- int x;
- for(x=0; x= 0 ? 1 : 0;
- for (i=0; i < lines; i++){
- if (i % 2 == 0){
- int line_is_positive = m[i][0] >= 0 ? 1 : 0;
- if (first_is_positive != line_is_positive){
- return 0;
- }
- continue;
- }
- }
- return 1;
-}
-
-
-// P(s)=(s-m11)*(s-m22)*(s-m33) - m13*m31*(s-m22) - m12*m21*(s-m33) - m23*m32*(s-m11) - m12*m23*m31 - m13*m21*m32
-// P(s)=s^3 + (-m_11 - m_22 - m_33) * s^2 + (m_11*m_22 + m_11*m_33 - m_12*m_21 - m_13*m_31 + m_22*m_33 - m_23*m_32) * s - m_11*m_22*m_33 + m_11*m_23*m_32 + m_12*m_21*m_33 - m_12*m_23*m_31 - m_13*m_21*m_32 + m_13*m_22*m_31
-void __CPROVER_EIGEN_charpoly(void) {
-#define __m __CPROVER_EIGEN_TEST_A
- // m_11*m_22*m_33 + m_11*m_23*m_32 + m_12*m_21*m_33 - m_12*m_23*m_31 - m_13*m_21*m_32 + m_13*m_22*m_31
- __CPROVER_EIGEN_poly[0] = __m[0][0] * __m[1][1] * __m[2][2] + __m[0][0] * __m[1][2] * __m[2][1] + __m[0][1] * __m[1][0] * __m[2][2] - __m[0][1] * __m[1][2] * __m[2][0] - __m[0][2] * __m[1][0] * __m[2][1] + __m[0][2] * __m[1][1] * __m[2][0];
- // (m_11*m_22 + m_11*m_33 - m_12*m_21 - m_13*m_31 + m_22*m_33 - m_23*m_32) * s
- __CPROVER_EIGEN_poly[1] = __m[0][0] * __m[1][1] + __m[0][0] * __m[2][2] - __m[0][1] * __m[1][0] - __m[0][2] * __m[2][0] + __m[1][1] * __m[2][2] - __m[1][2] * __m[2][1];
- // (-m_11 - m_22 - m_33) * s^2
- __CPROVER_EIGEN_poly[2] = -__m[0][0] - __m[1][1] - __m[2][2];
- // s^3
- __CPROVER_EIGEN_poly[3] = 1.0;
-}
-
-/*void init(void) {
- K_fxp[0][0] = nondet_double();
- K_fxp[0][1] = nondet_double();
- K_fxp[0][2] = nondet_double();
-}*/
-
-__CPROVER_EIGEN_fixedbvt __CPROVER_EIGEN_matrix_multiplication_result[4][4];
-
-void double_sub_matrix(void/* unsigned int lines, unsigned int columns, __CPROVER_EIGEN_fixedbvt m1[4][4], __CPROVER_EIGEN_fixedbvt m2[4][4], __CPROVER_EIGEN_fixedbvt result[4][4]*/){
-#define __sm_lines NSTATES
-#define __sm_columns NSTATES
-#define __sm_m1 _controller.A
-#define __sm_m2 __CPROVER_EIGEN_matrix_multiplication_result
-#define __sm_m3 _controller.A
- unsigned int i, j;
- for (i = 0; i < __sm_lines; i++){
- for (j = 0; j < __sm_columns; j++){
- __sm_m3[i][j] = __sm_m1[i][j] - __sm_m2[i][j];
-
- }
- }
-}
-
-void double_matrix_multiplication(void/* unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, __CPROVER_EIGEN_fixedbvt m1[4][4], __CPROVER_EIGEN_fixedbvt m2[4][4], __CPROVER_EIGEN_fixedbvt m3[4][4]*/){
-#define __mm_i1 NSTATES
- //unsigned int __mm_i1;
-#define __mm_j1 NINPUTS
- //unsigned int __mm_j1;
-#define __mm_i2 NINPUTS
- //unsigned int __mm_i2;
-#define __mm_j2 NSTATES
- //unsigned int __mm_j2;
-#define __mm_m1 _controller.B
- //__CPROVER_EIGEN_fixedbvt __mm_m1[4][4];
-#define __mm_m2 K_fxp
- //__CPROVER_EIGEN_fixedbvt __mm_m2[4][4];
-#define __mm_m3 __CPROVER_EIGEN_matrix_multiplication_result
- //__CPROVER_EIGEN_fixedbvt __mm_m3[4][4];
-
- unsigned int i, j, k;
- if (__mm_j1 == __mm_i2) {
-
- /*for (i=0; i<__mm_i1; i++) {
- for (j=0; j<__mm_j2; j++) {
- __mm_m3[i][j] = 0;
- }
- }*/
-
- for (i=0;i<__mm_i1; i++) {
- for (j=0; j<__mm_j2; j++) {
- for (k=0; k<__mm_j1; k++) {
-
- __CPROVER_EIGEN_fixedbvt mult = (__mm_m1[i][k] * __mm_m2[k][j]);
-
-
- __mm_m3[i][j] = __mm_m3[i][j] + (__mm_m1[i][k] * __mm_m2[k][j]);
-
-
- }
-
- }
- }
- } else {
- printf("\nError! Operation invalid, please enter with valid matrices.\n");
- }
-}
-
-#define LIMIT 4u
-
-void closed_loop(void)
-{
- //__CPROVER_EIGEN_fixedbvt result1[LIMIT][LIMIT];
-
- /*int i, j, k;
- for(i=0; i counterexample_var, "");
- //__CPROVER_assert(0 == 1, "");
- return 0;
-}
diff --git a/regression/cegis/cegis_control_benchmark_02/test.desc b/regression/cegis/cegis_control_benchmark_02/test.desc
deleted file mode 100644
index 10e88d67b1b..00000000000
--- a/regression/cegis/cegis_control_benchmark_02/test.desc
+++ /dev/null
@@ -1,7 +0,0 @@
-CORE
-eigen_charpoly.c
---gcc --fixedbv --round-to-minus-inf --cegis-control --cegis-statistics --cegis-genetic --cegis-max-size 1 --cegis-show-iterations
-EXIT=0
-SIGNAL=0
---
-warning: ignoring
diff --git a/regression/cegis/cegis_control_benchmark_03/benchmark.h b/regression/cegis/cegis_control_benchmark_03/benchmark.h
deleted file mode 100644
index 1cc819d94d7..00000000000
--- a/regression/cegis/cegis_control_benchmark_03/benchmark.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * benchmark.h
- *
- * Created on: 18 Jan 2017
- * Author: elipol
- */
-
-#ifndef BENCHMARK_H_
-#define BENCHMARK_H_
-
-#define INT_BITS 8
-#define FRAC_BITS 8
-#include "control_types.h"
-
-#define NSTATES 3
-#define NINPUTS 1
-#define NOUTPUTS 1
-#define INPUT_UPPERBOUND (__plant_precisiont)1
-#define INPUT_LOWERBOUND (__plant_precisiont)-1
-const __plant_typet _controller_A[NSTATES][NSTATES] = {{ interval(0.9905),interval(0.075687),interval(0.021033) },
- {interval (0.125),interval(0),interval(0) },
- { interval(0),(0.015625),(0) }};
-const __plant_typet _controller_B[NSTATES] = { interval(16), interval(0),interval( 0) };
-
-
-
-#endif /* BENCHMARK_H_ */
diff --git a/regression/cegis/cegis_control_benchmark_03/control_types.h b/regression/cegis/cegis_control_benchmark_03/control_types.h
deleted file mode 100644
index 62bbffafb8a..00000000000
--- a/regression/cegis/cegis_control_benchmark_03/control_types.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * control_types.h
- *
- * Created on: 18 Jan 2017
- * Author: elipol
- */
-
-#ifndef CONTROL_TYPES_H_
-#define CONTROL_TYPES_H_
-
-#ifdef CPROVER
- #ifdef INTERVAL
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] __plant_precisiont;
- #include "intervals.h"
- typedef struct intervalt __plant_typet;
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] __controller_precisiont;
- typedef struct intervalt __controller_typet;
- #define interval(x) interval_cast(x);
- #else
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] __plant_precisiont;
- typedef __plant_precisiont __plant_typet;
- typedef __CPROVER_fixedbv[INT_BITS+FRAC_BITS][FRAC_BITS] __controller_precisiont;
- typedef __controller_precisiont __controller_typet;
- #define plant_cast(x) ((__plant_typet)x)
- #define controller_cast(x) ((__controller_typet)x)
- #define interval(x) x
- #endif
-#else
- #ifdef INTERVAL
- typedef double __plant_precisiont;
- #include "intervals.h"
- typedef struct intervalt __plant_typet;
- typedef double __controller_precisiont; //fixed point arithmetic is implemented using doubles
- typedef struct intervalt __controller_typet;
- #define interval(x) interval_cast(x)
- #endif
- #ifndef INTERVAL
- typedef double __plant_precisiont;
- typedef __plant_precisiont __plant_typet;
- typedef double __controller_precisiont; //fixed point arithmetic is implemented using doubles
- typedef __controller_precisiont __controller_typet;
- #define interval(x) (x)
- #define plant_cast(x) x
- #define controller_cast(x) x
- #endif
-#endif
-
-#endif /* CONTROL_TYPES_H_ */
diff --git a/regression/cegis/cegis_control_benchmark_03/operators.h b/regression/cegis/cegis_control_benchmark_03/operators.h
deleted file mode 100644
index 3b6c3dcfcb1..00000000000
--- a/regression/cegis/cegis_control_benchmark_03/operators.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * operators.h
- *
- * Created on: 18 Jan 2017
- * Author: elipol
- */
-
-#ifndef OPERATORS_H_
-#define OPERATORS_H_
-
-#ifndef INTERVAL
- #define controller_mult(x,y) ((x) *(y))
- #define mult(x,y) ( (x) * (y))
-
- #define _abs(a) ( (a) < 0 ? -(a) : (a))
- #define add(x,y) ( (x) + (y))
-
- #define lessthan(x,y) ((x) )< (y))
- #define greaterthan(x,y) ((x)>(y))
- #define lessthanzero(x) ((x) < 0)
- #define lessthan_equaltozero(x) ((x) <= 0)
- #define zero_type 0
- #define one_type (__plant_precisiont)1.0
- #define minusone (__plant_precisiont)-1
- #define div(x,y) ( (x) / (y))
- #define sub(x,y) ( (x) - (y))
- #define set(x,y) (x)=(y)
-
-
-#endif
-#ifdef INTERVAL
-
- #define controller_mult(x,y) (interval_fxp_mult((x),(y)))
- #define mult(x,y) ( interval_mult((x),(y)))
-
- #define _abs(a) ( abs_interval(a))
-
- #define lessthan(x,y) (interval_lessthan(x,y))
- #define greaterthan(x,y) (interval_greaterthan((x),(y)))
- #define add(x,y) (interval_add((x),(y)))
- #define lessthanzero(x) (interval_lessthanzero(x))
- #define lessthan_equaltozero(x) (interval_lessthan_equal_to_zero(x))
-
- #define zero_type (zero_interval)
- #define minusone (minusone_interval)
- #define one_type one_interval
- #define div(x,y) (interval_posDiv((x),(y)))
- #define sub(x,y) (interval_sub((x),(y)))
-
- #define controller_cast(x) (fxp_interval_check(x))
- #define plant_cast(x) x
- #define set(x,y) (x.low=y, x.high=y)
-
-
-#endif
-
-#endif /* OPERATORS_H_ */
diff --git a/regression/cegis/cegis_control_benchmark_03/safety_stability.c b/regression/cegis/cegis_control_benchmark_03/safety_stability.c
deleted file mode 100644
index 2471d35b8ba..00000000000
--- a/regression/cegis/cegis_control_benchmark_03/safety_stability.c
+++ /dev/null
@@ -1,486 +0,0 @@
-#include
-#include "benchmark.h" //benchmark header file
-//#include "control_types.h" //included via benchmark.h
-//#define CPROVER
-//#ifdef INTERVAL
- // #include "intervals.h" //included via control_types.h
-//#endif
-#include "operators.h"
-
-#ifdef CPROVER
- //#define __DSVERIFIER_assert(x) __CPROVER_assume(x)
-#define __DSVERIFIER_assert(x) __CPROVER_assert(x, "")
-#else
- #include
- #define __DSVERIFIER_assert(x) assert(x)
-#endif
-
-//#define NUMBERLOOPS 5 // Defined by benchmark script
-#define INITIALSTATE_UPPERBOUND (__plant_precisiont)0.5
-#define INITIALSTATE_LOWERBOUND (__plant_precisiont)-0.5
-#define SAFE_STATE_UPPERBOUND (__plant_precisiont)1.0
-#define SAFE_STATE_LOWERBOUND (__plant_precisiont)-1.0
-
-//other plant variables
-extern const __controller_typet K_fxp[NSTATES]; //nondet controller
-//const __controller_typet K_fxp[NSTATES] = {interval(0.0234375),interval(-0.1328125), interval(0.00390625)};
-__plant_typet _controller_inputs;
-extern __plant_typet _controller_states[NSTATES]; //nondet initial states
-
-//matrices for stability calculation
-__plant_typet _AminusBK[NSTATES][NSTATES];
-
-__plant_typet __CPROVER_EIGEN_poly[NSTATES + 1u];
-
-//stablity calc
-
-__plant_typet internal_pow(__plant_typet a, unsigned int b){
-
- __plant_typet acc = one_type;
- for (int i=0; i < b; i++){
- acc = mult(acc,a);
- }
- return acc;
-}
-
-
-int check_stability(void){
-
-
- #if NSTATES==1
- if(greaterthan(_AminusBK[0][0], 1) || lessthan( _AminusBK[0][0] ,-1))
- {return 0;}
- else
- {return 1;}
-#endif
-
-
-#define __a __CPROVER_EIGEN_poly
-#define __n NSTATES + 1u
- int lines = 2 * __n - 1;
- int columns = __n;
- __plant_typet m[lines][__n];
- int i,j;
-
- /* to put current values in stability counter-example
- * look for current_stability (use: --no-slice) */
- __plant_typet current_stability[__n];
- for (i=0; i < __n; i++){
- current_stability[i] = __a[i];
- }
-
- /* check the first constraint condition F(1) > 0 */
- __plant_typet sum = zero_type;
- for (i=0; i < __n; i++){
- sum = add(sum, __a[i]);
- }
- if (lessthan_equaltozero(sum)){
- printf("[DEBUG] the first constraint of Jury criteria failed: (F(1) > 0)");
- return 0;
- }
-
- /* check the second constraint condition F(-1)*(-1)^n > 0 */
- sum = zero_type;
- for (i=0; i < __n; i++){
- sum = add(sum, mult(__a[i] , internal_pow(minusone, NSTATES-i) ));
- }
- sum = mult(sum,internal_pow(minusone, NSTATES) );
-
- if (lessthan_equaltozero(sum)){
- printf("[DEBUG] the second constraint of Jury criteria failed: (F(-1)*(-1)^n > 0)");
- return 0;
- }
-
- /* check the third constraint condition abs(a0 < an*(z^n) */
- if(greaterthan( _abs(__a[__n-1]), __a[0])){
- // if (abs(__a[__n-1]) > __a[0]){
- printf("[DEBUG] the third constraint of Jury criteria failed: (abs(a0) < a_{n}*z^{n})");
- return 0;
- }
-
- /* check the fourth constraint of condition (Jury Table) */
- for (i=0; i < lines; i++){
- for (j=0; j < columns; j++){
- m[i][j] = zero_type;
- }
- }
- for (i=0; i < lines; i++){
- for (j=0; j < columns; j++){
- if (i == 0){
- m[i][j] = __a[j];
- continue;
- }
- if (i % 2 != 0 ){
- int x;
- for(x=0; x= 0 ? 1 : 0;
- for (i=0; i < lines; i++){
- if (i % 2 == 0){
- int line_is_positive = lessthanzero(m[i][0])? 0 : 1;
- // int line_is_positive = m[i][0] >= 0 ? 1 : 0;
- if (first_is_positive != line_is_positive){
- return 0;
- }
- continue;
- }
- }
- return 1;
-}
-
-#define __m _AminusBK
-#if NSTATES==2
-void __CPROVER_EIGEN_charpoly_2(void) { //m00*m11 - m10*m11 - m00*x - m11*x + x^2
-
- __CPROVER_EIGEN_poly[2] = sub ( mult(__m[0][0],__m[1][1]), mult(__m[1][0] , __m[1][1]) );
-
- __CPROVER_EIGEN_poly[1] = sub (zero_type, add (__m[0][0], __m[1][1]) ) ;
- // s^2
- __CPROVER_EIGEN_poly[0] = one_type;
-}
-#endif
-
-#if NSTATES==3
-void __CPROVER_EIGEN_charpoly_3(void) {
-// m_11*m_22*m_33 + m_11*m_23*m_32 + m_12*m_21*m_33 - m_12*m_23*m_31 - m_13*m_21*m_32 + m_13*m_22*m_31
-__CPROVER_EIGEN_poly[3] = add(sub(sub(add(add(mult(__m[0][0],mult( __m[1][1], __m[2][2])), mult( __m[0][0] ,mult( __m[1][2] , __m[2][1]))),
- mult(__m[0][1],mult( __m[1][0], __m[2][2]))), mult(__m[0][1],mult( __m[1][2], __m[2][0]) )), mult(__m[0][2] ,mult(__m[1][0], __m[2][1]))),
- mult( __m[0][2], mult(__m[1][1],__m[2][0])));
-// (m_11*m_22 + m_11*m_33 - m_12*m_21 - m_13*m_31 + m_22*m_33 - m_23*m_32) * s
-__CPROVER_EIGEN_poly[2] = sub(add(sub(sub(mult(__m[0][0], mult( __m[1][1], mult( __m[0][0], __m[2][2]))), mult(__m[0][1], __m[1][0])),
- mult(__m[0][2],__m[2][0])), mult(__m[1][1], __m[2][2])),mult(__m[1][2], __m[2][1]));
-// (-m_11 - m_22 - m_33) * s^2
-__CPROVER_EIGEN_poly[1] = sub(sub(sub(zero_type,__m[0][0]), __m[1][1]), __m[2][2]);
-// s^3
-__CPROVER_EIGEN_poly[0] = one_type;
-
-}
-#endif
-#if NSTATES==4
-void __CPROVER_EIGEN_charpoly_4(void) {
-
- __CPROVER_EIGEN_poly[4] = __m[0][0]*__m[1][1]*__m[2][2]*__m[3][3] - __m[0][0]*__m[1][1]*__m[2][3]*__m[3][2] - __m[0][0]*__m[1][2]*__m[2][1]*__m[3][3] + __m[0][0]*__m[1][2]*__m[2][3]*__m[3][1] + __m[0][0]*__m[1][3]*__m[2][1]*__m[3][2] -
- __m[0][0]*__m[1][3]*__m[2][2]*__m[3][1] - __m[0][1]*__m[1][0]*__m[2][2]*__m[3][3] + __m[0][1]*__m[1][0]*__m[2][3]*__m[3][2] + __m[0][1]*__m[1][2]*__m[2][0]*__m[3][3] - __m[0][1]*__m[1][2]*__m[2][3]*__m[3][0] -
- __m[0][1]*__m[1][3]*__m[2][0]*__m[3][2] + __m[0][1]*__m[1][3]*__m[2][2]*__m[3][0] + __m[0][2]*__m[1][0]*__m[2][1]*__m[3][3] - __m[0][2]*__m[1][0]*__m[2][3]*__m[3][1] - __m[0][2]*__m[1][1]*__m[2][0]*__m[3][3] +
- __m[0][2]*__m[1][1]*__m[2][3]*__m[3][0] + __m[0][2]*__m[1][3]*__m[2][0]*__m[3][1] - __m[0][2]*__m[1][3]*__m[2][1]*__m[3][0] - __m[0][3]*__m[1][0]*__m[2][1]*__m[3][2] + __m[0][3]*__m[1][0]*__m[2][2]*__m[3][1] +
- __m[0][3]*__m[1][1]*__m[2][0]*__m[3][2] - __m[0][3]*__m[1][1]*__m[2][2]*__m[3][0] - __m[0][3]*__m[1][2]*__m[2][0]*__m[3][1] + __m[0][3]*__m[1][2]*__m[2][1]*__m[3][0];
-
-
-__CPROVER_EIGEN_poly[3] = - __m[0][0]*__m[1][1]*__m[2][2] + __m[0][0]*__m[1][2]*__m[2][1] + __m[0][1]*__m[1][0]*__m[2][2] - __m[0][1]*__m[1][2]*__m[2][0] - __m[0][2]*__m[1][0]*__m[2][1] + __m[0][2]*__m[1][1]*__m[2][0]
- - __m[0][0]*__m[1][1]*__m[3][3] + __m[0][0]*__m[1][3]*__m[3][1] + __m[0][1]*__m[1][0]*__m[3][3] - __m[0][1]*__m[1][3]*__m[3][0] - __m[0][3]*__m[1][0]*__m[3][1] + __m[0][3]*__m[1][1]*__m[3][0]
- - __m[0][0]*__m[2][2]*__m[3][3] + __m[0][0]*__m[2][3]*__m[3][2] + __m[0][2]*__m[2][0]*__m[3][3] - __m[0][2]*__m[2][3]*__m[3][0] - __m[0][3]*__m[2][0]*__m[3][2] + __m[0][3]*__m[2][2]*__m[3][0]
- - __m[1][1]*__m[2][2]*__m[3][3] + __m[1][1]*__m[2][3]*__m[3][2] + __m[1][2]*__m[2][1]*__m[3][3] - __m[1][2]*__m[2][3]*__m[3][1] - __m[1][3]*__m[2][1]*__m[3][2] + __m[1][3]*__m[2][2]*__m[3][1];
-
-
- __CPROVER_EIGEN_poly[2] = + __m[0][0]*__m[1][1] - __m[0][1]*__m[1][0] + __m[0][0]*__m[2][2] - __m[0][2]*__m[2][0] + __m[0][0]*__m[3][3] - __m[0][3]*__m[3][0] + __m[1][1]*__m[2][2] -
- __m[1][2]*__m[2][1] + __m[1][1]*__m[3][3] - __m[1][3]*__m[3][1] + __m[2][2]*__m[3][3] - __m[2][3]*__m[3][2];
-
-
- __CPROVER_EIGEN_poly[1] = - __m[3][3] - __m[2][2] - __m[1][1] - __m[0][0];
- __CPROVER_EIGEN_poly[0] = 1.0;
-}
-#endif
-
-void __CPROVER_EIGEN_charpoly(void){
-
- #if NSTATES==1
- //do nothing
- #elif NSTATES==2
- __CPROVER_EIGEN_charpoly_2();
- #elif NSTATES==3
- __CPROVER_EIGEN_charpoly_3();
- #elif NSTATES==4
- __CPROVER_EIGEN_charpoly_4();
- #endif
-}
-
-void A_minus_B_K()
-{
-
-#ifdef CPROVER
- __CPROVER_array_copy(_AminusBK, _controller_A);
-#else
- for(int i=0; iINPUT_LOWERBOUND);
- #else
- __CPROVER_assume(_controller_inputs < INPUT_UPPERBOUND && _controller_inputs > INPUT_LOWERBOUND);
- #endif
- #endif
-
- }
- }
-
-__plant_typet states_equals_A_states_plus_B_inputs_result[NSTATES];
-
-void states_equals_A_states_plus_B_inputs(void)
-{
-
- #ifdef CPROVER
- __CPROVER_array_set(states_equals_A_states_plus_B_inputs_result, zero_type);
- #else
- for(int i=0; iSAFE_STATE_LOWERBOUND);
- __DSVERIFIER_assert( _controller_states[1]SAFE_STATE_LOWERBOUND);
- #if NSTATES==3 || NSTATES==4
- __DSVERIFIER_assert( _controller_states[2]SAFE_STATE_LOWERBOUND);
- #endif
- #if NSTATES==4
- __DSVERIFIER_assert( _controller_states[3]SAFE_STATE_LOWERBOUND);
- #endif
-#else
- for(int i=0; iSAFE_STATE_LOWERBOUND);
- }
-#endif
-#else
-#ifdef CPROVER
- __CPROVER_array_copy(_controller_states, states_equals_A_states_plus_B_inputs_result);
- /*for(i=0; iSAFE_STATE_LOWERBOUND);
- __DSVERIFIER_assert( _controller_states[1].highSAFE_STATE_LOWERBOUND);
- #if NSTATES==3 || NSTATES==4
- __DSVERIFIER_assert( _controller_states[2].highSAFE_STATE_LOWERBOUND);
- #endif
- #if NSTATES==4
- __DSVERIFIER_assert( _controller_states[3].highSAFE_STATE_LOWERBOUND);
- #endif
-#else
- for(int i=0; iSAFE_STATE_LOWERBOUND);
- }
-#endif
-#endif
-
-
-
- }
-
-
-
-int check_safety(void)
-{
-
- for(int j=0; j=INITIALSTATE_LOWERBOUND);
- __CPROVER_assume(_controller_states[j]!=zero_type);
- #else
- __CPROVER_assume(_controller_states[j]<=INITIALSTATE_UPPERBOUND && _controller_states[j]>=INITIALSTATE_LOWERBOUND);
- __CPROVER_assume(_controller_states[j]!=zero_type);
- #endif
- #endif
- }
-
- for(int k=0; kSAFE_STATE_UPPERBOUND || _controller_states[i].highSAFE_STATE_UPPERBOUND || _controller_states[i] 0);
-}
-
-void safety_stability(void) {
-#ifdef INTERVAL
- get_bounds(); //get interval bounds
-#endif
- closed_loop(); //calculate A - BK
- __CPROVER_EIGEN_charpoly();
- __DSVERIFIER_assert(check_stability());
-#if NSTATES != 1
- __DSVERIFIER_assert(check_safety());
-#endif
-
-#ifdef CPROVER
- __controller_typet K_fxp_trace[NSTATES] = { controller_cast(0.0) };
- __CPROVER_array_copy(K_fxp_trace, K_fxp);
- //__CPROVER_assert(0 == 1, "");
-#endif
-}
-
-int main(void) {
-#ifdef CPROVER
- assume_corner_cases_for_states();
-#else
- for (int poleIndex = 0; poleIndex < NPOLES; ++poleIndex) {
- for (int stateIndex = 0; stateIndex < NSTATES; ++stateIndex) {
- _controller_states[stateIndex] = _state_poles[poleIndex][poleIndex];
- }
-#endif
- assert_nonzero_controller();
- safety_stability();
-#ifndef CPROVER
- }
-#endif
- return 0;
-}
diff --git a/regression/cegis/cegis_control_benchmark_03/test.desc b/regression/cegis/cegis_control_benchmark_03/test.desc
deleted file mode 100644
index 3c618c8d745..00000000000
--- a/regression/cegis/cegis_control_benchmark_03/test.desc
+++ /dev/null
@@ -1,7 +0,0 @@
-CORE
-safety_stability.c
---gcc --round-to-minus-inf --cegis-control --cegis-statistics --cegis-max-size 1 --cegis-show-iterations -D CPROVER -D _CONTROL_FLOAT_WIDTH=24 -D _CONTORL_RADIX_WIDTH=12 -D NUMBERLOOPS=10
-EXIT=0
-SIGNAL=0
---
-warning: ignoring
diff --git a/regression/cegis/cegis_control_benchmark_04/benchmark.h b/regression/cegis/cegis_control_benchmark_04/benchmark.h
deleted file mode 100644
index c5b3724cbb9..00000000000
--- a/regression/cegis/cegis_control_benchmark_04/benchmark.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#define INT_BITS 12
-#define FRAC_BITS 12
-#include "control_types.h"
-
-#define NSTATES 3
-#define NINPUTS 1
-#define NOUTPUTS 1
-#define INPUT_LOWERBOUND (__plant_typet)-1
-#define INPUT_UPPERBOUND (__plant_typet)1
-const __plant_typet _controller_A[NSTATES][NSTATES] = { { interval(0.9905),interval(0.075687),interval(0.021033) }, { interval(0.125),interval(0),interval(0) }, { interval(0),interval(0.015625),interval(0) } };
-const __plant_typet _controller_B[NSTATES] = { interval(16), interval(0), interval(0) };
diff --git a/regression/cegis/cegis_control_benchmark_04/control_types.h b/regression/cegis/cegis_control_benchmark_04/control_types.h
deleted file mode 100644
index 62bbffafb8a..00000000000
--- a/regression/cegis/cegis_control_benchmark_04/control_types.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * control_types.h
- *
- * Created on: 18 Jan 2017
- * Author: elipol
- */
-
-#ifndef CONTROL_TYPES_H_
-#define CONTROL_TYPES_H_
-
-#ifdef CPROVER
- #ifdef INTERVAL
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] __plant_precisiont;
- #include "intervals.h"
- typedef struct intervalt __plant_typet;
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] __controller_precisiont;
- typedef struct intervalt __controller_typet;
- #define interval(x) interval_cast(x);
- #else
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] __plant_precisiont;
- typedef __plant_precisiont __plant_typet;
- typedef __CPROVER_fixedbv[INT_BITS+FRAC_BITS][FRAC_BITS] __controller_precisiont;
- typedef __controller_precisiont __controller_typet;
- #define plant_cast(x) ((__plant_typet)x)
- #define controller_cast(x) ((__controller_typet)x)
- #define interval(x) x
- #endif
-#else
- #ifdef INTERVAL
- typedef double __plant_precisiont;
- #include "intervals.h"
- typedef struct intervalt __plant_typet;
- typedef double __controller_precisiont; //fixed point arithmetic is implemented using doubles
- typedef struct intervalt __controller_typet;
- #define interval(x) interval_cast(x)
- #endif
- #ifndef INTERVAL
- typedef double __plant_precisiont;
- typedef __plant_precisiont __plant_typet;
- typedef double __controller_precisiont; //fixed point arithmetic is implemented using doubles
- typedef __controller_precisiont __controller_typet;
- #define interval(x) (x)
- #define plant_cast(x) x
- #define controller_cast(x) x
- #endif
-#endif
-
-#endif /* CONTROL_TYPES_H_ */
diff --git a/regression/cegis/cegis_control_benchmark_04/operators.h b/regression/cegis/cegis_control_benchmark_04/operators.h
deleted file mode 100644
index 29b0e021af5..00000000000
--- a/regression/cegis/cegis_control_benchmark_04/operators.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * operators.h
- *
- * Created on: 18 Jan 2017
- * Author: elipol
- */
-
-#ifndef OPERATORS_H_
-#define OPERATORS_H_
-
-#ifndef INTERVAL
- #define controller_mult(x,y) ((x) *(y))
- #define mult(x,y) ( (x) * (y))
-
- #define _abs(a) ( (a) < 0 ? -(a) : (a))
- #define add(x,y) ( (x) + (y))
-
- #define lessthan(x,y) ((x)<(y))
- #define greaterthan(x,y) ((x)>(y))
- #define lessthanzero(x) ((x) < 0)
- #define lessthan_equaltozero(x) ((x) <= 0)
- #define zero_type 0
- #define one_type (__plant_precisiont)1.0
- #define minusone (__plant_precisiont)-1
- #define div(x,y) ( (x) / (y))
- #define sub(x,y) ( (x) - (y))
- #define set(x,y) (x)=(y)
-
-
-#endif
-#ifdef INTERVAL
-
- #define controller_mult(x,y) (interval_fxp_mult((x),(y)))
- #define mult(x,y) ( interval_mult((x),(y)))
-
- #define _abs(a) ( abs_interval(a))
-
- #define lessthan(x,y) (interval_lessthan(x,y))
- #define greaterthan(x,y) (interval_greaterthan((x),(y)))
- #define add(x,y) (interval_add((x),(y)))
- #define lessthanzero(x) (interval_lessthanzero(x))
- #define lessthan_equaltozero(x) (interval_lessthan_equal_to_zero(x))
-
- #define zero_type (zero_interval)
- #define minusone (minusone_interval)
- #define one_type one_interval
- #define div(x,y) (interval_posDiv((x),(y)))
- #define sub(x,y) (interval_sub((x),(y)))
-
- #define controller_cast(x) (fxp_interval_check(x))
- #define plant_cast(x) x
- #define set(x,y) (x.low=y, x.high=y)
-
-
-#endif
-
-#endif /* OPERATORS_H_ */
diff --git a/regression/cegis/cegis_control_benchmark_04/safety_stability.c b/regression/cegis/cegis_control_benchmark_04/safety_stability.c
deleted file mode 100644
index 786ac6ce87f..00000000000
--- a/regression/cegis/cegis_control_benchmark_04/safety_stability.c
+++ /dev/null
@@ -1,506 +0,0 @@
-#include
-#include "benchmark.h" //benchmark header file
-//#include "control_types.h" //included via benchmark.h
-//#define CPROVER
-//#ifdef INTERVAL
- // #include "intervals.h" //included via control_types.h
-//#endif
-#include "operators.h"
-
-#ifdef CPROVER
- //#define __DSVERIFIER_assert(x) __CPROVER_assume(x)
- #define __DSVERIFIER_assert(x) __CPROVER_assert(x, "")
-#else
- #include
- #define __DSVERIFIER_assert(x) assert(x)
-#endif
-
-//#define NUMBERLOOPS 5 // Defined by benchmark script
-#define INITIALSTATE_UPPERBOUND (__plant_precisiont)0.5
-#define INITIALSTATE_LOWERBOUND (__plant_precisiont)-0.5
-#define SAFE_STATE_UPPERBOUND (__plant_precisiont)1.0
-#define SAFE_STATE_LOWERBOUND (__plant_precisiont)-1.0
-
-//other plant variables
-//__controller_typet nondet_controller_type(void);
-
-extern __controller_typet K_fxp[NSTATES]; //nondet controller
-//__controller_typet K_fxp[NSTATES]; //nondet controller
-//const __controller_typet K_fxp[NSTATES] = { (__controller_typet) 0.0626, (__controller_typet) 0.0, (__controller_typet) 12.2421875 }; //nondet controller
-//const __controller_typet K_fxp[NSTATES] = { 249.53271484375, 51.430419921875, -1887.991455078125 };
-//const __controller_typet K_fxp[NSTATES] = { 0.0626, 0.0, 12.2421875 };
-//const __controller_typet K_fxp[NSTATES] = {interval(0.0234375),interval(-0.1328125), interval(0.00390625)};
-__plant_typet _controller_inputs;
-extern __plant_typet _controller_states[NSTATES]; //nondet initial states
-
-//matrices for stability calculation
-__plant_typet _AminusBK[NSTATES][NSTATES];
-
-__plant_typet __CPROVER_EIGEN_poly[NSTATES + 1u];
-
-//stablity calc
-
-__plant_typet internal_pow(__plant_typet a, unsigned int b){
-
- __plant_typet acc = one_type;
- for (int i=0; i < b; i++){
- acc = mult(acc,a);
- }
- return acc;
-}
-
-
-int check_stability(void){
-
-
- #if NSTATES==1
- if(greaterthan(_AminusBK[0][0], 1) || lessthan(_AminusBK[0][0], -1))
- {return 0;}
- else
- {return 1;}
-#endif
-
-
-#define __a __CPROVER_EIGEN_poly
-#define __n NSTATES + 1u
- int lines = 2 * __n - 1;
- int columns = __n;
- __plant_typet m[lines][__n];
- int i,j;
-
- /* to put current values in stability counter-example
- * look for current_stability (use: --no-slice) */
- __plant_typet current_stability[__n];
- for (i=0; i < __n; i++){
- current_stability[i] = __a[i];
- }
-
- /* check the first constraint condition F(1) > 0 */
- __plant_typet sum = zero_type;
- for (i=0; i < __n; i++){
- sum = add(sum, __a[i]);
- }
- if (lessthan_equaltozero(sum)){
- printf("[DEBUG] the first constraint of Jury criteria failed: (F(1) > 0)");
- return 0;
- }
-
- /* check the second constraint condition F(-1)*(-1)^n > 0 */
- sum = zero_type;
- for (i=0; i < __n; i++){
- sum = add(sum, mult(__a[i] , internal_pow(minusone, NSTATES-i) ));
- }
- sum = mult(sum,internal_pow(minusone, NSTATES) );
-
- if (lessthan_equaltozero(sum)){
- printf("[DEBUG] the second constraint of Jury criteria failed: (F(-1)*(-1)^n > 0)");
- return 0;
- }
-
- /* check the third constraint condition abs(a0 < an*(z^n) */
- if(greaterthan( _abs(__a[__n-1]), __a[0])){
- // if (abs(__a[__n-1]) > __a[0]){
- printf("[DEBUG] the third constraint of Jury criteria failed: (abs(a0) < a_{n}*z^{n})");
- return 0;
- }
-
- /* check the fourth constraint of condition (Jury Table) */
- for (i=0; i < lines; i++){
- for (j=0; j < columns; j++){
- m[i][j] = zero_type;
- }
- }
- for (i=0; i < lines; i++){
- for (j=0; j < columns; j++){
- if (i == 0){
- m[i][j] = __a[j];
- continue;
- }
- if (i % 2 != 0 ){
- int x;
- for(x=0; x= 0 ? 1 : 0;
- for (i=0; i < lines; i++){
- if (i % 2 == 0){
- int line_is_positive = lessthanzero(m[i][0])? 0 : 1;
- // int line_is_positive = m[i][0] >= 0 ? 1 : 0;
- if (first_is_positive != line_is_positive){
- return 0;
- }
- continue;
- }
- }
- return 1;
-}
-
-#define __m _AminusBK
-#if NSTATES==2
-void __CPROVER_EIGEN_charpoly_2(void) { //m00*m11 - m10*m11 - m00*x - m11*x + x^2
-
- __CPROVER_EIGEN_poly[2] = sub ( mult(__m[0][0],__m[1][1]), mult(__m[1][0] , __m[1][1]) );
-
- __CPROVER_EIGEN_poly[1] = sub (zero_type, add (__m[0][0], __m[1][1]) ) ;
- // s^2
- __CPROVER_EIGEN_poly[0] = one_type;
-}
-#endif
-
-#if NSTATES==3
-void __CPROVER_EIGEN_charpoly_3(void) {
-// m_11*m_22*m_33 + m_11*m_23*m_32 + m_12*m_21*m_33 - m_12*m_23*m_31 - m_13*m_21*m_32 + m_13*m_22*m_31
-__CPROVER_EIGEN_poly[3] = add(sub(sub(add(add(mult(__m[0][0],mult( __m[1][1], __m[2][2])), mult( __m[0][0] ,mult( __m[1][2] , __m[2][1]))),
- mult(__m[0][1],mult( __m[1][0], __m[2][2]))), mult(__m[0][1],mult( __m[1][2], __m[2][0]) )), mult(__m[0][2] ,mult(__m[1][0], __m[2][1]))),
- mult( __m[0][2], mult(__m[1][1],__m[2][0])));
-// (m_11*m_22 + m_11*m_33 - m_12*m_21 - m_13*m_31 + m_22*m_33 - m_23*m_32) * s
-__CPROVER_EIGEN_poly[2] = sub(add(sub(sub(mult(__m[0][0], mult( __m[1][1], mult( __m[0][0], __m[2][2]))), mult(__m[0][1], __m[1][0])),
- mult(__m[0][2],__m[2][0])), mult(__m[1][1], __m[2][2])),mult(__m[1][2], __m[2][1]));
-// (-m_11 - m_22 - m_33) * s^2
-__CPROVER_EIGEN_poly[1] = sub(sub(sub(zero_type,__m[0][0]), __m[1][1]), __m[2][2]);
-// s^3
-__CPROVER_EIGEN_poly[0] = one_type;
-
-}
-#endif
-#if NSTATES==4
-void __CPROVER_EIGEN_charpoly_4(void) {
-
- __CPROVER_EIGEN_poly[4] = __m[0][0]*__m[1][1]*__m[2][2]*__m[3][3] - __m[0][0]*__m[1][1]*__m[2][3]*__m[3][2] - __m[0][0]*__m[1][2]*__m[2][1]*__m[3][3] + __m[0][0]*__m[1][2]*__m[2][3]*__m[3][1] + __m[0][0]*__m[1][3]*__m[2][1]*__m[3][2] -
- __m[0][0]*__m[1][3]*__m[2][2]*__m[3][1] - __m[0][1]*__m[1][0]*__m[2][2]*__m[3][3] + __m[0][1]*__m[1][0]*__m[2][3]*__m[3][2] + __m[0][1]*__m[1][2]*__m[2][0]*__m[3][3] - __m[0][1]*__m[1][2]*__m[2][3]*__m[3][0] -
- __m[0][1]*__m[1][3]*__m[2][0]*__m[3][2] + __m[0][1]*__m[1][3]*__m[2][2]*__m[3][0] + __m[0][2]*__m[1][0]*__m[2][1]*__m[3][3] - __m[0][2]*__m[1][0]*__m[2][3]*__m[3][1] - __m[0][2]*__m[1][1]*__m[2][0]*__m[3][3] +
- __m[0][2]*__m[1][1]*__m[2][3]*__m[3][0] + __m[0][2]*__m[1][3]*__m[2][0]*__m[3][1] - __m[0][2]*__m[1][3]*__m[2][1]*__m[3][0] - __m[0][3]*__m[1][0]*__m[2][1]*__m[3][2] + __m[0][3]*__m[1][0]*__m[2][2]*__m[3][1] +
- __m[0][3]*__m[1][1]*__m[2][0]*__m[3][2] - __m[0][3]*__m[1][1]*__m[2][2]*__m[3][0] - __m[0][3]*__m[1][2]*__m[2][0]*__m[3][1] + __m[0][3]*__m[1][2]*__m[2][1]*__m[3][0];
-
-
-__CPROVER_EIGEN_poly[3] = - __m[0][0]*__m[1][1]*__m[2][2] + __m[0][0]*__m[1][2]*__m[2][1] + __m[0][1]*__m[1][0]*__m[2][2] - __m[0][1]*__m[1][2]*__m[2][0] - __m[0][2]*__m[1][0]*__m[2][1] + __m[0][2]*__m[1][1]*__m[2][0]
- - __m[0][0]*__m[1][1]*__m[3][3] + __m[0][0]*__m[1][3]*__m[3][1] + __m[0][1]*__m[1][0]*__m[3][3] - __m[0][1]*__m[1][3]*__m[3][0] - __m[0][3]*__m[1][0]*__m[3][1] + __m[0][3]*__m[1][1]*__m[3][0]
- - __m[0][0]*__m[2][2]*__m[3][3] + __m[0][0]*__m[2][3]*__m[3][2] + __m[0][2]*__m[2][0]*__m[3][3] - __m[0][2]*__m[2][3]*__m[3][0] - __m[0][3]*__m[2][0]*__m[3][2] + __m[0][3]*__m[2][2]*__m[3][0]
- - __m[1][1]*__m[2][2]*__m[3][3] + __m[1][1]*__m[2][3]*__m[3][2] + __m[1][2]*__m[2][1]*__m[3][3] - __m[1][2]*__m[2][3]*__m[3][1] - __m[1][3]*__m[2][1]*__m[3][2] + __m[1][3]*__m[2][2]*__m[3][1];
-
-
- __CPROVER_EIGEN_poly[2] = + __m[0][0]*__m[1][1] - __m[0][1]*__m[1][0] + __m[0][0]*__m[2][2] - __m[0][2]*__m[2][0] + __m[0][0]*__m[3][3] - __m[0][3]*__m[3][0] + __m[1][1]*__m[2][2] -
- __m[1][2]*__m[2][1] + __m[1][1]*__m[3][3] - __m[1][3]*__m[3][1] + __m[2][2]*__m[3][3] - __m[2][3]*__m[3][2];
-
-
- __CPROVER_EIGEN_poly[1] = - __m[3][3] - __m[2][2] - __m[1][1] - __m[0][0];
- __CPROVER_EIGEN_poly[0] = 1.0;
-}
-#endif
-
-void __CPROVER_EIGEN_charpoly(void){
-
- #if NSTATES==1
- //do nothing
- #elif NSTATES==2
- __CPROVER_EIGEN_charpoly_2();
- #elif NSTATES==3
- __CPROVER_EIGEN_charpoly_3();
- #elif NSTATES==4
- __CPROVER_EIGEN_charpoly_4();
- #endif
-
- // Normalise
- __plant_typet max_coefficient=zero_type;
- for (int i = 0; i <= NSTATES; ++i)
- if (lessthan(max_coefficient, __CPROVER_EIGEN_poly[i]))
- max_coefficient=__CPROVER_EIGEN_poly[i];
-
- for (int i = 0; i <= NSTATES; ++i)
- __CPROVER_EIGEN_poly[i]=div(__CPROVER_EIGEN_poly[i], max_coefficient);
-}
-
-void A_minus_B_K()
-{
-
-#ifdef CPROVER
- __CPROVER_array_copy(_AminusBK, _controller_A);
-#else
- for(int i=0; iINPUT_LOWERBOUND);
- #else
- __CPROVER_assume(_controller_inputs < INPUT_UPPERBOUND && _controller_inputs > INPUT_LOWERBOUND);
- #endif
- #endif
-
- }
- }
-
-__plant_typet states_equals_A_states_plus_B_inputs_result[NSTATES];
-
-void states_equals_A_states_plus_B_inputs(void)
-{
-
- #ifdef CPROVER
- __CPROVER_array_set(states_equals_A_states_plus_B_inputs_result, zero_type);
- #else
- for(int i=0; iSAFE_STATE_LOWERBOUND);
- __DSVERIFIER_assert( _controller_states[1]SAFE_STATE_LOWERBOUND);
- #if NSTATES==3 || NSTATES==4
- __DSVERIFIER_assert( _controller_states[2]SAFE_STATE_LOWERBOUND);
- #endif
- #if NSTATES==4
- __DSVERIFIER_assert( _controller_states[3]SAFE_STATE_LOWERBOUND);
- #endif
-#else
- for(int i=0; iSAFE_STATE_LOWERBOUND);
- }
-#endif
-#else
-#ifdef CPROVER
- __CPROVER_array_copy(_controller_states, states_equals_A_states_plus_B_inputs_result);
- /*for(i=0; iSAFE_STATE_LOWERBOUND);
- __DSVERIFIER_assert( _controller_states[1].highSAFE_STATE_LOWERBOUND);
- #if NSTATES==3 || NSTATES==4
- __DSVERIFIER_assert( _controller_states[2].highSAFE_STATE_LOWERBOUND);
- #endif
- #if NSTATES==4
- __DSVERIFIER_assert( _controller_states[3].highSAFE_STATE_LOWERBOUND);
- #endif
-#else
- for(int i=0; iSAFE_STATE_LOWERBOUND);
- }
-#endif
-#endif
-
-
-
- }
-
-
-
-int check_safety(void)
-{
-
- for(int j=0; j=INITIALSTATE_LOWERBOUND);
- //__CPROVER_assume(_controller_states[j]!=zero_type);
- //#else
- //__CPROVER_assume(_controller_states[j]<=INITIALSTATE_UPPERBOUND && _controller_states[j]>=INITIALSTATE_LOWERBOUND);
- //__CPROVER_assume(_controller_states[j]!=zero_type);
- //#endif
- #endif
- }
-
- for(int k=0; kSAFE_STATE_UPPERBOUND || _controller_states[i].highSAFE_STATE_UPPERBOUND || _controller_states[i] 0);
-}
-
-void safety_stability(void) {
-#ifdef INTERVAL
- get_bounds(); //get interval bounds
-#endif
- closed_loop(); //calculate A - BK
- __CPROVER_EIGEN_charpoly();
- __DSVERIFIER_assert(check_stability());
-#if NSTATES != 1
- //check_safety();
- __DSVERIFIER_assert(check_safety());
-#endif
-
-#ifdef CPROVER
- __controller_typet K_fxp_trace[NSTATES] = { controller_cast(0.0) };
- __CPROVER_array_copy(K_fxp_trace, K_fxp);
- //__CPROVER_assert(0 == 1, "");
-#endif
-
- return 0;
-}
-
-int main(void) {
-#ifdef CPROVER
- assume_corner_cases_for_states();
-#else
- for (int poleIndex = 0; poleIndex < NPOLES; ++poleIndex) {
- for (int stateIndex = 0; stateIndex < NSTATES; ++stateIndex) {
- _controller_states[stateIndex] = _state_poles[poleIndex][poleIndex];
- }
-#endif
- assert_nonzero_controller();
- safety_stability();
- //__CPROVER_assert(0 == 1, "");
-#ifndef CPROVER
- }
-#endif
- return 0;
-}
diff --git a/regression/cegis/cegis_control_benchmark_04/test.desc b/regression/cegis/cegis_control_benchmark_04/test.desc
deleted file mode 100644
index 5c8ebf51923..00000000000
--- a/regression/cegis/cegis_control_benchmark_04/test.desc
+++ /dev/null
@@ -1,7 +0,0 @@
-CORE
-safety_stability.c
---gcc --round-to-minus-inf --cegis-control --cegis-statistics --cegis-max-size 1 --cegis-show-iterations -D CPROVER -D _CONTROL_FLOAT_WIDTH=32 -D _CONTORL_RADIX_WIDTH=24 -D NUMBERLOOPS=10
-EXIT=0
-SIGNAL=0
---
-warning: ignoring
diff --git a/regression/cegis/cegis_control_benchmark_05/SatelliteB2.c b/regression/cegis/cegis_control_benchmark_05/SatelliteB2.c
deleted file mode 100644
index 65f807bfbeb..00000000000
--- a/regression/cegis/cegis_control_benchmark_05/SatelliteB2.c
+++ /dev/null
@@ -1,5311 +0,0 @@
-// tag-#anon#ST[ARR100{F64}$F64$'a'|S32'a_size'|U32'$pad0'|ARR100{F64}$F64$'b'|S32'b_size'|U32'$pad1'|F64'sample_time'|ARR100{F64}$F64$'a_uncertainty'|ARR100{F64}$F64$'b_uncertainty']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 144
-struct anonymous$0;
-
-// tag-#anon#ST[ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'A'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'B'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'C'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'D'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'states'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'outputs'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'inputs'|ARR20{ARR20{F64}$F64$}$ARR20{F64}$F64$$'K'|U32'nStates'|U32'nInputs'|U32'nOutputs'|U32'$pad0']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 156
-struct anonymous$1;
-
-// tag-#anon#ST[S32'int_bits'|S32'frac_bits'|F64'max'|F64'min'|S32'default_realization'|U32'$pad0'|F64'delta'|S32'scale'|U32'$pad1'|F64'max_error']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 171
-struct anonymous$3;
-
-// tag-#anon#ST[S32'push'|S32'in'|S32'sbiw'|S32'cli'|S32'out'|S32'std'|S32'ldd'|S32'subi'|S32'sbci'|S32'lsl'|S32'rol'|S32'add'|S32'adc'|S32'adiw'|S32'rjmp'|S32'mov'|S32'sbc'|S32'ld'|S32'rcall'|S32'cp'|S32'cpc'|S32'ldi'|S32'brge'|S32'pop'|S32'ret'|S32'st'|S32'brlt'|S32'cpi']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 183
-struct anonymous;
-
-// tag-#anon#ST[S64'clock'|S32'device'|U32'$pad0'|F64'cycle'|SYM#tag-#anon#ST[S32'push'|S32'in'|S32'sbiw'|S32'cli'|S32'out'|S32'std'|S32'ldd'|S32'subi'|S32'sbci'|S32'lsl'|S32'rol'|S32'add'|S32'adc'|S32'adiw'|S32'rjmp'|S32'mov'|S32'sbc'|S32'ld'|S32'rcall'|S32'cp'|S32'cpc'|S32'ldi'|S32'brge'|S32'pop'|S32'ret'|S32'st'|S32'brlt'|S32'cpi']#'assembly']
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 215
-struct anonymous$2;
-
-#include
-
-#ifndef IEEE_FLOAT_EQUAL
-#define IEEE_FLOAT_EQUAL(x,y) ((x)==(y))
-#endif
-#ifndef IEEE_FLOAT_NOTEQUAL
-#define IEEE_FLOAT_NOTEQUAL(x,y) ((x)!=(y))
-#endif
-
-// __DSVERIFIER_assert
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 35
-void __DSVERIFIER_assert(_Bool expression);
-// __DSVERIFIER_assert_msg
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 39
-void __DSVERIFIER_assert_msg(_Bool expression, char *msg);
-// __DSVERIFIER_assume
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 21
-void __DSVERIFIER_assume(_Bool expression);
-// __assert_fail
-// file /usr/include/assert.h line 67
-extern void __assert_fail(const char *, const char *, unsigned int, const char *) _Noreturn;
-// call_closedloop_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 369
-void call_closedloop_verification_task(void *closedloop_verification_task);
-// call_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 268
-void call_verification_task(void *verification_task);
-// check_stability
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 59
-signed int check_stability(double *a, signed int n);
-// check_stability_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 70
-signed int check_stability_closedloop(double *a, signed int n, double *plant_num, signed int p_num_size, double *plant_den, signed int p_den_size);
-// determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 498
-double determinant(double (*a)[20l], signed int n);
-// double_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 315
-void double_add_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l]);
-// double_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 218
-void double_check_limit_cycle(double *y, signed int y_size);
-// double_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 187
-void double_check_oscillations(double *y, signed int y_size);
-// double_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 254
-void double_check_persistent_limit_cycle(double *y, signed int y_size);
-// double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 83
-double double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb);
-// double_direct_form_1_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 205
-double double_direct_form_1_MSP430(double *y, double *x, double *a, double *b, signed int Na, signed int Nb);
-// double_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 364
-void double_direct_form_1_impl2(double *x, signed int x_size, double *b, signed int b_size, double *a, signed int a_size, double *y);
-// double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 102
-double double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// double_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 230
-double double_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// double_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 428
-void double_exp_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], unsigned int expNumber, double (*result)[20l]);
-// double_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 337
-void double_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, double (*m1)[20l], double (*m2)[20l], double (*m3)[20l]);
-// double_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 23
-double double_state_space_representation(void);
-// double_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 326
-void double_sub_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l]);
-// double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 122
-double double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// double_transposed_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 257
-double double_transposed_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// exit
-// file /usr/include/stdlib.h line 543
-extern void exit(signed int) _Noreturn;
-// fatorial
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 54
-signed int fatorial(signed int n);
-// float_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 144
-float float_direct_form_1(float *y, float *x, float *a, float *b, signed int Na, signed int Nb);
-// float_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 163
-float float_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// float_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 183
-float float_transposed_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// ft_closedloop_feedback
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 57
-void ft_closedloop_feedback(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den);
-// ft_closedloop_sensitivity
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 42
-void ft_closedloop_sensitivity(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den);
-// ft_closedloop_series
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 28
-void ft_closedloop_series(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den);
-// fxp_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 303
-signed long int fxp_abs(signed long int a);
-// fxp_add
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 315
-signed long int fxp_add(signed long int aadd, signed long int badd);
-// fxp_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 467
-void fxp_add_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l]);
-// fxp_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 163
-void fxp_check_limit_cycle(signed long int *y, signed int y_size);
-// fxp_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 253
-void fxp_check_oscillations(signed long int *y, signed int y_size);
-// fxp_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 201
-void fxp_check_persistent_limit_cycle(signed long int *y, signed int y_size);
-// fxp_determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 529
-double fxp_determinant(signed long int (*a_fxp)[20l], signed int n);
-// fxp_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 22
-signed long int fxp_direct_form_1(signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// fxp_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 388
-void fxp_direct_form_1_impl2(signed long int *x, signed int x_size, signed long int *b, signed int b_size, signed long int *a, signed int a_size, signed long int *y);
-// fxp_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 41
-signed long int fxp_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// fxp_div
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 357
-signed long int fxp_div(signed long int a, signed long int b);
-// fxp_double_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 211
-signed long int fxp_double_to_fxp(double value);
-// fxp_double_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 247
-void fxp_double_to_fxp_array(double *f, signed long int *r, signed int N);
-// fxp_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 390
-void fxp_exp_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], unsigned int expNumber, signed long int (*result)[20l]);
-// fxp_float_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 198
-signed long int fxp_float_to_fxp(float f);
-// fxp_float_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 240
-void fxp_float_to_fxp_array(float *f, signed long int *r, signed int N);
-// fxp_get_frac_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 125
-signed long int fxp_get_frac_part(signed long int in);
-// fxp_get_int_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 115
-signed long int fxp_get_int_part(signed long int in);
-// fxp_int_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 170
-signed long int fxp_int_to_fxp(signed int in);
-// fxp_ln
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 288
-signed int fxp_ln(signed int x);
-// fxp_log10
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 345
-double fxp_log10(double x);
-// fxp_log10_low
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 333
-double fxp_log10_low(double x);
-// fxp_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 368
-void fxp_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*m3)[20l]);
-// fxp_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 339
-signed long int fxp_mult(signed long int amult, signed long int bmult);
-// fxp_neg
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 367
-signed long int fxp_neg(signed long int aneg);
-// fxp_print_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 407
-void fxp_print_float(signed long int a);
-// fxp_print_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 411
-void fxp_print_float_array(signed long int *a, signed int N);
-// fxp_print_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 403
-void fxp_print_int(signed long int a);
-// fxp_quantize
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 136
-signed long int fxp_quantize(signed long int aquant);
-// fxp_shrl
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 390
-signed long int fxp_shrl(signed long int in, signed int shift);
-// fxp_sign
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 380
-signed long int fxp_sign(signed long int a);
-// fxp_square
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 399
-signed long int fxp_square(signed long int a);
-// fxp_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 67
-double fxp_state_space_representation(void);
-// fxp_sub
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 327
-signed long int fxp_sub(signed long int asub, signed long int bsub);
-// fxp_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 474
-void fxp_sub_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l]);
-// fxp_to_double
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 271
-double fxp_to_double(signed long int fxp);
-// fxp_to_double_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 291
-void fxp_to_double_array(double *f, signed long int *r, signed int N);
-// fxp_to_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 264
-float fxp_to_float(signed long int fxp);
-// fxp_to_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 284
-void fxp_to_float_array(float *f, signed long int *r, signed int N);
-// fxp_to_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 182
-signed int fxp_to_int(signed long int fxp);
-// fxp_transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 582
-void fxp_transpose(signed long int (*a)[20l], signed long int (*b)[20l], signed int n, signed int m);
-// fxp_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 61
-signed long int fxp_transposed_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// fxp_verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 153
-void fxp_verify_overflow(signed long int value);
-// fxp_verify_overflow_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 158
-void fxp_verify_overflow_array(signed long int *array, signed int n);
-// generate_delta_coefficients
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 33
-void generate_delta_coefficients(double *vetor, double *out, signed int n, double delta);
-// generic_timing_double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 286
-double generic_timing_double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb);
-// generic_timing_double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 311
-double generic_timing_double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// generic_timing_double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 338
-double generic_timing_double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// generic_timing_shift_l_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 20
-double generic_timing_shift_l_double(double zIn, double *z, signed int N);
-// generic_timing_shift_r_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 37
-double generic_timing_shift_r_double(double zIn, double *z, signed int N);
-// get_delta_transfer_function
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 52
-void get_delta_transfer_function(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta);
-// get_delta_transfer_function_with_base
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 59
-void get_delta_transfer_function_with_base(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta);
-// iirIIOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 428
-float iirIIOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// iirIItOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 452
-float iirIItOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb);
-// iirIItOutTime_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 479
-double iirIItOutTime_double(double *w, double x, double *a, double *b, signed int Na, signed int Nb);
-// iirOutBoth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 506
-void iirOutBoth(float *yf, float *xf, float *af, float *bf, float *sumf_ref, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int *sum_ref, signed int Na, signed int Nb);
-// iirOutBothL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 586
-float iirOutBothL(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb);
-// iirOutBothL2
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 626
-float iirOutBothL2(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb);
-// iirOutFixedL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 536
-signed long int iirOutFixedL(signed long int *y, signed long int *x, signed long int xin, signed long int *a, signed long int *b, signed int Na, signed int Nb);
-// iirOutFloatL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 561
-float iirOutFloatL(float *y, float *x, float xin, float *a, float *b, signed int Na, signed int Nb);
-// initialization
-// file /home/lucascordeiro/dsverifier/bmc/core/initialization.h line 24
-void initialization();
-// initialize_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 22
-void initialize_array(double *v, signed int n);
-// initials
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 52
-extern void initials();
-// internal_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 49
-double internal_abs(double a);
-// internal_pow
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 39
-double internal_pow(double a, double b);
-// nchoosek
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 23
-signed int nchoosek(signed int n, signed int k);
-// nondet_double
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle_closedloop.h line 27
-double nondet_double();
-// nondet_float
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 18
-float nondet_float();
-// nondet_int
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 17
-signed int nondet_int();
-// order
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 158
-signed int order(signed int Na, signed int Nb);
-// poly_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 165
-void poly_mult(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans);
-// poly_sum
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 141
-void poly_sum(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans);
-// print_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 305
-void print_array_elements(char *name, double *v, signed int n);
-// print_fxp_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 419
-void print_fxp_array_elements(char *name, signed long int *v, signed int n);
-// print_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 481
-void print_matrix(double (*matrix)[20l], unsigned int lines, unsigned int columns);
-// printf
-// file /usr/include/stdio.h line 362
-extern signed int printf(const char *, ...);
-// rand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 417
-extern signed int rand(void);
-// revert_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 30
-void revert_array(double *v, double *out, signed int n);
-// shiftL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 53
-signed long int shiftL(signed long int zIn, signed long int *z, signed int N);
-// shiftLDouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 119
-double shiftLDouble(double zIn, double *z, signed int N);
-// shiftLboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 130
-void shiftLboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N);
-// shiftLfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 75
-float shiftLfloat(float zIn, float *z, signed int N);
-// shiftR
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 64
-signed long int shiftR(signed long int zIn, signed long int *z, signed int N);
-// shiftRDdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 97
-double shiftRDdouble(double zIn, double *z, signed int N);
-// shiftRboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 144
-void shiftRboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N);
-// shiftRdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 108
-double shiftRdouble(double zIn, double *z, signed int N);
-// shiftRfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 86
-float shiftRfloat(float zIn, float *z, signed int N);
-// snrPoint
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 402
-float snrPoint(float *s, float *n, signed int blksz);
-// snrPower
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 381
-float snrPower(float *s, float *n, signed int blksz);
-// snrVariance
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 357
-float snrVariance(float *s, float *n, signed int blksz);
-// srand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 423
-extern void srand(unsigned int seed);
-// transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 571
-void transpose(double (*a)[20l], double (*b)[20l], signed int n, signed int m);
-// validation
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 125
-void validation();
-// verify_controllability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 16
-signed int verify_controllability(void);
-// verify_controllability_double
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 120
-signed int verify_controllability_double(void);
-// verify_error
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error.h line 20
-signed int verify_error(void);
-// verify_error_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_closedloop.h line 27
-signed int verify_error_closedloop(void);
-// verify_error_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_state_space.h line 20
-signed int verify_error_state_space(void);
-// verify_generic_timing
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_generic_timing.h line 25
-signed int verify_generic_timing(void);
-// verify_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 111
-signed int verify_limit_cycle(void);
-// verify_limit_cycle_closed_loop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle_closedloop.h line 29
-signed int verify_limit_cycle_closed_loop(void);
-// verify_limit_cycle_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 21
-signed int verify_limit_cycle_state_space(void);
-// verify_minimum_phase
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_minimum_phase.h line 24
-signed int verify_minimum_phase(void);
-// verify_observability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_observability.h line 19
-signed int verify_observability(void);
-// verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 23
-signed int verify_overflow(void);
-// verify_stability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability.h line 24
-signed int verify_stability(void);
-// verify_stability_closedloop_using_dslib
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability_closedloop.h line 21
-signed int verify_stability_closedloop_using_dslib(void);
-// verify_timing_msp_430
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_timing_msp430.h line 22
-signed int verify_timing_msp_430(void);
-// verify_zero_input_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_zero_input_limit_cycle.h line 16
-signed int verify_zero_input_limit_cycle(void);
-// wrap
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 100
-signed long int wrap(signed long int kX, signed long int kLowerBound, signed long int kUpperBound);
-
-struct anonymous$0
-{
- // a
- double a[100l];
- // a_size
- signed int a_size;
- // b
- double b[100l];
- // b_size
- signed int b_size;
- // sample_time
- double sample_time;
- // a_uncertainty
- double a_uncertainty[100l];
- // b_uncertainty
- double b_uncertainty[100l];
-};
-
-struct anonymous$1
-{
- // A
- double A[20l][20l];
- // B
- double B[20l][20l];
- // C
- double C[20l][20l];
- // D
- double D[20l][20l];
- // states
- double states[20l][20l];
- // outputs
- double outputs[20l][20l];
- // inputs
- double inputs[20l][20l];
- // K
- double K[20l][20l];
- // nStates
- unsigned int nStates;
- // nInputs
- unsigned int nInputs;
- // nOutputs
- unsigned int nOutputs;
-};
-
-struct anonymous$3
-{
- // int_bits
- signed int int_bits;
- // frac_bits
- signed int frac_bits;
- // max
- double max;
- // min
- double min;
- // default_realization
- signed int default_realization;
- // delta
- double delta;
- // scale
- signed int scale;
- // max_error
- double max_error;
-};
-
-struct anonymous
-{
- // push
- signed int push;
- // in
- signed int in;
- // sbiw
- signed int sbiw;
- // cli
- signed int cli;
- // out
- signed int out;
- // std
- signed int std;
- // ldd
- signed int ldd;
- // subi
- signed int subi;
- // sbci
- signed int sbci;
- // lsl
- signed int lsl;
- // rol
- signed int rol;
- // add
- signed int add;
- // adc
- signed int adc;
- // adiw
- signed int adiw;
- // rjmp
- signed int rjmp;
- // mov
- signed int mov;
- // sbc
- signed int sbc;
- // ld
- signed int ld;
- // rcall
- signed int rcall;
- // cp
- signed int cp;
- // cpc
- signed int cpc;
- // ldi
- signed int ldi;
- // brge
- signed int brge;
- // pop
- signed int pop;
- // ret
- signed int ret;
- // st
- signed int st;
- // brlt
- signed int brlt;
- // cpi
- signed int cpi;
-};
-
-struct anonymous$2
-{
- // clock
- signed long int clock;
- // device
- signed int device;
- // cycle
- double cycle;
- // assembly
- struct anonymous assembly;
-};
-
-
-// X_SIZE_VALUE
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 121
-signed int X_SIZE_VALUE=0;
-// _controller
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 17
-extern struct anonymous$1 _controller;
-// _dbl_max
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 45
-double _dbl_max;
-// _dbl_min
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 46
-double _dbl_min;
-// _fxp_fmask
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 49
-signed long int _fxp_fmask;
-// _fxp_half
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 39
-signed long int _fxp_half;
-// _fxp_imask
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 52
-signed long int _fxp_imask;
-// _fxp_max
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 42
-signed long int _fxp_max;
-// _fxp_min
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 41
-signed long int _fxp_min;
-// _fxp_minus_one
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 40
-signed long int _fxp_minus_one;
-// _fxp_one
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 38
-signed long int _fxp_one;
-// controller
-// file input.c line 3
-struct anonymous$0 controller={ .a={ 1.000000, (double)-4.200000e-1f, (double)-3.465000e-1f, (double)-3.915000e-2f, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .a_size=4,
- .b={ 2.880000e+0, (double)-4.896000e+0f, 2.074000e+0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_size=3,
- .sample_time=1.000000, .a_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 } };
-// ds
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 17
-extern struct anonymous$0 ds;
-// error_limit
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_state_space.h line 18
-extern double error_limit;
-// generic_timer
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_generic_timing.h line 23
-signed int generic_timer=0;
-// hw
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 18
-extern struct anonymous$2 hw;
-// impl
-// file input.c line 11
-struct anonymous$3 impl={ .int_bits=3, .frac_bits=7, .max=1.000000, .min=-1.000000,
- .default_realization=0, .delta=0.000000,
- .scale=1, .max_error=0.000000 };
-// nInputs
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 20
-extern signed int nInputs;
-// nOutputs
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 21
-extern signed int nOutputs;
-// nStates
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 19
-extern signed int nStates;
-// next
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 416
-unsigned long int next=1ul;
-// overflow_mode
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 122
-signed int overflow_mode=1;
-// plant
-// file input.c line 19
-struct anonymous$0 plant={ .a={ 1.000000, (double)-2.000000f, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .a_size=3,
- .b={ 1.250000e-1, 1.250000e-1, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_size=2,
- .sample_time=0.000000, .a_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 }, .b_uncertainty={ 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000 } };
-// plant_cbmc
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 46
-struct anonymous$0 plant_cbmc;
-// rounding_mode
-// file /home/lucascordeiro/dsverifier/bmc/core/definitions.h line 123
-signed int rounding_mode=0;
-// scale_factor
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 55
-static const double scale_factor[31l]={ 1.000000, 2.000000, 4.000000, 8.000000, 16.000000, 32.000000, 64.000000, 128.000000, 256.000000, 512.000000, 1024.000000, 2048.000000, 4096.000000, 8192.000000, 16384.000000, 32768.000000, 65536.000000, 1.310720e+5, 2.621440e+5, 5.242880e+5, 1.048576e+6, 2.097152e+6, 4.194304e+6, 8.388608e+6, 1.677722e+7, 3.355443e+7, 6.710886e+7, 1.342177e+8, 2.684355e+8, 5.368709e+8, 1.073742e+9 };
-// scale_factor_inv
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 62
-static const double scale_factor_inv[31l]={ 1.000000, 5.000000e-1, 2.500000e-1, 1.250000e-1, 6.250000e-2, 3.125000e-2, 1.562500e-2, 7.812500e-3, 3.906250e-3, 1.953125e-3, 9.765625e-4, 4.882813e-4, 2.441406e-4, 1.220703e-4, 6.103516e-5, 3.051758e-5, 1.525879e-5, 7.629395e-6, 3.814697e-6, 1.907349e-6, 9.536743e-7, 4.768372e-7, 2.384186e-7, 1.192093e-7, 5.960465e-8, 2.980232e-8, 1.490116e-8, 7.450581e-9, 3.725290e-9, 1.862645e-9, 9.313230e-10 };
-
-// __DSVERIFIER_assert
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 35
-void __DSVERIFIER_assert(_Bool expression)
-{
- /* assertion expression */
- assert(expression != (_Bool)0);
- if(!(expression == (_Bool)0))
- (void)0;
-
-}
-
-// __DSVERIFIER_assert_msg
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 39
-void __DSVERIFIER_assert_msg(_Bool expression, char *msg)
-{
- printf("%c", msg);
- /* assertion expression */
- assert(expression != (_Bool)0);
- if(!(expression == (_Bool)0))
- (void)0;
-
-}
-
-// __DSVERIFIER_assume
-// file /home/lucascordeiro/dsverifier/bmc/core/compatibility.h line 21
-void __DSVERIFIER_assume(_Bool expression)
-{
- __CPROVER_assume(expression != (_Bool)0);
-}
-
-// call_closedloop_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 369
-void call_closedloop_verification_task(void *closedloop_verification_task)
-{
- _Bool base_case_executed=(_Bool)0;
- signed int i=0;
- i = 0;
- for( ; !(i >= plant.b_size); i = i + 1)
- {
- if(plant.b_uncertainty[(signed long int)i] > 0.000000)
- {
- double call_closedloop_verification_task$$1$$1$$1$$1$$factor=(plant.b[(signed long int)i] * plant.b_uncertainty[(signed long int)i]) / 100.000000;
- call_closedloop_verification_task$$1$$1$$1$$1$$factor = call_closedloop_verification_task$$1$$1$$1$$1$$factor < 0.000000 ? call_closedloop_verification_task$$1$$1$$1$$1$$factor * (double)-1 : call_closedloop_verification_task$$1$$1$$1$$1$$factor;
- double call_closedloop_verification_task$$1$$1$$1$$1$$min=plant.b[(signed long int)i] - call_closedloop_verification_task$$1$$1$$1$$1$$factor;
- double call_closedloop_verification_task$$1$$1$$1$$1$$max=plant.b[(signed long int)i] + call_closedloop_verification_task$$1$$1$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_closedloop_verification_task$$1$$1$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L9;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_closedloop_verification_task$$1$$1$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- plant_cbmc.b[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$1;
- if(plant_cbmc.b[(signed long int)i] >= call_closedloop_verification_task$$1$$1$$1$$1$$min)
- tmp_if_expr$1 = plant_cbmc.b[(signed long int)i] <= call_closedloop_verification_task$$1$$1$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$1);
- }
-
- else
- plant_cbmc.b[(signed long int)i] = plant.b[(signed long int)i];
-
- __CPROVER_DUMP_L9:
- ;
- }
- i = 0;
- for( ; !(i >= plant.a_size); i = i + 1)
- {
- if(plant.a_uncertainty[(signed long int)i] > 0.000000)
- {
- double factor=(plant.a[(signed long int)i] * plant.a_uncertainty[(signed long int)i]) / 100.000000;
- factor = factor < 0.000000 ? factor * (double)-1 : factor;
- double min=plant.a[(signed long int)i] - factor;
- double max=plant.a[(signed long int)i] + factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- goto __CPROVER_DUMP_L19;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- plant_cbmc.a[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$2;
- if(plant_cbmc.a[(signed long int)i] >= min)
- tmp_if_expr$2 = plant_cbmc.a[(signed long int)i] <= max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
-
- else
- plant_cbmc.a[(signed long int)i] = plant.a[(signed long int)i];
-
- __CPROVER_DUMP_L19:
- ;
- }
- ((void (*)())closedloop_verification_task)();
-}
-
-// call_verification_task
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 268
-void call_verification_task(void *verification_task)
-{
- signed int i=0;
- _Bool base_case_executed=(_Bool)0;
- if((_Bool)0)
- {
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- {
- if(ds.b_uncertainty[(signed long int)i] > 0.000000)
- {
- double call_verification_task$$1$$1$$1$$1$$1$$factor=ds.b_uncertainty[(signed long int)i];
- call_verification_task$$1$$1$$1$$1$$1$$factor = call_verification_task$$1$$1$$1$$1$$1$$factor < 0.000000 ? call_verification_task$$1$$1$$1$$1$$1$$factor * (double)-1 : call_verification_task$$1$$1$$1$$1$$1$$factor;
- double min=ds.b[(signed long int)i] - call_verification_task$$1$$1$$1$$1$$1$$factor;
- double max=ds.b[(signed long int)i] + call_verification_task$$1$$1$$1$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$1$$1$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L8;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$1$$1$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.b[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$1;
- if(ds.b[(signed long int)i] >= min)
- tmp_if_expr$1 = ds.b[(signed long int)i] <= max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$1);
- }
-
-
- __CPROVER_DUMP_L8:
- ;
- }
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- {
- if(ds.a_uncertainty[(signed long int)i] > 0.000000)
- {
- double factor=ds.a_uncertainty[(signed long int)i];
- factor = factor < 0.000000 ? factor * (double)-1 : factor;
- double call_verification_task$$1$$1$$2$$1$$1$$min=ds.a[(signed long int)i] - factor;
- double call_verification_task$$1$$1$$2$$1$$1$$max=ds.a[(signed long int)i] + factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- goto __CPROVER_DUMP_L17;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.a[(signed long int)i] = nondet_double();
- _Bool tmp_if_expr$2;
- if(ds.a[(signed long int)i] >= call_verification_task$$1$$1$$2$$1$$1$$min)
- tmp_if_expr$2 = ds.a[(signed long int)i] <= call_verification_task$$1$$1$$2$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
-
-
- __CPROVER_DUMP_L17:
- ;
- }
- }
-
- else
- {
- signed int call_verification_task$$1$$2$$i=0;
- call_verification_task$$1$$2$$i = 0;
- for( ; !(call_verification_task$$1$$2$$i >= ds.b_size); call_verification_task$$1$$2$$i = call_verification_task$$1$$2$$i + 1)
- {
- if(ds.b_uncertainty[(signed long int)call_verification_task$$1$$2$$i] > 0.000000)
- {
- double call_verification_task$$1$$2$$1$$1$$1$$factor=(ds.b[(signed long int)call_verification_task$$1$$2$$i] * ds.b_uncertainty[(signed long int)call_verification_task$$1$$2$$i]) / 100.000000;
- call_verification_task$$1$$2$$1$$1$$1$$factor = call_verification_task$$1$$2$$1$$1$$1$$factor < 0.000000 ? call_verification_task$$1$$2$$1$$1$$1$$factor * (double)-1 : call_verification_task$$1$$2$$1$$1$$1$$factor;
- double call_verification_task$$1$$2$$1$$1$$1$$min=ds.b[(signed long int)call_verification_task$$1$$2$$i] - call_verification_task$$1$$2$$1$$1$$1$$factor;
- double call_verification_task$$1$$2$$1$$1$$1$$max=ds.b[(signed long int)call_verification_task$$1$$2$$i] + call_verification_task$$1$$2$$1$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$1$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L27;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$1$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.b[(signed long int)call_verification_task$$1$$2$$i] = nondet_double();
- _Bool tmp_if_expr$3;
- if(ds.b[(signed long int)call_verification_task$$1$$2$$i] >= call_verification_task$$1$$2$$1$$1$$1$$min)
- tmp_if_expr$3 = ds.b[(signed long int)call_verification_task$$1$$2$$i] <= call_verification_task$$1$$2$$1$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$3 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$3);
- }
-
-
- __CPROVER_DUMP_L27:
- ;
- }
- call_verification_task$$1$$2$$i = 0;
- for( ; !(call_verification_task$$1$$2$$i >= ds.a_size); call_verification_task$$1$$2$$i = call_verification_task$$1$$2$$i + 1)
- {
- if(ds.a_uncertainty[(signed long int)call_verification_task$$1$$2$$i] > 0.000000)
- {
- double call_verification_task$$1$$2$$2$$1$$1$$factor=(ds.a[(signed long int)call_verification_task$$1$$2$$i] * ds.a_uncertainty[(signed long int)call_verification_task$$1$$2$$i]) / 100.000000;
- call_verification_task$$1$$2$$2$$1$$1$$factor = call_verification_task$$1$$2$$2$$1$$1$$factor < 0.000000 ? call_verification_task$$1$$2$$2$$1$$1$$factor * (double)-1 : call_verification_task$$1$$2$$2$$1$$1$$factor;
- double call_verification_task$$1$$2$$2$$1$$1$$min=ds.a[(signed long int)call_verification_task$$1$$2$$i] - call_verification_task$$1$$2$$2$$1$$1$$factor;
- double call_verification_task$$1$$2$$2$$1$$1$$max=ds.a[(signed long int)call_verification_task$$1$$2$$i] + call_verification_task$$1$$2$$2$$1$$1$$factor;
- if((signed int)base_case_executed == 1 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$2$$1$$1$$factor, 0.000000))
- goto __CPROVER_DUMP_L36;
-
- else
- if((signed int)base_case_executed == 0 && IEEE_FLOAT_EQUAL(call_verification_task$$1$$2$$2$$1$$1$$factor, 0.000000))
- base_case_executed = (_Bool)0;
-
- ds.a[(signed long int)call_verification_task$$1$$2$$i] = nondet_double();
- _Bool tmp_if_expr$4;
- if(ds.a[(signed long int)call_verification_task$$1$$2$$i] >= call_verification_task$$1$$2$$2$$1$$1$$min)
- tmp_if_expr$4 = ds.a[(signed long int)call_verification_task$$1$$2$$i] <= call_verification_task$$1$$2$$2$$1$$1$$max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$4 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$4);
- }
-
-
- __CPROVER_DUMP_L36:
- ;
- }
- }
- ((void (*)())verification_task)();
-}
-
-// check_stability
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 59
-signed int check_stability(double *a, signed int n)
-{
- signed int lines=2 * n - 1;
- signed int columns=n;
- const signed long int columns$array_size0=(signed long int)n;
- const signed long int columns$array_size1=(signed long int)lines;
- double m[columns$array_size1][columns$array_size0];
- signed int i;
- signed int j;
- const signed long int j$array_size0=(signed long int)n;
- double current_stability[j$array_size0];
- i = 0;
- for( ; !(i >= n); i = i + 1)
- current_stability[(signed long int)i] = a[(signed long int)i];
- double sum=0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- sum = sum + a[(signed long int)i];
- if(sum <= 0.000000)
- {
- printf("[DEBUG] the first constraint of Jury criteria failed: (F(1) > 0)");
- return 0;
- }
-
- else
- {
- sum = 0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- double return_value_internal_pow$1=internal_pow((double)-1, (double)((n - 1) - i));
- sum = sum + a[(signed long int)i] * return_value_internal_pow$1;
- }
- double return_value_internal_pow$2=internal_pow((double)-1, (double)(n - 1));
- sum = sum * return_value_internal_pow$2;
- if(sum <= 0.000000)
- {
- printf("[DEBUG] the second constraint of Jury criteria failed: (F(-1)*(-1)^n > 0)");
- return 0;
- }
-
- else
- {
- double return_value_internal_abs$3=internal_abs(a[(signed long int)(n - 1)]);
- if(return_value_internal_abs$3 > *a)
- {
- printf("[DEBUG] the third constraint of Jury criteria failed: (abs(a0) < a_{n}*z^{n})");
- return 0;
- }
-
- else
- {
- i = 0;
- for( ; !(i >= lines); i = i + 1)
- {
- j = 0;
- for( ; !(j >= columns); j = j + 1)
- m[(signed long int)i][(signed long int)j] = 0.000000;
- }
- i = 0;
- for( ; !(i >= lines); i = i + 1)
- {
- j = 0;
- for( ; !(j >= columns); j = j + 1)
- if(i == 0)
- m[(signed long int)i][(signed long int)j] = a[(signed long int)j];
-
- else
- if(!(i % 2 == 0))
- {
- signed int x=0;
- for( ; !(x >= columns); x = x + 1)
- m[(signed long int)i][(signed long int)x] = m[(signed long int)(i - 1)][(signed long int)((columns - x) - 1)];
- columns = columns - 1;
- j = columns;
- }
-
- else
- m[(signed long int)i][(signed long int)j] = m[(signed long int)(i - 2)][(signed long int)j] - (m[(signed long int)(i - 2)][(signed long int)columns] / m[(signed long int)(i - 2)][0l]) * m[(signed long int)(i - 1)][(signed long int)j];
- }
- signed int first_is_positive=m[0l][0l] >= 0.000000 ? 1 : 0;
- i = 0;
- for( ; !(i >= lines); i = i + 1)
- if(i % 2 == 0)
- {
- signed int line_is_positive=m[(signed long int)i][0l] >= 0.000000 ? 1 : 0;
- if(!(first_is_positive == line_is_positive))
- return 0;
-
- }
-
- return 1;
- }
- }
- }
-}
-
-// check_stability_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 70
-signed int check_stability_closedloop(double *a, signed int n, double *plant_num, signed int p_num_size, double *plant_den, signed int p_den_size)
-{
- signed int columns=n;
- const signed long int columns$array_size0=(signed long int)n;
- const signed long int columns$array_size1=(signed long int)(2 * n - 1);
- double m[columns$array_size1][columns$array_size0];
- signed int i;
- signed int j;
- signed int first_is_positive=0;
- double *p_num=plant_num;
- double *p_den=plant_den;
- double sum=0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- sum = sum + a[(signed long int)i];
- __DSVERIFIER_assert(sum > 0.000000);
- sum = 0.000000;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- double return_value_internal_pow$1=internal_pow((double)-1, (double)((n - 1) - i));
- sum = sum + a[(signed long int)i] * return_value_internal_pow$1;
- }
- double return_value_internal_pow$2=internal_pow((double)-1, (double)(n - 1));
- sum = sum * return_value_internal_pow$2;
- __DSVERIFIER_assert(sum > 0.000000);
- double return_value_internal_abs$3=internal_abs(a[(signed long int)(n - 1)]);
- __DSVERIFIER_assert(return_value_internal_abs$3 < a[0l]);
- i = 0;
- for( ; !(i >= 2 * n + -1); i = i + 1)
- {
- j = 0;
- for( ; !(j >= columns); j = j + 1)
- {
- m[(signed long int)i][(signed long int)j] = 0.000000;
- if(i == 0)
- m[(signed long int)i][(signed long int)j] = a[(signed long int)j];
-
- else
- if(!(i % 2 == 0))
- {
- signed int x=0;
- for( ; !(x >= columns); x = x + 1)
- m[(signed long int)i][(signed long int)x] = m[(signed long int)(i - 1)][(signed long int)((columns - x) - 1)];
- columns = columns - 1;
- j = columns;
- }
-
- else
- {
- m[(signed long int)i][(signed long int)j] = m[(signed long int)(i - 2)][(signed long int)j] - (m[(signed long int)(i - 2)][(signed long int)columns] / m[(signed long int)(i - 2)][0l]) * m[(signed long int)(i - 1)][(signed long int)j];
- _Bool tmp_if_expr$4;
- if(m[0l][0l] >= 0.000000)
- tmp_if_expr$4 = m[(signed long int)i][0l] >= 0.000000 ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$4 = (_Bool)0;
- __DSVERIFIER_assert(tmp_if_expr$4);
- }
- }
- }
- return 1;
-}
-
-// determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 498
-double determinant(double (*a)[20l], signed int n)
-{
- signed int i;
- signed int j;
- signed int j1;
- signed int j2;
- double det=0.000000;
- double m[20l][20l];
- if(n >= 1)
- {
- if(n == 1)
- det = a[0l][0l];
-
- else
- if(n == 2)
- det = a[0l][0l] * a[1l][1l] - a[1l][0l] * a[0l][1l];
-
- else
- {
- det = 0.000000;
- j1 = 0;
- for( ; !(j1 >= n); j1 = j1 + 1)
- {
- i = 0;
- for( ; !(i >= -1 + n); i = i + 1)
- {
- i = 1;
- for( ; !(i >= n); i = i + 1)
- {
- j2 = 0;
- j = 0;
- for( ; !(j >= n); j = j + 1)
- if(!(j == j1))
- {
- m[(signed long int)(i - 1)][(signed long int)j2] = a[(signed long int)i][(signed long int)j];
- j2 = j2 + 1;
- }
-
- }
- }
- double return_value_internal_pow$1=internal_pow(-1.000000, 1.000000 + (double)j1 + 1.000000);
- double return_value_determinant$2=determinant(m, n - 1);
- det = det + return_value_internal_pow$1 * a[0l][(signed long int)j1] * return_value_determinant$2;
- }
- }
- }
-
- return det;
-}
-
-// double_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 315
-void double_add_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j] + m2[(signed long int)i][(signed long int)j];
- }
-}
-
-// double_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 218
-void double_check_limit_cycle(double *y, signed int y_size)
-{
- double reference=y[(signed long int)(y_size - 1)];
- signed int idx=0;
- signed int window_size=1;
- idx = y_size - 2;
- for( ; idx >= 0; idx = idx - 1)
- if(IEEE_FLOAT_NOTEQUAL(y[(signed long int)idx], reference))
- window_size = window_size + 1;
-
- else
- break;
- __DSVERIFIER_assume(window_size != y_size && window_size != 1);
- printf("window_size %d\n", window_size);
- signed int desired_elements=2 * window_size;
- signed int found_elements=0;
- idx = y_size - 1;
- for( ; idx >= 0; idx = idx - 1)
- if(!(-1 + y_size + -window_size >= idx))
- {
- printf("%.0f == %.0f\n", y[(signed long int)idx], y[(signed long int)(idx - window_size)]);
- signed int cmp_idx=idx - window_size;
- _Bool tmp_if_expr$1;
- if(cmp_idx >= 1)
- tmp_if_expr$1 = IEEE_FLOAT_EQUAL(y[(signed long int)idx], y[(signed long int)(idx - window_size)]) ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- if(tmp_if_expr$1)
- found_elements = found_elements + 2;
-
- else
- break;
- }
-
- printf("desired_elements %d\n", desired_elements);
- printf("found_elements %d\n", found_elements);
- __DSVERIFIER_assert(desired_elements != found_elements);
-}
-
-// double_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 187
-void double_check_oscillations(double *y, signed int y_size)
-{
- __DSVERIFIER_assume(IEEE_FLOAT_NOTEQUAL(y[0l], y[(signed long int)(y_size - 1)]));
- signed int window_timer=0;
- signed int window_count=0;
- signed int i;
- signed int j;
- i = 2;
- for( ; !(i >= y_size); i = i + 1)
- {
- signed int window_size=i;
- j = 0;
- for( ; !(j >= y_size); j = j + 1)
- {
- if(!(window_size >= window_timer))
- {
- window_timer = 0;
- window_count = 0;
- }
-
- signed int window_index=j + window_size;
- if(!(window_index >= y_size))
- {
- if(IEEE_FLOAT_EQUAL(y[(signed long int)j], y[(signed long int)window_index]))
- {
- window_count = window_count + 1;
- /* assertion !(window_count == window_size) */
- assert(!(window_count == window_size));
- if(!(window_count == window_size))
- (void)0;
-
- }
-
- }
-
- else
- break;
- window_timer = window_timer + 1;
- }
- }
-}
-
-// double_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 254
-void double_check_persistent_limit_cycle(double *y, signed int y_size)
-{
- signed int idy=0;
- signed int count_same=0;
- signed int window_size=0;
- double reference=y[0l];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(IEEE_FLOAT_NOTEQUAL(y[(signed long int)idy], reference))
- window_size = window_size + 1;
-
- else
- if(!(window_size == 0))
- break;
-
- else
- count_same = count_same + 1;
- window_size = window_size + count_same;
- __DSVERIFIER_assume(window_size > 1 && window_size <= y_size / 2);
- const signed long int reference$array_size0=(signed long int)window_size;
- double lco_elements[reference$array_size0];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(!(idy >= window_size))
- lco_elements[(signed long int)idy] = y[(signed long int)idy];
-
- idy = 0;
- signed int lco_idy=0;
- _Bool is_persistent=(_Bool)0;
- while(!(idy >= y_size))
- {
- signed int tmp_post$1=idy;
- idy = idy + 1;
- signed int tmp_post$2=lco_idy;
- lco_idy = lco_idy + 1;
- if(IEEE_FLOAT_EQUAL(y[(signed long int)tmp_post$1], lco_elements[(signed long int)tmp_post$2]))
- is_persistent = (_Bool)0;
-
- else
- {
- is_persistent = (_Bool)0;
- break;
- }
- if(lco_idy == window_size)
- lco_idy = 0;
-
- }
- __DSVERIFIER_assert((signed int)is_persistent == 0);
-}
-
-// double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 83
-double double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb)
-{
- double *a_ptr;
- double *y_ptr;
- double *b_ptr;
- double *x_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- }
- sum = sum / a[0l];
- return sum;
-}
-
-// double_direct_form_1_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 205
-double double_direct_form_1_MSP430(double *y, double *x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *y_ptr;
- double *b_ptr;
- double *x_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- timer1 = timer1 + 91;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- timer1 = timer1 + 47;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- timer1 = timer1 + 57;
- }
- timer1 = timer1 + 3;
- /* assertion (double) timer1 * hw.cycle <= ds.sample_time */
- assert((double)timer1 * hw.cycle <= ds.sample_time);
- if((double)timer1 * hw.cycle <= ds.sample_time)
- (void)0;
-
- return sum;
-}
-
-// double_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 364
-void double_direct_form_1_impl2(double *x, signed int x_size, double *b, signed int b_size, double *a, signed int a_size, double *y)
-{
- signed int i=0;
- signed int j=0;
- const signed long int j$array_size0=(signed long int)x_size;
- double v[j$array_size0];
- i = 0;
- for( ; !(i >= x_size); i = i + 1)
- {
- v[(signed long int)i] = 0.000000;
- j = 0;
- for( ; !(j >= b_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- v[(signed long int)i] = v[(signed long int)i] + x[(signed long int)(i - j)] * b[(signed long int)j];
- }
- }
- y[0l] = v[0l];
- i = 1;
- for( ; !(i >= x_size); i = i + 1)
- {
- y[(signed long int)i] = 0.000000;
- y[(signed long int)i] = y[(signed long int)i] + v[(signed long int)i];
- j = 1;
- for( ; !(j >= a_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- y[(signed long int)i] = y[(signed long int)i] + y[(signed long int)(i - j)] * (double)-1 * a[(signed long int)j];
- }
- }
-}
-
-// double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 102
-double double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- double *a_ptr;
- double *b_ptr;
- double *w_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j=1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- }
- w[0l] = w[0l] + x;
- w[0l] = w[0l] / a[0l];
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- }
- return sum;
-}
-
-// double_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 230
-double double_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *b_ptr;
- double *w_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j;
- timer1 = timer1 + 71;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- timer1 = timer1 + 54;
- }
- w[0l] = w[0l] + x;
- w[0l] = w[0l] / a[0l];
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- timer1 = timer1 + 46;
- }
- timer1 = timer1 + 38;
- /* assertion (double) timer1 * hw.cycle <= ds.sample_time */
- assert((double)timer1 * hw.cycle <= ds.sample_time);
- if((double)timer1 * hw.cycle <= ds.sample_time)
- (void)0;
-
- return sum;
-}
-
-// double_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 428
-void double_exp_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], unsigned int expNumber, double (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int k;
- unsigned int l;
- double m2[20l][20l];
- if(expNumber == 0u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- if(i == j)
- result[(signed long int)i][(signed long int)j] = 1.000000;
-
- else
- result[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
-
- else
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j];
- }
- if(!(expNumber == 1u))
- {
- l = 1u;
- for( ; !(l >= expNumber); l = l + 1u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- m2[(signed long int)i][(signed long int)j] = result[(signed long int)i][(signed long int)j];
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = 0.000000;
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= columns); k = k + 1u)
- result[(signed long int)i][(signed long int)j] = result[(signed long int)i][(signed long int)j] + m2[(signed long int)i][(signed long int)k] * m1[(signed long int)k][(signed long int)j];
- }
- }
- }
- }
-
- }
-}
-
-// double_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 337
-void double_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, double (*m1)[20l], double (*m2)[20l], double (*m3)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int k;
- if(j1 == i2)
- {
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- m3[(signed long int)i][(signed long int)j] = 0.000000;
- }
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= j1); k = k + 1u)
- {
- double mult=m1[(signed long int)i][(signed long int)k] * m2[(signed long int)k][(signed long int)j];
- m3[(signed long int)i][(signed long int)j] = m3[(signed long int)i][(signed long int)j] + m1[(signed long int)i][(signed long int)k] * m2[(signed long int)k][(signed long int)j];
- }
- }
- }
- }
-
- else
- printf("\nError! Operation invalid, please enter with valid matrices.\n");
-}
-
-// double_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 23
-double double_state_space_representation(void)
-{
- double result1[20l][20l];
- double result2[20l][20l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- {
- result1[(signed long int)i][(signed long int)j] = 0.000000;
- result2[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- i = 1;
- for( ; !(i >= 0); i = i + 1)
- {
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.A, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.B, _controller.inputs, result2);
- double_add_matrix((unsigned int)nStates, 1u, result1, result2, _controller.states);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- }
- return _controller.outputs[0l][0l];
-}
-
-// double_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 326
-void double_sub_matrix(unsigned int lines, unsigned int columns, double (*m1)[20l], double (*m2)[20l], double (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j] - m2[(signed long int)i][(signed long int)j];
- }
-}
-
-// double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 122
-double double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- yout = yout / a[0l];
- signed int j=0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- }
-
- }
- return yout;
-}
-
-// double_transposed_direct_form_2_MSP430
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 257
-double double_transposed_direct_form_2_MSP430(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- timer1 = timer1 + 105;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- timer1 = timer1 + 41;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- timer1 = timer1 + 38;
- }
-
- timer1 = timer1 + 54;
- }
- timer1 = timer1 + 7;
- /* assertion (double) timer1 * hw.cycle <= ds.sample_time */
- assert((double)timer1 * hw.cycle <= ds.sample_time);
- if((double)timer1 * hw.cycle <= ds.sample_time)
- (void)0;
-
- return yout;
-}
-
-// fatorial
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 54
-signed int fatorial(signed int n)
-{
- signed int tmp_if_expr$2;
- signed int return_value_fatorial$1;
- if(n == 0)
- tmp_if_expr$2 = 1;
-
- else
- {
- return_value_fatorial$1=fatorial(n - 1);
- tmp_if_expr$2 = n * return_value_fatorial$1;
- }
- return tmp_if_expr$2;
-}
-
-// float_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 144
-float float_direct_form_1(float *y, float *x, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *y_ptr;
- float *b_ptr;
- float *x_ptr;
- float sum=0.000000f;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- float *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- float *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- float *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- }
- sum = sum / a[0l];
- return sum;
-}
-
-// float_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 163
-float float_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *b_ptr;
- float *w_ptr;
- float sum=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j=1;
- for( ; !(j >= Na); j = j + 1)
- {
- float *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- float *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- }
- w[0l] = w[0l] + x;
- w[0l] = w[0l] / a[0l];
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- float *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- }
- return sum;
-}
-
-// float_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 183
-float float_transposed_direct_form_2(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *b_ptr;
- float yout=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- yout = yout / a[0l];
- signed int j=0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- float *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- }
-
- if(!(j >= -1 + Nb))
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- }
-
- }
- return yout;
-}
-
-// ft_closedloop_feedback
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 57
-void ft_closedloop_feedback(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den)
-{
- Nans_num = (Nc_den + Nmodel_num) - 1;
- Nans_den = (Nc_den + Nmodel_den) - 1;
- signed int Nnum_mult=(Nc_num + Nmodel_num) - 1;
- const signed long int Nnum_mult$array_size0=(signed long int)Nans_den;
- double den_mult[Nnum_mult$array_size0];
- const signed long int den_mult$array_size0=(signed long int)Nnum_mult;
- double num_mult[den_mult$array_size0];
- poly_mult(c_num, Nc_num, model_num, Nmodel_num, num_mult, Nnum_mult);
- poly_mult(c_den, Nc_den, model_den, Nmodel_den, den_mult, Nans_den);
- poly_sum(num_mult, Nnum_mult, den_mult, Nans_den, ans_den, Nans_den);
- poly_mult(c_den, Nc_den, model_num, Nmodel_num, ans_num, Nans_num);
-}
-
-// ft_closedloop_sensitivity
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 42
-void ft_closedloop_sensitivity(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den)
-{
- signed int Nans_num_p=(Nc_num + Nmodel_num) - 1;
- Nans_den = (Nc_den + Nmodel_den) - 1;
- Nans_num = (Nc_den + Nmodel_den) - 1;
- const signed long int Nans_num_p$array_size0=(signed long int)Nans_num_p;
- double num_mult[Nans_num_p$array_size0];
- poly_mult(c_den, Nc_den, model_den, Nmodel_den, ans_num, Nans_num);
- poly_mult(c_num, Nc_num, model_num, Nmodel_num, num_mult, Nans_num_p);
- poly_sum(ans_num, Nans_num, num_mult, Nans_num_p, ans_den, Nans_den);
-}
-
-// ft_closedloop_series
-// file /home/lucascordeiro/dsverifier/bmc/core/closed-loop.h line 28
-void ft_closedloop_series(double *c_num, signed int Nc_num, double *c_den, signed int Nc_den, double *model_num, signed int Nmodel_num, double *model_den, signed int Nmodel_den, double *ans_num, signed int Nans_num, double *ans_den, signed int Nans_den)
-{
- Nans_num = (Nc_num + Nmodel_num) - 1;
- Nans_den = (Nc_den + Nmodel_den) - 1;
- const signed long int ft_closedloop_series$array_size0=(signed long int)Nans_den;
- double den_mult[ft_closedloop_series$array_size0];
- poly_mult(c_num, Nc_num, model_num, Nmodel_num, ans_num, Nans_num);
- poly_mult(c_den, Nc_den, model_den, Nmodel_den, den_mult, Nans_den);
- poly_sum(ans_num, Nans_num, den_mult, Nans_den, ans_den, Nans_den);
-}
-
-// fxp_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 303
-signed long int fxp_abs(signed long int a)
-{
- signed long int tmp=a < 0l ? -((signed long int)a) : a;
- return tmp;
-}
-
-// fxp_add
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 315
-signed long int fxp_add(signed long int aadd, signed long int badd)
-{
- signed long int tmpadd=(signed long int)aadd + (signed long int)badd;
- return tmpadd;
-}
-
-// fxp_add_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 467
-void fxp_add_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j]=fxp_add(m1[(signed long int)i][(signed long int)j], m2[(signed long int)i][(signed long int)j]);
- }
-}
-
-// fxp_check_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 163
-void fxp_check_limit_cycle(signed long int *y, signed int y_size)
-{
- signed long int reference=y[(signed long int)(y_size - 1)];
- signed int idx=0;
- signed int window_size=1;
- idx = y_size - 2;
- for( ; idx >= 0; idx = idx - 1)
- if(!(y[(signed long int)idx] == reference))
- window_size = window_size + 1;
-
- else
- break;
- __DSVERIFIER_assume(window_size != y_size && window_size != 1);
- printf("window_size %d\n", window_size);
- signed int desired_elements=2 * window_size;
- signed int found_elements=0;
- idx = y_size - 1;
- for( ; idx >= 0; idx = idx - 1)
- if(!(-1 + y_size + -window_size >= idx))
- {
- printf("%.0f == %.0f\n", y[(signed long int)idx], y[(signed long int)(idx - window_size)]);
- signed int cmp_idx=idx - window_size;
- _Bool tmp_if_expr$1;
- if(cmp_idx >= 1)
- tmp_if_expr$1 = y[(signed long int)idx] == y[(signed long int)(idx - window_size)] ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- if(tmp_if_expr$1)
- found_elements = found_elements + 2;
-
- else
- break;
- }
-
- __DSVERIFIER_assume(found_elements > 0);
- printf("desired_elements %d\n", desired_elements);
- printf("found_elements %d\n", found_elements);
- __DSVERIFIER_assume(found_elements == desired_elements);
- __DSVERIFIER_assert((_Bool)0);
-}
-
-// fxp_check_oscillations
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 253
-void fxp_check_oscillations(signed long int *y, signed int y_size)
-{
- _Bool tmp_if_expr$1;
- if(!(*y == y[(signed long int)(-1 + y_size)]))
- tmp_if_expr$1 = y[(signed long int)(y_size - 1)] != y[(signed long int)(y_size - 2)] ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$1 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$1);
- signed int window_timer=0;
- signed int window_count=0;
- signed int i;
- signed int j;
- i = 2;
- for( ; !(i >= y_size); i = i + 1)
- {
- signed int window_size=i;
- j = 0;
- for( ; !(j >= y_size); j = j + 1)
- {
- if(!(window_size >= window_timer))
- {
- window_timer = 0;
- window_count = 0;
- }
-
- signed int window_index=j + window_size;
- if(!(window_index >= y_size))
- {
- if(y[(signed long int)j] == y[(signed long int)window_index])
- {
- window_count = window_count + 1;
- __DSVERIFIER_assert(!(window_count == window_size));
- }
-
- }
-
- else
- break;
- window_timer = window_timer + 1;
- }
- }
-}
-
-// fxp_check_persistent_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 201
-void fxp_check_persistent_limit_cycle(signed long int *y, signed int y_size)
-{
- signed int idy=0;
- signed int count_same=0;
- signed int window_size=0;
- signed long int reference=y[0l];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(!(y[(signed long int)idy] == reference))
- window_size = window_size + 1;
-
- else
- if(!(window_size == 0))
- break;
-
- else
- count_same = count_same + 1;
- window_size = window_size + count_same;
- __DSVERIFIER_assume(window_size > 1 && window_size <= y_size / 2);
- const signed long int reference$array_size0=(signed long int)window_size;
- signed long int lco_elements[reference$array_size0];
- idy = 0;
- for( ; !(idy >= y_size); idy = idy + 1)
- if(!(idy >= window_size))
- lco_elements[(signed long int)idy] = y[(signed long int)idy];
-
- idy = 0;
- signed int lco_idy=0;
- _Bool is_persistent=(_Bool)0;
- while(!(idy >= y_size))
- {
- signed int tmp_post$1=idy;
- idy = idy + 1;
- signed int tmp_post$2=lco_idy;
- lco_idy = lco_idy + 1;
- if(y[(signed long int)tmp_post$1] == lco_elements[(signed long int)tmp_post$2])
- is_persistent = (_Bool)0;
-
- else
- {
- is_persistent = (_Bool)0;
- break;
- }
- if(lco_idy == window_size)
- lco_idy = 0;
-
- }
- __DSVERIFIER_assert((signed int)is_persistent == 0);
-}
-
-// fxp_determinant
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 529
-double fxp_determinant(signed long int (*a_fxp)[20l], signed int n)
-{
- signed int i;
- signed int j;
- signed int j1;
- signed int j2;
- double a[20l][20l];
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- j = 0;
- for( ; !(j >= n); j = j + 1)
- a[(signed long int)i][(signed long int)j]=fxp_to_double(a_fxp[(signed long int)i][(signed long int)j]);
- }
- double det=0.000000;
- double m[20l][20l];
- if(n >= 1)
- {
- if(n == 1)
- det = a[0l][0l];
-
- else
- if(n == 2)
- det = a[0l][0l] * a[1l][1l] - a[1l][0l] * a[0l][1l];
-
- else
- {
- det = 0.000000;
- j1 = 0;
- for( ; !(j1 >= n); j1 = j1 + 1)
- {
- i = 0;
- for( ; !(i >= -1 + n); i = i + 1)
- {
- i = 1;
- for( ; !(i >= n); i = i + 1)
- {
- j2 = 0;
- j = 0;
- for( ; !(j >= n); j = j + 1)
- if(!(j == j1))
- {
- m[(signed long int)(i - 1)][(signed long int)j2] = a[(signed long int)i][(signed long int)j];
- j2 = j2 + 1;
- }
-
- }
- }
- double return_value_internal_pow$1=internal_pow(-1.000000, 1.000000 + (double)j1 + 1.000000);
- double return_value_determinant$2=determinant(m, n - 1);
- det = det + return_value_internal_pow$1 * a[0l][(signed long int)j1] * return_value_determinant$2;
- }
- }
- }
-
- return det;
-}
-
-// fxp_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 22
-signed long int fxp_direct_form_1(signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- signed long int *tmp_post$4=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int *tmp_post$5=y_ptr;
- y_ptr = y_ptr - 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$4, *tmp_post$5);
- sum=fxp_sub(sum, return_value_fxp_mult$6);
- }
- sum=fxp_div(sum, a[0l]);
- signed long int return_value_fxp_quantize$7=fxp_quantize(sum);
- return return_value_fxp_quantize$7;
-}
-
-// fxp_direct_form_1_impl2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 388
-void fxp_direct_form_1_impl2(signed long int *x, signed int x_size, signed long int *b, signed int b_size, signed long int *a, signed int a_size, signed long int *y)
-{
- signed int i=0;
- signed int j=0;
- const signed long int j$array_size0=(signed long int)x_size;
- signed long int v[j$array_size0];
- i = 0;
- for( ; !(i >= x_size); i = i + 1)
- {
- v[(signed long int)i] = 0l;
- j = 0;
- for( ; !(j >= b_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- signed long int return_value_fxp_mult$1=fxp_mult(x[(signed long int)(i - j)], b[(signed long int)j]);
- v[(signed long int)i]=fxp_add(v[(signed long int)i], return_value_fxp_mult$1);
- }
- }
- y[0l] = v[0l];
- i = 1;
- for( ; !(i >= x_size); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- y[(signed long int)i]=fxp_add(y[(signed long int)i], v[(signed long int)i]);
- j = 1;
- for( ; !(j >= a_size); j = j + 1)
- {
- if(!(i >= j))
- break;
-
- signed long int return_value_fxp_mult$2=fxp_mult(y[(signed long int)(i - j)], -a[(signed long int)j]);
- y[(signed long int)i]=fxp_add(y[(signed long int)i], return_value_fxp_mult$2);
- }
- }
-}
-
-// fxp_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 41
-signed long int fxp_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *b_ptr;
- signed long int *w_ptr;
- signed long int sum=0l;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j=1;
- for( ; !(j >= Na); j = j + 1)
- {
- signed long int *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- w[0l]=fxp_sub(w[0l], return_value_fxp_mult$3);
- }
- w[0l]=fxp_add(w[0l], x);
- w[0l]=fxp_div(w[0l], a[0l]);
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- signed long int *tmp_post$4=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int *tmp_post$5=w_ptr;
- w_ptr = w_ptr + 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$4, *tmp_post$5);
- sum=fxp_add(sum, return_value_fxp_mult$6);
- }
- signed long int return_value_fxp_quantize$7=fxp_quantize(sum);
- return return_value_fxp_quantize$7;
-}
-
-// fxp_div
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 357
-signed long int fxp_div(signed long int a, signed long int b)
-{
- signed long int tmpdiv=(a << impl.frac_bits) / b;
- return tmpdiv;
-}
-
-// fxp_double_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 211
-signed long int fxp_double_to_fxp(double value)
-{
- signed long int tmp;
- double ftemp=value * scale_factor[(signed long int)impl.frac_bits];
- if(rounding_mode == 0)
- {
- if(value >= 0.000000)
- tmp = (signed long int)(ftemp + 5.000000e-1);
-
- else
- tmp = (signed long int)(ftemp - 5.000000e-1);
- }
-
- else
- if(rounding_mode == 1)
- {
- tmp = (signed long int)ftemp;
- double residue=ftemp - (double)tmp;
- if(value < 0.000000 && IEEE_FLOAT_NOTEQUAL(residue, 0.000000))
- {
- ftemp = ftemp - 1.000000;
- tmp = (signed long int)ftemp;
- }
-
- }
-
- else
- if(rounding_mode == 0)
- tmp = (signed long int)ftemp;
-
- return tmp;
-}
-
-// fxp_double_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 247
-void fxp_double_to_fxp_array(double *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- r[(signed long int)i]=fxp_double_to_fxp(f[(signed long int)i]);
-}
-
-// fxp_exp_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 390
-void fxp_exp_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], unsigned int expNumber, signed long int (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int l;
- unsigned int k;
- signed long int m2[20l][20l];
- if(expNumber == 0u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- if(i == j)
- result[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(1.000000);
-
- else
- result[(signed long int)i][(signed long int)j] = 0l;
- }
- }
-
- else
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = m1[(signed long int)i][(signed long int)j];
- }
- if(!(expNumber == 1u))
- {
- l = 1u;
- for( ; !(l >= expNumber); l = l + 1u)
- {
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- m2[(signed long int)i][(signed long int)j] = result[(signed long int)i][(signed long int)j];
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= columns); k = k + 1u)
- {
- signed long int return_value_fxp_mult$1=fxp_mult(m2[(signed long int)i][(signed long int)k], m1[(signed long int)k][(signed long int)j]);
- result[(signed long int)i][(signed long int)j]=fxp_add(result[(signed long int)i][(signed long int)j], return_value_fxp_mult$1);
- }
- }
- }
- }
- }
-
- }
-}
-
-// fxp_float_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 198
-signed long int fxp_float_to_fxp(float f)
-{
- signed long int tmp;
- double ftemp=(double)f * scale_factor[(signed long int)impl.frac_bits];
- if(f >= 0.000000f)
- tmp = (signed long int)(ftemp + 5.000000e-1);
-
- else
- tmp = (signed long int)(ftemp - 5.000000e-1);
- return tmp;
-}
-
-// fxp_float_to_fxp_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 240
-void fxp_float_to_fxp_array(float *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- r[(signed long int)i]=fxp_float_to_fxp(f[(signed long int)i]);
-}
-
-// fxp_get_frac_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 125
-signed long int fxp_get_frac_part(signed long int in)
-{
- return in < 0l ? -(-in & _fxp_fmask) : in & _fxp_fmask;
-}
-
-// fxp_get_int_part
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 115
-signed long int fxp_get_int_part(signed long int in)
-{
- return in < 0l ? -(-in & _fxp_imask) : in & _fxp_imask;
-}
-
-// fxp_int_to_fxp
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 170
-signed long int fxp_int_to_fxp(signed int in)
-{
- signed long int lin=(signed long int)in * _fxp_one;
- return lin;
-}
-
-// fxp_ln
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 288
-signed int fxp_ln(signed int x)
-{
- signed int t;
- signed int y=0xA65AF;
- if(!(x >= 0x8000))
- {
- x = x << 16;
- y = y - 0xB1721;
- }
-
- if(!(x >= 0x800000))
- {
- x = x << 8;
- y = y - 0x58B91;
- }
-
- if(!(x >= 0x8000000))
- {
- x = x << 4;
- y = y - 0x2C5C8;
- }
-
- if(!(x >= 0x20000000))
- {
- x = x << 2;
- y = y - 0x162E4;
- }
-
- if(!(x >= 0x40000000))
- {
- x = x << 1;
- y = y - 0xB172;
- }
-
- t = x + (x >> 1);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x67CD;
- }
-
- t = x + (x >> 2);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x3920;
- }
-
- t = x + (x >> 3);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x1E27;
- }
-
- t = x + (x >> 4);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0xF85;
- }
-
- t = x + (x >> 5);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x7E1;
- }
-
- t = x + (x >> 6);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x3F8;
- }
-
- t = x + (x >> 7);
- if((0x80000000u & (unsigned int)t) == 0u)
- {
- x = t;
- y = y - 0x1FE;
- }
-
- x = (signed int)(0x80000000u - (unsigned int)x);
- y = y - (x >> 15);
- return y;
-}
-
-// fxp_log10
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 345
-double fxp_log10(double x)
-{
- if(x > 32767.000000)
- {
- if(x > 1.073676e+9)
- {
- x = x / 1.073676e+9;
- double return_value_fxp_log10_low$1=fxp_log10_low(x);
- return return_value_fxp_log10_low$1 + 9.030873e+0;
- }
-
- x = x / 32767.000000;
- double return_value_fxp_log10_low$2=fxp_log10_low(x);
- return return_value_fxp_log10_low$2 + 4.515437e+0;
- }
-
- else
- {
- double return_value_fxp_log10_low$3=fxp_log10_low(x);
- return return_value_fxp_log10_low$3;
- }
-}
-
-// fxp_log10_low
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 333
-double fxp_log10_low(double x)
-{
- signed int xint=(signed int)(x * 65536.000000 + 5.000000e-1);
- signed int lnum=fxp_ln(xint);
- signed int lden=fxp_ln(655360);
- return (double)lnum / (double)lden;
-}
-
-// fxp_matrix_multiplication
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 368
-void fxp_matrix_multiplication(unsigned int i1, unsigned int j1, unsigned int i2, unsigned int j2, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*m3)[20l])
-{
- unsigned int i;
- unsigned int j;
- unsigned int k;
- if(j1 == i2)
- {
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- m3[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0u;
- for( ; !(i >= i1); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= j2); j = j + 1u)
- {
- k = 0u;
- for( ; !(k >= j1); k = k + 1u)
- {
- signed long int return_value_fxp_mult$1=fxp_mult(m1[(signed long int)i][(signed long int)k], m2[(signed long int)k][(signed long int)j]);
- m3[(signed long int)i][(signed long int)j]=fxp_add(m3[(signed long int)i][(signed long int)j], return_value_fxp_mult$1);
- }
- }
- }
- }
-
- else
- printf("\nError! Operation invalid, please enter with valid matrices.\n");
-}
-
-// fxp_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 339
-signed long int fxp_mult(signed long int amult, signed long int bmult)
-{
- signed long int tmpmult;
- signed long int tmpmultprec;
- tmpmult = (signed long int)((signed long int)amult * (signed long int)bmult);
- if(tmpmult >= 0l)
- tmpmultprec = tmpmult + ((tmpmult & (signed long int)(1 << impl.frac_bits - 1)) << 1) >> impl.frac_bits;
-
- else
- tmpmultprec = -(-tmpmult + ((-tmpmult & (signed long int)(1 << impl.frac_bits - 1)) << 1) >> impl.frac_bits);
- return tmpmultprec;
-}
-
-// fxp_neg
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 367
-signed long int fxp_neg(signed long int aneg)
-{
- signed long int tmpneg=-((signed long int)aneg);
- return tmpneg;
-}
-
-// fxp_print_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 407
-void fxp_print_float(signed long int a)
-{
- float return_value_fxp_to_float$1=fxp_to_float(a);
- printf("\n%f", return_value_fxp_to_float$1);
-}
-
-// fxp_print_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 411
-void fxp_print_float_array(signed long int *a, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- {
- float return_value_fxp_to_float$1=fxp_to_float(a[(signed long int)i]);
- printf("\n%f", return_value_fxp_to_float$1);
- }
-}
-
-// fxp_print_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 403
-void fxp_print_int(signed long int a)
-{
- printf("\n%i", (signed int)a);
-}
-
-// fxp_quantize
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 136
-signed long int fxp_quantize(signed long int aquant)
-{
- if(overflow_mode == 2)
- {
- if(!(aquant >= _fxp_min))
- return _fxp_min;
-
- else
- if(!(_fxp_max >= aquant))
- return _fxp_max;
-
- }
-
- else
- if(overflow_mode == 3)
- {
- if(!(_fxp_max >= aquant) || !(aquant >= _fxp_min))
- {
- signed long int return_value_wrap$1=wrap(aquant, _fxp_min, _fxp_max);
- return return_value_wrap$1;
- }
-
- }
-
- return (signed long int)aquant;
-}
-
-// fxp_shrl
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 390
-signed long int fxp_shrl(signed long int in, signed int shift)
-{
- return (signed long int)((unsigned int)in >> shift);
-}
-
-// fxp_sign
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 380
-signed long int fxp_sign(signed long int a)
-{
- return a == 0l ? 0l : (a < 0l ? _fxp_minus_one : _fxp_one);
-}
-
-// fxp_square
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 399
-signed long int fxp_square(signed long int a)
-{
- signed long int return_value_fxp_mult$1=fxp_mult(a, a);
- return return_value_fxp_mult$1;
-}
-
-// fxp_state_space_representation
-// file /home/lucascordeiro/dsverifier/bmc/core/state-space.h line 67
-double fxp_state_space_representation(void)
-{
- signed long int result1[20l][20l];
- signed long int result2[20l][20l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- {
- result1[(signed long int)i][(signed long int)j] = 0l;
- result2[(signed long int)i][(signed long int)j] = 0l;
- }
- }
- signed long int A_fpx[20l][20l];
- signed long int B_fpx[20l][20l];
- signed long int C_fpx[20l][20l];
- signed long int D_fpx[20l][20l];
- signed long int states_fpx[20l][20l];
- signed long int inputs_fpx[20l][20l];
- signed long int outputs_fpx[20l][20l];
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- B_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- C_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- D_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- states_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- inputs_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- outputs_fpx[(signed long int)i][(signed long int)j] = 0l;
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.A[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- B_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.B[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- C_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.C[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- D_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.D[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- states_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.states[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nInputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- inputs_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.inputs[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- outputs_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.outputs[(signed long int)i][(signed long int)j]);
- }
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, C_fpx, states_fpx, result1);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, D_fpx, inputs_fpx, result2);
- fxp_add_matrix((unsigned int)nOutputs, 1u, result1, result2, outputs_fpx);
- i = 1;
- for( ; !(i >= 0); i = i + 1)
- {
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, 1u, A_fpx, states_fpx, result1);
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nInputs, (unsigned int)nInputs, 1u, B_fpx, inputs_fpx, result2);
- fxp_add_matrix((unsigned int)nStates, 1u, result1, result2, states_fpx);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, C_fpx, states_fpx, result1);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, D_fpx, inputs_fpx, result2);
- fxp_add_matrix((unsigned int)nOutputs, 1u, result1, result2, outputs_fpx);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.states[(signed long int)i][(signed long int)j]=fxp_to_double(states_fpx[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.outputs[(signed long int)i][(signed long int)j]=fxp_to_double(outputs_fpx[(signed long int)i][(signed long int)j]);
- }
- return _controller.outputs[0l][0l];
-}
-
-// fxp_sub
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 327
-signed long int fxp_sub(signed long int asub, signed long int bsub)
-{
- signed long int tmpsub=(signed long int)((signed long int)asub - (signed long int)bsub);
- return tmpsub;
-}
-
-// fxp_sub_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 474
-void fxp_sub_matrix(unsigned int lines, unsigned int columns, signed long int (*m1)[20l], signed long int (*m2)[20l], signed long int (*result)[20l])
-{
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- result[(signed long int)i][(signed long int)j]=fxp_sub(m1[(signed long int)i][(signed long int)j], m2[(signed long int)i][(signed long int)j]);
- }
-}
-
-// fxp_to_double
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 271
-double fxp_to_double(signed long int fxp)
-{
- double f;
- signed int f_int=(signed int)fxp;
- f = (double)f_int * scale_factor_inv[(signed long int)impl.frac_bits];
- return f;
-}
-
-// fxp_to_double_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 291
-void fxp_to_double_array(double *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- f[(signed long int)i]=fxp_to_double(r[(signed long int)i]);
-}
-
-// fxp_to_float
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 264
-float fxp_to_float(signed long int fxp)
-{
- float f;
- signed int f_int=(signed int)fxp;
- f = (float)((double)f_int * scale_factor_inv[(signed long int)impl.frac_bits]);
- return f;
-}
-
-// fxp_to_float_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 284
-void fxp_to_float_array(float *f, signed long int *r, signed int N)
-{
- signed int i=0;
- for( ; !(i >= N); i = i + 1)
- f[(signed long int)i]=fxp_to_float(r[(signed long int)i]);
-}
-
-// fxp_to_int
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 182
-signed int fxp_to_int(signed long int fxp)
-{
- if(fxp >= 0l)
- fxp = fxp + _fxp_half;
-
- else
- fxp = fxp - _fxp_half;
- fxp = fxp >> impl.frac_bits;
- return (signed int)fxp;
-}
-
-// fxp_transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 582
-void fxp_transpose(signed long int (*a)[20l], signed long int (*b)[20l], signed int n, signed int m)
-{
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- j = 0;
- for( ; !(j >= m); j = j + 1)
- b[(signed long int)j][(signed long int)i] = a[(signed long int)i][(signed long int)j];
- }
-}
-
-// fxp_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 61
-signed long int fxp_transposed_direct_form_2(signed long int *w, signed long int x, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *b_ptr;
- signed long int yout=0l;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int return_value_fxp_mult$2=fxp_mult(*tmp_post$1, x);
- yout=fxp_add(return_value_fxp_mult$2, w[0l]);
- yout=fxp_div(yout, a[0l]);
- signed int j=0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- signed long int *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int return_value_fxp_mult$4=fxp_mult(*tmp_post$3, yout);
- w[(signed long int)j]=fxp_sub(w[(signed long int)j], return_value_fxp_mult$4);
- }
-
- if(!(j >= -1 + Nb))
- {
- signed long int *tmp_post$5=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$5, x);
- w[(signed long int)j]=fxp_add(w[(signed long int)j], return_value_fxp_mult$6);
- }
-
- }
- signed long int return_value_fxp_quantize$7=fxp_quantize(yout);
- return return_value_fxp_quantize$7;
-}
-
-// fxp_verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 153
-void fxp_verify_overflow(signed long int value)
-{
- fxp_quantize(value);
- __DSVERIFIER_assert(value <= _fxp_max && value >= _fxp_min);
-}
-
-// fxp_verify_overflow_array
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 158
-void fxp_verify_overflow_array(signed long int *array, signed int n)
-{
- signed int i=0;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- fxp_verify_overflow(array[(signed long int)i]);
-}
-
-// generate_delta_coefficients
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 33
-void generate_delta_coefficients(double *vetor, double *out, signed int n, double delta)
-{
- signed int i;
- signed int j;
- signed int N=n - 1;
- double sum_delta_operator;
- i = 0;
- for( ; N >= i; i = i + 1)
- {
- sum_delta_operator = 0.000000;
- j = 0;
- for( ; i >= j; j = j + 1)
- {
- signed int return_value_nchoosek$1=nchoosek(N - j, i - j);
- sum_delta_operator = sum_delta_operator + vetor[(signed long int)j] * (double)return_value_nchoosek$1;
- }
- double return_value_internal_pow$2=internal_pow(delta, (double)(N - i));
- out[(signed long int)i] = return_value_internal_pow$2 * sum_delta_operator;
- }
-}
-
-// generic_timing_double_direct_form_1
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 286
-double generic_timing_double_direct_form_1(double *y, double *x, double *a, double *b, signed int Na, signed int Nb)
-{
- generic_timer = generic_timer + 6 * hw.assembly.push + 3 * hw.assembly.in + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli + 3 * hw.assembly.out + 12 * hw.assembly.std;
- double *a_ptr;
- double *y_ptr;
- double *b_ptr;
- double *x_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- generic_timer = generic_timer + 12 * hw.assembly.std + 12 * hw.assembly.ldd + 2 * hw.assembly.subi + 2 * hw.assembly.sbci + 4 * hw.assembly.lsl + 4 * hw.assembly.rol + 2 * hw.assembly.add + 2 * hw.assembly.adc + 1 * hw.assembly.adiw;
- signed int i;
- signed int j;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- generic_timer = generic_timer + 20 * hw.assembly.ldd + 24 * hw.assembly.mov + 2 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.sbc + 10 * hw.assembly.std + 2 * hw.assembly.ld + 2 * hw.assembly.rcall + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.adiw + 1 * hw.assembly.brge + 1 * hw.assembly.rjmp;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- generic_timer = generic_timer + 2 * hw.assembly.ldi + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- generic_timer = generic_timer + 22 * hw.assembly.ldd + 24 * hw.assembly.mov + 2 * hw.assembly.subi + 8 * hw.assembly.std + 1 * hw.assembly.sbci + 2 * hw.assembly.ld + 2 * hw.assembly.rcall + 1 * hw.assembly.sbc + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.adiw + 1 * hw.assembly.brge + 1 * hw.assembly.rjmp;
- double *tmp_post$3=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$4=y_ptr;
- y_ptr = y_ptr - 1l;
- sum = sum - *tmp_post$3 * *tmp_post$4;
- }
- generic_timer = generic_timer + 4 * hw.assembly.ldd + 4 * hw.assembly.mov + 1 * hw.assembly.adiw + 1 * hw.assembly.in + 1 * hw.assembly.cli + 3 * hw.assembly.out + 6 * hw.assembly.pop + 1 * hw.assembly.ret;
- return sum;
-}
-
-// generic_timing_double_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 311
-double generic_timing_double_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- generic_timer = generic_timer + 8 * hw.assembly.push + 14 * hw.assembly.std + 3 * hw.assembly.out + 3 * hw.assembly.in + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli;
- double *a_ptr;
- double *b_ptr;
- double *w_ptr;
- double sum=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j;
- generic_timer = generic_timer + 10 * hw.assembly.std + 6 * hw.assembly.ldd + 2 * hw.assembly.adiw;
- generic_timer = generic_timer + 2 * hw.assembly.ldi + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- double *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- double *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- generic_timer = generic_timer + 23 * hw.assembly.ldd + 32 * hw.assembly.mov + 9 * hw.assembly.std + 2 * hw.assembly.subi + 3 * hw.assembly.ld + 2 * hw.assembly.rcall + 2 * hw.assembly.sbci + 1 * hw.assembly.st + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brge;
- }
- w[0l] = w[0l] + x;
- w_ptr = &w[0l];
- generic_timer = generic_timer + 13 * hw.assembly.ldd + 12 * hw.assembly.mov + 5 * hw.assembly.std + 1 * hw.assembly.st + 1 * hw.assembly.ld + 1 * hw.assembly.rcall;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- double *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- generic_timer = generic_timer + 20 * hw.assembly.ldd + 24 * hw.assembly.mov + 10 * hw.assembly.std + 2 * hw.assembly.rcall + 2 * hw.assembly.ld + 2 * hw.assembly.subi + 2 * hw.assembly.sbci + 1 * hw.assembly.adiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brge + 1 * hw.assembly.rjmp;
- }
- generic_timer = generic_timer + 4 * hw.assembly.ldd + 4 * hw.assembly.mov + 1 * hw.assembly.adiw + 1 * hw.assembly.in + 1 * hw.assembly.cli + 3 * hw.assembly.out + 8 * hw.assembly.pop + 1 * hw.assembly.ret;
- return sum;
-}
-
-// generic_timing_double_transposed_direct_form_2
-// file /home/lucascordeiro/dsverifier/bmc/core/realizations.h line 338
-double generic_timing_double_transposed_direct_form_2(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- generic_timer = generic_timer + 8 * hw.assembly.push + 14 * hw.assembly.std + 3 * hw.assembly.out + 3 * hw.assembly.in + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli;
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- generic_timer = generic_timer + 15 * hw.assembly.std + 22 * hw.assembly.ldd + 24 * hw.assembly.mov + 2 * hw.assembly.rcall + 2 * hw.assembly.ld + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.brge + 1 * hw.assembly.adiw;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- }
-
- generic_timer = generic_timer + 70 * hw.assembly.mov + 65 * hw.assembly.ldd + 12 * hw.assembly.lsl + 12 * hw.assembly.rol + 15 * hw.assembly.std + 6 * hw.assembly.add + 6 * hw.assembly.adc + 2 * hw.assembly.adiw + 3 * hw.assembly.cpc + 3 * hw.assembly.cp + 5 * hw.assembly.ld + 4 * hw.assembly.rcall + 5 * hw.assembly.subi + 3 * hw.assembly.rjmp + 2 * hw.assembly.brlt + 3 * hw.assembly.st + 2 * hw.assembly.sbci + 3 * hw.assembly.sbc + 1 * hw.assembly.brge;
- }
- generic_timer = generic_timer + 4 * hw.assembly.ldd + 4 * hw.assembly.mov + 8 * hw.assembly.pop + 3 * hw.assembly.out + 1 * hw.assembly.in + 1 * hw.assembly.cli + 1 * hw.assembly.adiw + 1 * hw.assembly.ret;
- return yout;
-}
-
-// generic_timing_shift_l_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 20
-double generic_timing_shift_l_double(double zIn, double *z, signed int N)
-{
- generic_timer = generic_timer + 2 * hw.assembly.push + 3 * hw.assembly.in + 3 * hw.assembly.out + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli + 8 * hw.assembly.std;
- signed int i;
- double zOut=z[0l];
- generic_timer = generic_timer + 5 * hw.assembly.ldd + 2 * hw.assembly.mov + 4 * hw.assembly.std + 1 * hw.assembly.ld;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- {
- generic_timer = generic_timer + 17 * hw.assembly.ldd + 4 * hw.assembly.lsl + 4 * hw.assembly.rol + 2 * hw.assembly.add + 2 * hw.assembly.adc + 6 * hw.assembly.mov + 2 * hw.assembly.adiw + 5 * hw.assembly.std + 1 * hw.assembly.ld + 1 * hw.assembly.st + 1 * hw.assembly.subi + 1 * hw.assembly.sbc + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brlt;
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- }
- z[(signed long int)(N - 1)] = zIn;
- generic_timer = generic_timer + 12 * hw.assembly.ldd + 6 * hw.assembly.mov + 3 * hw.assembly.std + 2 * hw.assembly.lsl + 2 * hw.assembly.rol + 1 * hw.assembly.adc + 1 * hw.assembly.add + 1 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.st + 1 * hw.assembly.adiw + 1 * hw.assembly.in + 1 * hw.assembly.cli;
- generic_timer = generic_timer + 3 * hw.assembly.out + 2 * hw.assembly.pop + 1 * hw.assembly.ret;
- return zOut;
-}
-
-// generic_timing_shift_r_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 37
-double generic_timing_shift_r_double(double zIn, double *z, signed int N)
-{
- generic_timer = generic_timer + 2 * hw.assembly.push + 3 * hw.assembly.in + 3 * hw.assembly.out + 1 * hw.assembly.sbiw + 1 * hw.assembly.cli + 8 * hw.assembly.std;
- signed int i;
- double zOut=z[(signed long int)(N - 1)];
- generic_timer = generic_timer + 7 * hw.assembly.ldd + 2 * hw.assembly.rol + 2 * hw.assembly.lsl + 2 * hw.assembly.mov + 4 * hw.assembly.std + 1 * hw.assembly.add + 1 * hw.assembly.adc + 1 * hw.assembly.ld + 1 * hw.assembly.subi + 1 * hw.assembly.sbci;
- generic_timer = generic_timer + 2 * hw.assembly.ldd + 2 * hw.assembly.std + 1 * hw.assembly.sbiw + 1 * hw.assembly.rjmp;
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- {
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- generic_timer = generic_timer + 15 * hw.assembly.ldd + 4 * hw.assembly.lsl + 4 * hw.assembly.rol + 2 * hw.assembly.add + 2 * hw.assembly.adc + 4 * hw.assembly.mov + 5 * hw.assembly.std + 1 * hw.assembly.subi + 1 * hw.assembly.sbci + 1 * hw.assembly.ld + 1 * hw.assembly.st + 1 * hw.assembly.sbiw + 1 * hw.assembly.cp + 1 * hw.assembly.cpc + 1 * hw.assembly.brlt;
- }
- z[0l] = zIn;
- generic_timer = generic_timer + 10 * hw.assembly.ldd + 5 * hw.assembly.mov + 3 * hw.assembly.std + 3 * hw.assembly.out + 2 * hw.assembly.pop + 1 * hw.assembly.ret + 1 * hw.assembly.ret + 1 * hw.assembly.cli + 1 * hw.assembly.in + 1 * hw.assembly.st + 1 * hw.assembly.adiw;
- return zOut;
-}
-
-// get_delta_transfer_function
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 52
-void get_delta_transfer_function(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta)
-{
- generate_delta_coefficients(b, b_out, b_size, delta);
- generate_delta_coefficients(a, a_out, a_size, delta);
-}
-
-// get_delta_transfer_function_with_base
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 59
-void get_delta_transfer_function_with_base(double *b, double *b_out, signed int b_size, double *a, double *a_out, signed int a_size, double delta)
-{
- signed int i;
- signed int j;
- signed int N=a_size - 1;
- signed int M=b_size - 1;
- double sum_delta_operator;
- i = 0;
- for( ; N >= i; i = i + 1)
- {
- sum_delta_operator = 0.000000;
- j = 0;
- for( ; i >= j; j = j + 1)
- {
- signed int return_value_nchoosek$1=nchoosek(N - j, i - j);
- sum_delta_operator = sum_delta_operator + a[(signed long int)j] * (double)return_value_nchoosek$1;
- }
- double return_value_internal_pow$2=internal_pow(delta, (double)(N - i));
- a_out[(signed long int)i] = return_value_internal_pow$2 * sum_delta_operator;
- }
- i = 0;
- for( ; M >= i; i = i + 1)
- {
- sum_delta_operator = 0.000000;
- j = 0;
- for( ; i >= j; j = j + 1)
- {
- signed int return_value_nchoosek$3=nchoosek(M - j, i - j);
- sum_delta_operator = sum_delta_operator + b[(signed long int)j] * (double)return_value_nchoosek$3;
- }
- double return_value_internal_pow$4=internal_pow(delta, (double)(M - i));
- b_out[(signed long int)i] = return_value_internal_pow$4 * sum_delta_operator;
- }
-}
-
-// iirIIOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 428
-float iirIIOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- float *a_ptr;
- float *b_ptr;
- float *w_ptr;
- float sum=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- w_ptr = &w[1l];
- signed int k;
- signed int j;
- timer1 = timer1 + 71;
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- float *tmp_post$1=a_ptr;
- a_ptr = a_ptr + 1l;
- float *tmp_post$2=w_ptr;
- w_ptr = w_ptr + 1l;
- w[0l] = w[0l] - *tmp_post$1 * *tmp_post$2;
- timer1 = timer1 + 54;
- }
- w[0l] = w[0l] + x;
- w_ptr = &w[0l];
- k = 0;
- for( ; !(k >= Nb); k = k + 1)
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- float *tmp_post$4=w_ptr;
- w_ptr = w_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- timer1 = timer1 + 46;
- }
- timer1 = timer1 + 38;
- /* assertion (double)timer1*CYCLE <= (double)DEADLINE */
- assert(((double)timer1 * 1.000000) / 1.600000e+7 <= 1.000000 / 100.000000);
- if((double)timer1 / 1.600000e+7 <= 1.000000 / 100.000000)
- (void)0;
-
- return sum;
-}
-
-// iirIItOutTime
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 452
-float iirIItOutTime(float *w, float x, float *a, float *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- float *a_ptr;
- float *b_ptr;
- float yout=0.000000f;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- timer1 = timer1 + 105;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- float *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- timer1 = timer1 + 41;
- }
-
- if(!(j >= -1 + Nb))
- {
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- timer1 = timer1 + 38;
- }
-
- timer1 = timer1 + 54;
- }
- timer1 = timer1 + 7;
- /* assertion (double)timer1*CYCLE <= (double)DEADLINE */
- assert(((double)timer1 * 1.000000) / 1.600000e+7 <= 1.000000 / 100.000000);
- if((double)timer1 / 1.600000e+7 <= 1.000000 / 100.000000)
- (void)0;
-
- return yout;
-}
-
-// iirIItOutTime_double
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 479
-double iirIItOutTime_double(double *w, double x, double *a, double *b, signed int Na, signed int Nb)
-{
- signed int timer1=0;
- double *a_ptr;
- double *b_ptr;
- double yout=0.000000;
- a_ptr = &a[1l];
- b_ptr = &b[0l];
- signed int Nw=Na > Nb ? Na : Nb;
- double *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- yout = *tmp_post$1 * x + w[0l];
- signed int j;
- timer1 = timer1 + 105;
- j = 0;
- for( ; !(j >= -1 + Nw); j = j + 1)
- {
- w[(signed long int)j] = w[(signed long int)(j + 1)];
- if(!(j >= -1 + Na))
- {
- double *tmp_post$2=a_ptr;
- a_ptr = a_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] - *tmp_post$2 * yout;
- timer1 = timer1 + 41;
- }
-
- if(!(j >= -1 + Nb))
- {
- double *tmp_post$3=b_ptr;
- b_ptr = b_ptr + 1l;
- w[(signed long int)j] = w[(signed long int)j] + *tmp_post$3 * x;
- timer1 = timer1 + 38;
- }
-
- timer1 = timer1 + 54;
- }
- timer1 = timer1 + 7;
- /* assertion (double)timer1*CYCLE <= (double)DEADLINE */
- assert(((double)timer1 * 1.000000) / 1.600000e+7 <= 1.000000 / 100.000000);
- if((double)timer1 / 1.600000e+7 <= 1.000000 / 100.000000)
- (void)0;
-
- return yout;
-}
-
-// iirOutBoth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 506
-void iirOutBoth(float *yf, float *xf, float *af, float *bf, float *sumf_ref, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int *sum_ref, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- float *af_ptr;
- float *yf_ptr;
- float *bf_ptr;
- float *xf_ptr;
- signed long int sum=0l;
- float sumf=0.000000f;
- a_ptr = &a[1l];
- y_ptr = &y[(signed long int)(Na - 1)];
- b_ptr = &b[0l];
- x_ptr = &x[(signed long int)(Nb - 1)];
- af_ptr = &af[1l];
- yf_ptr = &yf[(signed long int)(Na - 1)];
- bf_ptr = &bf[0l];
- xf_ptr = &xf[(signed long int)(Nb - 1)];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= Nb); i = i + 1)
- {
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr + 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr - 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- float *tmp_post$4=bf_ptr;
- bf_ptr = bf_ptr + 1l;
- float *tmp_post$5=xf_ptr;
- xf_ptr = xf_ptr - 1l;
- sumf = sumf + *tmp_post$4 * *tmp_post$5;
- }
- j = 1;
- for( ; !(j >= Na); j = j + 1)
- {
- signed long int *tmp_post$6=a_ptr;
- a_ptr = a_ptr + 1l;
- signed long int *tmp_post$7=y_ptr;
- y_ptr = y_ptr - 1l;
- signed long int return_value_fxp_mult$8=fxp_mult(*tmp_post$6, *tmp_post$7);
- sum=fxp_sub(sum, return_value_fxp_mult$8);
- float *tmp_post$9=af_ptr;
- af_ptr = af_ptr + 1l;
- float *tmp_post$10=yf_ptr;
- yf_ptr = yf_ptr - 1l;
- sumf = sumf - *tmp_post$9 * *tmp_post$10;
- }
- *sum_ref = sum;
- *sumf_ref = sumf;
-}
-
-// iirOutBothL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 586
-float iirOutBothL(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- float *af_ptr;
- float *yf_ptr;
- float *bf_ptr;
- float *xf_ptr;
- float sumf=0.000000f;
- af_ptr = &af[(signed long int)(Na - 1)];
- yf_ptr = &yf[1l];
- bf_ptr = &bf[(signed long int)(Nb - 1)];
- xf_ptr = &xf[0l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- xf[(signed long int)i] = xf[(signed long int)(i + 1)];
- float *tmp_post$4=bf_ptr;
- bf_ptr = bf_ptr - 1l;
- float *tmp_post$5=xf_ptr;
- xf_ptr = xf_ptr + 1l;
- sumf = sumf + *tmp_post$4 * *tmp_post$5;
- }
- x[(signed long int)(Nb - 1)] = xin;
- signed long int *tmp_post$6=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$7=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$8=fxp_mult(*tmp_post$6, *tmp_post$7);
- sum=fxp_add(sum, return_value_fxp_mult$8);
- xf[(signed long int)(Nb - 1)] = xfin;
- float *tmp_post$9=bf_ptr;
- bf_ptr = bf_ptr - 1l;
- float *tmp_post$10=xf_ptr;
- xf_ptr = xf_ptr + 1l;
- sumf = sumf + *tmp_post$9 * *tmp_post$10;
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- signed long int *tmp_post$11=a_ptr;
- a_ptr = a_ptr - 1l;
- signed long int *tmp_post$12=y_ptr;
- y_ptr = y_ptr + 1l;
- signed long int return_value_fxp_mult$13=fxp_mult(*tmp_post$11, *tmp_post$12);
- sum=fxp_sub(sum, return_value_fxp_mult$13);
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- float *tmp_post$14=af_ptr;
- af_ptr = af_ptr - 1l;
- float *tmp_post$15=yf_ptr;
- yf_ptr = yf_ptr + 1l;
- sumf = sumf - *tmp_post$14 * *tmp_post$15;
- yf[(signed long int)j] = yf[(signed long int)(j + 1)];
- }
- signed long int *tmp_post$16;
- signed long int *tmp_post$17;
- signed long int return_value_fxp_mult$18;
- if(Na >= 2)
- {
- tmp_post$16 = a_ptr;
- a_ptr = a_ptr - 1l;
- tmp_post$17 = y_ptr;
- y_ptr = y_ptr + 1l;
- return_value_fxp_mult$18=fxp_mult(*tmp_post$16, *tmp_post$17);
- sum=fxp_sub(sum, return_value_fxp_mult$18);
- }
-
- y[(signed long int)(Na - 1)] = sum;
- float *tmp_post$19;
- float *tmp_post$20;
- if(Na >= 2)
- {
- tmp_post$19 = af_ptr;
- af_ptr = af_ptr - 1l;
- tmp_post$20 = yf_ptr;
- yf_ptr = yf_ptr + 1l;
- sumf = sumf - *tmp_post$19 * *tmp_post$20;
- }
-
- yf[(signed long int)(Na - 1)] = sumf;
- float return_value_fxp_to_float$21=fxp_to_float(sum);
- return return_value_fxp_to_float$21 - sumf;
-}
-
-// iirOutBothL2
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 626
-float iirOutBothL2(float *yf, float *xf, float *af, float *bf, float xfin, signed long int *y, signed long int *x, signed long int *a, signed long int *b, signed long int xin, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- float *af_ptr;
- float *yf_ptr;
- float *bf_ptr;
- float *xf_ptr;
- float sumf=0.000000f;
- af_ptr = &af[(signed long int)(Na - 1)];
- yf_ptr = &yf[1l];
- bf_ptr = &bf[(signed long int)(Nb - 1)];
- xf_ptr = &xf[0l];
- signed int i=0;
- signed int j=1;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- signed long int return_value_fxp_mult$1=fxp_mult(b[(signed long int)((Nb - 1) - i)], x[(signed long int)i]);
- sum=fxp_add(sum, return_value_fxp_mult$1);
- xf[(signed long int)i] = xf[(signed long int)(i + 1)];
- sumf = sumf + bf[(signed long int)((Nb - 1) - i)] * xf[(signed long int)i];
- }
- x[(signed long int)(Nb - 1)] = xin;
- signed long int return_value_fxp_mult$2=fxp_mult(b[(signed long int)((Nb - 1) - i)], x[(signed long int)i]);
- sum=fxp_add(sum, return_value_fxp_mult$2);
- xf[(signed long int)(Nb - 1)] = xfin;
- sumf = sumf + bf[(signed long int)((Nb - 1) - i)] * xf[(signed long int)i];
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- signed long int return_value_fxp_mult$3=fxp_mult(a[(signed long int)(Na - j)], y[(signed long int)j]);
- sum=fxp_sub(sum, return_value_fxp_mult$3);
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- sumf = sumf - af[(signed long int)(Na - j)] * yf[(signed long int)j];
- yf[(signed long int)j] = yf[(signed long int)(j + 1)];
- }
- signed long int return_value_fxp_mult$4;
- if(Na >= 2)
- {
- return_value_fxp_mult$4=fxp_mult(a[(signed long int)(Na - j)], y[(signed long int)j]);
- sum=fxp_sub(sum, return_value_fxp_mult$4);
- }
-
- y[(signed long int)(Na - 1)] = sum;
- if(Na >= 2)
- sumf = sumf - af[(signed long int)(Na - j)] * yf[(signed long int)j];
-
- yf[(signed long int)(Na - 1)] = sumf;
- float return_value_fxp_to_float$5=fxp_to_float(sum);
- return return_value_fxp_to_float$5 - sumf;
-}
-
-// iirOutFixedL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 536
-signed long int iirOutFixedL(signed long int *y, signed long int *x, signed long int xin, signed long int *a, signed long int *b, signed int Na, signed int Nb)
-{
- signed long int *a_ptr;
- signed long int *y_ptr;
- signed long int *b_ptr;
- signed long int *x_ptr;
- signed long int sum=0l;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- signed long int *tmp_post$1=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$2=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$3=fxp_mult(*tmp_post$1, *tmp_post$2);
- sum=fxp_add(sum, return_value_fxp_mult$3);
- }
- x[(signed long int)(Nb - 1)] = xin;
- signed long int *tmp_post$4=b_ptr;
- b_ptr = b_ptr - 1l;
- signed long int *tmp_post$5=x_ptr;
- x_ptr = x_ptr + 1l;
- signed long int return_value_fxp_mult$6=fxp_mult(*tmp_post$4, *tmp_post$5);
- sum=fxp_add(sum, return_value_fxp_mult$6);
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- signed long int *tmp_post$7=a_ptr;
- a_ptr = a_ptr - 1l;
- signed long int *tmp_post$8=y_ptr;
- y_ptr = y_ptr + 1l;
- signed long int return_value_fxp_mult$9=fxp_mult(*tmp_post$7, *tmp_post$8);
- sum=fxp_sub(sum, return_value_fxp_mult$9);
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- }
- signed long int *tmp_post$10;
- signed long int *tmp_post$11;
- signed long int return_value_fxp_mult$12;
- if(Na >= 2)
- {
- tmp_post$10 = a_ptr;
- a_ptr = a_ptr - 1l;
- tmp_post$11 = y_ptr;
- y_ptr = y_ptr + 1l;
- return_value_fxp_mult$12=fxp_mult(*tmp_post$10, *tmp_post$11);
- sum=fxp_sub(sum, return_value_fxp_mult$12);
- }
-
- y[(signed long int)(Na - 1)] = sum;
- return sum;
-}
-
-// iirOutFloatL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 561
-float iirOutFloatL(float *y, float *x, float xin, float *a, float *b, signed int Na, signed int Nb)
-{
- float *a_ptr;
- float *y_ptr;
- float *b_ptr;
- float *x_ptr;
- float sum=0.000000f;
- a_ptr = &a[(signed long int)(Na - 1)];
- y_ptr = &y[1l];
- b_ptr = &b[(signed long int)(Nb - 1)];
- x_ptr = &x[0l];
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= -1 + Nb); i = i + 1)
- {
- x[(signed long int)i] = x[(signed long int)(i + 1)];
- float *tmp_post$1=b_ptr;
- b_ptr = b_ptr - 1l;
- float *tmp_post$2=x_ptr;
- x_ptr = x_ptr + 1l;
- sum = sum + *tmp_post$1 * *tmp_post$2;
- }
- x[(signed long int)(Nb - 1)] = xin;
- float *tmp_post$3=b_ptr;
- b_ptr = b_ptr - 1l;
- float *tmp_post$4=x_ptr;
- x_ptr = x_ptr + 1l;
- sum = sum + *tmp_post$3 * *tmp_post$4;
- j = 1;
- for( ; !(j >= -1 + Na); j = j + 1)
- {
- float *tmp_post$5=a_ptr;
- a_ptr = a_ptr - 1l;
- float *tmp_post$6=y_ptr;
- y_ptr = y_ptr + 1l;
- sum = sum - *tmp_post$5 * *tmp_post$6;
- y[(signed long int)j] = y[(signed long int)(j + 1)];
- }
- float *tmp_post$7;
- float *tmp_post$8;
- if(Na >= 2)
- {
- tmp_post$7 = a_ptr;
- a_ptr = a_ptr - 1l;
- tmp_post$8 = y_ptr;
- y_ptr = y_ptr + 1l;
- sum = sum - *tmp_post$7 * *tmp_post$8;
- }
-
- y[(signed long int)(Na - 1)] = sum;
- return sum;
-}
-
-// initialization
-// file /home/lucascordeiro/dsverifier/bmc/core/initialization.h line 24
-void initialization()
-{
- if(impl.frac_bits >= 32)
- printf("impl.frac_bits must be less than word width!\n");
-
- if(impl.int_bits >= 32 + -impl.frac_bits)
- {
- printf("impl.int_bits must be less than word width subtracted by precision!\n");
- /* assertion 0 */
- assert(0 != 0);
- }
-
- if(impl.frac_bits >= 31)
- _fxp_one = 2147483647l;
-
- else
- _fxp_one = (signed long int)(0x1 << impl.frac_bits);
- _fxp_half = (signed long int)(0x1 << impl.frac_bits - 1);
- _fxp_minus_one = (signed long int)-(0x1 << impl.frac_bits);
- _fxp_min = (signed long int)-(0x1 << (impl.frac_bits + impl.int_bits) - 1);
- _fxp_max = (signed long int)((0x1 << (impl.frac_bits + impl.int_bits) - 1) - 1);
- _fxp_fmask = (signed long int)((1 << impl.frac_bits) - 1);
- _fxp_imask = (signed long int)(0x80000000u >> (32 - impl.frac_bits) - 1);
- _dbl_min = (double)_fxp_min;
- _dbl_min = _dbl_min / (double)(1 << impl.frac_bits);
- _dbl_max = (double)_fxp_max;
- _dbl_max = _dbl_max / (double)(1 << impl.frac_bits);
- if(impl.scale == 0 || impl.scale == 1)
- impl.scale = 1;
-
- else
- {
- if(IEEE_FLOAT_NOTEQUAL(impl.min, 0.000000))
- impl.min = impl.min / (double)impl.scale;
-
- if(IEEE_FLOAT_NOTEQUAL(impl.max, 0.000000))
- impl.max = impl.max / (double)impl.scale;
-
- }
-}
-
-// initialize_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 22
-void initialize_array(double *v, signed int n)
-{
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- v[(signed long int)i] = 0.000000;
-}
-
-// internal_abs
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 49
-double internal_abs(double a)
-{
- return a < 0.000000 ? -a : a;
-}
-
-// internal_pow
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 39
-double internal_pow(double a, double b)
-{
- signed int i;
- double acc=1.000000;
- i = 0;
- for( ; (double)i < b; i = i + 1)
- acc = acc * a;
- return acc;
-}
-
-// main
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 60
-signed int main()
-{
- initialization();
- validation();
- rounding_mode = 1;
- call_closedloop_verification_task((void *)verify_stability_closedloop_using_dslib);
- return 0;
-}
-
-// nchoosek
-// file /home/lucascordeiro/dsverifier/bmc/core/delta-operator.h line 23
-signed int nchoosek(signed int n, signed int k)
-{
- if(k == 0)
- return 1;
-
- else
- {
- signed int return_value_nchoosek$1=nchoosek(n - 1, k - 1);
- return (n * return_value_nchoosek$1) / k;
- }
-}
-
-// order
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 158
-signed int order(signed int Na, signed int Nb)
-{
- return Na > Nb ? Na - 1 : Nb - 1;
-}
-
-// poly_mult
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 165
-void poly_mult(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans)
-{
- signed int i;
- signed int j;
- signed int k;
- Nans = (Na + Nb) - 1;
- i = 0;
- for( ; !(i >= Na); i = i + 1)
- {
- j = 0;
- for( ; !(j >= Nb); j = j + 1)
- {
- k = (((Na + Nb) - i) - j) - 2;
- ans[(signed long int)k] = 0.000000;
- }
- }
- i = 0;
- for( ; !(i >= Na); i = i + 1)
- {
- j = 0;
- for( ; !(j >= Nb); j = j + 1)
- {
- k = (((Na + Nb) - i) - j) - 2;
- ans[(signed long int)k] = ans[(signed long int)k] + a[(signed long int)((Na - i) - 1)] * b[(signed long int)((Nb - j) - 1)];
- }
- }
-}
-
-// poly_sum
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 141
-void poly_sum(double *a, signed int Na, double *b, signed int Nb, double *ans, signed int Nans)
-{
- signed int i;
- Nans = Na > Nb ? Na : Nb;
- i = 0;
- for( ; !(i >= Nans); i = i + 1)
- if(!(Nb >= Na))
- {
- ans[(signed long int)i] = a[(signed long int)i];
- if(!(-1 + Na + -Nb >= i))
- ans[(signed long int)i] = ans[(signed long int)i] + b[(signed long int)((i - Na) + Nb)];
-
- }
-
- else
- {
- ans[(signed long int)i] = b[(signed long int)i];
- if(!(-1 + Nb + -Na >= i))
- ans[(signed long int)i] = ans[(signed long int)i] + a[(signed long int)((i - Nb) + Na)];
-
- }
-}
-
-// print_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 305
-void print_array_elements(char *name, double *v, signed int n)
-{
- printf("%s = {", name);
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- printf(" %.32f ", v[(signed long int)i]);
- printf("}\n");
-}
-
-// print_fxp_array_elements
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 419
-void print_fxp_array_elements(char *name, signed long int *v, signed int n)
-{
- printf("%s = {", name);
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- printf(" %jd ", v[(signed long int)i]);
- printf("}\n");
-}
-
-// print_matrix
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 481
-void print_matrix(double (*matrix)[20l], unsigned int lines, unsigned int columns)
-{
- printf("\nMatrix\n=====================\n\n");
- unsigned int i;
- unsigned int j;
- i = 0u;
- for( ; !(i >= lines); i = i + 1u)
- {
- j = 0u;
- for( ; !(j >= columns); j = j + 1u)
- printf("#matrix[%d][%d]: %2.2f ", i, j, matrix[(signed long int)i][(signed long int)j]);
- printf("\n");
- }
- printf("\n");
-}
-
-// rand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 417
-extern signed int rand(void)
-{
- next = next * 1103515245ul + 12345ul;
- return (signed int)((unsigned int)(next / 65536ul) % 32768u);
-}
-
-// revert_array
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 30
-void revert_array(double *v, double *out, signed int n)
-{
- initialize_array(out, n);
- signed int i=0;
- for( ; !(i >= n); i = i + 1)
- out[(signed long int)i] = v[(signed long int)((n - i) - 1)];
-}
-
-// shiftL
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 53
-signed long int shiftL(signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftLDouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 119
-double shiftLDouble(double zIn, double *z, signed int N)
-{
- signed int i;
- double zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftLboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 130
-void shiftLboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut;
- float zfOut;
- zOut = z[0l];
- zfOut = zf[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- {
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- zf[(signed long int)i] = zf[(signed long int)(i + 1)];
- }
- z[(signed long int)(N - 1)] = zIn;
- zf[(signed long int)(N - 1)] = zfIn;
-}
-
-// shiftLfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 75
-float shiftLfloat(float zIn, float *z, signed int N)
-{
- signed int i;
- float zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftR
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 64
-signed long int shiftR(signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut=z[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- z[0l] = zIn;
- return zOut;
-}
-
-// shiftRDdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 97
-double shiftRDdouble(double zIn, double *z, signed int N)
-{
- signed int i;
- double zOut=z[0l];
- i = 0;
- for( ; !(i >= -1 + N); i = i + 1)
- z[(signed long int)i] = z[(signed long int)(i + 1)];
- z[(signed long int)(N - 1)] = zIn;
- return zOut;
-}
-
-// shiftRboth
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 144
-void shiftRboth(float zfIn, float *zf, signed long int zIn, signed long int *z, signed int N)
-{
- signed int i;
- signed long int zOut;
- float zfOut;
- zOut = z[(signed long int)(N - 1)];
- zfOut = zf[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- {
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- zf[(signed long int)i] = zf[(signed long int)(i - 1)];
- }
- z[0l] = zIn;
- zf[0l] = zfIn;
-}
-
-// shiftRdouble
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 108
-double shiftRdouble(double zIn, double *z, signed int N)
-{
- signed int i;
- double zOut=z[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- z[0l] = zIn;
- return zOut;
-}
-
-// shiftRfloat
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 86
-float shiftRfloat(float zIn, float *z, signed int N)
-{
- signed int i;
- float zOut=z[(signed long int)(N - 1)];
- i = N - 1;
- for( ; i >= 1; i = i - 1)
- z[(signed long int)i] = z[(signed long int)(i - 1)];
- z[0l] = zIn;
- return zOut;
-}
-
-// snrPoint
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 402
-float snrPoint(float *s, float *n, signed int blksz)
-{
- signed int i;
- double ratio=0.000000;
- double power=0.000000;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- if(!IEEE_FLOAT_EQUAL(n[(signed long int)i], 0.000000f))
- {
- ratio = (double)(s[(signed long int)i] / n[(signed long int)i]);
- if(!(ratio < -150.000000) && !(ratio > 150.000000))
- {
- power = ratio * ratio;
- /* assertion power >= 1.0f */
- assert(power >= 1.000000);
- if(power >= 1.000000)
- (void)0;
-
- }
-
- }
-
- return 9.999900e+3f;
-}
-
-// snrPower
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 381
-float snrPower(float *s, float *n, signed int blksz)
-{
- signed int i;
- double sv=0.000000;
- double nv=0.000000;
- double snr;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- {
- sv = sv + (double)(s[(signed long int)i] * s[(signed long int)i]);
- nv = nv + (double)(n[(signed long int)i] * n[(signed long int)i]);
- }
- if(IEEE_FLOAT_NOTEQUAL(nv, 0.000000))
- {
- /* assertion sv >= nv */
- assert(sv >= nv);
- if(sv >= nv)
- (void)0;
-
- snr = sv / nv;
- return (float)snr;
- }
-
- else
- return 9.999900e+3f;
-}
-
-// snrVariance
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 357
-float snrVariance(float *s, float *n, signed int blksz)
-{
- signed int i;
- double sm=0.000000;
- double nm=0.000000;
- double sv=0.000000;
- double nv=0.000000;
- double snr;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- {
- sm = sm + (double)s[(signed long int)i];
- nm = nm + (double)n[(signed long int)i];
- }
- sm = sm / (double)blksz;
- nm = nm / (double)blksz;
- i = 0;
- for( ; !(i >= blksz); i = i + 1)
- {
- sv = sv + ((double)s[(signed long int)i] - sm) * ((double)s[(signed long int)i] - sm);
- nv = nv + ((double)n[(signed long int)i] - nm) * ((double)n[(signed long int)i] - nm);
- }
- if(IEEE_FLOAT_NOTEQUAL(nv, 0.000000))
- {
- /* assertion sv >= nv */
- assert(sv >= nv);
- if(sv >= nv)
- (void)0;
-
- snr = sv / nv;
- return (float)snr;
- }
-
- else
- return 9.999900e+3f;
-}
-
-// srand
-// file /home/lucascordeiro/dsverifier/bmc/core/functions.h line 423
-extern void srand(unsigned int seed)
-{
- next = (unsigned long int)seed;
-}
-
-// transpose
-// file /home/lucascordeiro/dsverifier/bmc/core/util.h line 571
-void transpose(double (*a)[20l], double (*b)[20l], signed int n, signed int m)
-{
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= n); i = i + 1)
- {
- j = 0;
- for( ; !(j >= m); j = j + 1)
- b[(signed long int)j][(signed long int)i] = a[(signed long int)i][(signed long int)j];
- }
-}
-
-// validation
-// file /home/lucascordeiro/dsverifier/bmc/dsverifier.h line 125
-void validation()
-{
- if(controller.a_size == 0 || plant.b_size == 0 || impl.int_bits == 0)
- {
- printf("\n\n*****************************************************************************************************\n");
- printf("* set (controller, plant, and impl) parameters to check CLOSED LOOP with DSVerifier *\n");
- printf("*****************************************************************************************************\n");
- __DSVERIFIER_assert((_Bool)0);
- }
-
- else
- {
- printf("\n\n*****************************************************************************************************\n");
- printf("* set (controller and impl) parameters so that they do not overflow *\n");
- printf("*****************************************************************************************************\n");
- unsigned int j=0u;
- for( ; !(j >= (unsigned int)controller.a_size); j = j + 1u)
- {
- const double validation$$1$$6$$2$$1$$1$$value=controller.a[(signed long int)j];
- __DSVERIFIER_assert(validation$$1$$6$$2$$1$$1$$value <= _dbl_max);
- __DSVERIFIER_assert(validation$$1$$6$$2$$1$$1$$value >= _dbl_min);
- }
- j = 0u;
- for( ; !(j >= (unsigned int)controller.b_size); j = j + 1u)
- {
- const double value=controller.b[(signed long int)j];
- __DSVERIFIER_assert(value <= _dbl_max);
- __DSVERIFIER_assert(value >= _dbl_min);
- }
- }
-}
-
-// verify_controllability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 16
-signed int verify_controllability(void)
-{
- signed int i;
- signed int j;
- signed long int A_fpx[20l][20l];
- signed long int B_fpx[20l][20l];
- signed long int controllabilityMatrix[20l][20l];
- signed long int backup[20l][20l];
- signed long int backupSecond[20l][20l];
- double controllabilityMatrix_double[20l][20l];
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs * nStates); j = j + 1)
- {
- A_fpx[(signed long int)i][(signed long int)j] = 0l;
- B_fpx[(signed long int)i][(signed long int)j] = 0l;
- controllabilityMatrix[(signed long int)i][(signed long int)j] = 0l;
- backup[(signed long int)i][(signed long int)j] = 0l;
- backupSecond[(signed long int)i][(signed long int)j] = 0l;
- controllabilityMatrix_double[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.A[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- B_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.B[(signed long int)i][(signed long int)j]);
- }
- if(nInputs >= 2)
- {
- signed int l=0;
- j = 0;
- while(!(j >= nInputs * nStates))
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)l, backup);
- l = l + 1;
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, B_fpx, backupSecond);
- signed int k=0;
- for( ; !(k >= nInputs); k = k + 1)
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][(signed long int)k];
- j = j + 1;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs * nStates); j = j + 1)
- backup[(signed long int)i][(signed long int)j] = 0l;
- }
- fxp_transpose(controllabilityMatrix, backup, nStates, nStates * nInputs);
- signed long int mimo_controllabilityMatrix_fxp[20l][20l];
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)(nStates * nInputs), (unsigned int)(nStates * nInputs), (unsigned int)nStates, controllabilityMatrix, backup, mimo_controllabilityMatrix_fxp);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- controllabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(mimo_controllabilityMatrix_fxp[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$1=determinant(controllabilityMatrix_double, nStates);
- /* assertion determinant(controllabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000))
- (void)0;
-
- }
-
- else
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)j, backup);
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, B_fpx, backupSecond);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][0l];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- controllabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(controllabilityMatrix[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$2=determinant(controllabilityMatrix_double, nStates);
- /* assertion determinant(controllabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000))
- (void)0;
-
- }
- return 0;
-}
-
-// verify_controllability_double
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_controllability.h line 120
-signed int verify_controllability_double(void)
-{
- signed int i;
- signed int j;
- double controllabilityMatrix[20l][20l];
- double backup[20l][20l];
- double backupSecond[20l][20l];
- double controllabilityMatrix_double[20l][20l];
- if(nInputs >= 2)
- {
- signed int l=0;
- j = 0;
- while(!(j >= nInputs * nStates))
- {
- double_exp_matrix((unsigned int)nStates, (unsigned int)nStates, _controller.A, (unsigned int)l, backup);
- l = l + 1;
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, _controller.B, backupSecond);
- signed int k=0;
- for( ; !(k >= nInputs); k = k + 1)
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][(signed long int)k];
- j = j + 1;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs * nStates); j = j + 1)
- backup[(signed long int)i][(signed long int)j] = 0.000000;
- }
- transpose(controllabilityMatrix, backup, nStates, nStates * nInputs);
- double mimo_controllabilityMatrix_double[20l][20l];
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)(nStates * nInputs), (unsigned int)(nStates * nInputs), (unsigned int)nStates, controllabilityMatrix, backup, mimo_controllabilityMatrix_double);
- double return_value_determinant$1=determinant(mimo_controllabilityMatrix_double, nStates);
- /* assertion determinant(mimo_controllabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000))
- (void)0;
-
- }
-
- else
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- {
- double_exp_matrix((unsigned int)nStates, (unsigned int)nStates, _controller.A, (unsigned int)j, backup);
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nInputs, backup, _controller.B, backupSecond);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- controllabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[(signed long int)i][0l];
- }
- double return_value_determinant$2=determinant(controllabilityMatrix, nStates);
- /* assertion determinant(controllabilityMatrix,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000))
- (void)0;
-
- }
- return 0;
-}
-
-// verify_error
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error.h line 20
-signed int verify_error(void)
-{
- overflow_mode = 2;
- double a_cascade[100l];
- signed int a_cascade_size;
- double b_cascade[100l];
- signed int b_cascade_size;
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[max_fxp$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- const signed long int x$array_size0=(signed long int)X_SIZE_VALUE;
- double yf[x$array_size0];
- const signed long int yf$array_size0=(signed long int)X_SIZE_VALUE;
- double xf[yf$array_size0];
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- signed long int xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- signed long int waux[xaux$array_size0];
- const signed long int waux$array_size0=(signed long int)ds.a_size;
- double yfaux[waux$array_size0];
- const signed long int yfaux$array_size0=(signed long int)ds.b_size;
- double xfaux[yfaux$array_size0];
- const signed long int xfaux$array_size0=(signed long int)Nw;
- double wfaux[xfaux$array_size0];
- signed int i=0;
- for( ; !(i >= ds.a_size); i = i + 1)
- {
- yaux[(signed long int)i] = 0l;
- yfaux[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- {
- xaux[(signed long int)i] = 0l;
- xfaux[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- waux[(signed long int)i] = 0l;
- wfaux[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- signed int return_value_nondet_int$1=nondet_int();
- x[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = x[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- yf[(signed long int)i] = 0.000000;
- xf[(signed long int)i]=fxp_to_double(x[(signed long int)i]);
- }
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- double absolute_error;
- double return_value_fxp_to_double$3=fxp_to_double(y[(signed long int)i]);
- absolute_error = yf[(signed long int)i] - return_value_fxp_to_double$3;
- __DSVERIFIER_assert(absolute_error < impl.max_error && absolute_error > -impl.max_error);
- }
- return 0;
-}
-
-// verify_error_closedloop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_closedloop.h line 27
-signed int verify_error_closedloop(void)
-{
- overflow_mode = 3;
- double *c_num=controller.b;
- signed int c_num_size=controller.b_size;
- double *c_den=controller.a;
- signed int c_den_size=controller.a_size;
- const signed long int c_den_size$array_size0=(signed long int)controller.b_size;
- signed long int c_num_fxp[c_den_size$array_size0];
- fxp_double_to_fxp_array(c_num, c_num_fxp, controller.b_size);
- const signed long int c_num_fxp$array_size0=(signed long int)controller.a_size;
- signed long int c_den_fxp[c_num_fxp$array_size0];
- fxp_double_to_fxp_array(c_den, c_den_fxp, controller.a_size);
- const signed long int c_den_fxp$array_size0=(signed long int)controller.b_size;
- double c_num_qtz[c_den_fxp$array_size0];
- fxp_to_double_array(c_num_qtz, c_num_fxp, controller.b_size);
- const signed long int c_num_qtz$array_size0=(signed long int)controller.a_size;
- double c_den_qtz[c_num_qtz$array_size0];
- fxp_to_double_array(c_den_qtz, c_den_fxp, controller.a_size);
- double *p_num=plant_cbmc.b;
- signed int p_num_size=plant.b_size;
- double *p_den=plant_cbmc.a;
- signed int p_den_size=plant.a_size;
- double ans_num_double[100l];
- double ans_num_qtz[100l];
- signed int ans_num_size=(controller.b_size + plant.b_size) - 1;
- double ans_den_qtz[100l];
- double ans_den_double[100l];
- signed int ans_den_size=(controller.a_size + plant.a_size) - 1;
- ft_closedloop_series(c_num_qtz, c_num_size, c_den_qtz, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num_qtz, ans_num_size, ans_den_qtz, ans_den_size);
- ft_closedloop_series(c_num, c_num_size, c_den, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num_double, ans_num_size, ans_den_double, ans_den_size);
- signed int i;
- const signed long int i$array_size0=(signed long int)X_SIZE_VALUE;
- double y_qtz[i$array_size0];
- const signed long int y_qtz$array_size0=(signed long int)X_SIZE_VALUE;
- double y_double[y_qtz$array_size0];
- const signed long int y_double$array_size0=(signed long int)X_SIZE_VALUE;
- double x_qtz[y_double$array_size0];
- const signed long int x_qtz$array_size0=(signed long int)X_SIZE_VALUE;
- double x_double[x_qtz$array_size0];
- const signed long int x_double$array_size0=(signed long int)ans_num_size;
- double xaux_qtz[x_double$array_size0];
- const signed long int xaux_qtz$array_size0=(signed long int)ans_num_size;
- double xaux_double[xaux_qtz$array_size0];
- const signed long int xaux_double$array_size0=(signed long int)ans_num_size;
- double xaux[xaux_double$array_size0];
- double nondet_constant_input=nondet_double();
- __DSVERIFIER_assume(nondet_constant_input >= impl.min && nondet_constant_input <= impl.max);
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- x_qtz[(signed long int)i] = nondet_constant_input;
- x_double[(signed long int)i] = nondet_constant_input;
- y_qtz[(signed long int)i] = 0.000000;
- y_double[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= ans_num_size); i = i + 1)
- {
- xaux_qtz[(signed long int)i] = nondet_constant_input;
- xaux_double[(signed long int)i] = nondet_constant_input;
- }
- const signed long int nondet_constant_input$array_size0=(signed long int)ans_den_size;
- double yaux_qtz[nondet_constant_input$array_size0];
- const signed long int yaux_qtz$array_size0=(signed long int)ans_den_size;
- double yaux_double[yaux_qtz$array_size0];
- const signed long int yaux_double$array_size0=(signed long int)ans_den_size;
- double y0_qtz[yaux_double$array_size0];
- const signed long int y0_qtz$array_size0=(signed long int)ans_den_size;
- double y0_double[y0_qtz$array_size0];
- signed int Nw=ans_den_size > ans_num_size ? ans_den_size : ans_num_size;
- const signed long int Nw$array_size0=(signed long int)Nw;
- double waux_qtz[Nw$array_size0];
- const signed long int waux_qtz$array_size0=(signed long int)Nw;
- double waux_double[waux_qtz$array_size0];
- const signed long int waux_double$array_size0=(signed long int)Nw;
- double w0_qtz[waux_double$array_size0];
- const signed long int w0_qtz$array_size0=(signed long int)Nw;
- double w0_double[w0_qtz$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- waux_qtz[(signed long int)i] = 0.000000;
- waux_double[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- double absolute_error;
- double return_value_fxp_to_double$1=fxp_to_double((signed long int)y_qtz[(signed long int)i]);
- absolute_error = y_double[(signed long int)i] - return_value_fxp_to_double$1;
- __DSVERIFIER_assert(absolute_error < impl.max_error && absolute_error > -impl.max_error);
- }
- return 0;
-}
-
-// verify_error_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_error_state_space.h line 20
-signed int verify_error_state_space(void)
-{
- overflow_mode = 0;
- struct anonymous$1 __backupController;
- signed int i;
- signed int j;
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- __backupController.A[(signed long int)i][(signed long int)j] = _controller.A[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- __backupController.B[(signed long int)i][(signed long int)j] = _controller.B[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- __backupController.C[(signed long int)i][(signed long int)j] = _controller.C[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- __backupController.D[(signed long int)i][(signed long int)j] = _controller.D[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- __backupController.states[(signed long int)i][(signed long int)j] = _controller.states[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nInputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- __backupController.inputs[(signed long int)i][(signed long int)j] = _controller.inputs[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- __backupController.outputs[(signed long int)i][(signed long int)j] = _controller.outputs[(signed long int)i][(signed long int)j];
- }
- double __quant_error=0.000000;
- double output_double=double_state_space_representation();
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- _controller.A[(signed long int)i][(signed long int)j] = __backupController.A[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- _controller.B[(signed long int)i][(signed long int)j] = __backupController.B[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- _controller.C[(signed long int)i][(signed long int)j] = __backupController.C[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nInputs); j = j + 1)
- _controller.D[(signed long int)i][(signed long int)j] = __backupController.D[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.states[(signed long int)i][(signed long int)j] = __backupController.states[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nInputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.inputs[(signed long int)i][(signed long int)j] = __backupController.inputs[(signed long int)i][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 1); j = j + 1)
- _controller.outputs[(signed long int)i][(signed long int)j] = __backupController.outputs[(signed long int)i][(signed long int)j];
- }
- double output_fxp=fxp_state_space_representation();
- fxp_verify_overflow((signed long int)output_fxp);
- __quant_error = ((output_fxp - output_double) / output_double) * 100.000000;
- /* assertion __quant_error < error_limit && __quant_error > (-error_limit) */
- assert(__quant_error < error_limit && __quant_error > -error_limit);
- if(__quant_error < error_limit && __quant_error > -error_limit)
- (void)0;
-
- return 0;
-}
-
-// verify_generic_timing
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_generic_timing.h line 25
-signed int verify_generic_timing(void)
-{
- const signed long int verify_generic_timing$array_size0=(signed long int)X_SIZE_VALUE;
- double y[verify_generic_timing$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- double x[y$array_size0];
- signed int i=0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0.000000;
- float return_value_nondet_float$1=nondet_float();
- x[(signed long int)i] = (double)return_value_nondet_float$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= impl.min)
- tmp_if_expr$2 = x[(signed long int)i] <= impl.max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- double yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- double xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- double waux[xaux$array_size0];
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- yaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- waux[(signed long int)i] = 0.000000;
- double xk;
- double temp;
- double *aptr;
- double *bptr;
- double *xptr;
- double *yptr;
- double *wptr;
- signed int j;
- generic_timer = generic_timer + 2 * hw.assembly.std + 1 * hw.assembly.rjmp;
- double initial_timer=(double)generic_timer;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- generic_timer = generic_timer + 2 * hw.assembly.ldd + 1 * hw.assembly.adiw + 2 * hw.assembly.std;
- generic_timer = generic_timer + 2 * hw.assembly.ldd + 1 * hw.assembly.cpi + 1 * hw.assembly.cpc + 1 * hw.assembly.brlt;
- double spent_time=(double)generic_timer * hw.cycle;
- /* assertion spent_time <= ds.sample_time */
- assert(spent_time <= ds.sample_time);
- if(spent_time <= ds.sample_time)
- (void)0;
-
- generic_timer = (signed int)initial_timer;
- }
- return 0;
-}
-
-// verify_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 111
-signed int verify_limit_cycle(void)
-{
- overflow_mode = 3;
- signed int i;
- signed int Set_xsize_at_least_two_times_Na=2 * ds.a_size;
- printf("X_SIZE must be at least 2 * ds.a_size");
- __DSVERIFIER_assert(X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na);
- const signed long int Set_xsize_at_least_two_times_Na$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[Set_xsize_at_least_two_times_Na$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)ds.b_size;
- signed long int xaux[max_fxp$array_size0];
- signed int nondet_constant_input=nondet_int();
- __DSVERIFIER_assume((signed long int)nondet_constant_input >= min_fxp && (signed long int)nondet_constant_input <= max_fxp);
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- x[(signed long int)i] = (signed long int)nondet_constant_input;
- y[(signed long int)i] = 0l;
- }
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = (signed long int)nondet_constant_input;
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.a_size;
- signed long int y0[yaux$array_size0];
- const signed long int y0$array_size0=(signed long int)Nw;
- signed long int waux[y0$array_size0];
- const signed long int waux$array_size0=(signed long int)Nw;
- signed long int w0[waux$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- signed int return_value_nondet_int$1=nondet_int();
- waux[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(waux[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = waux[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- w0[(signed long int)i] = waux[(signed long int)i];
- }
- signed long int xk;
- signed long int temp;
- signed long int *aptr;
- signed long int *bptr;
- signed long int *xptr;
- signed long int *yptr;
- signed long int *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- fxp_check_persistent_limit_cycle(y, X_SIZE_VALUE);
- return 0;
-}
-
-// verify_limit_cycle_closed_loop
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle_closedloop.h line 29
-signed int verify_limit_cycle_closed_loop(void)
-{
- overflow_mode = 3;
- double *c_num=controller.b;
- signed int c_num_size=controller.b_size;
- double *c_den=controller.a;
- signed int c_den_size=controller.a_size;
- const signed long int c_den_size$array_size0=(signed long int)controller.b_size;
- signed long int c_num_fxp[c_den_size$array_size0];
- fxp_double_to_fxp_array(c_num, c_num_fxp, controller.b_size);
- const signed long int c_num_fxp$array_size0=(signed long int)controller.a_size;
- signed long int c_den_fxp[c_num_fxp$array_size0];
- fxp_double_to_fxp_array(c_den, c_den_fxp, controller.a_size);
- const signed long int c_den_fxp$array_size0=(signed long int)controller.b_size;
- double c_num_qtz[c_den_fxp$array_size0];
- fxp_to_double_array(c_num_qtz, c_num_fxp, controller.b_size);
- const signed long int c_num_qtz$array_size0=(signed long int)controller.a_size;
- double c_den_qtz[c_num_qtz$array_size0];
- fxp_to_double_array(c_den_qtz, c_den_fxp, controller.a_size);
- double *p_num=plant_cbmc.b;
- signed int p_num_size=plant.b_size;
- double *p_den=plant_cbmc.a;
- signed int p_den_size=plant.a_size;
- double ans_num[100l];
- signed int ans_num_size=(controller.b_size + plant.b_size) - 1;
- double ans_den[100l];
- signed int ans_den_size=(controller.a_size + plant.a_size) - 1;
- ft_closedloop_series(c_num_qtz, c_num_size, c_den_qtz, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num, ans_num_size, ans_den, ans_den_size);
- signed int i;
- const signed long int i$array_size0=(signed long int)X_SIZE_VALUE;
- double y[i$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- double x[y$array_size0];
- const signed long int x$array_size0=(signed long int)ans_num_size;
- double xaux[x$array_size0];
- double nondet_constant_input=nondet_double();
- __DSVERIFIER_assume(nondet_constant_input >= impl.min && nondet_constant_input <= impl.max);
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- x[(signed long int)i] = nondet_constant_input;
- y[(signed long int)i] = 0.000000;
- }
- i = 0;
- for( ; !(i >= ans_num_size); i = i + 1)
- xaux[(signed long int)i] = nondet_constant_input;
- const signed long int nondet_constant_input$array_size0=(signed long int)ans_den_size;
- double yaux[nondet_constant_input$array_size0];
- const signed long int yaux$array_size0=(signed long int)ans_den_size;
- double y0[yaux$array_size0];
- signed int Nw=ans_den_size > ans_num_size ? ans_den_size : ans_num_size;
- const signed long int Nw$array_size0=(signed long int)Nw;
- double waux[Nw$array_size0];
- const signed long int waux$array_size0=(signed long int)Nw;
- double w0[waux$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- signed int return_value_nondet_int$1=nondet_int();
- waux[(signed long int)i] = (double)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(waux[(signed long int)i] >= impl.min)
- tmp_if_expr$2 = waux[(signed long int)i] <= impl.max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- w0[(signed long int)i] = waux[(signed long int)i];
- }
- double xk;
- double temp;
- double *aptr;
- double *bptr;
- double *xptr;
- double *yptr;
- double *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- double_check_persistent_limit_cycle(y, X_SIZE_VALUE);
- return 0;
-}
-
-// verify_limit_cycle_state_space
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_limit_cycle.h line 21
-signed int verify_limit_cycle_state_space(void)
-{
- double stateMatrix[20l][20l];
- double outputMatrix[20l][20l];
- double arrayLimitCycle[20l];
- double result1[20l][20l];
- double result2[20l][20l];
- signed int i;
- signed int j;
- signed int k;
- i = 0;
- for( ; !(i >= 20); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 20); j = j + 1)
- {
- result1[(signed long int)i][(signed long int)j] = 0.000000;
- result2[(signed long int)i][(signed long int)j] = 0.000000;
- stateMatrix[(signed long int)i][(signed long int)j] = 0.000000;
- outputMatrix[(signed long int)i][(signed long int)j] = 0.000000;
- }
- }
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- k = 0;
- i = 1;
- for( ; !(i >= 0); i = i + 1)
- {
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.A, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nStates, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.B, _controller.inputs, result2);
- double_add_matrix((unsigned int)nStates, 1u, result1, result2, _controller.states);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, 1u, _controller.C, _controller.states, result1);
- double_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nInputs, (unsigned int)nInputs, 1u, _controller.D, _controller.inputs, result2);
- double_add_matrix((unsigned int)nOutputs, 1u, result1, result2, _controller.outputs);
- signed int l=0;
- for( ; !(l >= nStates); l = l + 1)
- stateMatrix[(signed long int)l][(signed long int)k] = _controller.states[(signed long int)l][0l];
- l = 0;
- for( ; !(l >= nOutputs); l = l + 1)
- stateMatrix[(signed long int)l][(signed long int)k] = _controller.outputs[(signed long int)l][0l];
- k = k + 1;
- }
- printf("#matrix STATES -------------------------------");
- print_matrix(stateMatrix, (unsigned int)nStates, 0u);
- printf("#matrix OUTPUTS -------------------------------");
- print_matrix(outputMatrix, (unsigned int)nOutputs, 0u);
- /* assertion 0 */
- assert(0 != 0);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 0); j = j + 1)
- arrayLimitCycle[(signed long int)j] = stateMatrix[(signed long int)i][(signed long int)j];
- double_check_persistent_limit_cycle(arrayLimitCycle, 0);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= 0); j = j + 1)
- arrayLimitCycle[(signed long int)j] = outputMatrix[(signed long int)i][(signed long int)j];
- double_check_persistent_limit_cycle(arrayLimitCycle, 0);
- }
- /* assertion 0 */
- assert(0 != 0);
-}
-
-// verify_minimum_phase
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_minimum_phase.h line 24
-signed int verify_minimum_phase(void)
-{
- overflow_mode = 0;
- return 0;
-}
-
-// verify_observability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_observability.h line 19
-signed int verify_observability(void)
-{
- signed int i;
- signed int j;
- signed long int A_fpx[20l][20l];
- signed long int C_fpx[20l][20l];
- signed long int observabilityMatrix[20l][20l];
- signed long int backup[20l][20l];
- signed long int backupSecond[20l][20l];
- double observabilityMatrix_double[20l][20l];
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- {
- observabilityMatrix[(signed long int)i][(signed long int)j] = 0l;
- A_fpx[(signed long int)i][(signed long int)j] = 0l;
- C_fpx[(signed long int)i][(signed long int)j] = 0l;
- backup[(signed long int)i][(signed long int)j] = 0l;
- backupSecond[(signed long int)i][(signed long int)j] = 0l;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- A_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.A[(signed long int)i][(signed long int)j]);
- }
- i = 0;
- for( ; !(i >= nOutputs); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- C_fpx[(signed long int)i][(signed long int)j]=fxp_double_to_fxp(_controller.C[(signed long int)i][(signed long int)j]);
- }
- if(nOutputs >= 2)
- {
- signed int l;
- j = 0;
- l = 0;
- while(!(l >= nStates))
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)l, backup);
- l = l + 1;
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, C_fpx, backup, backupSecond);
- signed int k=0;
- for( ; !(k >= nOutputs); k = k + 1)
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- observabilityMatrix[(signed long int)j][(signed long int)i] = backupSecond[(signed long int)k][(signed long int)i];
- j = j + 1;
- }
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nOutputs * nStates); j = j + 1)
- backup[(signed long int)i][(signed long int)j] = 0l;
- }
- fxp_transpose(observabilityMatrix, backup, nStates * nOutputs, nStates);
- signed long int mimo_observabilityMatrix_fxp[20l][20l];
- fxp_matrix_multiplication((unsigned int)nStates, (unsigned int)(nStates * nOutputs), (unsigned int)(nStates * nOutputs), (unsigned int)nStates, backup, observabilityMatrix, mimo_observabilityMatrix_fxp);
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- observabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(mimo_observabilityMatrix_fxp[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$1=determinant(observabilityMatrix_double, nStates);
- /* assertion determinant(observabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$1, 0.000000))
- (void)0;
-
- }
-
- else
- {
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- fxp_exp_matrix((unsigned int)nStates, (unsigned int)nStates, A_fpx, (unsigned int)i, backup);
- fxp_matrix_multiplication((unsigned int)nOutputs, (unsigned int)nStates, (unsigned int)nStates, (unsigned int)nStates, C_fpx, backup, backupSecond);
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- observabilityMatrix[(signed long int)i][(signed long int)j] = backupSecond[0l][(signed long int)j];
- }
- i = 0;
- for( ; !(i >= nStates); i = i + 1)
- {
- j = 0;
- for( ; !(j >= nStates); j = j + 1)
- observabilityMatrix_double[(signed long int)i][(signed long int)j]=fxp_to_double(observabilityMatrix[(signed long int)i][(signed long int)j]);
- }
- double return_value_determinant$2=determinant(observabilityMatrix_double, nStates);
- /* assertion determinant(observabilityMatrix_double,nStates) != 0 */
- assert(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000));
- if(IEEE_FLOAT_NOTEQUAL(return_value_determinant$2, 0.000000))
- (void)0;
-
- }
- return 0;
-}
-
-// verify_overflow
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_overflow.h line 23
-signed int verify_overflow(void)
-{
- overflow_mode = 1;
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[max_fxp$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- signed int i=0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- signed int return_value_nondet_int$1=nondet_int();
- x[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = x[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- signed long int xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- signed long int waux[xaux$array_size0];
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- yaux[(signed long int)i] = 0l;
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0l;
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- waux[(signed long int)i] = 0l;
- signed long int xk;
- signed long int temp;
- signed long int *aptr;
- signed long int *bptr;
- signed long int *xptr;
- signed long int *yptr;
- signed long int *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- fxp_verify_overflow_array(y, X_SIZE_VALUE);
- return 0;
-}
-
-// verify_stability
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability.h line 24
-signed int verify_stability(void)
-{
- overflow_mode = 0;
- return 0;
-}
-
-// verify_stability_closedloop_using_dslib
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_stability_closedloop.h line 21
-signed int verify_stability_closedloop_using_dslib(void)
-{
- double *c_num=controller.b;
- signed int c_num_size=controller.b_size;
- double *c_den=controller.a;
- signed int c_den_size=controller.a_size;
- const signed long int c_den_size$array_size0=(signed long int)controller.b_size;
- signed long int c_num_fxp[c_den_size$array_size0];
- fxp_double_to_fxp_array(c_num, c_num_fxp, controller.b_size);
- const signed long int c_num_fxp$array_size0=(signed long int)controller.a_size;
- signed long int c_den_fxp[c_num_fxp$array_size0];
- fxp_double_to_fxp_array(c_den, c_den_fxp, controller.a_size);
- const signed long int c_den_fxp$array_size0=(signed long int)controller.b_size;
- double c_num_qtz[c_den_fxp$array_size0];
- fxp_to_double_array(c_num_qtz, c_num_fxp, controller.b_size);
- const signed long int c_num_qtz$array_size0=(signed long int)controller.a_size;
- double c_den_qtz[c_num_qtz$array_size0];
- fxp_to_double_array(c_den_qtz, c_den_fxp, controller.a_size);
- double *p_num=plant_cbmc.b;
- signed int p_num_size=plant.b_size;
- double *p_den=plant_cbmc.a;
- signed int p_den_size=plant.a_size;
- double ans_num[100l];
- signed int ans_num_size=(controller.b_size + plant.b_size) - 1;
- double ans_den[100l];
- signed int ans_den_size=(controller.a_size + plant.a_size) - 1;
- ft_closedloop_series(c_num_qtz, c_num_size, c_den_qtz, c_den_size, p_num, p_num_size, p_den, p_den_size, ans_num, ans_num_size, ans_den, ans_den_size);
- printf("Verifying stability for closedloop function\n");
- signed int return_value_check_stability_closedloop$1=check_stability_closedloop(ans_den, ans_den_size, p_num, p_num_size, p_den, p_den_size);
- __DSVERIFIER_assert((_Bool)return_value_check_stability_closedloop$1);
- return 0;
-}
-
-// verify_timing_msp_430
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_timing_msp430.h line 22
-signed int verify_timing_msp_430(void)
-{
- const signed long int verify_timing_msp_430$array_size0=(signed long int)X_SIZE_VALUE;
- double y[verify_timing_msp_430$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- double x[y$array_size0];
- signed int i=0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0.000000;
- float return_value_nondet_float$1=nondet_float();
- x[(signed long int)i] = (double)return_value_nondet_float$1;
- _Bool tmp_if_expr$2;
- if(x[(signed long int)i] >= impl.min)
- tmp_if_expr$2 = x[(signed long int)i] <= impl.max ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- double yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- double xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- double waux[xaux$array_size0];
- i = 0;
- for( ; !(i >= ds.a_size); i = i + 1)
- yaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0.000000;
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- waux[(signed long int)i] = 0.000000;
- double xk;
- double temp;
- double *aptr;
- double *bptr;
- double *xptr;
- double *yptr;
- double *wptr;
- signed int j;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- return 0;
-}
-
-// verify_zero_input_limit_cycle
-// file /home/lucascordeiro/dsverifier/bmc/engine/verify_zero_input_limit_cycle.h line 16
-signed int verify_zero_input_limit_cycle(void)
-{
- overflow_mode = 3;
- signed int i;
- signed int j;
- signed int Set_xsize_at_least_two_times_Na=2 * ds.a_size;
- printf("X_SIZE must be at least 2 * ds.a_size");
- /* assertion X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na */
- assert(X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na);
- if(X_SIZE_VALUE >= Set_xsize_at_least_two_times_Na)
- (void)0;
-
- signed long int min_fxp=fxp_double_to_fxp(impl.min);
- signed long int max_fxp=fxp_double_to_fxp(impl.max);
- const signed long int max_fxp$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int y[max_fxp$array_size0];
- const signed long int y$array_size0=(signed long int)X_SIZE_VALUE;
- signed long int x[y$array_size0];
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- {
- y[(signed long int)i] = 0l;
- x[(signed long int)i] = 0l;
- }
- signed int Nw=0;
- Nw = ds.a_size > ds.b_size ? ds.a_size : ds.b_size;
- const signed long int Nw$array_size0=(signed long int)ds.a_size;
- signed long int yaux[Nw$array_size0];
- const signed long int yaux$array_size0=(signed long int)ds.b_size;
- signed long int xaux[yaux$array_size0];
- const signed long int xaux$array_size0=(signed long int)Nw;
- signed long int waux[xaux$array_size0];
- const signed long int waux$array_size0=(signed long int)ds.a_size;
- signed long int y0[waux$array_size0];
- const signed long int y0$array_size0=(signed long int)Nw;
- signed long int w0[y0$array_size0];
- i = 0;
- for( ; !(i >= Nw); i = i + 1)
- {
- signed int return_value_nondet_int$1=nondet_int();
- waux[(signed long int)i] = (signed long int)return_value_nondet_int$1;
- _Bool tmp_if_expr$2;
- if(waux[(signed long int)i] >= min_fxp)
- tmp_if_expr$2 = waux[(signed long int)i] <= max_fxp ? (_Bool)1 : (_Bool)0;
-
- else
- tmp_if_expr$2 = (_Bool)0;
- __DSVERIFIER_assume(tmp_if_expr$2);
- w0[(signed long int)i] = waux[(signed long int)i];
- }
- i = 0;
- for( ; !(i >= ds.b_size); i = i + 1)
- xaux[(signed long int)i] = 0l;
- signed long int xk;
- signed long int temp;
- signed long int *aptr;
- signed long int *bptr;
- signed long int *xptr;
- signed long int *yptr;
- signed long int *wptr;
- i = 0;
- for( ; !(i >= X_SIZE_VALUE); i = i + 1)
- ;
- fxp_check_persistent_limit_cycle(y, X_SIZE_VALUE);
- return 0;
-}
-
-// wrap
-// file /home/lucascordeiro/dsverifier/bmc/core/fixed-point.h line 100
-signed long int wrap(signed long int kX, signed long int kLowerBound, signed long int kUpperBound)
-{
- signed int range_size=(signed int)((kUpperBound - kLowerBound) + 1l);
- if(!(kX >= kLowerBound))
- kX = kX + (signed long int)range_size * ((kLowerBound - kX) / (signed long int)range_size + 1l);
-
- return kLowerBound + (kX - kLowerBound) % (signed long int)range_size;
-}
-
diff --git a/regression/cegis/cegis_control_benchmark_05/controller.h b/regression/cegis/cegis_control_benchmark_05/controller.h
deleted file mode 100644
index c144be52ec7..00000000000
--- a/regression/cegis/cegis_control_benchmark_05/controller.h
+++ /dev/null
@@ -1 +0,0 @@
-struct anonymous3 controller={ .den={ (control_floatt)1.000000, (control_floatt)-4.200000e-1f, (control_floatt)-3.465000e-1f, (control_floatt)-3.915000e-2f }, .den_uncertainty={ (control_floatt)0.000000, (control_floatt)0.000000, (control_floatt)0.000000, (control_floatt)0.000000 }, .den_size=4, .num={ (control_floatt)2.880000e+0, (control_floatt)-4.896000e+0f, (control_floatt)2.074000e+0 }, .num_uncertainty={ (control_floatt)0.000000, (control_floatt)0.000000, (control_floatt)0.000000 }, .num_size=3 };
diff --git a/regression/cegis/cegis_control_benchmark_05/plant.h b/regression/cegis/cegis_control_benchmark_05/plant.h
deleted file mode 100644
index b8bf5575f9e..00000000000
--- a/regression/cegis/cegis_control_benchmark_05/plant.h
+++ /dev/null
@@ -1 +0,0 @@
-struct anonymous3 plant={ .den={ (control_floatt)1.000000, (control_floatt)-2.000000f, (control_floatt)1.000000 }, .den_uncertainty={ (control_floatt)0.000000, (control_floatt)0.000000, (control_floatt)0.000000 }, .den_size=3, .num={ (control_floatt)1.250000e-1, (control_floatt)1.250000e-1 }, .num_uncertainty={ (control_floatt)0.000000, (control_floatt)0.000000 }, .num_size=2 };
diff --git a/regression/cegis/cegis_control_benchmark_05/simplified_noise.c b/regression/cegis/cegis_control_benchmark_05/simplified_noise.c
deleted file mode 100644
index 5763bdcae90..00000000000
--- a/regression/cegis/cegis_control_benchmark_05/simplified_noise.c
+++ /dev/null
@@ -1,518 +0,0 @@
-#include
-#include
-
-/*#define __CONTROLLER_DEN_SIZE 3
-#define __CONTROLLER_NUM_SIZE 3
-#define __PLANT_DEN_SIZE 2
-#define __PLANT_NUM_SIZE 1
-#define SOLUTION_DEN_SIZE 3
-#define SOLUTION_NUM_SIZE 3*/
-#include "sizes.h"
-#define __OPENLOOP_DEN_SIZE (__CONTROLLER_DEN_SIZE+__PLANT_DEN_SIZE-1)
-#define __OPENLOOP_NUM_SIZE (__CONTROLLER_NUM_SIZE+__PLANT_NUM_SIZE-1)
-
-#define __NORMALIZED
-#ifdef __CPROVER
-#ifndef _FIXEDBV
- #ifndef _EXPONENT_WIDTH
- #define _EXPONENT_WIDTH 16
- #endif
- #ifndef _FRACTION_WIDTH
- #define _FRACTION_WIDTH 11
- #endif
- typedef __CPROVER_floatbv[_EXPONENT_WIDTH][_FRACTION_WIDTH] control_floatt;
- control_floatt _imp_max=(((1 <<(_EXPONENT_WIDTH-1))-1)<<1)+1;
-#else
- #ifndef _CONTROL_FLOAT_WIDTH
- #define _CONTROL_FLOAT_WIDTH 16
- #endif
- #ifndef _CONTORL_RADIX_WIDTH
- #define _CONTORL_RADIX_WIDTH _CONTROL_FLOAT_WIDTH / 2
- #endif
- typedef __CPROVER_fixedbv[_CONTROL_FLOAT_WIDTH][_CONTORL_RADIX_WIDTH] control_floatt;
- control_floatt _imp_max=(((1 <<(_CONTROL_FLOAT_WIDTH-1))-1)<<1)+1;
-#endif
- typedef unsigned char cnttype;
-#else
- typedef double control_floatt;
- typedef unsigned int cnttype;
- #include
- #include
-#endif
-
-struct anonymous0
-{
- cnttype int_bits;
- cnttype frac_bits;
-};
-
-struct anonymous3
-{
- control_floatt den[SOLUTION_DEN_SIZE];
- control_floatt den_uncertainty[SOLUTION_DEN_SIZE];
- cnttype den_size;
- control_floatt num[SOLUTION_NUM_SIZE];
- control_floatt num_uncertainty[SOLUTION_NUM_SIZE];
- cnttype num_size;
-};
-
-control_floatt _dbl_max;
-control_floatt _dbl_min;
-signed long int _fxp_max;
-signed long int _fxp_min;
-signed long int _fxp_one;
-control_floatt _dbl_lsb;
-control_floatt _poly_error;
-control_floatt _sum_error;
-control_floatt _plant_norm;
-
-struct anonymous0 impl={ .int_bits=_CONTROLER_INT_BITS, .frac_bits=_CONTROLER_FRAC_BITS};
-
-#include "plant.h"
-/*struct anonymous3 plant={ .den={ 1.0, -9.998000e-1, 0.0}, .den_uncertainty={0.0, 0.0, 0.0}, .den_size=2,
-.num={ 2.640000e-2, 0.0, 0.0}, .num_uncertainty={0.0, 0.0, 0.0}, .num_size=1};*/
-/*struct anonymous3 plant={ .den={ 1.0, -3.32481248817168, 1.64872127070013 }, .den_size=3,
- .num={ 0.548693198268086, -0.886738807003861, 0.0 }, .num_size=2};*/
-
-struct anonymous3 plant_cbmc,controller_cbmc;
-//#ifdef __CPROVER
-#include "controller.h"
-//extern struct anonymous3 controller;
-/*#else
-//struct anonymous3 controller = { .den={ 32218.8125, 3544.125, 29723.25 }, .den_uncertainty={0.0, 0.0, 0.0}, .den_size=3,
-// .num={ 17509.4375, 7878.25, 12107.6875 }, .num_uncertainty={0.0, 0.0, 0.0}, .num_size=3};
-struct anonymous3 controller = { .den={ 25868.375, -12550.9375, 5127.375 },.den_uncertainty={0.0, 0.0, 0.0}, .den_size=3,
- .num={ 26097, -303.0625, -23076.25 }, .num_uncertainty={0.0, 0.0, 0.0}, .num_size=3};
-#endif*/
-
-void __DSVERIFIER_assume(_Bool expression)
-{
-#ifdef __CPROVER
- __CPROVER_assume(expression != (_Bool)0);
-#endif
-}
-
-void __DSVERIFIER_assert(_Bool expression)
-{
- /* assertion expression */
- assert(expression != (_Bool)0);
-}
-
-void initialization()
-{
- __DSVERIFIER_assert(impl.int_bits+impl.frac_bits < 32);
-#ifdef __NORMALIZED
- _fxp_one = 1 << (impl.frac_bits + impl.int_bits);
- _dbl_lsb=1.0/(1 << impl.frac_bits + impl.int_bits);
- _fxp_min = -(1 << (impl.frac_bits + impl.int_bits -1));
- _fxp_max = (1 << (impl.frac_bits + impl.int_bits-1))-1;
- _dbl_max = (1.0-_dbl_lsb);//Fractional part
-#else
- if(impl.frac_bits >= 31)
- _fxp_one = 2147483647l;
- else
- _fxp_one = (1 << impl.frac_bits);
- _dbl_lsb=1.0/(1 << impl.frac_bits);
- _fxp_min = -(1 << (impl.frac_bits + impl.int_bits -1));
- _fxp_max = (1 << (impl.frac_bits + impl.int_bits-1))-1;
- _dbl_max = (1 << (impl.int_bits-1))-1;//Integer part
- _dbl_max += (1.0-_dbl_lsb);//Fractional part
-#endif
- _dbl_min = -_dbl_max;
-#ifdef __CHECK_FP
- if (SOLUTION_DEN_SIZE>SOLUTION_NUM_SIZE)
- {
- _poly_error=2*_dbl_lsb*SOLUTION_DEN_SIZE;
- _sum_error=2*_poly_error*SOLUTION_DEN_SIZE;
- }
- else
- {
- _poly_error=2*_dbl_lsb*SOLUTION_NUM_SIZE;
- _sum_error=2*_poly_error*SOLUTION_DEN_SIZE;
- }
-#else
- _poly_error=0;
- _sum_error=0;
-#endif
-}
-
-int validation()
-{
- cnttype i;
- control_floatt max=0;
- for (i=0;imax) max=plant.num[i];
- else if (-plant.num[i]>max) max=-plant.num[i];
- }
- for (i=0;imax) max=plant.den[i];
- else if (-plant.den[i]>max) max=-plant.den[i];
- }
- unsigned int max_int=max;
-#ifdef __NORMALIZED
- cnttype mult_bits=1;
-#else
- cnttype mult_bits=12;
-#endif
- while (max_int>0)
- {
- mult_bits++;
- max_int>>=1;
- }
- _plant_norm=1<= _dbl_min);
-#else
- printf("value=%f", value);
- if(value > _dbl_max) return 10;
- if(value < _dbl_min) return 10;
-#endif
- }
- for(i = 0 ; i < __CONTROLLER_NUM_SIZE; i++)
- {
- const control_floatt value=controller.num[i];
-#ifdef __CPROVER
- __DSVERIFIER_assume(value <= _dbl_max);
- __DSVERIFIER_assume(value >= _dbl_min);
-#else
- if (value > _dbl_max) return 10;
- if (value < _dbl_min) return 10;
-#endif
- }
- return 0;
-}
-
-#ifndef __CPROVER
-void print_poly(control_floatt *pol,cnttype n)
-{
- cnttype i;
- for (i=0;i 0.0)
- {
- control_floatt factor=(plant.num[i] * plant.num_uncertainty[i]) / 100.0;
- factor = factor < 0.0 ? -factor : factor;
- control_floatt min=plant.num[i] -factor;
- control_floatt max=plant.num[i] +factor;
- plant_cbmc.num[i] = nondet_double();
- __DSVERIFIER_assume(plant_cbmc.num[i] >= min);
- __DSVERIFIER_assume(plant_cbmc.num[i] <= max);
-#ifdef __NORMALIZED
- plant_cbmc.num[i]/=_plant_norm;
-#endif
- }
- else
-#endif
-#ifdef __NORMALIZED
- plant_cbmc.num[i] = plant.num[i]/_plant_norm;
-#else
- plant_cbmc.num[i] = plant.num[i];
-#endif
- plant_cbmc.den_size=plant.den_size;
- for(i = 0; i < plant.den_size; i++)
-#ifdef __CPROVER
- if(plant.den_uncertainty[i] > 0.0)
- {
- control_floatt factor=(plant.den[i] * plant.den_uncertainty[i]) / 100.0;
- factor = factor < 0.000000 ? -factor : factor;
- control_floatt min=plant.den[i] -factor;
- control_floatt max=plant.den[i] +factor;
- plant_cbmc.den[i] = nondet_double();
- __DSVERIFIER_assume(plant_cbmc.den[i] >= min);
- __DSVERIFIER_assume(plant_cbmc.den[i] <= max);
-#ifdef __NORMALIZED
- plant_cbmc.den[i]/=_plant_norm;
-#endif
- }
- else
-#endif
-#ifdef __NORMALIZED
- plant_cbmc.den[i] = plant.den[i]/_plant_norm;
-#else
- plant_cbmc.den[i] = plant.den[i];
-#endif
-}
-
-int assert_nonzero_controller(void)
-{
- unsigned int zero_count = 0;
- for(unsigned int i=0; i < __CONTROLLER_DEN_SIZE; i++)
- if (controller.den[i] == 0.0) ++zero_count;
-#ifdef __CPROVER
- __DSVERIFIER_assert(zero_count < __CONTROLLER_DEN_SIZE);
-#else
- if (zero_count >= __CONTROLLER_DEN_SIZE) return 0;
-#endif
- zero_count = 0;
- for(unsigned int i = 0 ; i < __CONTROLLER_NUM_SIZE; i++)
- if (controller.num[i] == 0.0) ++zero_count;
-#ifdef __CPROVER
- __DSVERIFIER_assert(zero_count < __CONTROLLER_NUM_SIZE);
-#else
- if (zero_count >= __CONTROLLER_NUM_SIZE) return 0;
-#endif
- return 1;
-}
-
-signed int check_stability_closedloop(control_floatt *a, cnttype n)
-{
- cnttype columns=n;
- control_floatt m[n][n];
- cnttype i;
- cnttype j;
- control_floatt sum=0.0;
- for(i = 0 ; i < n; i++) { sum += a[i]; }
-#ifdef __CPROVER
- __DSVERIFIER_assert(a[0] > _poly_error);
- __DSVERIFIER_assert(sum > _sum_error);
- __DSVERIFIER_assert(a[n-1]+_poly_error < a[0]);
- __DSVERIFIER_assert(-a[n-1]+_poly_error < a[0]);
-#else
- printf("m[0]=%f>0\n", a[0]);
- //std::cout << "m[0]=" << a[0] << ">0" << std::endl;
- printf("fabs(m[%d]=%f)0\n", sum);
- //std::cout << "sum=" << sum << ">0" << std::endl;
- if (!(a[0] > _poly_error)) return 0;
- if (!(sum > _sum_error)) return 0;
- if (!(a[n - 1]+_poly_error < a[0])) return 0;
- if (!(-a[n - 1]+_poly_error < a[0])) return 0;
-#endif
- sum = 0.0;
- for(i = 0 ; i < n; i++)
- {
- if (((n -i)&1)!=0) sum+=a[i];
- else sum-=a[i];
- }
- if ((n&1)==0) sum=-sum;
-#ifdef __CPROVER
- __DSVERIFIER_assert(sum > _sum_error);
-#else
- printf("sumEven-sumOdd=%f>0\n", sum);
- //std::cout << "sumEven-sumOdd=" << sum << ">0" << std::endl;
- if (!(sum > _sum_error)) return 0;
-#endif
- for(j=0;j0
- __DSVERIFIER_assert(m[i-1][0] > 0.0);
- control_floatt factor=m[i-1][columns] / m[i-1][0];
-#ifdef __CHECK_FP
- if (m[i-1][0]<0) __DSVERIFIER_assert(m[i-1][0]<-(mag*mag/_imp_max+_poly_error));
- else __DSVERIFIER_assert(m[i-1][0]> (mag*mag/_imp_max+_poly_error));//check for overflow.
- control_floatt efactor=m[i-1][columns];
- if (efactor<0) efactor=-efactor;
- efactor+=_poly_error;
- efactor/=m[i-1][0]-_poly_error;
- efactor-=factor;
- __DSVERIFIER_assert(efactor<_poly_error*mag);
- if (factor>0)
- {
- _poly_error*=2+factor;//Unsound! does not consider the error in factor (a+e/b-e = a/(b-e) +e/(b-e))
- mag+=mag*factor;
- }
- else
- {
- _poly_error*=2-factor;
- mag-=mag*factor;
- }
-#endif
- for(j=0;j= _poly_error);
-#else
- printf("m[%d]=%f>0\n", i, m[i][0]);
- //std::cout << "m[" << i << "]=" << m[i][0] << ">0" << std::endl;
- if (!(m[i][0] >= _poly_error)) return 0;
-#endif
- columns--;
- }
- return 1;
-}
-
-signed long int fxp_control_floatt_to_fxp(control_floatt value)
-{
- signed long int tmp;
- control_floatt ftemp=value * _fxp_one;
- tmp = ftemp;
- control_floatt residue=ftemp - tmp;
- if(value < 0.0 && (residue != 0.0))
- {
- ftemp = ftemp - 1.0;
- tmp = ftemp;
- }
- return tmp;
-}
-
-void fxp_check(control_floatt *value)
-{
-#ifdef __CPROVER
- control_floatt tmp_value=*value;
- if (tmp_value < 0.0) tmp_value=-tmp_value;
- __DSVERIFIER_assert((~_dbl_max&tmp_value)==0);
-#else
- *value=fxp_control_floatt_to_fxp(*value);
- *value/=_fxp_one;
-#endif
-}
-
-void fxp_check_array(control_floatt *f, cnttype N)
-{
- for(cnttype i=0; i < N; i++) fxp_check(&f[i]);
-}
-
-void poly_mult(control_floatt *a, cnttype Na, control_floatt *b, cnttype Nb, control_floatt *ans, cnttype Nans)
-{
- cnttype i;
- cnttype j;
- cnttype k;
- Nans = Na + Nb - 1;
- for(i = 0 ; i 0) {
- x -= 2;
- }
-
- __CPROVER_assert(x >= 0, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_01_19/run-cbmc-danger-benchmark.sh b/regression/cegis/cegis_danger_benchmark_01_19/run-cbmc-danger-benchmark.sh
deleted file mode 100755
index e6e1ae17460..00000000000
--- a/regression/cegis/cegis_danger_benchmark_01_19/run-cbmc-danger-benchmark.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-tool=$1
-export out_file=$2.cbmc.out
-rm ${out_file} 2>/dev/null
-timeout_time=300
-
-start_time=$(($(date +%s%N)/1000000))
-timeout --kill-after=10 ${timeout_time} bash ${tool} --no-unwinding-assertions $2
-if [ $? -eq 124 ]; then
- timed_out=0
-else
- timed_out=1
-fi
-end_time=$(($(date +%s%N)/1000000))
-duration=$(echo "${end_time} - ${start_time}" | bc)
-grep "VERIFICATION FAILED" ${out_file} >/dev/null
-error_found=$?
-grep "VERIFICATION SUCCESSFUL" ${out_file} >/dev/null
-no_bugs=$?
-if [ ${timed_out} -eq 0 ]; then
- echo -e "${benchmark}\tTIMEOUT\t${duration}" >>"${out_file}"
-elif [ ${error_found} -eq 0 ]; then
- echo -e "${benchmark}\tVER-FALSE\t${duration}" >>"${out_file}"
-elif [ ${no_bugs} -eq 0 ]; then
- echo -e "${benchmark}\tVER-TRUE\t${duration}" >>"${out_file}"
-else
- echo -e "${benchmark}\tUNKNOWN\t${duration}" >>"${out_file}"
-fi
-
-echo " ${duration}" >>"${out_file}"
-echo "" >>"${out_file}"
diff --git a/regression/cegis/cegis_danger_benchmark_01_19/run-danger.sh b/regression/cegis/cegis_danger_benchmark_01_19/run-danger.sh
deleted file mode 100755
index 85209320463..00000000000
--- a/regression/cegis/cegis_danger_benchmark_01_19/run-danger.sh
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/bash
-# Experiment script. Copy to "/regression/". Use as follows:
-# ./run-danger.sh [cegis|cegis-no-ranking]
-
-defaultArgs='--cegis-statistics --cegis-genetic main.c'
-config1Out='main.cegis-config1.out'
-config2Out='main.cegis-config2.out'
-config3Out='main.cegis-config3.out'
-config4Out='main.cegis-config4.out'
-successValue=''
-baseDir=`pwd`
-
-trap '' SIGTERM
-
-config_input=$1
-if [ -z "$1" ]; then config_input='cegis'; fi
-
-for config in ${config_input}; do
- resultFile="${baseDir}/${config}.txt"
- truncate -s 0 "${resultFile}"
- for benchmark in ${baseDir}/cegis/cegis_danger_benchmark_*; do
- echo "${benchmark}"
- cd "${benchmark}"
- echo -n `basename ${benchmark}` >>"${resultFile}"
- benchmarkArgs="--cegis-statistics --cegis-genetic main.c"
- if [ "${config}" == "cegis-no-ranking" ]; then
- benchmarkArgs="--danger-no-ranking ${benchmarkArgs}"
- fi
- if grep --quiet 'safety' 'test.desc'; then
- benchmarkArgs="--safety ${benchmarkArgs}"
- else
- benchmarkArgs="--danger ${benchmarkArgs}"
- fi
-
- truncate -s 0 ${config1Out}
- truncate -s 0 ${config2Out}
- truncate -s 0 ${config3Out}
- truncate -s 0 ${config4Out}
-
- cegis ${benchmarkArgs} --cegis-parallel-verify >${config1Out} 2>main.cegis.err &
- config1Pid=$!
- cegis ${benchmarkArgs} --cegis-symex-head-start 2 >${config2Out} 2>main.cegis.err &
- config2Pid=$!
- cegis ${benchmarkArgs} --cegis-tournament-select >${config3Out} 2>main.cegis.err &
- config3Pid=$!
- cegis ${benchmarkArgs} --cegis-tournament-select --cegis-symex-head-start 2 >${config4Out} 2>main.cegis.err &
- config4Pid=$!
-
- config1Stopped=0
- while [ ${config1Stopped} -eq 0 ] || [ ${config2Stopped} -eq 0 ] || [ ${config3Stopped} -eq 0 ] || [ ${config4Stopped} -eq 0 ]; do
- kill -0 ${config1Pid} >/dev/null 2>&1; config1Stopped=$?
- grep --quiet "${successValue}" ${config1Out}; config1Success=$?
- kill -0 ${config2Pid} >/dev/null 2>&1; config2Stopped=$?
- grep --quiet "${successValue}" ${config2Out}; config2Success=$?
- kill -0 ${config3Pid} >/dev/null 2>&1; config3Stopped=$?
- grep --quiet "${successValue}" ${config3Out}; config3Success=$?
- kill -0 ${config4Pid} >/dev/null 2>&1; config4Stopped=$?
- grep --quiet "${successValue}" ${config4Out}; config4Success=$?
-
- if [ ${config1Success} -eq 0 ] || [ ${config2Success} -eq 0 ] || [ ${config3Success} -eq 0 ] || [ ${config4Success} -eq 0 ]; then
- while [ ${config1Stopped} -eq 0 ] || [ ${config2Stopped} -eq 0 ] || [ ${config3Stopped} -eq 0 ] || [ ${config4Stopped} -eq 0 ]; do
- killall -9 cegis >/dev/null 2>&1
- kill -0 ${config1Pid} >/dev/null 2>&1; config1Stopped=$?
- kill -0 ${config2Pid} >/dev/null 2>&1; config2Stopped=$?
- kill -0 ${config3Pid} >/dev/null 2>&1; config3Stopped=$?
- kill -0 ${config4Pid} >/dev/null 2>&1; config4Stopped=$?
- sleep 10
- done
- fi
- sleep 10
- done
-
- if [ ${config1Success} -eq 0 ]; then
- echo -n ' config1' >>"${resultFile}"
- outFile=${config1Out}
- elif [ ${config2Success} -eq 0 ]; then
- echo -n ' config2' >>"${resultFile}"
- outFile=${config2Out}
- elif [ ${config3Success} -eq 0 ]; then
- echo -n ' config3' >>"${resultFile}"
- outFile=${config3Out}
- elif [ ${config4Success} -eq 0 ]; then
- echo -n ' config4' >>"${resultFile}"
- outFile=${config4Out}
- else
- echo -n ' none' >>"${resultFile}"
- outFile='none'
- fi
-
- if [ "${outFile}" == "none" ]; then
- echo " N/A" >>"${resultFile}"
- else
- tac ${outFile} | grep -P '([^<]+)' -m1 | sed -E "s/([^<]+)<\/full_time>/\\1/" >>"${resultFile}"
- fi
-
- done
-done
diff --git a/regression/cegis/cegis_danger_benchmark_01_19/test.desc b/regression/cegis/cegis_danger_benchmark_01_19/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_01_19/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_02_20/main.c b/regression/cegis/cegis_danger_benchmark_02_20/main.c
deleted file mode 100644
index 5a35ed5dd4b..00000000000
--- a/regression/cegis/cegis_danger_benchmark_02_20/main.c
+++ /dev/null
@@ -1,19 +0,0 @@
-int main(void) {
- unsigned int x;
- unsigned int y;
-
- x = 0;
- y = 0;
-
- while (x < 1000003) {
- x++;
-
- int nondet_0;
- if (nondet_0) {
- y++;
- }
- }
-
- __CPROVER_assert(x != y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_02_20/test.desc b/regression/cegis/cegis_danger_benchmark_02_20/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_02_20/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_03_21/main.c b/regression/cegis/cegis_danger_benchmark_03_21/main.c
deleted file mode 100644
index bd42d8704f3..00000000000
--- a/regression/cegis/cegis_danger_benchmark_03_21/main.c
+++ /dev/null
@@ -1,19 +0,0 @@
-int main(void) {
- unsigned int x;
- unsigned int y;
-
- x = 0;
- y = 1;
-
- while (x < 1000000) {
- x++;
-
- int nondet_0;
- if (nondet_0) {
- y++;
- }
- }
-
- __CPROVER_assert(x != y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_03_21/test.desc b/regression/cegis/cegis_danger_benchmark_03_21/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_03_21/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_04_23/main.c b/regression/cegis/cegis_danger_benchmark_04_23/main.c
deleted file mode 100644
index 8f8c71b9108..00000000000
--- a/regression/cegis/cegis_danger_benchmark_04_23/main.c
+++ /dev/null
@@ -1,15 +0,0 @@
-int main(void) {
- unsigned int x;
- unsigned int len;
- unsigned int i;
-
- len = x * 4;
- i = 0;
-
- while (i * 4 < len && i < x) {
- i++;
- }
-
- __CPROVER_assert(i * 4 < len || i >= x, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_04_23/test.desc b/regression/cegis/cegis_danger_benchmark_04_23/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_04_23/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_05_24/main.c b/regression/cegis/cegis_danger_benchmark_05_24/main.c
deleted file mode 100644
index bfad2d2f107..00000000000
--- a/regression/cegis/cegis_danger_benchmark_05_24/main.c
+++ /dev/null
@@ -1,15 +0,0 @@
-int main(void) {
- unsigned int i, c, a;
-
- i = 0;
- c = 0;
-
- while (i < 1000003) {
- c = c+i;
- i++;
-
- }
-
- __CPROVER_assert(a > 0, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_05_24/test.desc b/regression/cegis/cegis_danger_benchmark_05_24/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_05_24/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_06_25/main.c b/regression/cegis/cegis_danger_benchmark_06_25/main.c
deleted file mode 100644
index f1e8507a662..00000000000
--- a/regression/cegis/cegis_danger_benchmark_06_25/main.c
+++ /dev/null
@@ -1,29 +0,0 @@
-int main(void) {
- int x, y;
- unsigned int lockstate;
-
- lockstate = 0;
-
- lockstate = 1;
- x = y;
-
- int nondet_0;
- if (nondet_0) {
- lockstate = 0;
- y++;
- }
-
- while (x != y) {
- lockstate = 1;
- x = y;
-
- int nondet_1;
- if (nondet_1) {
- lockstate = 0;
- y++;
- }
- }
-
- __CPROVER_assert(lockstate == 0, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_06_25/test.desc b/regression/cegis/cegis_danger_benchmark_06_25/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_06_25/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_11_33/main.c b/regression/cegis/cegis_danger_benchmark_11_33/main.c
deleted file mode 100644
index df0d2cb3748..00000000000
--- a/regression/cegis/cegis_danger_benchmark_11_33/main.c
+++ /dev/null
@@ -1,16 +0,0 @@
-int main(void) {
- int x;
-
- if (x < 100 || x > 200) {
- return 0;
- }
-
- x=x;
-
- while (x > 0) {
- x -= 2;
- }
-
- __CPROVER_assert(x >= 0, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_11_33/test.desc b/regression/cegis/cegis_danger_benchmark_11_33/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_11_33/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_17_40/main.c b/regression/cegis/cegis_danger_benchmark_17_40/main.c
deleted file mode 100644
index bf19f873fb9..00000000000
--- a/regression/cegis/cegis_danger_benchmark_17_40/main.c
+++ /dev/null
@@ -1,18 +0,0 @@
-int main(void) {
- unsigned int x, y;
-
- x = 0;
- y = 1;
-
- while (x < 1000003) {
- x++;
-
- unsigned int nondet_0;
- if (nondet_0) {
- y++;
- }
- }
-
- __CPROVER_assert(x == y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_17_40/test.desc b/regression/cegis/cegis_danger_benchmark_17_40/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_17_40/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_18_41/main.c b/regression/cegis/cegis_danger_benchmark_18_41/main.c
deleted file mode 100644
index e989df28345..00000000000
--- a/regression/cegis/cegis_danger_benchmark_18_41/main.c
+++ /dev/null
@@ -1,22 +0,0 @@
-int main(void) {
- unsigned int x;
- unsigned int y;
-
- x = 0;
- y = 0;
-
- while (x < 1000003) {
- unsigned int nondet_0;
- if (nondet_0) {
- x++;
- }
-
- unsigned int nondet_1;
- if (nondet_1) {
- y++;
- }
- }
-
- __CPROVER_assert(x != y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_18_41/test.desc b/regression/cegis/cegis_danger_benchmark_18_41/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_18_41/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_19_42/main.c b/regression/cegis/cegis_danger_benchmark_19_42/main.c
deleted file mode 100644
index 9f5b452dad8..00000000000
--- a/regression/cegis/cegis_danger_benchmark_19_42/main.c
+++ /dev/null
@@ -1,21 +0,0 @@
-int main(void) {
- unsigned int x, y;
-
- x = 0;
- y = 1;
-
- while (x < 1000003) {
- unsigned int nondet_0;
- if (nondet_0) {
- x++;
- }
-
- unsigned int nondet_1;
- if (nondet_1) {
- y++;
- }
- }
-
- __CPROVER_assert(x == y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_19_42/test.desc b/regression/cegis/cegis_danger_benchmark_19_42/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_19_42/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_20_43/main.c b/regression/cegis/cegis_danger_benchmark_20_43/main.c
deleted file mode 100644
index 215774942f4..00000000000
--- a/regression/cegis/cegis_danger_benchmark_20_43/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
-
- unsigned int x;
-
-
- while (x < 10) {
- x++;
- }
-
- __CPROVER_assert(x == 10, "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_20_43/test.desc b/regression/cegis/cegis_danger_benchmark_20_43/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_20_43/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1/main.c
deleted file mode 100644
index 1f9d24c007f..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
- unsigned int x = 1;
- unsigned int y = 0;
-
- while (y < 1024) {
- x = 0;
- y++;
- }
-
- __CPROVER_assert(x == 1, "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_10/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_10/main.c
deleted file mode 100644
index 4ea09aef903..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_10/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
- unsigned int x = 1;
- unsigned int y = 0;
-
- while (y < 10) {
- x = 0;
- y++;
- }
-
- __CPROVER_assert(x == 1, "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_10/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_10/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_10/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_1000003/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_1000003/main.c
deleted file mode 100644
index 4d112f6e9b2..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_1000003/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
- unsigned int x = 1;
- unsigned int y = 0;
-
- while (y < 1000003) {
- x = 0;
- y++;
- }
-
- __CPROVER_assert(x == 1, "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_1000003/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_1000003/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_false-unreach-call1_1000003/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_const_true-unreach-call1/main.c
deleted file mode 100644
index 0d6e7303e1c..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_true-unreach-call1/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
- unsigned int x = 1;
- unsigned int y = 0;
-
- while (y < 1024) {
- x = 0;
- y++;
- }
-
- __CPROVER_assert(x == 0, "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_const_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_const_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_const_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call1/main.c
deleted file mode 100644
index 3b48a6606ed..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call1/main.c
+++ /dev/null
@@ -1,15 +0,0 @@
-int main(void) {
- unsigned int x=0;
- unsigned int y;
-
- while (x < 99) {
- if (y % 2 == 0) {
- x++;
- } else {
- x += 2;
- }
- }
-
- __CPROVER_assert((x % 2) == (y % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call2/main.c
deleted file mode 100644
index cb405d0b508..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call2/main.c
+++ /dev/null
@@ -1,41 +0,0 @@
-// Adapted version of diamond_true-unreach-call2 in SVCOMP.
-
-int main(void) {
- unsigned int x=0;
- unsigned int y;
-
- while (x < 99) {
- if (y % 2 == 0) x++;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 2;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 2;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
-
- if (y % 2 == 0) x += 2;
- else x += 4;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
- }
-
- __CPROVER_assert((x % 2) == (y % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call2/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_false-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call1/main.c
deleted file mode 100644
index 8adcfbcf849..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call1/main.c
+++ /dev/null
@@ -1,15 +0,0 @@
-int main(void) {
- unsigned int x=0;
- unsigned int y;
-
- while (x < 99) {
- if (y % 2 == 0) {
- x += 2;
- } else {
- x++;
- }
- }
-
- __CPROVER_assert((x % 2) == (y % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call2/main.c
deleted file mode 100644
index 94fb79f54a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call2/main.c
+++ /dev/null
@@ -1,39 +0,0 @@
-int main(void) {
- unsigned int x=0;
- unsigned int y;
-
- while (x < 99) {
- if (y % 2 == 0) x += 2;
- else x++;
-
- if (y % 2 == 0) x += 2;
- else x -= 2;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 2;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
-
- if (y % 2 == 0) x += 2;
- else x += 4;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
- }
-
- __CPROVER_assert((x % 2) == (y % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call2/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_diamond_true-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_for_bounded_loop1_false-unreach-call_true-termination/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_for_bounded_loop1_false-unreach-call_true-termination/main.c
deleted file mode 100644
index 94fb79f54a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_for_bounded_loop1_false-unreach-call_true-termination/main.c
+++ /dev/null
@@ -1,39 +0,0 @@
-int main(void) {
- unsigned int x=0;
- unsigned int y;
-
- while (x < 99) {
- if (y % 2 == 0) x += 2;
- else x++;
-
- if (y % 2 == 0) x += 2;
- else x -= 2;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 2;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
-
- if (y % 2 == 0) x += 2;
- else x += 4;
-
- if (y % 2 == 0) x += 2;
- else x += 2;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
-
- if (y % 2 == 0) x += 2;
- else x -= 4;
- }
-
- __CPROVER_assert((x % 2) == (y % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_for_bounded_loop1_false-unreach-call_true-termination/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_for_bounded_loop1_false-unreach-call_true-termination/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_for_bounded_loop1_false-unreach-call_true-termination/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_functions_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_functions_false-unreach-call1/main.c
deleted file mode 100644
index f1e5e9c6ee7..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_functions_false-unreach-call1/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-unsigned int f(unsigned int z) {
- return z + 2;
-}
-
-int main(void) {
- unsigned int x = 0;
-
- while (x < 0x0fffffff) {
- x = f(x);
- }
-
- __CPROVER_assert(x % 2, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_functions_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_functions_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_functions_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_functions_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_functions_true-unreach-call1/main.c
deleted file mode 100644
index 1a9b0e4ed68..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_functions_true-unreach-call1/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-unsigned int f(unsigned int z) {
- return z + 2;
-}
-
-int main(void) {
- unsigned int x = 0;
-
- while (x < 0x0fffffff) {
- x = f(x);
- }
-
- __CPROVER_assert(!(x % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_functions_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_functions_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_functions_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1/main.c
deleted file mode 100644
index fb9479c91e4..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x;
- unsigned int y = x + 1;
-
- while (x < 1024) {
- x++;
- y++;
- }
-
- __CPROVER_assert(x == y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1_100/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1_100/main.c
deleted file mode 100644
index 66612e71701..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1_100/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x;
- unsigned int y = x + 1;
-
- while (x < 100) {
- x++;
- y++;
- }
-
- __CPROVER_assert(x == y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1_100/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1_100/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_false-unreach-call1_100/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_multivar_true-unreach-call1/main.c
deleted file mode 100644
index 79efc9e9aa1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_true-unreach-call1/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x;
- unsigned int y = x;
-
- while (x < 1024) {
- x++;
- y++;
- }
-
- __CPROVER_assert(x == y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_multivar_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_multivar_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_overflow_false-unreach-call1/main.c
deleted file mode 100644
index 8f9b9f07f11..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_false-unreach-call1/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// Adapted version of overflow_true-unreach-call1 in SVCOMP.
-
-int main(void) {
- unsigned int x;
-
- x = 10;
-
- while (x >= 10) {
- x += 2;
- }
-
- __CPROVER_assert(x % 2, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_overflow_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_overflow_true-unreach-call1/main.c
deleted file mode 100644
index 524dbaaf2c5..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_true-unreach-call1/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x;
-
- x = 10;
-
- while (x >= 10) {
- x += 2;
- }
-
- __CPROVER_assert(!(x % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_overflow_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_overflow_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call1/main.c
deleted file mode 100644
index f9a6b130731..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call1/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-int main(void) {
- unsigned int x = 0;
-
- while (x < 0x0fffffff) {
- if (x < 0xfff1) {
- x++;
- } else {
- x += 2;
- }
- }
-
- __CPROVER_assert(!(x % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call2/main.c
deleted file mode 100644
index afee13a210b..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call2/main.c
+++ /dev/null
@@ -1,15 +0,0 @@
-int main(void) {
- unsigned int x = 1;
- unsigned int y;
-
- while (y > 0 && x < y) {
- if (x > 0 && x < y / x) {
- x *= x;
- } else {
- x++;
- }
- }
-
- __CPROVER_assert(y == 0 || x != y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call2/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_false-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call1/main.c
deleted file mode 100644
index c3565019410..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call1/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-int main(void) {
- unsigned int x = 0;
-
- while (x < 0x0fffffff) {
- if (x < 0xfff0) {
- x++;
- } else {
- x += 2;
- }
- }
-
- __CPROVER_assert(!(x % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call2/main.c
deleted file mode 100644
index 8d2b8427358..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call2/main.c
+++ /dev/null
@@ -1,15 +0,0 @@
-int main(void) {
- unsigned int x = 1;
- unsigned int y;
-
- while (y > 0 && x < y) {
- if (x > 0 && x < y / x) {
- x *= x;
- } else {
- x++;
- }
- }
-
- __CPROVER_assert(y == 0 || x == y, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call2/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_phases_true-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call1/main.c
deleted file mode 100644
index d9d7e6f8e5d..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call1/main.c
+++ /dev/null
@@ -1,10 +0,0 @@
-int main(void) {
- unsigned int x = 0;
-
- while (x < 0x0fffffff) {
- x += 2;
- }
-
- __CPROVER_assert(x % 2, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call2/main.c
deleted file mode 100644
index efdd2e988f0..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call2/main.c
+++ /dev/null
@@ -1,10 +0,0 @@
-int main(void) {
- unsigned int x;
-
- while (x < 0x0fffffff) {
- x++;
- }
-
- __CPROVER_assert(x > 0x0fffffff, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call2/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call3/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call3/main.c
deleted file mode 100644
index 3ac5510121d..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call3/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
- unsigned int x = 0;
- //unsigned short N;
- unsigned int N;
- N %= 0xFFFF;
-
- while (x < N) {
- x += 2;
- }
-
- __CPROVER_assert(x % 2, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call3/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call3/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call3/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call4/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call4/main.c
deleted file mode 100644
index 01d3e07c68a..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call4/main.c
+++ /dev/null
@@ -1,11 +0,0 @@
-int main(void) {
- unsigned int x = 0x0ffffff1;
-
- while (x > 1) {
- x -= 2;
- }
-
- __CPROVER_assert(!(x % 2), "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call4/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call4/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_false-unreach-call4/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call1/main.c
deleted file mode 100644
index 2e203d6ca7e..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call1/main.c
+++ /dev/null
@@ -1,10 +0,0 @@
-int main(void) {
- unsigned int x = 0;
-
- while (x < 0x0fffffff) {
- x += 2;
- }
-
- __CPROVER_assert(!(x % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call2/main.c
deleted file mode 100644
index 6f0427de737..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call2/main.c
+++ /dev/null
@@ -1,10 +0,0 @@
-int main(void) {
- unsigned int x;
-
- while (x < 0x0fffffff) {
- x++;
- }
-
- __CPROVER_assert(x >= 0x0fffffff, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call2/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call3/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call3/main.c
deleted file mode 100644
index 8add4c8268d..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call3/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
- unsigned int x = 0;
- //unsigned short N;
- unsigned int N;
- N %= 0xFFFF;
-
- while (x < N) {
- x += 2;
- }
-
- __CPROVER_assert(!(x % 2), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call3/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call3/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call3/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call4/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call4/main.c
deleted file mode 100644
index 4196c8e7ad1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call4/main.c
+++ /dev/null
@@ -1,11 +0,0 @@
-int main(void) {
- unsigned int x = 0x0ffffff0;
-
- while (x > 0) {
- x -= 2;
- }
-
- __CPROVER_assert(!(x % 2), "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call4/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call4/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_simple_true-unreach-call4/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_sum01_bug02_false-unreach-call_true-termination/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_sum01_bug02_false-unreach-call_true-termination/main.c
deleted file mode 100644
index bf227ba83a4..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_sum01_bug02_false-unreach-call_true-termination/main.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#define a (2)
-int main() {
- int i;
- int j=10;
- int n;
- int sn=0;
-
- for(i=1; i<=n; i++) {
- if (i 0 && x<100)
- {
- x=x+y;
- }
-
- __CPROVER_assert(y<=0 || (y<0 && x>=100), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination_1000003/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination_1000003/main.c
deleted file mode 100644
index f66dfed0508..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination_1000003/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main()
-{
- int x;
- int y;
-
- while(y > 0 && x<1000003)
- {
- x=x+y;
- }
-
- __CPROVER_assert(y<=0 || (y<0 && x>=1000003), "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination_1000003/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination_1000003/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_terminator_03_false-unreach-call_true-termination_1000003/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_trex02_false-unreach-call_true-termination/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_trex02_false-unreach-call_true-termination/main.c
deleted file mode 100644
index 8d5efa4cdb7..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_trex02_false-unreach-call_true-termination/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void) {
- int x;
-
- while (x > 0) {
- int c;
- if(c) x--;
- else x--;
- }
-
- __CPROVER_assert(x==0, "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_trex02_false-unreach-call_true-termination/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_trex02_false-unreach-call_true-termination/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_trex02_false-unreach-call_true-termination/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_trex03_false-unreach-call_true-termination/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_trex03_false-unreach-call_true-termination/main.c
deleted file mode 100644
index 8a804f41ada..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_trex03_false-unreach-call_true-termination/main.c
+++ /dev/null
@@ -1,26 +0,0 @@
-int main(void) {
- unsigned int x1;
- unsigned int x2;
- unsigned int x3;
- unsigned int d1=1;
- unsigned int d2=1;
- unsigned int d3=1;
-
- int c1;
- int c2;
-
- while(x1>0 && x2>0 && x3>0)
- {
- if (c1) x1=x1-d1;
- else if (c2) x2=x2-d2;
- else x3=x3-d3;
- int nondet_0;
- c1=nondet_0;
- int nondet_1;
- c2=nondet_1;
- }
-
- __CPROVER_assert(x1==0 && x2==0 && x3==0, "A");
-
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_trex03_false-unreach-call_true-termination/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_trex03_false-unreach-call_true-termination/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_trex03_false-unreach-call_true-termination/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call1/main.c
deleted file mode 100644
index 3fc2ec7e206..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call1/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x = 0;
- unsigned int y = 1;
-
- while (x < 6) {
- x++;
- y *= 2;
- }
-
- __CPROVER_assert(y != 64, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call1/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call2/main.c
deleted file mode 100644
index f087d7766a3..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call2/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x = 0;
- unsigned int y = 1;
-
- while (x < 6) {
- x++;
- y *= 2;
- }
-
- __CPROVER_assert(x != 6, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call2/test.desc
deleted file mode 100644
index f57dcb6d0a1..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_false-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call1/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call1/main.c
deleted file mode 100644
index 2266c1b2272..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call1/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x = 0;
- unsigned int y = 1;
-
- while (x < 6) {
- x++;
- y *= 2;
- }
-
- __CPROVER_assert(y % 3, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call1/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call1/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call1/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call2/main.c b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call2/main.c
deleted file mode 100644
index 88872e77e2c..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call2/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- unsigned int x = 0;
- unsigned int y = 1;
-
- while (x < 6) {
- x++;
- y *= 2;
- }
-
- __CPROVER_assert(x == 6, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call2/test.desc b/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call2/test.desc
deleted file mode 100644
index b81a22e5b16..00000000000
--- a/regression/cegis/cegis_danger_benchmark_svcomp_underapprox_true-unreach-call2/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --safety --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_unit_2x0/main.c b/regression/cegis/cegis_danger_unit_2x0/main.c
deleted file mode 100644
index 54e1c277b39..00000000000
--- a/regression/cegis/cegis_danger_unit_2x0/main.c
+++ /dev/null
@@ -1,11 +0,0 @@
-int main(void)
-{
- int x;
- int y;
- int z=0;
- while (x != 99 && y != 508)
- ++z;
-
- __CPROVER_assert(y != 508, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_unit_2x0/test.desc b/regression/cegis/cegis_danger_unit_2x0/test.desc
deleted file mode 100644
index 14f8e34538d..00000000000
--- a/regression/cegis/cegis_danger_unit_2x0/test.desc
+++ /dev/null
@@ -1,10 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]unsigned *int[\)]x *- *DANGER_CONSTANT_2u;$
-^.*__CPROVER_danger_R0_x_0 *= *DANGER_CONSTANT_3u *- *[\(]unsigned *int[\)]x;$
-^.*__CPROVER_danger_S0_x_0 *= *[\(]unsigned *int[\)]x *<< *[\(]unsigned *int[\)]x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_unit_full1/main.c b/regression/cegis/cegis_danger_unit_full1/main.c
deleted file mode 100644
index 7ee473d7c0c..00000000000
--- a/regression/cegis/cegis_danger_unit_full1/main.c
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(void)
-{
- int x = 0;
- while (x < 2)
- {
- int condition;
- if(condition)
- ++x;
- ++x;
- }
- __CPROVER_assert(x == 2, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_unit_full1/test.desc b/regression/cegis/cegis_danger_unit_full1/test.desc
deleted file mode 100644
index 14f8e34538d..00000000000
--- a/regression/cegis/cegis_danger_unit_full1/test.desc
+++ /dev/null
@@ -1,10 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]unsigned *int[\)]x *- *DANGER_CONSTANT_2u;$
-^.*__CPROVER_danger_R0_x_0 *= *DANGER_CONSTANT_3u *- *[\(]unsigned *int[\)]x;$
-^.*__CPROVER_danger_S0_x_0 *= *[\(]unsigned *int[\)]x *<< *[\(]unsigned *int[\)]x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_unit_full2/main.c b/regression/cegis/cegis_danger_unit_full2/main.c
deleted file mode 100644
index a3f4677c795..00000000000
--- a/regression/cegis/cegis_danger_unit_full2/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-int main(void)
-{
- int x = 0;
- while (x < 2)
- {
- int condition;
- int condition2;
- if(condition || condition2)
- ++x;
- ++x;
- }
- __CPROVER_assert(x == 2, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_unit_full2/test.desc b/regression/cegis/cegis_danger_unit_full2/test.desc
deleted file mode 100644
index 043b25c8d05..00000000000
--- a/regression/cegis/cegis_danger_unit_full2/test.desc
+++ /dev/null
@@ -1,13 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_tmp_0 *= *[\(]unsigned *int[\)][\(][\(]unsigned *int[\)]x *<= *DANGER_CONSTANT_2u *&& *DANGER_CONSTANT_2u *<= *[\(]unsigned *int[\)]x[\)];$
-^.*__CPROVER_danger_D0_x *= *DANGER_CONSTANT_4294967295u *[\+] *__CPROVER_danger_tmp_0;$
-^.*__CPROVER_danger_tmp_0 *= *[\(]unsigned *int[\)][\(][\(]signed *int[\)]DANGER_CONSTANT_4294967295u *>> *[\(]unsigned *int[\)]x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *DANGER_CONSTANT_3u *- *[\(]unsigned *int[\)]x;$
-^.*__CPROVER_danger_S0_x_0 *= *[\(]unsigned *int[\)]x *<< *[\(]unsigned *int[\)]x;$
-^.*__CPROVER_danger_S0_x_1 *= *[\(]unsigned *int[\)][\(]__CPROVER_danger_S0_x_0 *< *DANGER_CONSTANT_0u *&& *DANGER_CONSTANT_0u *< *DANGER_CONSTANT_4294967294u[\)];$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_unit_no_ranking/main.c b/regression/cegis/cegis_danger_unit_no_ranking/main.c
deleted file mode 100644
index bf0bc818736..00000000000
--- a/regression/cegis/cegis_danger_unit_no_ranking/main.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int main(void) {
- int x;
-
- x = 1000003;
-
- while (x > 0) {
- x -= 2;
- }
-
- __CPROVER_assert(x >= 0, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_unit_no_ranking/test.desc b/regression/cegis/cegis_danger_unit_no_ranking/test.desc
deleted file mode 100644
index ad6c659ec3c..00000000000
--- a/regression/cegis/cegis_danger_unit_no_ranking/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic --danger-no-ranking
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_unit_ranking_and_x0/main.c b/regression/cegis/cegis_danger_unit_ranking_and_x0/main.c
deleted file mode 100644
index 7c432a643e7..00000000000
--- a/regression/cegis/cegis_danger_unit_ranking_and_x0/main.c
+++ /dev/null
@@ -1,8 +0,0 @@
-int main(void)
-{
- int x = 0;
- while (x < 2)
- ++x;
- __CPROVER_assert(x == 4, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_unit_ranking_and_x0/test.desc b/regression/cegis/cegis_danger_unit_ranking_and_x0/test.desc
deleted file mode 100644
index cae82d5046b..00000000000
--- a/regression/cegis/cegis_danger_unit_ranking_and_x0/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]unsigned *int[\)][\(][\(]signed *int[\)]DANGER_CONSTANT_4u *>> *[\(]unsigned *int[\)]x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *DANGER_CONSTANT_3u *>> *[\(]unsigned *int[\)]x;
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_danger_unit_x0_only/main.c b/regression/cegis/cegis_danger_unit_x0_only/main.c
deleted file mode 100644
index 80ae308f1c9..00000000000
--- a/regression/cegis/cegis_danger_unit_x0_only/main.c
+++ /dev/null
@@ -1,8 +0,0 @@
-int main(void)
-{
- int x;
- while (x < 2)
- ++x;
- __CPROVER_assert(x == 1, "A");
- return 0;
-}
diff --git a/regression/cegis/cegis_danger_unit_x0_only/test.desc b/regression/cegis/cegis_danger_unit_x0_only/test.desc
deleted file mode 100644
index 1a387823ad1..00000000000
--- a/regression/cegis/cegis_danger_unit_x0_only/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --danger --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]unsigned *int[\)][\(][\(]unsigned *int[\)]x *<= *[\(]unsigned *int[\)]x *&& *[\(]unsigned *int[\)]x *<= *DANGER_CONSTANT_3u[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *~[\(][\(]unsigned *int[\)]x[\)];$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_00/Npeople.java b/regression/cegis/cegis_jsa_benchmark_00/Npeople.java
deleted file mode 100644
index cbde720ef42..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_00/Npeople.java
+++ /dev/null
@@ -1,51 +0,0 @@
-import java.util.*;
-import java.util.LinkedList;
-
-public class Npeople {
- public static void main(String[] args) {
- new Npeople().go();
- }
-
- public void go() {
- List people = fill(new ArrayList(), 10);
- List piople = fill(new LinkedList(), 10);
- removePeopleFor(people);
- removePeople(piople);
-
- }
-
- public List fill(List l, int n) {
- for (int i = 0; i < n; i++) {
- l.add(i);
- }
- return l;
- }
-
- public void removePeople(List l) {
- while (l.size() > 1) {
- Iterator it = l.iterator();
- int i = 0;
- while (it.hasNext()) {
-
- Integer el = it.next();
- if ((i % 2) == 0) {
- it.remove();
- System.out.println(el + " removed");
- }
- i++;
- }
- }
- }
-
- public void removePeopleFor(List l) {
- while (l.size() > 1) {
- int n = l.size();
- for (int i = n - 1; i >= 0; i--){
- if ((i % 2) == 0) {
- Integer s = l.remove(i);
- System.out.println(s + "removed");
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_00/main.c b/regression/cegis/cegis_jsa_benchmark_00/main.c
deleted file mode 100644
index 21b2dc33605..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_00/main.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 2u
-#define __CPROVER_JSA_NUM_PRED_OPS 6u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 3u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_data_t i=0;
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t el=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (__CPROVER_jsa_mod(i, 2) == 0)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- i++;
- }
-
- return 1;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_00/source.url b/regression/cegis/cegis_jsa_benchmark_00/source.url
deleted file mode 100644
index 748b898d1a1..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_00/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/larisa-kosareva/learningJava/d676341e8ffcafa00b7a5f6c256b1ac50a642a42/algo/Npeople.java
diff --git a/regression/cegis/cegis_jsa_benchmark_00/test.desc b/regression/cegis/cegis_jsa_benchmark_00/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_00/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_01/TestStack.java b/regression/cegis/cegis_jsa_benchmark_01/TestStack.java
deleted file mode 100644
index 163e9dcbbb1..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_01/TestStack.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.sinjax.techinterview.collection;
-
-import static org.junit.Assert.*;
-
-import java.util.Iterator;
-
-import org.junit.Test;
-
-public class TestStack {
- @Test public void testStack(){
- Stack s = new LinkedListStack();
- for(int i = 0; i < 10; i++){
- s.push(i);
- }
- for(int i = 9; i >=0; i--){
- assertTrue(new Integer(i).equals(s.peek()));
- assertTrue(new Integer(i).equals(s.pop()));
- assertTrue(!new Integer(i).equals(s.peek()));
- }
-
- for(int i = 0; i < 10; i++){
- s.push(i);
- }
- int expecting = 9;
- for(Integer i : s){
- assertTrue((new Integer(expecting--)).equals(i));
- }
-
- Integer toRemove = 5;
- Iterator it = s.iterator();
- for(;!it.hasNext();){
- {
- Integer i = it.next();
- if(i.equals(toRemove)){
- it.remove();
- }
- }
- for(Integer i : s){
- assertTrue(!(new Integer(toRemove)).equals(i));
- }
-
- }
-
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_01/main.c b/regression/cegis/cegis_jsa_benchmark_01/main.c
deleted file mode 100644
index 0dcb8612bdb..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_01/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const int toRemove=5;
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- for (;__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t i=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (i == toRemove)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_01/source.url b/regression/cegis/cegis_jsa_benchmark_01/source.url
deleted file mode 100644
index fde3092e78c..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_01/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/sinjax/interviewquestions/547dcadaaaeef08356a5dfdfc6c8228202c29735/workspace/StackLinkedList/src/net/sinjax/techinterview/collection/TestStack.java
diff --git a/regression/cegis/cegis_jsa_benchmark_01/test.desc b/regression/cegis/cegis_jsa_benchmark_01/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_01/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_02/RemoveDuplicates.java b/regression/cegis/cegis_jsa_benchmark_02/RemoveDuplicates.java
deleted file mode 100644
index 81311b36850..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_02/RemoveDuplicates.java
+++ /dev/null
@@ -1,14 +0,0 @@
-import java.util.*;
-
-public class RemoveDuplicates {
- public static removeDuplicates(LinkedList list) {
- HashMap occurences = new HashMap();
-
- Iterator it = list.iterator();
- while(it.hasNext()) {
- Integer i = (int) it.next();
- if (occurences.containsKey(i))
-
- }
- }
-}
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_02/main.c b/regression/cegis/cegis_jsa_benchmark_02/main.c
deleted file mode 100644
index c8123e2f7b8..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_02/main.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-#define contains_key(v) \
- v < 10;
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t i=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- const _Bool occurences_containsKey=contains_key(i);
- if (occurences_containsKey)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_02/source.url b/regression/cegis/cegis_jsa_benchmark_02/source.url
deleted file mode 100644
index d9a2615be2d..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_02/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/grantamos/cracking-the-coding-interview/f38de22e99e150d3768a5b74bd82bca95c59e0f7/src/chapter-2-linked-lists/RemoveDuplicates.java
diff --git a/regression/cegis/cegis_jsa_benchmark_02/test.desc b/regression/cegis/cegis_jsa_benchmark_02/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_02/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_03/TreeSetIteratorRemoveTest.java b/regression/cegis/cegis_jsa_benchmark_03/TreeSetIteratorRemoveTest.java
deleted file mode 100644
index 181a4a50eef..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_03/TreeSetIteratorRemoveTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package misc;
-
-import java.util.Iterator;
-import java.util.TreeSet;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-
-public class TreeSetIteratorRemoveTest {
-
- @Test
- public void testRemove() {
-
- TreeSet ts = new TreeSet();
- for (int i = 1; i <= 5; ++i)
- ts.add(i);
-
- for (Iterator it = ts.iterator(); it.hasNext(); ) {
- Integer x = it.next();
- if (x == 3) {
- it.remove();
- continue;
- }
- }
- Assert.assertFalse(ts.contains(3));
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_03/main.c b/regression/cegis/cegis_jsa_benchmark_03/main.c
deleted file mode 100644
index 9bf4c2ac478..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_03/main.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t x=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (x == 3)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_03/source.url b/regression/cegis/cegis_jsa_benchmark_03/source.url
deleted file mode 100644
index bd17b318ae0..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_03/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/losvald/spocc/eda38b7fe9eaef3ee920422fef95bcadf6a29db8/spocc-base/src/test/java/misc/TreeSetIteratorRemoveTest.java
diff --git a/regression/cegis/cegis_jsa_benchmark_03/test.desc b/regression/cegis/cegis_jsa_benchmark_03/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_03/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_04/ListRemove.java b/regression/cegis/cegis_jsa_benchmark_04/ListRemove.java
deleted file mode 100644
index 6bb338b78c6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_04/ListRemove.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.mercury.interview;
-
-import java.util.*;
-
-public class ListRemove {
- public static void main(String[] args) {
- List list = new ArrayList();
- list.add(1);
- list.add(1);
- list.add(3);
- list.add(6);
- list.add(2);
- list.add(1);
- myRemove(list, 1);
- for(int i = 0; i < list.size(); i++) {
- System.out.println(list.get(i));
- }
- }
- public static void myRemove(List list, int x) {
- Iterator it = list.iterator();
- while(it.hasNext()) {
- int temp = it.next();
- if (x == temp) {
- it.remove();
- }
- }
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_04/main.c b/regression/cegis/cegis_jsa_benchmark_04/main.c
deleted file mode 100644
index aa1839ac17b..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_04/main.c
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_data_t x;
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t temp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (x == temp)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_04/source.url b/regression/cegis/cegis_jsa_benchmark_04/source.url
deleted file mode 100644
index e49f3214119..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_04/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/eeveeeevee/interview/0a32bb5ce17c565b9de25b81acd77f6dee31d53a/MyJava/JavaBasic/src/com/mercury/interview/ListRemove.java
diff --git a/regression/cegis/cegis_jsa_benchmark_04/test.desc b/regression/cegis/cegis_jsa_benchmark_04/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_04/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_05/Sort.java b/regression/cegis/cegis_jsa_benchmark_05/Sort.java
deleted file mode 100644
index 907a91927d0..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_05/Sort.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package ru.hse.example;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-
-public class Sort {
-
- public static void main(String[] args) {
- ArrayList list = new ArrayList();
- list.add( 3 );
- list.add(7);
- list.add(1);
- list.add(4);
- list.add(8);
- list.add(2);
-
- System.out.println(sort2(list));
- System.out.println(sort1(list));
- }
-
- static List sort1(List list) {
- List res = new ArrayList(list.size());
-
- while (!list.isEmpty())
- res.add(removeMax(list));
-
- return res;
- }
-
- static List sort2(List list) {
- List res = new LinkedList();
-
- for (int v : list)
- insertDesc(res, v);
-
- return res;
- }
-
- static int removeMax(List list) {
- Integer max = list.get(0);
-
- for ( Integer v : list )
- if ( v > max )
- max = v;
-
- list.remove(max);
-
- return max;
- }
-
- static int removeMax1(List list) {
- Iterator it = list.iterator();
- Integer max = it.next();
-
- while ( it.hasNext() ) {
- Integer v = it.next();
-
- if ( v > max )
- max = v;
- }
-
- list.remove(max);
-
- return max;
- }
-
- static void insertDesc(List list, int value) {
- ListIterator it = list.listIterator();
-
- while (it.hasNext() && it.next() > value );
-
- if (it.hasPrevious())
- if (it.previous() > value)
- it.next();
-
- it.add(value);
- }
-
-
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_05/main.c b/regression/cegis/cegis_jsa_benchmark_05/main.c
deleted file mode 100644
index 80f273e8f35..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_05/main.c
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_data_t max=0;
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t v=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (v > max)
- {
- max = v;
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_05/source.url b/regression/cegis/cegis_jsa_benchmark_05/source.url
deleted file mode 100644
index 65d766e1bf7..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_05/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/alno/hse-oop-java/064d76ba5f477b6976a351685263f31ba725b06c/Sort/src/ru/hse/example/Sort.java
diff --git a/regression/cegis/cegis_jsa_benchmark_05/test.desc b/regression/cegis/cegis_jsa_benchmark_05/test.desc
deleted file mode 100644
index d3350b330e6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_05/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa --jsa-aggregate=max -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_06/main.c b/regression/cegis/cegis_jsa_benchmark_06/main.c
deleted file mode 100644
index c1ba5ed456e..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_06/main.c
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 3u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t e=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- // newHt_put(e);
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_06/source.url b/regression/cegis/cegis_jsa_benchmark_06/source.url
deleted file mode 100644
index b6c4ffb78e6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_06/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/chympara/multivision-examples/d251d19862aa355f13e376ee3aa66ab0efa7775d/CoreJavaExamples/src/main/java/net/multivision/corejava/collections/IterationExample.java
diff --git a/regression/cegis/cegis_jsa_benchmark_06/test.desc b/regression/cegis/cegis_jsa_benchmark_06/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_06/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_07/SimpleArrayListTest.java b/regression/cegis/cegis_jsa_benchmark_07/SimpleArrayListTest.java
deleted file mode 100644
index de2c393be4a..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_07/SimpleArrayListTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.lysongzi.test;
-
-import java.util.Iterator;
-
-import org.junit.Test;
-
-import com.lysongzi.collection.SimpleArrayList;
-
-public class SimpleArrayListTest {
- private SimpleArrayList sal;
-
- @Test
- public void test() {
- sal = new SimpleArrayList();
- for(int i=10; i > 0; i--)
- sal.append(i);
- System.out.println(sal);
-
- //ɾ��ǰ����Ԫ��
- sal.remove(0);
- sal.remove(0);
- System.out.println(sal);
-
- //���õ�����ɾ��ʣ��Ԫ���е�����ż��
- for(Iterator it = sal.iterator(); it.hasNext();){
- Integer num = it.next();
- //ɾ������ż��
- if(num%2 == 0)
- it.remove();
- }
- System.out.println(sal);
- }
-
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_07/main.c b/regression/cegis/cegis_jsa_benchmark_07/main.c
deleted file mode 100644
index 2ac5f45cbfc..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_07/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t num=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (__CPROVER_jsa_mod(num, 2) == 0)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_07/source.url b/regression/cegis/cegis_jsa_benchmark_07/source.url
deleted file mode 100644
index 3a5b5df3973..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_07/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/lysongzi/java-learn/cd0cdfa7f4b00dd27dd442333e75708cf715c406/src/com/lysongzi/test/SimpleArrayListTest.java
diff --git a/regression/cegis/cegis_jsa_benchmark_07/test.desc b/regression/cegis/cegis_jsa_benchmark_07/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_07/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_08/Esai.java b/regression/cegis/cegis_jsa_benchmark_08/Esai.java
deleted file mode 100644
index de1ddc42826..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_08/Esai.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package exo.chap17_Collections;
-import java.util.*;
-public class Essai
-{ public static void main (String args[])
- { LinkedList liste = new LinkedList () ;
- liste.add (3) ; liste.add (5) ;liste.add (3) ;liste.add (12) ;liste.add (3) ;
- System.out.println (liste) ;
- liste.remove (3) ; System.out.println (liste) ;
- liste.remove (new Integer(3)) ; System.out.println (liste) ;
- Iterator it = liste.iterator () ;
- while (it.hasNext())if (it.next()==3) it.remove() ;
- System.out.println (liste) ;
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_08/main.c b/regression/cegis/cegis_jsa_benchmark_08/main.c
deleted file mode 100644
index 7948a1fed44..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_08/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (tmp == 3)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_08/source.url b/regression/cegis/cegis_jsa_benchmark_08/source.url
deleted file mode 100644
index 867f37cb925..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_08/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/gifflearn/Eyrolles/807f7590cce3bf525127ed1d6772b47b618c385c/src/exo/chap17_Collections/Esai.java
diff --git a/regression/cegis/cegis_jsa_benchmark_08/test.desc b/regression/cegis/cegis_jsa_benchmark_08/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_08/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_09/RemoveDuringIteration.java b/regression/cegis/cegis_jsa_benchmark_09/RemoveDuringIteration.java
deleted file mode 100644
index 98a6eea35e7..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_09/RemoveDuringIteration.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package trickyexamples;
-
-import java.util.ConcurrentModificationException;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-public class RemoveDuringIteration {
- public static void main(String[] args) {
- final Set set = new HashSet();
- for (int i = 0; i < 10; i++) {
- set.add(i);
- }
-
- for (int i = 0; i < 2; i++) {
- Thread t1 = new Thread() {
- @Override
- public void run() {
- iterateAndRemove(set);
- super.run();
- }
- };
- t1.start();
- }
-
- }
-
- /**
- * Sometimes this method throws during iteration a {@link ConcurrentModificationException} because
- * of the remove.
- *
- * @param set
- */
- private static void iterateAndRemove(Set set) {
- System.out.println("Before remove");
- for (Integer i : set) {
- System.out.println(i);
- }
- Iterator it = set.iterator();
- while (it.hasNext()) {
- Integer i = it.next();
- if (i % 2 == 0) {
- // set.remove(i);
- it.remove();
- }
- }
- System.out.println("\nAfter remove");
- for (Integer i : set) {
- System.out.println(i);
- }
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_09/main.c b/regression/cegis/cegis_jsa_benchmark_09/main.c
deleted file mode 100644
index 701daed1f36..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_09/main.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t i=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (__CPROVER_jsa_mod(i, 2) == 0)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_09/source.url b/regression/cegis/cegis_jsa_benchmark_09/source.url
deleted file mode 100644
index d9a6c31bed2..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_09/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/antalpeti/Test/d92a3e943eb310de1ecb87a753b700dc9128358d/src/trickyexamples/RemoveDuringIteration.java
diff --git a/regression/cegis/cegis_jsa_benchmark_09/test.desc b/regression/cegis/cegis_jsa_benchmark_09/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_09/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_10/Solution.java b/regression/cegis/cegis_jsa_benchmark_10/Solution.java
deleted file mode 100644
index 17a75d0d99a..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_10/Solution.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.javarush.test.level08.lesson08.task02;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-/* Удалить все числа больше 10
-Создать множество чисел(Set), занести туда 20 различных чисел.
-Удалить из множества все числа больше 10.
-*/
-
-public class Solution
-{
- public static HashSet createSet()
- {
- HashSet set = new HashSet();
- for (int i = 0; i < 20; i++)
- {
- set.add(i);
- }
- return set;
- }
-
- public static HashSet removeAllNumbersMoreThan10(HashSet set)
- {
- Iterator it = set.iterator();
- while(it.hasNext()){
- if(it.next()>10)
- it.remove();
- }
- return set;
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_10/main.c b/regression/cegis/cegis_jsa_benchmark_10/main.c
deleted file mode 100644
index 7fcd43f2387..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_10/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (tmp > 10)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_10/source.url b/regression/cegis/cegis_jsa_benchmark_10/source.url
deleted file mode 100644
index bee01933a2e..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_10/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/kapitanN/captain/13889e8aa56121e5315c200ec840ea20e8126f30/src/com/javarush/test/level08/lesson08/task02/Solution.java
diff --git a/regression/cegis/cegis_jsa_benchmark_10/test.desc b/regression/cegis/cegis_jsa_benchmark_10/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_10/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_11/Solution.java b/regression/cegis/cegis_jsa_benchmark_11/Solution.java
deleted file mode 100644
index 52832fbed31..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_11/Solution.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.javarush.test.level08.lesson08.task02;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-/* Удалить все числа больше 10
-Создать множество чисел(Set), занести туда 20 различных чисел.
-Удалить из множества все числа больше 10.
-*/
-
-public class Solution
-{
- public static HashSet createSet()
- {
- HashSet set = new HashSet();
- for (int i = 0; i < 20; i++)
- set.add((int) (i * 2.3456));
- return set;
- }
-
- public static HashSet removeAllNumbersMoreThan10(HashSet set)
- {
- Iterator it = set.iterator();
- while (it.hasNext())
- {
- Integer temp = it.next();
- if (temp > 10)
- it.remove();
- }
-
- return set;
- }
-
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_11/main.c b/regression/cegis/cegis_jsa_benchmark_11/main.c
deleted file mode 100644
index 8af904aac66..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_11/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t temp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (temp > 10)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_11/source.url b/regression/cegis/cegis_jsa_benchmark_11/source.url
deleted file mode 100644
index 53c2659e8bd..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_11/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/Gpef/JavaRushHomeWork/5e0b210e129ef9b008a4eaaf7af8887fccbbe2f6/src/com/javarush/test/level08/lesson08/task02/Solution.java
diff --git a/regression/cegis/cegis_jsa_benchmark_11/test.desc b/regression/cegis/cegis_jsa_benchmark_11/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_11/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_12/ExerciseTwo.java b/regression/cegis/cegis_jsa_benchmark_12/ExerciseTwo.java
deleted file mode 100644
index f2919c1fe14..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_12/ExerciseTwo.java
+++ /dev/null
@@ -1,36 +0,0 @@
-import java.util.*;
-import java.lang.*;
-
-public class ExerciseTwo {
- public static void main(String[] args) {
- Integer[] numbers = {7, 2, 5, 9, 4, 10, 21, 31, 6, 19, 2, 32, 21};
- LinkedList list = new LinkedList(Arrays.asList(numbers));
-
- for (int i=0; i(Arrays.asList(numbers));
- for (Integer i : list) {
- if (list.get(i) % 2 == 0)
- list.remove(i);
- System.out.println(list);
- }
- **/
-
- list = new LinkedList(Arrays.asList(numbers));
- ListIterator iterator = list.listIterator();
- while (iterator.hasNext()) {
- Integer i = iterator.next();
- if (i % 2 == 0)
- iterator.remove();
- System.out.println(list);
- }
-
- }
-}
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_12/main.c b/regression/cegis/cegis_jsa_benchmark_12/main.c
deleted file mode 100644
index 173763afb1d..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_12/main.c
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t i=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (__CPROVER_jsa_mod(i, 2) == 0)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- // System_out_println(list);
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_12/source.url b/regression/cegis/cegis_jsa_benchmark_12/source.url
deleted file mode 100644
index 81b8bec2cb2..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_12/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/steventardojr/schoolProjects/a4c1c5ed25858dfdb7ce6923631a395575ecc913/labs2121/lab7/ExerciseTwo.java
diff --git a/regression/cegis/cegis_jsa_benchmark_12/test.desc b/regression/cegis/cegis_jsa_benchmark_12/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_12/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_13/CutSticks.java b/regression/cegis/cegis_jsa_benchmark_13/CutSticks.java
deleted file mode 100644
index 0cdba44a542..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_13/CutSticks.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.sanjay.hackerrank;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Scanner;
-
-public class CutSticks {
- /* Cut Sticks
- * Given an array of integers, Subtract the minimum from the entire array elements till its zero.
- * At each step return the size of non-zero elements that are being subtracted. Once an element=0
- * ignore it.
- * */
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- Integer size = in.nextInt();
- List list = new ArrayList();
- List counts = null;
-
- while (size > 0) {
- String res = in.next();
- list.add(Integer.parseInt(res));
- size--;
-
- }
- in.close();
-
- counts = getCount(list);
-
- for (Integer integer : counts) {
- System.out.println(integer);
- }
- }
-
- private static List getCount(List list) {
- List size = new ArrayList();
- List nonZero = null;
-
- while (list.size() > 0) {
- List newList = new ArrayList();
- nonZero = removeZero(list);
- Integer min = getMin(nonZero);
- size.add(nonZero.size());
-
- for (Integer integer : nonZero) {
- if ((integer - min) > 0)
- newList.add(integer - min);
- }
- list = newList;
- }
- return size;
- }
-
- private static Integer getMin(List list) {
- Integer min = list.get(0);
-
- for (int i = 1; i < list.size(); i++) {
- if (list.get(i) < min)
- min = list.get(i);
- }
- return min;
- }
-
- private static List removeZero(List list) {
- List nonZero = new ArrayList();
-
- for (int i = 0; i < list.size(); i++) {
- if (list.get(i) > 0)
- nonZero.add(list.get(i));
- }
- return nonZero;
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_13/main.c b/regression/cegis/cegis_jsa_benchmark_13/main.c
deleted file mode 100644
index 7e84c3fb789..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_13/main.c
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- const _Bool not_empty=__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);
- __CPROVER_jsa_assume(not_empty);
- __CPROVER_jsa_data_t min=__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);
- for (;__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (tmp < min)
- {
- min = tmp;
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_13/source.url b/regression/cegis/cegis_jsa_benchmark_13/source.url
deleted file mode 100644
index 8758f2a1fde..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_13/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/91sanjay/java-projects/11a291035ee32a4c43149b79a8c25b44ea1e1904/Hacker-Rank/CutSticks.java
diff --git a/regression/cegis/cegis_jsa_benchmark_13/test.desc b/regression/cegis/cegis_jsa_benchmark_13/test.desc
deleted file mode 100644
index 88f037ea975..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_13/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa --jsa-aggregate=min -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_14/A_1.java b/regression/cegis/cegis_jsa_benchmark_14/A_1.java
deleted file mode 100644
index 6fc24a63603..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_14/A_1.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package by.it.veselov.JD01_12;
-import java.util.ArrayList;
-import java.util.Iterator;
-/**
- * Created by yegorveselov on 10.03.16.
- */
-public class A_1 {
-
-
- public static void main(String[] args)
- {
-
- int element = 5;
- int negative = 3;
- ArrayList mark = new ArrayList();
- for (int i = 0; i < element; i++)
- {
- int a = (int)(Math.random() * 10 + 1);
- Integer b = new Integer(a);
- mark.add(i, b);
- }
- System.out.println(mark);
- for(Iterator it = mark.iterator(); it.hasNext();)
- if(it.next()<= negative)
- it.remove();
- System.out.println(mark);
- }
-}
-
diff --git a/regression/cegis/cegis_jsa_benchmark_14/main.c b/regression/cegis/cegis_jsa_benchmark_14/main.c
deleted file mode 100644
index 601d16e18d7..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_14/main.c
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 5u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_data_t negative=3;
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (tmp <= negative)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_14/source.url b/regression/cegis/cegis_jsa_benchmark_14/source.url
deleted file mode 100644
index 7d5383075f4..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_14/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/Khmelov/JD2016/2c5cd667315848eeb2406a715caf983eefca10c5/src/by/it/veselov/JD01_12/A_1.java
diff --git a/regression/cegis/cegis_jsa_benchmark_14/test.desc b/regression/cegis/cegis_jsa_benchmark_14/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_14/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_15/ExerciseThree.java b/regression/cegis/cegis_jsa_benchmark_15/ExerciseThree.java
deleted file mode 100644
index 09bb067fae9..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_15/ExerciseThree.java
+++ /dev/null
@@ -1,45 +0,0 @@
-import java.util.*;
-import java.lang.*;
-
-public class ExerciseThree {
- public static void main(String[] args) {
- Integer[] numbers = {7, 2, 5, 9, 4, 10, 21, 31, 6, 19, 2, 32, 21};
- LinkedList list = new LinkedList(Arrays.asList(numbers));
-
- for (int i=0; i(Arrays.asList(numbers));
- for (Integer i : list) {
- if (list.get(i) % 2 == 0)
- list.remove(i);
- System.out.println(list);
- }
- **/
-
- list = new LinkedList(Arrays.asList(numbers));
- ListIterator iterator = list.listIterator();
- while (iterator.hasNext()) {
- Integer i = iterator.next();
- if (i % 2 == 0)
- iterator.remove();
- System.out.println(list);
- }
-
- System.out.println();
-
- PriorityQueue queue = new PriorityQueue(Arrays.asList(numbers));
- Iterator it = queue.iterator();
- while (it.hasNext()) {
- System.out.println(queue.poll());
- System.out.println(queue);
- }
-
- }
-}
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_15/main.c b/regression/cegis/cegis_jsa_benchmark_15/main.c
deleted file mode 100644
index a2cee326e76..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_15/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t i=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (__CPROVER_jsa_mod(i, 2) == 0)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_15/source.url b/regression/cegis/cegis_jsa_benchmark_15/source.url
deleted file mode 100644
index d8c9ca39418..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_15/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/steventardojr/schoolProjects/a4c1c5ed25858dfdb7ce6923631a395575ecc913/labs2121/lab7/ExerciseThree.java
diff --git a/regression/cegis/cegis_jsa_benchmark_15/test.desc b/regression/cegis/cegis_jsa_benchmark_15/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_15/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_16/Solution.java b/regression/cegis/cegis_jsa_benchmark_16/Solution.java
deleted file mode 100644
index 7d967f03d86..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_16/Solution.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.javarush.test.level08.lesson08.task02;
-
-import java.util.HashSet;
-import java.util.Iterator;
-
-/* Удалить все числа больше 10
-Создать множество чисел(Set), занести туда 20 различных чисел.
-Удалить из множества все числа больше 10.
-*/
-
-public class Solution
-{
-
-
-
- public static HashSet createSet()
- {
- HashSet hs = new HashSet();
-
- for (int i=0;i<20;i++){
- hs.add(i+i);
- }
-
- return hs;
- }
-
- public static HashSet removeAllNumbersMoreThen10(HashSet set)
- {
-
- Iterator it = set.iterator();
-
- while (it.hasNext()){
- if (it.next()>10) it.remove();
- }
-
- return set;
-
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_16/main.c b/regression/cegis/cegis_jsa_benchmark_16/main.c
deleted file mode 100644
index 7fcd43f2387..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_16/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (tmp > 10)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_16/source.url b/regression/cegis/cegis_jsa_benchmark_16/source.url
deleted file mode 100644
index c21cdf84214..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_16/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/bskydive/JavaSECorePractice/042bd509fe493db3ba160e4ab1721e7b8670b3cc/level08/lesson08/task02/Solution.java
diff --git a/regression/cegis/cegis_jsa_benchmark_16/test.desc b/regression/cegis/cegis_jsa_benchmark_16/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_16/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_17/CollectionFilter.java b/regression/cegis/cegis_jsa_benchmark_17/CollectionFilter.java
deleted file mode 100644
index f1024a22ff0..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_17/CollectionFilter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package bynull.collections;
-
-import java.util.*;
-
-/**
- * Created by null on 5/4/14.
- */
-public class CollectionFilter {
-
- public static void main(String[] args) {
- List list = new ArrayList(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));
-
- int counter = 0;
- for (Integer currChiper : list) {
- counter++;
- if (counter == 5) {
- filterCollection(list);
- }
- }
-
- System.out.println(list);
- }
-
- private static void filterCollection(List list) {
- for (ListIterator it = list.listIterator(); it.hasNext(); ) {
- if (it.next() > 6) {
- it.remove();
- }
- }
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_17/main.c b/regression/cegis/cegis_jsa_benchmark_17/main.c
deleted file mode 100644
index 1bb0754265f..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_17/main.c
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (tmp > 6)
- {
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_17/source.url b/regression/cegis/cegis_jsa_benchmark_17/source.url
deleted file mode 100644
index a3a746e6242..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_17/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/xnull/JavaExamples/77861227999047b63326de76c4a38c7f5c79c3ed/investigation-code/src/main/java/bynull/collections/CollectionFilter.java
diff --git a/regression/cegis/cegis_jsa_benchmark_17/test.desc b/regression/cegis/cegis_jsa_benchmark_17/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_17/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_18/CutSticks.java b/regression/cegis/cegis_jsa_benchmark_18/CutSticks.java
deleted file mode 100644
index 0cdba44a542..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18/CutSticks.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.sanjay.hackerrank;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Scanner;
-
-public class CutSticks {
- /* Cut Sticks
- * Given an array of integers, Subtract the minimum from the entire array elements till its zero.
- * At each step return the size of non-zero elements that are being subtracted. Once an element=0
- * ignore it.
- * */
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- Integer size = in.nextInt();
- List list = new ArrayList();
- List counts = null;
-
- while (size > 0) {
- String res = in.next();
- list.add(Integer.parseInt(res));
- size--;
-
- }
- in.close();
-
- counts = getCount(list);
-
- for (Integer integer : counts) {
- System.out.println(integer);
- }
- }
-
- private static List getCount(List list) {
- List size = new ArrayList();
- List nonZero = null;
-
- while (list.size() > 0) {
- List newList = new ArrayList();
- nonZero = removeZero(list);
- Integer min = getMin(nonZero);
- size.add(nonZero.size());
-
- for (Integer integer : nonZero) {
- if ((integer - min) > 0)
- newList.add(integer - min);
- }
- list = newList;
- }
- return size;
- }
-
- private static Integer getMin(List list) {
- Integer min = list.get(0);
-
- for (int i = 1; i < list.size(); i++) {
- if (list.get(i) < min)
- min = list.get(i);
- }
- return min;
- }
-
- private static List removeZero(List list) {
- List nonZero = new ArrayList();
-
- for (int i = 0; i < list.size(); i++) {
- if (list.get(i) > 0)
- nonZero.add(list.get(i));
- }
- return nonZero;
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_18/main.c b/regression/cegis/cegis_jsa_benchmark_18/main.c
deleted file mode 100644
index 1f889d098f1..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18/main.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 3u
-#define __CPROVER_JSA_MAX_NODES_PER_CE_LIST 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 2u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 3u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 5u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list=0;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_newList=1;
- __CPROVER_jsa_assume_new_list(&heap, __CPROVER_jsa_list_newList);
- const __CPROVER_jsa_data_t min;
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t integer=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (integer > min)
- {
- __CPROVER_jsa_add(&heap, __CPROVER_jsa_list_newList, integer);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_18/source.url b/regression/cegis/cegis_jsa_benchmark_18/source.url
deleted file mode 100644
index 8758f2a1fde..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/91sanjay/java-projects/11a291035ee32a4c43149b79a8c25b44ea1e1904/Hacker-Rank/CutSticks.java
diff --git a/regression/cegis/cegis_jsa_benchmark_18/test.desc b/regression/cegis/cegis_jsa_benchmark_18/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_18_02/CutSticks.java b/regression/cegis/cegis_jsa_benchmark_18_02/CutSticks.java
deleted file mode 100644
index 0cdba44a542..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18_02/CutSticks.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.sanjay.hackerrank;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Scanner;
-
-public class CutSticks {
- /* Cut Sticks
- * Given an array of integers, Subtract the minimum from the entire array elements till its zero.
- * At each step return the size of non-zero elements that are being subtracted. Once an element=0
- * ignore it.
- * */
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- Integer size = in.nextInt();
- List list = new ArrayList();
- List counts = null;
-
- while (size > 0) {
- String res = in.next();
- list.add(Integer.parseInt(res));
- size--;
-
- }
- in.close();
-
- counts = getCount(list);
-
- for (Integer integer : counts) {
- System.out.println(integer);
- }
- }
-
- private static List getCount(List list) {
- List size = new ArrayList();
- List nonZero = null;
-
- while (list.size() > 0) {
- List newList = new ArrayList();
- nonZero = removeZero(list);
- Integer min = getMin(nonZero);
- size.add(nonZero.size());
-
- for (Integer integer : nonZero) {
- if ((integer - min) > 0)
- newList.add(integer - min);
- }
- list = newList;
- }
- return size;
- }
-
- private static Integer getMin(List list) {
- Integer min = list.get(0);
-
- for (int i = 1; i < list.size(); i++) {
- if (list.get(i) < min)
- min = list.get(i);
- }
- return min;
- }
-
- private static List removeZero(List list) {
- List nonZero = new ArrayList();
-
- for (int i = 0; i < list.size(); i++) {
- if (list.get(i) > 0)
- nonZero.add(list.get(i));
- }
- return nonZero;
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_18_02/main.c b/regression/cegis/cegis_jsa_benchmark_18_02/main.c
deleted file mode 100644
index eccc4402408..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18_02/main.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 3u
-#define __CPROVER_JSA_MAX_NODES_PER_CE_LIST 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 2u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 3u
-#define __CPROVER_JSA_MAX_PRED_SIZE 2u
-#define __CPROVER_JSA_NUM_PRED_OPS 5u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list=0;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_newList=1;
- __CPROVER_jsa_assume_new_list(&heap, __CPROVER_jsa_list_newList);
- const __CPROVER_jsa_data_t min;
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t integer=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (integer > min)
- {
- __CPROVER_jsa_add(&heap, __CPROVER_jsa_list_newList, __CPROVER_jsa_minus(integer, min));
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_18_02/source.url b/regression/cegis/cegis_jsa_benchmark_18_02/source.url
deleted file mode 100644
index 8758f2a1fde..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18_02/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/91sanjay/java-projects/11a291035ee32a4c43149b79a8c25b44ea1e1904/Hacker-Rank/CutSticks.java
diff --git a/regression/cegis/cegis_jsa_benchmark_18_02/test.desc b/regression/cegis/cegis_jsa_benchmark_18_02/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_18_02/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_19/Question3_5.java b/regression/cegis/cegis_jsa_benchmark_19/Question3_5.java
deleted file mode 100644
index 0c4302e699a..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_19/Question3_5.java
+++ /dev/null
@@ -1,42 +0,0 @@
-import java.util.*;
-
-public class Question3_5{
- public static void main(String[] args){
- MyQueue mq = new MyQueue();
- mq.add(1);
- mq.add(2);
- mq.add(3);
- mq.add(4);
- mq.remove();
- mq.add(5);
- System.out.print(mq.remove() + " ");
- mq.add(6);
- }
-}
-class MyQueue{
- Deque addStack = new LinkedList();
- Deque removeStack = new LinkedList();
-
- public void add(Integer i){//not thread safe
- move(removeStack, addStack);
- addStack.push(i);
- }
-
- public Integer remove(){//not thread safe
- if (removeStack.size() == 0 && addStack.size() == 0){
- throw new NoSuchElementException();
- }
- move(addStack, removeStack);
- return removeStack.pop();
- }
-
- private void move(Deque from, Deque to){
- if (from.size() == 0) return;
- if (to.size() > 0) throw new IllegalStateException();
- Iterator it = from.iterator();
- while(it.hasNext()){
- to.push(it.next());
- it.remove();
- }
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_19/main.c b/regression/cegis/cegis_jsa_benchmark_19/main.c
deleted file mode 100644
index b99264633d8..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_19/main.c
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 3u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- while (__CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it))
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- // to_push(tmp);
- __CPROVER_jsa_remove(&heap, __CPROVER_jsa_iterator_it);
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_19/source.url b/regression/cegis/cegis_jsa_benchmark_19/source.url
deleted file mode 100644
index 8789fc7fdb6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_19/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/mnorbi/algo-practice/0e22d78305e592e7ed46e2f1ff0fb1cb5cbfb3c2/cracking-coding-interview/Question3_5.java
diff --git a/regression/cegis/cegis_jsa_benchmark_19/test.desc b/regression/cegis/cegis_jsa_benchmark_19/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_19/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_20/CutSticks.java b/regression/cegis/cegis_jsa_benchmark_20/CutSticks.java
deleted file mode 100644
index 0cdba44a542..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_20/CutSticks.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.sanjay.hackerrank;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Scanner;
-
-public class CutSticks {
- /* Cut Sticks
- * Given an array of integers, Subtract the minimum from the entire array elements till its zero.
- * At each step return the size of non-zero elements that are being subtracted. Once an element=0
- * ignore it.
- * */
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- Integer size = in.nextInt();
- List list = new ArrayList();
- List counts = null;
-
- while (size > 0) {
- String res = in.next();
- list.add(Integer.parseInt(res));
- size--;
-
- }
- in.close();
-
- counts = getCount(list);
-
- for (Integer integer : counts) {
- System.out.println(integer);
- }
- }
-
- private static List getCount(List list) {
- List size = new ArrayList();
- List nonZero = null;
-
- while (list.size() > 0) {
- List newList = new ArrayList();
- nonZero = removeZero(list);
- Integer min = getMin(nonZero);
- size.add(nonZero.size());
-
- for (Integer integer : nonZero) {
- if ((integer - min) > 0)
- newList.add(integer - min);
- }
- list = newList;
- }
- return size;
- }
-
- private static Integer getMin(List list) {
- Integer min = list.get(0);
-
- for (int i = 1; i < list.size(); i++) {
- if (list.get(i) < min)
- min = list.get(i);
- }
- return min;
- }
-
- private static List removeZero(List list) {
- List nonZero = new ArrayList();
-
- for (int i = 0; i < list.size(); i++) {
- if (list.get(i) > 0)
- nonZero.add(list.get(i));
- }
- return nonZero;
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_20/main.c b/regression/cegis/cegis_jsa_benchmark_20/main.c
deleted file mode 100644
index 8e8aea4d9ff..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_20/main.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 3u
-#define __CPROVER_JSA_MAX_NODES_PER_CE_LIST 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 2u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 3u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list=0;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_nonZero=1;
- __CPROVER_jsa_assume_new_list(&heap, __CPROVER_jsa_list_nonZero);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t tmp=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if (tmp > 0)
- {
- __CPROVER_jsa_add(&heap, __CPROVER_jsa_list_nonZero, tmp);
- }
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_20/source.url b/regression/cegis/cegis_jsa_benchmark_20/source.url
deleted file mode 100644
index 8758f2a1fde..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_20/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.github.com/91sanjay/java-projects/11a291035ee32a4c43149b79a8c25b44ea1e1904/Hacker-Rank/CutSticks.java
diff --git a/regression/cegis/cegis_jsa_benchmark_20/test.desc b/regression/cegis/cegis_jsa_benchmark_20/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_20/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_21/CollectionTest.java b/regression/cegis/cegis_jsa_benchmark_21/CollectionTest.java
deleted file mode 100644
index a41c2935b00..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_21/CollectionTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-
-public class CollectionTest {
-
- public static void Test()
- {
- Collection collection = new ArrayList() ;
-
- for(int i = 1 ;i < 10 ;++i)
- {
- collection.add(i) ;
- }
-
- for(int value:collection)
- {
- System.out.println(value);
- }
- }
-
- public static void Test2()
- {
- int []iArr = new int[]{ 1,2,3,4} ;
- List intList = new ArrayList( Arrays.asList(iArr )) ;
-
- }
-
- public static void Test3()
- {
- Collection collection = new ArrayList(Arrays.asList(1,2,3,4,5)) ;
- Integer []moreInts = {6,7,8,9,10} ;
- collection.addAll(Arrays.asList(moreInts)) ;
-
- Collections.addAll(collection, 11,12,13,14,15) ;
- Collections.addAll(collection, moreInts) ;
- for(int i: collection)
- {
- System.out.print(i + "\t");
- }
- }
-
- public static void IteratorTest()
- {
- List intList = new ArrayList() ;
- Collections.addAll(intList, 1,2,3,4,5) ;
-
-
-// Iterator iterator = intList.iterator() ;
-// iterator.next() ;
-// iterator.remove();
-// while(iterator.hasNext())
-// {
-// System.out.println(iterator.next());
-// }
-
- /////////////////////////////////////////////
-
- ListIterator listIterator = intList.listIterator() ;
- while(listIterator.hasNext())
- {
- System.out.println(listIterator.next() + ", " + listIterator.nextIndex() + ", " + listIterator.previousIndex());
- }
- System.out.println("----------------------------------");
-
- while(listIterator.hasPrevious())
- {
- System.out.print(listIterator.previous() + "\t");
- }
-
- while(listIterator.hasNext())
- {
- int value = listIterator.next() ;
- listIterator.set(value*10);
- }
- while(listIterator.hasPrevious())
- {
- System.out.print(listIterator.previous() + "\t");
- }
-
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
-
- IteratorTest() ;
-
-
- }
-
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_21/main.c b/regression/cegis/cegis_jsa_benchmark_21/main.c
deleted file mode 100644
index f0dcc1ed008..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_21/main.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_list;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_list);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_list);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_data_t value=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- __CPROVER_jsa_set(&heap, __CPROVER_jsa_iterator_it, __CPROVER_jsa_mult(value, 10));
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_21/source.url b/regression/cegis/cegis_jsa_benchmark_21/source.url
deleted file mode 100644
index f9fab52f5c4..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_21/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.githubusercontent.com/liupanpansmile/JavaCode/3ffc6fd87717f40b5a53dd74fba3388be0df2075/CollectionTest/src/CollectionTest.java
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_21/test.desc b/regression/cegis/cegis_jsa_benchmark_21/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_21/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_22/ListIteration.java b/regression/cegis/cegis_jsa_benchmark_22/ListIteration.java
deleted file mode 100644
index 280a562cb4c..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_22/ListIteration.java
+++ /dev/null
@@ -1,13 +0,0 @@
-import java.util.*;
-
-public class ListIteration {
- public static void main(String[] args) {
- List l = new LinkedList();
- ListIterator it = l.listIterator();
- while(it.hasNext()) {
- it.next();
- it.set(5);
- }
- }
-}
-
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_22/main.c b/regression/cegis/cegis_jsa_benchmark_22/main.c
deleted file mode 100644
index 457d47e09bb..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_22/main.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_l;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_l);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_l);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- __CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- __CPROVER_jsa_set(&heap, __CPROVER_jsa_iterator_it, 5);
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_22/source.url b/regression/cegis/cegis_jsa_benchmark_22/source.url
deleted file mode 100644
index b5177b30f5a..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_22/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.githubusercontent.com/yang-zhang/java-practice/fb6e88f91c29a5c7549e0f19a1faac6ab9e69b41/p291Exercise14/ListIteration.java
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_22/test.desc b/regression/cegis/cegis_jsa_benchmark_22/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_22/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_23/ListSetIteratorTest.java b/regression/cegis/cegis_jsa_benchmark_23/ListSetIteratorTest.java
deleted file mode 100644
index 7da6f9f38d0..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_23/ListSetIteratorTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.netappsid.observable.internal;
-
-import java.util.ListIterator;
-
-import org.junit.Test;
-
-import com.netappsid.collection.ArrayListSet;
-
-public class ListSetIteratorTest
-{
- private ArrayListSet list;
-
- @Test
- public void testSetSameObject()
- {
- list = ArrayListSet.of(1, 2);
- ListIterator listIterator = list.listIterator();
-
- while (listIterator.hasNext())
- {
- Object next = listIterator.next();
- listIterator.set(next);
- }
- }
-
- @Test
- public void testSetDifferentObject_NotAlreadyInList()
- {
- list = ArrayListSet.of(1);
- ListIterator listIterator = list.listIterator();
-
- while (listIterator.hasNext())
- {
- Integer next = (Integer) listIterator.next();
- listIterator.set(next + 1);
- }
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testSetDifferentObject_AlreadyInList()
- {
- list = ArrayListSet.of(1, 2);
- ListIterator listIterator = list.listIterator();
-
- while (listIterator.hasNext())
- {
- listIterator.next();
- listIterator.set(2);
- }
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_23/main.c b/regression/cegis/cegis_jsa_benchmark_23/main.c
deleted file mode 100644
index cbba6558699..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_23/main.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 1u
-#define __CPROVER_JSA_NUM_PRED_OPS 4u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_l;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_l);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_l);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_word_t next=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- __CPROVER_jsa_set(&heap, __CPROVER_jsa_iterator_it, __CPROVER_jsa_plus(next, 1));
- }
-
- return 0;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_23/source.url b/regression/cegis/cegis_jsa_benchmark_23/source.url
deleted file mode 100644
index 4ffc58a9e5c..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_23/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.githubusercontent.com/360-Innovations/observable/c1a9d48dc5a4fb3963fc515e48c3a883fbf61c22/test/com/netappsid/observable/internal/ListSetIteratorTest.java
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_23/test.desc b/regression/cegis/cegis_jsa_benchmark_23/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_23/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_24/TestIterator.java b/regression/cegis/cegis_jsa_benchmark_24/TestIterator.java
deleted file mode 100644
index 83dd1a94c65..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_24/TestIterator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.training.cap7;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.ListIterator;
-
-public class TestIterator {
-
- public static void main(String[] args){
- ArrayList l = new ArrayList<>();
-
- for(int i = 0; i<100;i++){
- l.add(new Integer(i));
- }
-
- Collections.shuffle(l);
-
- for(ListIterator iter = l.listIterator(); iter.hasNext();){
- int x = (int)iter.next();
-
- if( x % 2 == 0){
- iter.set(new Integer(0));
- }
- }
-
- System.out.println(l);
- }
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_24/main.c b/regression/cegis/cegis_jsa_benchmark_24/main.c
deleted file mode 100644
index 8ada5d91330..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_24/main.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef __CPROVER
-#define __CPROVER_JSA_MAX_CONCRETE_NODES 1u
-#define __CPROVER_JSA_MAX_ABSTRACT_NODES 0u
-#define __CPROVER_JSA_MAX_ITERATORS 1u
-#define __CPROVER_JSA_MAX_LISTS 1u
-
-#define JSA_SYNTHESIS_H_
-#define __CPROVER_JSA_DEFINE_TRANSFORMERS
-#define __CPROVER_JSA_MAX_QUERY_SIZE 2u
-#define __CPROVER_JSA_MAX_PRED_SIZE 3u
-#define __CPROVER_JSA_NUM_PRED_OPS 5u
-#define __CPROVER_JSA_NUM_PRED_RESULT_OPS 2u
-#endif
-
-#include "../../../src/ansi-c/library/jsa.h"
-
-int main(void)
-{
- __CPROVER_jsa_abstract_heapt heap;
- __CPROVER_jsa_assume_valid_heap(&heap);
- const __CPROVER_jsa_list_id_t __CPROVER_jsa_list_l;
- __CPROVER_jsa_assume_valid_list(&heap, __CPROVER_jsa_list_l);
- for (const __CPROVER_jsa_iterator_id_t __CPROVER_jsa_iterator_it=__CPROVER_jsa_iterator(&heap, __CPROVER_jsa_list_l);
- __CPROVER_jsa_hasNext(&heap, __CPROVER_jsa_iterator_it);)
- {
- const __CPROVER_jsa_word_t x=__CPROVER_jsa_next(&heap, __CPROVER_jsa_iterator_it);
- if(__CPROVER_jsa_mod(x, 2) == 0)
- {
- __CPROVER_jsa_set(&heap, __CPROVER_jsa_iterator_it, 0);
- }
- }
-
- return 1;
-}
diff --git a/regression/cegis/cegis_jsa_benchmark_24/source.url b/regression/cegis/cegis_jsa_benchmark_24/source.url
deleted file mode 100644
index eb820fe8541..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_24/source.url
+++ /dev/null
@@ -1 +0,0 @@
-https://raw.githubusercontent.com/pavelmalai/Training/39a2d73430425c270a101a7e659758f15700650b/Training/src/com/training/cap7/TestIterator.java
\ No newline at end of file
diff --git a/regression/cegis/cegis_jsa_benchmark_24/test.desc b/regression/cegis/cegis_jsa_benchmark_24/test.desc
deleted file mode 100644
index 07d2c6c73d6..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_24/test.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-CORE
-main.c
---gcc --jsa -D __CPROVER --cegis-statistics --cegis-genetic
-^EXIT=0$
-^SIGNAL=0$
-^.*__CPROVER_danger_D0_x *= *[\(]signed *int[\)][\(]MINUS_ONE *< *x[\)];$
-^.*__CPROVER_danger_R0_x_0 *= *ONE *- *x;$
---
-^warning: ignoring
diff --git a/regression/cegis/cegis_jsa_benchmark_25/TestIterator.java b/regression/cegis/cegis_jsa_benchmark_25/TestIterator.java
deleted file mode 100644
index 2301723fc6b..00000000000
--- a/regression/cegis/cegis_jsa_benchmark_25/TestIterator.java
+++ /dev/null
@@ -1,474 +0,0 @@
-package neural;
-
-import java.util.ArrayList;
-
-import fileReader.FileReader;
-
-public class Network {
- private ArrayList inputLayer, outputLayer;
- private int inputSize, outputSize, hiddenLayersNumber;
- private ArrayList hiddenSizes;
- private ArrayList> hiddenLayers;
- private double learningRate;
- String filename;
-
- public Network(int inputNumber,int outputNumber, double learningRate , int hiddenLayersNumber, String filename) {
- // TODO Auto-generated constructor stub
-
- inputSize = inputNumber;
- outputSize = outputNumber;
- this.hiddenLayersNumber = hiddenLayersNumber;
- this.learningRate = learningRate;
- this.filename = filename;
-
- inputLayer = new ArrayList();
- hiddenLayers = new ArrayList>();
- outputLayer = new ArrayList();
- hiddenSizes = new ArrayList();
-
- for(int i = 0; i < inputSize; i++)
- {
- inputLayer.add(new Neuron((inputNumber + outputNumber)/2));//tamanho da primeira camada escondida
- }
-
-
- for(int i = 0; i < hiddenLayersNumber; i++)
- {
- int neuronsSize;
- ArrayList tempLayer = new ArrayList();
- if(i == 0)
- neuronsSize = (inputNumber + outputNumber)/2;
- else
- neuronsSize = (hiddenSizes.listIterator(i-1).next() + outputNumber)/2;
- hiddenSizes.add(neuronsSize);
- for(int j = 0; j < neuronsSize; j++)
- {
- tempLayer.add(new Neuron((neuronsSize + outputNumber)/2));
- }
- hiddenLayers.add(tempLayer);
- }
-
- for(int i = 0; i < outputSize; i++)
- {
- outputLayer.add(new Neuron(0));
- }
- }
-
-
- private void normalizeValues(ArrayList layer)
- {
-
- for(int j = 0; j < layer.size();j++)
- {
- double normalize = sigmoide(layer.listIterator(j).next().getValue() + layer.listIterator(j).next().getBias());
- layer.listIterator(j).next().setValue(normalize);
- }
-
- }
-
-
- private void hiddenFrontPropagation()
- {
- for(int i = 0; i < hiddenLayersNumber -1;i++)//at� � pen�ltima camada
- {
-
- for(int j = 0; j < hiddenSizes.listIterator(i).next();j++)
- {
- for(int k = 0; k < hiddenSizes.listIterator(i+1).next(); k++)
- {
-
- double netValue = hiddenLayers.listIterator(i).next().listIterator(j).next().getWeights().listIterator(k).next() * hiddenLayers.listIterator(i).next().listIterator(j).next().getValue();
-
- hiddenLayers.listIterator(i+1).next().listIterator(k).next().addValue(netValue);
-
- }
-
- normalizeValues(hiddenLayers.listIterator(i+1).next());
- }
-
- }
- }
-
- public void frontPropagation(double inputValues[])
- {
- for(int i = 0; i < inputValues.length;i++)
- {
- inputLayer.listIterator(i).next().setValue(sigmoide(inputValues[i]));
- for(int j = 0; j < hiddenSizes.listIterator(0).next();j++)
- {
- double netValue = inputLayer.listIterator(i).next().getWeights().listIterator(j).next() * inputLayer.listIterator(i).next().getValue();
- hiddenLayers.listIterator(0).next().listIterator(j).next().addValue(netValue);//primeira camada
- }
- }
-
- normalizeValues(hiddenLayers.listIterator(0).next());
-
- hiddenFrontPropagation();
-
- for(int i = 0; i < hiddenSizes.listIterator(hiddenLayersNumber-1).next();i++)
- {
- for(int j = 0; j < outputSize;j++)
- {
- double netValue = hiddenLayers.listIterator(hiddenLayersNumber-1).next().listIterator(i).next().getWeights().listIterator(j).next() * inputLayer.listIterator(i).next().getValue();
- netValue += hiddenLayers.listIterator(hiddenLayersNumber-1).next().listIterator(i).next().getBias();
-
-
- outputLayer.listIterator(j).next().addValue(netValue);
- }
- }
-
- normalizeValues(outputLayer);
- }
-
- public void backPropagation(double ExpectedOutputValues[]){
- updateDeltas(ExpectedOutputValues);
- updateWeightBias();
- }
-
- private void updateHiddenDeltas()
- {
- for(int i = hiddenLayersNumber -2; i > -1; i--)
- {
- for(int j = 0; j < hiddenSizes.listIterator(i).next();j++)
- {
- for(int k = 0; k < hiddenSizes.listIterator(i+1).next();k++)
- {
- hiddenLayers.listIterator(i).next().listIterator(j).next().addErrorFactor(hiddenLayers.listIterator(i+1).next().listIterator(k).next().getDelta() * hiddenLayers.listIterator(i).next().listIterator(k).next().getWeights().listIterator(j).next());
- }
- hiddenLayers.listIterator(i).next().listIterator(j).next().setDelta(hiddenLayers.listIterator(i).next().listIterator(j).next().getValue() * (1 - hiddenLayers.listIterator(i).next().listIterator(j).next().getValue()) * hiddenLayers.listIterator(i).next().listIterator(j).next().getErrorFactor());
- }
- }
- }
-
- private void updateDeltas(double ExpectedOutputValues[]){
-
- for(int i = 0 ; i < outputSize; i++){
- outputLayer.listIterator(i).next().setErrorFactor(ExpectedOutputValues[i] - outputLayer.listIterator(i).next().getValue());
- double newDelta = outputLayer.listIterator(i).next().getValue() * (1.0 - outputLayer.listIterator(i).next().getValue()) * outputLayer.listIterator(i).next().getErrorFactor();
- outputLayer.listIterator(i).next().setDelta(newDelta);
- }
-
-
- ////Last hidden Layer
- for( int i = 0 ; i < hiddenSizes.listIterator(hiddenLayersNumber -1).next(); i++)
- {
- for (int j=0 ; j < outputSize;j++)
- hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().addErrorFactor(outputLayer.listIterator(j).next().getDelta() * hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().getWeights().listIterator(j).next());
- hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().setDelta(hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().getValue() * (1 - hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().getValue()) * hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().getErrorFactor());
- }
-
- updateHiddenDeltas();
-
- }
-
-
- private void updateHiddenWeightBias()
- {
- //�ltima camada
- for(int i = 0; i < hiddenSizes.listIterator(hiddenLayersNumber-1).next(); i++)
- {
- for(int j = 0; j < outputSize; j++)
- {
- hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().getWeights().set(j, hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().getWeights().listIterator(j).next() +
- learningRate * outputLayer.listIterator(j).next().getValue()*outputLayer.listIterator(j).next().getDelta());
- }
-
- hiddenLayers.listIterator(hiddenLayersNumber -1).next().listIterator(i).next().updateBias(learningRate);
- }
-
-
-
- for(int i = hiddenLayersNumber-3; i >-1 ; i--)
- {
- for(int j = 0; j < hiddenSizes.listIterator(i).next();j++)
- {
- for(int k = 0;k < hiddenSizes.listIterator(i+1).next();k++)
- {
- hiddenLayers.listIterator(i).next().listIterator(i).next().getWeights().set(j, hiddenLayers.listIterator(i).next().listIterator(i).next().getWeights().listIterator(j).next() -
- learningRate * hiddenLayers.listIterator(i+1).next().listIterator(j).next().getValue()*hiddenLayers.listIterator(i+1).next().listIterator(j).next().getDelta());
-
- }
- hiddenLayers.listIterator(i).next().listIterator(i).next().updateBias(learningRate);
-
- }
-
-
-
- }
-
- }
-
- private void updateWeightBias()
- {
-
- for(int i = 0; i < outputSize; i++)
- {
- outputLayer.listIterator(i).next().updateBias(learningRate);
- }
-
- updateHiddenWeightBias();
-
-
- for(int i = 0; i < inputSize; i++)
- {
- for(int j = 0; j < hiddenSizes.listIterator(0).next(); j++)
- {
- double temp= inputLayer.listIterator(i).next().getWeights().listIterator(j).next() -
- learningRate * hiddenLayers.listIterator(0).next().listIterator(j).next().getValue()*hiddenLayers.listIterator(0).next().listIterator(j).next().getDelta();
-
- inputLayer.listIterator(i).next().getWeights().set(j, temp);
- }
-
- inputLayer.listIterator(i).next().updateBias(learningRate);
- }
-
- }
-
-
- public double errorsAvg()
- {
- double avg = 0.0;
-
- for(int i = 0; i < outputSize;i++ )
- {
- avg += outputLayer.listIterator(i).next().getErrorFactor() *outputLayer.listIterator(i).next().getErrorFactor() ;
-
- }
-
- return avg;
- }
-
-
- public double outputSum()
- {
-
- double sum = 0;
-
- for(int i = 0; i < outputSize;i++ )
- {
- sum += outputLayer.listIterator(i).next().getValue() ;
- }
-
- return sum;
- }
-
- public void resetErrors()
- {
- for(int i = 0; i < outputSize;i++ )
- {
- outputLayer.listIterator(i).next().resetError();
-
- }
-
- for(int i = 0; i < hiddenLayers.size(); i++)
- {
- for(int j = 0; j < hiddenLayers.listIterator(i).next().size(); j++)
- {
-
- hiddenLayers.listIterator(i).next().listIterator(j).next().resetError();
- }
-
- }
-
- }
-
- private ArrayList capitalsReader(FileReader f) {
- ArrayList capitals = new ArrayList();
- ArrayList