Incremental LP solver.

This commit is contained in:
chriseth
2022-08-24 15:54:22 +02:00
parent df50762498
commit f132e10155
9 changed files with 1048 additions and 4 deletions
+3 -2
View File
@@ -267,7 +267,8 @@ BOOST_AUTO_TEST_CASE(magic_square_3)
solver.addAssertion(1 <= var && var <= 9);
for (size_t i = 0; i < 9; i++)
for (size_t j = i + 1; j < 9; j++)
solver.addAssertion(vars[i] != vars[j]);
//solver.addAssertion(vars[i] != vars[j]);
solver.addAssertion(vars[i] <= vars[j] - 1 || vars[i] >= vars[j] + 1);
for (size_t i = 0; i < 3; i++)
solver.addAssertion(vars[i] + vars[i + 3] + vars[i + 6] == sum);
for (size_t i = 0; i < 9; i += 3)
@@ -292,7 +293,7 @@ BOOST_AUTO_TEST_CASE(magic_square_4)
solver.addAssertion(1 <= var && var <= 16);
for (size_t i = 0; i < 16; i++)
for (size_t j = i + 1; j < 16; j++)
solver.addAssertion(vars[i] != vars[j]);
solver.addAssertion(vars[i] <= vars[j] - 1 || vars[i] >= vars[j] + 1);
for (size_t i = 0; i < 4; i++)
solver.addAssertion(vars[i] + vars[i + 4] + vars[i + 8] + vars[i + 12] == sum);
for (size_t i = 0; i < 16; i += 4)
+9
View File
@@ -16,7 +16,13 @@
*/
// SPDX-License-Identifier: GPL-3.0
#define LPIncremental 1
#if LPIncremental
#include <libsolutil/LPIncremental.h>
#else
#include <libsolutil/LP.h>
#endif
#include <libsolutil/LinearExpression.h>
#include <libsolutil/CommonIO.h>
#include <libsmtutil/Sorts.h>
@@ -25,6 +31,8 @@
#include <boost/test/unit_test.hpp>
#if 0
using namespace std;
using namespace solidity::smtutil;
using namespace solidity::util;
@@ -496,3 +504,4 @@ BOOST_AUTO_TEST_CASE(fuzzer2)
BOOST_AUTO_TEST_SUITE_END()
}
#endif