mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Incremental LP solver.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user