test/lp_test.cc
changeset 1445 4635352e5524
parent 1437 2a3f3448ced1
child 1473 876c7b7f4dae
     1.1 --- a/test/lp_test.cc	Fri Jun 03 12:25:23 2005 +0000
     1.2 +++ b/test/lp_test.cc	Sat Jun 04 12:50:15 2005 +0000
     1.3 @@ -34,108 +34,140 @@
     1.4    
     1.5    lp.addColSet(z);
     1.6  
     1.7 +  {
     1.8 +    LP::Expr e,f,g;
     1.9 +    LP::Col p1,p2,p3,p4,p5;
    1.10 +    LP::Constr c;
    1.11 +    
    1.12 +    e[p1]=2;
    1.13 +    e.constComp()=12;
    1.14 +    e[p1]+=2;
    1.15 +    e.constComp()+=12;
    1.16 +    e[p1]-=2;
    1.17 +    e.constComp()-=12;
    1.18 +    
    1.19 +    e=2;
    1.20 +    e=2.2;
    1.21 +    e=p1;
    1.22 +    e=f;
    1.23 +    
    1.24 +    e+=2;
    1.25 +    e+=2.2;
    1.26 +    e+=p1;
    1.27 +    e+=f;
    1.28 +    
    1.29 +    e-=2;
    1.30 +    e-=2.2;
    1.31 +    e-=p1;
    1.32 +    e-=f;
    1.33 +    
    1.34 +    e*=2;
    1.35 +    e*=2.2;
    1.36 +    e/=2;
    1.37 +    e/=2.2;
    1.38 +    
    1.39 +    e=((p1+p2)+(p1-p2)+(p1+12)+(12+p1)+(p1-12)+(12-p1)+
    1.40 +       (f+12)+(12+f)+(p1+f)+(f+p1)+(f+g)+
    1.41 +       (f-12)+(12-f)+(p1-f)+(f-p1)+(f-g)+
    1.42 +       2.2*f+f*2.2+f/2.2+
    1.43 +       2*f+f*2+f/2+
    1.44 +       2.2*p1+p1*2.2+p1/2.2+
    1.45 +       2*p1+p1*2+p1/2
    1.46 +       );
    1.47  
    1.48 -  LP::Expr e,f,g;
    1.49 -  LP::Col p1,p2,p3,p4,p5;
    1.50 -  LP::Constr c;
    1.51 +
    1.52 +    c = (e  <= f  );
    1.53 +    c = (e  <= 2.2);
    1.54 +    c = (e  <= 2  );
    1.55 +    c = (e  <= p1 );
    1.56 +    c = (2.2<= f  );
    1.57 +    c = (2  <= f  );
    1.58 +    c = (p1 <= f  );
    1.59 +    c = (p1 <= p2 );
    1.60 +    c = (p1 <= 2.2);
    1.61 +    c = (p1 <= 2  );
    1.62 +    c = (2.2<= p2 );
    1.63 +    c = (2  <= p2 );
    1.64 +    
    1.65 +    c = (e  >= f  );
    1.66 +    c = (e  >= 2.2);
    1.67 +    c = (e  >= 2  );
    1.68 +    c = (e  >= p1 );
    1.69 +    c = (2.2>= f  );
    1.70 +    c = (2  >= f  );
    1.71 +    c = (p1 >= f  );
    1.72 +    c = (p1 >= p2 );
    1.73 +    c = (p1 >= 2.2);
    1.74 +    c = (p1 >= 2  );
    1.75 +    c = (2.2>= p2 );
    1.76 +    c = (2  >= p2 );
    1.77 +    
    1.78 +    c = (e  == f  );
    1.79 +    c = (e  == 2.2);
    1.80 +    c = (e  == 2  );
    1.81 +    c = (e  == p1 );
    1.82 +    c = (2.2== f  );
    1.83 +    c = (2  == f  );
    1.84 +    c = (p1 == f  );
    1.85 +    //c = (p1 == p2 );
    1.86 +    c = (p1 == 2.2);
    1.87 +    c = (p1 == 2  );
    1.88 +    c = (2.2== p2 );
    1.89 +    c = (2  == p2 );
    1.90 +    
    1.91 +    c = (2 <= e <= 3);
    1.92 +    c = (2 <= p1<= 3);
    1.93 +    
    1.94 +    c = (2 >= e >= 3);
    1.95 +    c = (2 >= p1>= 3);
    1.96 +    
    1.97 +    e[x[3]]=2;
    1.98 +    e[x[3]]=4;
    1.99 +    e[x[3]]=1;
   1.100 +    e.constComp()=12;
   1.101 +    
   1.102 +    lp.addRow(LP::INF,e,23);
   1.103 +    lp.addRow(LP::INF,3.0*(x[1]+x[2]/2)-x[3],23);
   1.104 +    lp.addRow(LP::INF,3.0*(x[1]+x[2]*2-5*x[3]+12-x[4]/3)+2*x[4]-4,23);
   1.105 +    
   1.106 +    lp.addRow(x[1]+x[3]<=x[5]-3);
   1.107 +    lp.addRow(-7<=x[1]+x[3]-12<=3);
   1.108 +    lp.addRow(x[1]<=x[5]);
   1.109 +  }
   1.110    
   1.111 -  e[p1]=2;
   1.112 -  e.constComp()=12;
   1.113 -  e[p1]+=2;
   1.114 -  e.constComp()+=12;
   1.115 -  e[p1]-=2;
   1.116 -  e.constComp()-=12;
   1.117 -  
   1.118 -  e=2;
   1.119 -  e=2.2;
   1.120 -  e=p1;
   1.121 -  e=f;
   1.122 -
   1.123 -  e+=2;
   1.124 -  e+=2.2;
   1.125 -  e+=p1;
   1.126 -  e+=f;
   1.127 -
   1.128 -  e-=2;
   1.129 -  e-=2.2;
   1.130 -  e-=p1;
   1.131 -  e-=f;
   1.132 -
   1.133 -  e*=2;
   1.134 -  e*=2.2;
   1.135 -  e/=2;
   1.136 -  e/=2.2;
   1.137 -
   1.138 -  e=((p1+p2)+(p1-p2)+(p1+12)+(12+p1)+(p1-12)+(12-p1)+
   1.139 -      (f+12)+(12+f)+(p1+f)+(f+p1)+(f+g)+
   1.140 -      (f-12)+(12-f)+(p1-f)+(f-p1)+(f-g)+
   1.141 -      2.2*f+f*2.2+f/2.2+
   1.142 -      2*f+f*2+f/2+
   1.143 -      2.2*p1+p1*2.2+p1/2.2+
   1.144 -      2*p1+p1*2+p1/2
   1.145 -     );
   1.146 +  {
   1.147 +    LP::DualExpr e,f,g;
   1.148 +    LP::Row p1,p2,p3,p4,p5;
   1.149 +    
   1.150 +    e[p1]=2;
   1.151 +    e[p1]+=2;
   1.152 +    e[p1]-=2;
   1.153 +    
   1.154 +    e=p1;
   1.155 +    e=f;
   1.156 +    
   1.157 +    e+=p1;
   1.158 +    e+=f;
   1.159 +    
   1.160 +    e-=p1;
   1.161 +    e-=f;
   1.162 +    
   1.163 +    e*=2;
   1.164 +    e*=2.2;
   1.165 +    e/=2;
   1.166 +    e/=2.2;
   1.167 +    
   1.168 +    e=((p1+p2)+(p1-p2)+(p1+12)+(12+p1)+(p1-12)+(12-p1)+
   1.169 +       (p1+f)+(f+p1)+(f+g)+
   1.170 +       (p1-f)+(f-p1)+(f-g)+
   1.171 +       2.2*f+f*2.2+f/2.2+
   1.172 +       2*f+f*2+f/2+
   1.173 +       2.2*p1+p1*2.2+p1/2.2+
   1.174 +       2*p1+p1*2+p1/2
   1.175 +       );
   1.176 +  }
   1.177    
   1.178  
   1.179 -  c = (e  <= f  );
   1.180 -  c = (e  <= 2.2);
   1.181 -  c = (e  <= 2  );
   1.182 -  c = (e  <= p1 );
   1.183 -  c = (2.2<= f  );
   1.184 -  c = (2  <= f  );
   1.185 -  c = (p1 <= f  );
   1.186 -  c = (p1 <= p2 );
   1.187 -  c = (p1 <= 2.2);
   1.188 -  c = (p1 <= 2  );
   1.189 -  c = (2.2<= p2 );
   1.190 -  c = (2  <= p2 );
   1.191 -
   1.192 -  c = (e  >= f  );
   1.193 -  c = (e  >= 2.2);
   1.194 -  c = (e  >= 2  );
   1.195 -  c = (e  >= p1 );
   1.196 -  c = (2.2>= f  );
   1.197 -  c = (2  >= f  );
   1.198 -  c = (p1 >= f  );
   1.199 -  c = (p1 >= p2 );
   1.200 -  c = (p1 >= 2.2);
   1.201 -  c = (p1 >= 2  );
   1.202 -  c = (2.2>= p2 );
   1.203 -  c = (2  >= p2 );
   1.204 -
   1.205 -  c = (e  == f  );
   1.206 -  c = (e  == 2.2);
   1.207 -  c = (e  == 2  );
   1.208 -  c = (e  == p1 );
   1.209 -  c = (2.2== f  );
   1.210 -  c = (2  == f  );
   1.211 -  c = (p1 == f  );
   1.212 -  //c = (p1 == p2 );
   1.213 -  c = (p1 == 2.2);
   1.214 -  c = (p1 == 2  );
   1.215 -  c = (2.2== p2 );
   1.216 -  c = (2  == p2 );
   1.217 -
   1.218 -  c = (2 <= e <= 3);
   1.219 -  c = (2 <= p1<= 3);
   1.220 -
   1.221 -  c = (2 >= e >= 3);
   1.222 -  c = (2 >= p1>= 3);
   1.223 -
   1.224 -  e[x[3]]=2;
   1.225 -  e[x[3]]=4;
   1.226 -  e[x[3]]=1;
   1.227 -  e.constComp()=12;
   1.228 -  
   1.229 -  lp.addRow(LP::INF,e,23);
   1.230 -  lp.addRow(LP::INF,3.0*(x[1]+x[2]/2)-x[3],23);
   1.231 -  lp.addRow(LP::INF,3.0*(x[1]+x[2]*2-5*x[3]+12-x[4]/3)+2*x[4]-4,23);
   1.232 -
   1.233 -  lp.addRow(x[1]+x[3]<=x[5]-3);
   1.234 -  lp.addRow(-7<=x[1]+x[3]-12<=3);
   1.235 -  lp.addRow(x[1]<=x[5]);
   1.236 -
   1.237 -
   1.238 -  
   1.239  }
   1.240  
   1.241  int main()