PIPS
iabrev.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* SIMPLEXE for integer variables */
3 /* ALL-INTEGER METHODS */
4 /* Jean Claude SOGNO */
5 /* Projet CHLOE -- INRIA ROCQUENCOURT */
6 /* Juin 1994 */
7 /* ========================================================================= */
8 
9 /* ========================================================================= */
10 /* Duong NGUYEN QUE */
11 /* Adaption to abstract computation: janusvalue */
12 /* CRI-ENSMP */
13 /* ========================================================================= */
14 
15 #define FTRACE XX->ftrace
16 /* ................ variables resultats ....................... */
17 #define VRESULT XX->result
18 #define NITER XX->niter
19 /* ............... variables ou constantes de depart .............. */
20 #define MC XX->mcontr
21 #define NV XX->nvar
22 #define NP XX->nvpos
23 #define PMETH XX->meth
24 #define PMET2 XX->met2
25 #define PMET3 XX->met3
26 #define PDICO XX->met4
27 #define MSR XX->met5
28 #define PRECR XX->met6
29 #define PCOMP XX->met7
30 #define REDON XX->met8
31 #define DYN XX->dyn
32 #define VISU XX->ntrace
33 #define VIS2 XX->ntrac2
34 #define VIS3 XX->ntrac3
35 #define TMORE 20
36 #define VARC XX->varc
37 #define FORCER XX->forcer
38 #define PFOURIER XX->fourier
39 #define CRITERMAX XX->critermax
40 #define CHOIXPIV XX->choixpiv
41 #define CHOIXPRIM XX->choixprim
42 #define VW1 (XX->ntrac2>=1)
43 #define VW2 (XX->ntrac2>=2)
44 #define VW3 (XX->ntrac2>=3)
45 #define VW4 (XX->ntrac2>=4)
46 #define VW5 (XX->ntrac2>=5)
47 #define VW6 (XX->ntrac2>=6)
48 #define VW7 (XX->ntrac2>=7)
49 #define VW8 (XX->ntrac2>=8)
50 /* ............... macros pour tableaux passes .............. */
51 /*#define a(A,B) *(*(XX->pta+A)+B)*/
52 /*#define d(A) *(XX->ptd+A) * remplace int d[MAXLIGNES+1]; */
53 /*#define e(A) *(XX->pte+A) * remplace int e[MAXLIGNES+1]; */
54 /*#define A(A,B) XX->a[A][B]*/
55 #define A(A,B) II->a[A][B]
56 #define D(A) II->d[A] /* remplace int d[MAXLIGNES+1]; */
57 #define E(A) II->e[A] /* remplace int e[MAXLIGNES+1]; */
58 /* ............... macros for local arrays .............. */
59 #define AK(A,B) XX->ak[A][B]
60 #define DK(A) XX->dk[A]
61 #define B(A) XX->b[A] /*#define bb(A) *(&XX->b[0]+A) ok */
62 #define G(A) XX->g[A]
63 /* ............... visualization run-level .................*/
64 #define ZVB 1 /* bad problem parameters */
65 #define ZVO 1 /* overflow */
66 #define ZVS 1 /* step signale */
67 #define ZVP1 3 /* pivoting, iteration is indicated */
68 #define ZVP2 6 /* after pivoting, global set *//*R*/
69 #define ZVTS 3 /* tableau en fin de step */
70 /* initial problem */
71 #define ZVA1 2 /* nature and number of constraints */
72 #define ZVA4 4 /* initial global set */
73 /* Variables status */
74 #define ZVVF 4 /* constrained feature is specified by an inequality */
75 /* Extended Euclid Algorithm */
76 /*#define ZVX 5 */ /* Extended Euclid Algorithm is described */
77 /* Unimodular change of variables */
78 #define ZVU1 2 /* unimodular change is indicated */
79 /*#define ZVU2 4 */ /* unimodular change is described */
80 /*#define ZVU4 4 */ /* global set before changing */
81 /*#define ZVU9 7 */ /* global set after changing *//*R*/
82 /* Equalities elimination */
83 /*#define ZVEK 4 */ /* comments concerning elimination */
84 #define ZVEV 3 /* empty equation is removed */
85 /*#define ZVE4 4*/ /* global set before pivoting */
86 /* GCD test */
87 /*#define ZVG1 2*/ /* after GCD computation, GCD test is indicated */
88 #define ZVG2 1 /* polyedron proved empty by GCD test */
89 /*#define ZVG3 3 *//* global set when polyedron proved empty by GCD test */
90 /* inequalities division */
91 #define ZVI1 2 /* inequality division is indicated */
92 #define ZVI3 3 /* inequality division is shown */
93 /* fourier */
94 #define ZVF1 2 /* fourier elimination is indicated */
95 #define ZVF2 5 /* after fourier 2-2, before removing col, global set */
96 #define ZVF3 4 /* after fourier elimination global set */
97 #define ZVFEC 2 /* empty column */
98 #define ZVFW 2 /* warning, a column is empty and functions are not */
99 /* Non-negative variables */
100 #define ZVNPC 6 /* global set after possible columns permutation */ /*R*/
101 #define ZVN1 4 /* chosen inequality is indicated */
102 #define ZVN2 2 /* rhs of chosen inequality is positive */
103 #define ZVNW 2 /* warning, all columns of free variables are empty */
104 #define ZVNG 5 /* gcd of coefficients of free variables */
105 /* cut */
106 #define ZVC1 3 /* cutting operation */
107 /*#define ZVC2 4 *//* cutting operation: resulting c. array */
108 /*#define ZVC3 5 *//* detailed cutting operation */
109 /*#define ZVC4 6 *//* more detailed cutting operation */
110 #define ZVCP1 4 /* global set before pivoting */
111 #define ZVCP2 7 /* global set after pivoting, before removing cut *//*R*/
112 #define ZVCP3 6 /* global set after pivoting */ /* redondant avec ZVP2 *//*R*/
113 /* redundant inequalities */
114 #define ZVR1 2 /* redundant inequality is indicated */
115 #define ZVR3 4 /* final global set if redundancies *//*R*/
116 #define ZVR4 4 /* global set before redundant inequality is removed */
117 /* dual */
118 #define ZVDS 3 /* surrogate constraint is indicated */
119 #define ZVDEND 3 /* global set after dual */
120 /* constraint satisfaction */
121 #define ZVSAT2 2 /* one more satisfaction is specified*/
122 #define ZVSAT3 3 /* global set after one more satisfaction or contradiction */
123 #define ZVSAT4 4 /* details concerning satisfaction */
124 /* primal */
125 #define ZVPRI 2 /* when improved cost function */
126 /* last */
127 #define ZVL 1 /* solver result */
128 #define ZVL2 3 /* global set */
129 /* branch */
130 #define ZVBR1 1 /* */
131 #define ZVBR2 2 /* */
132 #define ZVBR3 3 /* details */
133 #define ZVBR4 4 /* details */
134 /* ............... visualization variables .................*/
135 #define NSTEP XX->nstep
136 #define MAJSTEP XX->majstep
137 /* ********* local variables ******* */
138 #define NEGAL XX->negal
139 #define ICOUT XX->icout
140 #define MX XX->mx
141 #define NX XX->nx
142 #define NREDUN XX->nredun
143 #define VREDUN(A) XX->vredun[A]
144 #define TMAX XX->tmax
145 #define NUMERO XX->numero
146 #define NUMAX XX->numax
147 #define NUB XX->nub
148 #define LASTFREE XX->lastfree
149 #define IC1 XX->ic1
150 #define NTP XX->ntp
151 #define VDUM XX->vdum /* variables for trace */
152 /* ******** in case of possible bug or array overflow ***************/
153 #define XBUG(A) return xbug(XX,A)
154 #define XDEB(A) return xdeb(XX,A)