3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-02 17:30:23 +00:00

resource-limit related fixes in src/test

This commit is contained in:
Christoph M. Wintersteiger 2015-12-18 18:43:38 +00:00
parent e91b1e1da4
commit c2ab9b72dc
11 changed files with 672 additions and 569 deletions

View file

@ -3,7 +3,7 @@
Copyright (c) 2015 Microsoft Corporation
--*/
#include"rlimit.h"
#include "hilbert_basis.h"
/*
@ -15,12 +15,12 @@ namespace karr {
struct matrix {
vector<vector<rational> > A;
vector<rational> b;
unsigned size() const { return A.size(); }
void reset() {
A.reset();
b.reset();
void reset() {
A.reset();
b.reset();
}
matrix& operator=(matrix const& other) {
@ -46,7 +46,8 @@ namespace karr {
// treat src as a homogeneous matrix.
void dualizeH(matrix& dst, matrix const& src) {
hilbert_basis hb;
reslimit rl;
hilbert_basis hb(rl);
for (unsigned i = 0; i < src.size(); ++i) {
vector<rational> v(src.A[i]);
v.push_back(src.b[i]);
@ -74,7 +75,8 @@ namespace karr {
// treat src as an inhomegeneous matrix.
void dualizeI(matrix& dst, matrix const& src) {
hilbert_basis hb;
reslimit rl;
hilbert_basis hb(rl);
for (unsigned i = 0; i < src.size(); ++i) {
hb.add_eq(src.A[i], -src.b[i]);
}
@ -136,7 +138,7 @@ namespace karr {
}
for (unsigned i = 0; i < src.size(); ++i) {
T.A.push_back(src.A[i]);
T.A.back().append(zeros);
T.A.back().append(zeros);
}
T.b.append(src.b);
T.append(Ab);
@ -146,7 +148,7 @@ namespace karr {
dualizeI(TD, T);
TD.display(std::cout << "TD:\n");
for (unsigned i = 0; i < TD.size(); ++i) {
vector<rational> v;
vector<rational> v;
v.append(src.size(), TD.A[i].c_ptr() + src.size());
dst.A.push_back(v);
dst.b.push_back(TD.b[i]);
@ -200,8 +202,8 @@ namespace karr {
static void tst1() {
matrix Theta;
matrix Ab;
//
//
Theta.A.push_back(V(1, 0));
Theta.b.push_back(R(0));
Theta.A.push_back(V(0, 1));
@ -232,7 +234,7 @@ namespace karr {
joinD(e2, t2D, ThetaD);
t2D.display(std::cout << "t2D\n");
e2.display(std::cout << "e2\n");
e2.display(std::cout << "e2\n");
}
void tst2() {
@ -264,7 +266,7 @@ namespace karr {
N.display(std::cout << "N\n");
}
void tst3() {
@ -288,7 +290,7 @@ namespace karr {
N.display(std::cout << "N\n");
}
};