Remove outermost loop parameter.
[official-gcc/graphite-test-results.git] / libpcp / pcp_poly_spi_c.h
blobeab2104d94e559fc374a11425cb1faba636522e1
1 /* Copyright (C) 2009 Free Software Foundation, Inc.
2 * Contributed by Jan Sjodin <jan.sjodin@amd.com>.
4 * This file is part of the Polyhedral Compilation Package Library (libpcp).
6 * Libpcp is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation; either version 2.1 of the License, or
9 * (at your option) any later version.
11 * Libpcp is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
14 * more details.
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with libpcp; see the file COPYING.LIB. If not, write to the
18 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301, USA.
21 * As a special exception, if you link this library with other files, some
22 * of which are compiled with GCC, to produce an executable, this library
23 * does not by itself cause the resulting executable to be covered by the
24 * GNU General Public License. This exception does not however invalidate
25 * any other reasons why the executable file might be covered by the GNU
26 * General Public License.
29 #ifndef _PCP_POLY_SPI_C_
30 #define _PCP_POLY_SPI_C_
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
37 struct pcp_poly_spi
39 /* Coefficient Primitives */
40 int (*coefficientGetValue)(void* coeff);
41 const char* (*coefficientToString)(void* coeff);
42 void* (*coefficientCreate)(int value);
43 void (*coefficientDestroy)(void* coeff);
45 /* Linear Expr Primitives */
46 void* (*linearExprCopy)(void* linearExpr);
47 void (*linearExprAddToCoefficient)(void* linearExpr, int dimension, void* value);
48 void (*linearExprAddToInhomogenous)(void* linearExpr, void* value);
49 void (*linearExprSetCoefficient)(void* linearExp, int dimension, void* value);
50 int (*linearExprGetNumDimensions)(void* linearExpr);
51 void (*linearExprSubtract)(void* linearExpr, void* subtract);
52 const char* (*linearExprToString)(void* linearExpr);
54 void* (*linearExprCreate)();
55 void* (*linearExprCreateDim)(int numDimensions);
56 void (*linearExprDestroy)(void* linearExpr);
58 /* Constraint primitives */
59 void* (*constraintCreateEqualZero)(void* linearExpr);
60 void* (*constraintCreateGreaterEqualZero)(void* linearExpr);
61 void (*constraintDestroy)(void* constraint);
62 const char* (*constraintToString)(void* constraint);
64 /* Polyhedron primitives */
65 void* (*polyhedronGetConstraintSystem)(void* polyhedron);
66 void (*polyhedronAddConstraint)(void* polyhedron, void* constraint);
67 void (*polyhedronAddConstraints)(void* polyhedron, void* constraintSystem);
68 void (*polyhedronRemap)(void* polyhedron, int* map, int sizen);
69 void* (*polyhedronCopy)(void* polyhedron);
71 void* (*polyhedronCreate)(int numDimensions);
72 void (*polyhedronDestroy)(void* polyhedron);
74 /* PointsetPowerset primitives */
75 void* (*pointsetPowersetCreate)(void* polyhedron);
76 void (*pointsetPowersetDestroy)(void* poinsetPowerset);
80 #ifdef __cplusplus
82 PcpPolySpi* createPPLPolySpi();
83 #endif
85 #endif /* _PCP_POLY_SPI_C_ */