336 lines
14 KiB
Diff
336 lines
14 KiB
Diff
--- ./apronxx/apronxx_test.cc.orig 2009-12-22 06:33:22.000000000 -0700
|
|
+++ ./apronxx/apronxx_test.cc 2012-07-25 14:53:57.429804754 -0600
|
|
@@ -327,11 +327,13 @@ void test_coeff()
|
|
|
|
void test_dimchange()
|
|
{
|
|
+ ap_dim_t temp_array1[3] = {1,2,3};
|
|
+ ap_dim_t temp_array2[3] = {3,2,1};
|
|
cout << endl << "dimchange"
|
|
<< endl << "=========" << endl << endl;
|
|
- dimchange d = dimchange(1,2,(ap_dim_t[]){1,2,3});
|
|
+ dimchange d = dimchange(1,2,temp_array1);
|
|
cout << "from array 1 2 3: " << d;
|
|
- d = (ap_dim_t[]){3,2,1};
|
|
+ d = temp_array2;
|
|
cout << "from array 3 2 1: " << d;
|
|
cout << d.get_intdim() << " " << d.get_realdim() << " " << d.get(0) << " " << d[1] << endl;
|
|
try { d.get(3); assert(0); } catch (out_of_range& b) {}
|
|
@@ -362,15 +364,17 @@ void test_dimchange()
|
|
|
|
void test_dimperm()
|
|
{
|
|
+ ap_dim_t temp_array1[3] = {1,0,2};
|
|
+ ap_dim_t temp_array2[3] = {1,2,0};
|
|
cout << endl << "dimperm"
|
|
<< endl << "=======" << endl << endl;
|
|
dimperm i = id(3);
|
|
cout << "identity: " << i << endl;
|
|
- dimperm d = dimperm(3,(ap_dim_t[]){1,0,2});
|
|
+ dimperm d = dimperm(3,temp_array1);
|
|
cout << "from array 1 0 2: " << d;
|
|
d = id(3);
|
|
cout << "identity: " << d;
|
|
- d = (ap_dim_t[]){1,2,0};
|
|
+ d = temp_array2;
|
|
cout << "from array 1 2 0: " << d;
|
|
cout << d.size() << " " << d.get(0) << " " << d[1] << endl;
|
|
try { d.get(3); assert(0); } catch (out_of_range& b) {}
|
|
@@ -408,8 +412,10 @@ void test_dimperm()
|
|
|
|
void test_linexpr0()
|
|
{
|
|
- dimchange dim = dimchange(1,1,(ap_dim_t[]){0,2});
|
|
- dimperm perm = dimperm(3,(ap_dim_t[]){1,0,2});
|
|
+ ap_dim_t temp_array1[2] = {0,2};
|
|
+ ap_dim_t temp_array2[3] = {1,0,2};
|
|
+ dimchange dim = dimchange(1,1,temp_array1);
|
|
+ dimperm perm = dimperm(3,temp_array2);
|
|
dimperm perm2 = -perm;
|
|
|
|
// dense
|
|
@@ -554,6 +560,8 @@ void test_linexpr0()
|
|
|
|
void test_lincons0()
|
|
{
|
|
+ ap_dim_t temp_array1[2] = {0,2};
|
|
+ ap_dim_t temp_array2[3] = {1,0,2};
|
|
cout << endl << "lincons0"
|
|
<< endl << "========" << endl << endl;
|
|
coeff a[] = {1,2,3};
|
|
@@ -568,10 +576,10 @@ void test_lincons0()
|
|
lincons0 m = l;
|
|
assert(!l.is_unsat() && l.is_quasilinear() && l.is_linear());
|
|
cout << "copy 1x0 + 2x1 + 3x2 + 4 = 0: " << m << endl;
|
|
- lincons0 n = lincons0(m,dimchange(2,0,(ap_dim_t[]){0,2}));
|
|
+ lincons0 n = lincons0(m,dimchange(2,0,temp_array1));
|
|
assert(!n.is_unsat() && n.is_quasilinear() && n.is_linear());
|
|
cout << "dimchange 1x1 + 2x2 + 3x4 + 4 = 0: " << n << endl;
|
|
- lincons0 o = lincons0(m,dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ lincons0 o = lincons0(m,dimperm(3,temp_array2));
|
|
assert(!o.is_unsat() && o.is_quasilinear() && o.is_linear());
|
|
cout << "dimperm 2x0 + 1x1 + 3x2 + 4 = 0: " << o << endl;
|
|
cout << "unsat: " << lincons0(unsat()) << endl;
|
|
@@ -582,9 +590,9 @@ void test_lincons0()
|
|
cout << "unsat: " << l << endl;
|
|
o = n = lincons0(AP_CONS_EQ,linexpr0(3,a,4));
|
|
cout << "chained copy 1x0 + 2x1 + 3x2 + 4 = 0: " << o << endl;
|
|
- o.add_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
|
|
+ o.add_dimensions(dimchange(2,0,temp_array1));
|
|
cout << "dimchange 1x1 + 2x2 + 3x4 + 4 = 0: " << o << endl;
|
|
- n.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ n.permute_dimensions(dimperm(3,temp_array2));
|
|
cout << "dimperm 2x0 + 1x1 + 3x2 + 4 = 0: " << n << endl;
|
|
n.resize(2);
|
|
cout << "resize 2x0 + 1x1 + 4 = 0: " << n << endl;
|
|
@@ -620,6 +628,8 @@ void test_lincons0()
|
|
|
|
void test_lincons0_array()
|
|
{
|
|
+ ap_dim_t temp_array1[3] = {1,0,2};
|
|
+ ap_dim_t temp_array2[2] = {0,2};
|
|
cout << endl << "lincons0 array"
|
|
<< endl << "==============" << endl << endl;
|
|
coeff a[] = {1,2,3};
|
|
@@ -631,9 +641,9 @@ void test_lincons0_array()
|
|
cout << "construct: " << t << endl;
|
|
lincons0_array u = t;
|
|
cout << "copy: " << t << endl;
|
|
- lincons0_array v = lincons0_array(u,dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ lincons0_array v = lincons0_array(u,dimperm(3,temp_array1));
|
|
cout << "permutation: " << v << endl;
|
|
- lincons0_array w = lincons0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}));
|
|
+ lincons0_array w = lincons0_array(u,dimchange(1,1,temp_array2));
|
|
cout << "dim change: " << w << endl;
|
|
lincons0 ar[3] = { lincons0(AP_CONS_EQ,linexpr0(3,a,5)),
|
|
lincons0(AP_CONS_EQ,linexpr0(2,b,4)),
|
|
@@ -650,10 +660,10 @@ void test_lincons0_array()
|
|
cout << "from vector: " << x << endl;
|
|
w = v;
|
|
cout << "copy: " << w << endl;
|
|
- w.add_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
|
|
+ w.add_dimensions(dimchange(1,1,temp_array2));
|
|
cout << "dim change: " << w << endl;
|
|
w = v;
|
|
- w.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ w.permute_dimensions(dimperm(3,temp_array1));
|
|
cout << "permutation: " << w << endl;
|
|
cout << "size: " << w.size() << endl;
|
|
assert(w.is_linear() && w.is_quasilinear());
|
|
@@ -675,6 +685,8 @@ void test_lincons0_array()
|
|
|
|
void test_generator0()
|
|
{
|
|
+ ap_dim_t temp_array1[2] = {0,2};
|
|
+ ap_dim_t temp_array2[3] = {1,0,2};
|
|
cout << endl << "generator0"
|
|
<< endl << "==========" << endl << endl;
|
|
coeff a[] = {1,2,3};
|
|
@@ -688,17 +700,17 @@ void test_generator0()
|
|
generator0 l = generator0(AP_GEN_VERTEX,linexpr0(3,a,4));
|
|
generator0 m = l;
|
|
cout << "copy vert 1x0 + 2x1 + 3x2 + 4: " << m << endl;
|
|
- generator0 n = generator0(m,dimchange(2,0,(ap_dim_t[]){0,2}));
|
|
+ generator0 n = generator0(m,dimchange(2,0,temp_array1));
|
|
cout << "dimchange vert 1x1 + 2x2 + 3x4 + 4: " << n << endl;
|
|
- generator0 o = generator0(m,dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ generator0 o = generator0(m,dimperm(3,temp_array2));
|
|
cout << "dimperm vert 2x0 + 1x1 + 3x2 + 4: " << o << endl;
|
|
l = generator0(AP_GEN_RAY,linexpr0(4,b,5));
|
|
cout << "copy ray 4x0 + 3x1 + 2x2 + 1x3 + 5: " << l << endl;
|
|
o = n = generator0(AP_GEN_LINE,linexpr0(3,a,4));
|
|
cout << "chained copy line 1x0 + 2x1 + 3x2 + 4: " << o << endl;
|
|
- o.add_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
|
|
+ o.add_dimensions(dimchange(2,0,temp_array1));
|
|
cout << "dimchange line 1x1 + 2x2 + 3x4 + 4: " << o << endl;
|
|
- n.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ n.permute_dimensions(dimperm(3,temp_array2));
|
|
cout << "dimperm line 2x0 + 1x1 + 3x2 + 4: " << n << endl;
|
|
n.resize(2);
|
|
cout << "resize line 2x0 + 1x1 + 4: " << n << endl;
|
|
@@ -723,6 +735,8 @@ void test_generator0()
|
|
|
|
void test_generator0_array()
|
|
{
|
|
+ ap_dim_t temp_array1[3] = {1,0,2};
|
|
+ ap_dim_t temp_array2[2] = {0,2};
|
|
cout << endl << "generator0 array"
|
|
<< endl << "================" << endl << endl;
|
|
coeff a[] = {1,2,3};
|
|
@@ -734,9 +748,9 @@ void test_generator0_array()
|
|
cout << "construct: " << t << endl;
|
|
generator0_array u = t;
|
|
cout << "copy: " << t << endl;
|
|
- generator0_array v = generator0_array(u,dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ generator0_array v = generator0_array(u,dimperm(3,temp_array1));
|
|
cout << "permutation: " << v << endl;
|
|
- generator0_array w = generator0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}));
|
|
+ generator0_array w = generator0_array(u,dimchange(1,1,temp_array2));
|
|
cout << "dim change: " << w << endl;
|
|
generator0 ar[3] = { generator0(AP_GEN_VERTEX,linexpr0(3,a,5)),
|
|
generator0(AP_GEN_VERTEX,linexpr0(2,b,4)),
|
|
@@ -753,10 +767,10 @@ void test_generator0_array()
|
|
cout << "from vector: " << x << endl;
|
|
w = v;
|
|
cout << "copy: " << w << endl;
|
|
- w.add_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
|
|
+ w.add_dimensions(dimchange(1,1,temp_array2));
|
|
cout << "dim change: " << w << endl;
|
|
w = v;
|
|
- w.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ w.permute_dimensions(dimperm(3,temp_array1));
|
|
cout << "permutation: " << w << endl;
|
|
cout << "size: " << w.size() << endl;
|
|
w[0] = generator0(AP_GEN_LINE,linexpr0(2,b,88));
|
|
@@ -775,6 +789,8 @@ void test_generator0_array()
|
|
|
|
void test_texpr0()
|
|
{
|
|
+ ap_dim_t temp_array1[2] = {0,2};
|
|
+ ap_dim_t temp_array2[3] = {1,0,2};
|
|
cout << endl << "texpr0"
|
|
<< endl << "======" << endl << endl;
|
|
coeff a[] = {1,2,3};
|
|
@@ -857,8 +873,8 @@ void test_texpr0()
|
|
x = y = sqrt(dim(0)+1); cout << "chained assign sqrt(x0+1): " << x << "; " << y << endl;
|
|
|
|
// dimensions
|
|
- dimchange dimc = dimchange(1,1,(ap_dim_t[]){0,2});
|
|
- dimperm perm = dimperm(3,(ap_dim_t[]){1,0,2});
|
|
+ dimchange dimc = dimchange(1,1,temp_array1);
|
|
+ dimperm perm = dimperm(3,temp_array2);
|
|
x = dim(0)/dim(1);
|
|
cout << "add dim x1/x2: " << texpr0(x,dimc) << endl;
|
|
cout << "del dim ]-oo;+oo[/x0: " << texpr0(x,dimc,false) << endl;
|
|
@@ -1002,6 +1018,8 @@ void test_texpr0()
|
|
|
|
void test_tcons0()
|
|
{
|
|
+ ap_dim_t temp_array1[2] = {0,2};
|
|
+ ap_dim_t temp_array2[3] = {1,0,2};
|
|
cout << endl << "tcons0"
|
|
<< endl << "======" << endl << endl;
|
|
coeff a[] = {1,2,3};
|
|
@@ -1026,9 +1044,9 @@ void test_tcons0()
|
|
assert(!l.is_interval_cst() && !l.is_interval_linear() && l.is_interval_polynomial() &&
|
|
l.is_interval_polyfrac() && l.is_scalar());
|
|
cout << "copy x0 * x2 = 0: " << m << endl;
|
|
- tcons0 n = tcons0(m,dimchange(2,0,(ap_dim_t[]){0,2}));
|
|
+ tcons0 n = tcons0(m,dimchange(2,0,temp_array1));
|
|
cout << "dimchange x1 * x4 = 0: " << n << endl;
|
|
- tcons0 o = tcons0(m,dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ tcons0 o = tcons0(m,dimperm(3,temp_array2));
|
|
cout << "dimperm x1 * x2 = 0: " << o << endl;
|
|
cout << "unsat: " << tcons0(unsat()) << endl;
|
|
l = tcons0(AP_CONS_SUPEQ,dim(0));
|
|
@@ -1040,12 +1058,12 @@ void test_tcons0()
|
|
l.is_interval_polyfrac() && l.is_scalar());
|
|
o = n = tcons0(AP_CONS_EQ,dim(0)*dim(2)+2);
|
|
cout << "chained copy x0 * x2 +2 = 0: " << o << endl;
|
|
- o.add_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
|
|
+ o.add_dimensions(dimchange(2,0,temp_array1));
|
|
cout << "dimchange x1 * x4 + 2 = 0: " << o << endl;
|
|
o = tcons0(AP_CONS_EQ,dim(0)*dim(3)+2);
|
|
- o.remove_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
|
|
+ o.remove_dimensions(dimchange(2,0,temp_array1));
|
|
cout << "dimchange ]-oo;+oo[ * x1 + 2 = 0: " << o << endl;
|
|
- n.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ n.permute_dimensions(dimperm(3,temp_array2));
|
|
cout << "dimperm x1 * x2 + 2 = 0: " << n << endl;
|
|
assert(n.get_constyp()==AP_CONS_EQ);
|
|
n.get_constyp()=AP_CONS_SUP;
|
|
@@ -1084,6 +1102,8 @@ void test_tcons0()
|
|
|
|
void test_tcons0_array()
|
|
{
|
|
+ ap_dim_t temp_array1[3] = {1,0,2};
|
|
+ ap_dim_t temp_array2[2] = {0,2};
|
|
cout << endl << "tcons0 array"
|
|
<< endl << "============" << endl << endl;
|
|
coeff a[] = {1,2,3};
|
|
@@ -1095,11 +1115,11 @@ void test_tcons0_array()
|
|
cout << "construct: " << t << endl;
|
|
tcons0_array u = t;
|
|
cout << "copy: " << t << endl;
|
|
- tcons0_array v = tcons0_array(u,dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ tcons0_array v = tcons0_array(u,dimperm(3,temp_array1));
|
|
cout << "permutation: " << v << endl;
|
|
- tcons0_array w = tcons0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}));
|
|
+ tcons0_array w = tcons0_array(u,dimchange(1,1,temp_array2));
|
|
cout << "add dim: " << w << endl;
|
|
- tcons0_array ww = tcons0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}),false);
|
|
+ tcons0_array ww = tcons0_array(u,dimchange(1,1,temp_array2),false);
|
|
cout << "rem dim: " << ww << endl;
|
|
tcons0 ar[3] = { tcons0(AP_CONS_SUPEQ,dim(0)*dim(1)*dim(2)),
|
|
tcons0(AP_CONS_EQ,dim(0)%dim(1)),
|
|
@@ -1117,13 +1137,13 @@ void test_tcons0_array()
|
|
cout << "from vector: " << x << endl;
|
|
w = u;
|
|
cout << "copy: " << w << endl;
|
|
- w.add_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
|
|
+ w.add_dimensions(dimchange(1,1,temp_array2));
|
|
cout << "add dim: " << w << endl;
|
|
w = u;
|
|
- w.remove_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
|
|
+ w.remove_dimensions(dimchange(1,1,temp_array2));
|
|
cout << "del dim: " << w << endl;
|
|
w = u;
|
|
- w.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
|
|
+ w.permute_dimensions(dimperm(3,temp_array1));
|
|
cout << "permutation: " << w << endl;
|
|
cout << "size: " << w.size() << endl;
|
|
assert(!w.is_interval_linear());
|
|
@@ -1607,7 +1627,6 @@ void test_texpr1()
|
|
var af[] = { "f1","f3","f2" };
|
|
environment env(ai,2,af,2);
|
|
environment env2(ai,3,af,3);
|
|
- coeff a[] = {1,2,3};
|
|
|
|
// construction
|
|
cout << "construct 2: " << texpr1(env,2) << endl;
|
|
@@ -1806,7 +1825,6 @@ void test_tcons1_array()
|
|
var af[] = { "f1","f3","f2" };
|
|
environment env(ai,2,af,2);
|
|
environment env2(ai,3,af,3);
|
|
- coeff a[] = {1,2,3};
|
|
coeff b[] = {5,3};
|
|
tcons1_array t = tcons1_array(env,2);
|
|
try { cout << t; assert(0); } catch (invalid_argument& r) { cout << endl; }
|
|
@@ -1859,6 +1877,9 @@ void test_tcons1_array()
|
|
|
|
void test_abstract0(manager& m, manager& mm)
|
|
{
|
|
+ ap_dim_t temp_array1[3] = {1,2,3};
|
|
+ ap_dim_t temp_array2[5] = {0,1,3,4,2};
|
|
+ ap_dim_t temp_array3[3] = {0,1,2};
|
|
cout << "level 0" << endl << endl;
|
|
|
|
interval i[5] = {
|
|
@@ -2220,7 +2241,7 @@ void test_abstract0(manager& m, manager&
|
|
|
|
// dim change & permute
|
|
|
|
- dimchange dc = dimchange(1,2,(ap_dim_t[]){1,2,3});
|
|
+ dimchange dc = dimchange(1,2,temp_array1);
|
|
a1 = abstract0(m,2,3,ia);
|
|
add_dimensions(m,a2,a1,dc);
|
|
add_dimensions(m,a3,a1,dc,true);
|
|
@@ -2235,7 +2256,7 @@ void test_abstract0(manager& m, manager&
|
|
assert(a1==abstract0(m,2,3,ia));
|
|
cout << "remove dim: " << a1 << endl;
|
|
|
|
- dimperm dp = dimperm(5,(ap_dim_t[]){0,1,3,4,2});
|
|
+ dimperm dp = dimperm(5,temp_array2);
|
|
a1 = abstract0(m,2,3,ia);
|
|
permute_dimensions(m,a2,a1,dp);
|
|
a1.permute_dimensions(m,dp);
|
|
@@ -2243,7 +2264,7 @@ void test_abstract0(manager& m, manager&
|
|
cout << "permute dim: " << a1 << endl;
|
|
a1.permute_dimensions(m,-dp);
|
|
assert(a1==abstract0(m,2,3,ia));
|
|
- try { a1.permute_dimensions(m,dimperm(3,(ap_dim_t[]){0,1,2})); assert(0); }
|
|
+ try { a1.permute_dimensions(m,dimperm(3,temp_array3)); assert(0); }
|
|
catch (invalid_argument&c) {}
|
|
|
|
// expand fold
|