configure.in: set AC_CONFIG_MACRO_DIR
[piplib.git] / source / tab.h
blobd071a2b1fe078e982226f9384ae89a694e3c3334
1 /******************************************************************************
2 * PIP : Parametric Integer Programming *
3 ******************************************************************************
4 * tab.h *
5 ******************************************************************************
6 * *
7 * Copyright Paul Feautrier, 1988, 1993, 1994, 1996, 2002 *
8 * *
9 * This library is free software; you can redistribute it and/or modify it *
10 * under the terms of the GNU Lesser General Public License as published by *
11 * the Free Software Foundation; either version 2.1 of the License, or (at *
12 * your option) any later version. *
13 * *
14 * This software is distributed in the hope that it will be useful, but *
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License *
17 * for more details. *
18 * *
19 * You should have received a copy of the GNU Lesser General Public License *
20 * along with this library; if not, write to the Free Software Foundation, *
21 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
22 * *
23 * Written by Paul Feautrier *
24 * *
25 ******************************************************************************/
27 #ifndef TAB_H
28 #define TAB_H
29 #if defined(__cplusplus)
30 extern "C"
32 #endif
34 struct A
35 {struct A *precedent;
36 char *bout;
37 char *free;
40 struct L
41 {int flags;
42 Entier d;
43 float size;
44 union { int unit;
45 Entier * val;
46 } objet;
49 struct high_water_mark {
50 int chunk;
51 void * top;
54 #define Unit 1
55 #define Plus 2
56 #define Minus 4
57 #define Zero 8
58 #define Critic 16
59 #define Unknown 32
61 #define Sign 62
63 #define Index(p,i,j) (p)->row[i].objet.val[j]
64 #define Flag(p,i) (p)->row[i].flags
65 #define Denom(p,i) (p)->row[i].d
66 #define MAX_DETERMINANT 4
68 #if defined(LINEAR_VALUE_IS_MP)
69 struct T
70 {int height, width, taille;
71 Entier determinant;
72 struct L row[1];
74 #else
75 struct T
76 {int height, width;
77 Entier determinant[MAX_DETERMINANT];
78 int l_determinant;
79 struct L row[1];
81 #endif
83 typedef struct T Tableau;
85 /* Ced : ajouts specifiques a la PipLib pour funcall. */
86 Tableau * tab_Matrix2Tableau(PipMatrix *, int, int, int, int, int, int);
87 Tableau * tab_Matrix2TableauMax(PipMatrix *, int, int, int, int) ;
89 #if defined(__cplusplus)
91 #endif
92 #endif /* define _H */