Clan  0.8.1
relation.h
Go to the documentation of this file.
1 
2  /*+------- <| --------------------------------------------------------**
3  ** A Clan **
4  **--- /.\ -----------------------------------------------------**
5  ** <| [""M# relation.h **
6  **- A | # -----------------------------------------------------**
7  ** /.\ [""M# First version: 30/04/2008 **
8  **- [""M# | # U"U#U -----------------------------------------------**
9  | # | # \ .:/
10  | # | #___| #
11  ****** | "--' .-" ******************************************************
12  * |"-"-"-"-"-#-#-## Clan : the Chunky Loop Analyzer (experimental) *
13  **** | # ## ###### *****************************************************
14  * \ .::::'/ *
15  * \ ::::'/ Copyright (C) 2008 University Paris-Sud 11 *
16  * :8a| # # ## *
17  * ::88a ### This is free software; you can redistribute it *
18  * ::::888a 8a ##::. and/or modify it under the terms of the GNU Lesser *
19  * ::::::::888a88a[]::: General Public License as published by the Free *
20  *::8:::::::::SUNDOGa8a::. Software Foundation, either version 2.1 of the *
21  *::::::::8::::888:Y8888:: License, or (at your option) any later version. *
22  *::::':::88::::888::Y88a::::::::::::... *
23  *::'::.. . ..... .. ... . *
24  * This software is distributed in the hope that it will be useful, but *
25  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
26  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License *
27  * for more details. *
28  * *
29  * You should have received a copy of the GNU Lesser General Public License *
30  * along with software; if not, write to the Free Software Foundation, Inc., *
31  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
32  * *
33  * Clan, the Chunky Loop Analyzer *
34  * Written by Cedric Bastoul, Cedric.Bastoul@u-psud.fr *
35  * *
36  ******************************************************************************/
37 
38 
39 #ifndef CLAN_relation_H
40 # define CLAN_relation_H
41 
42 # include <clan/options.h>
43 
44 # if defined(__cplusplus)
45 extern "C"
46  {
47 # endif
48 
49 
50 struct osl_relation;
51 struct osl_vector;
52 
53 
54 /*+****************************************************************************
55  * Processing functions *
56  ******************************************************************************/
57 void clan_relation_tag_array(struct osl_relation*, int);
58 struct osl_relation* clan_relation_build_context(int, clan_options_p);
59 struct osl_relation* clan_relation_scattering(int*, int, int);
60 void clan_relation_new_output_vector(struct osl_relation*,
61  struct osl_vector*);
62 void clan_relation_new_output_scalar(struct osl_relation*, int);
63 void clan_relation_compact(struct osl_relation*, int);
64 struct osl_relation* clan_relation_greater(struct osl_relation*,
65  struct osl_relation*, int);
66 struct osl_relation* clan_relation_not(struct osl_relation*);
67 void clan_relation_and(struct osl_relation*,
68  struct osl_relation*);
69 int clan_relation_existential(struct osl_relation*);
70 void clan_relation_oppose_row(struct osl_relation*, int);
71 struct osl_relation* clan_relation_stride(struct osl_relation*, int, int);
72 void clan_relation_simplify(struct osl_relation*);
73 void clan_relation_loop_context(struct osl_relation*,
74  struct osl_relation*, int);
75 
76 # if defined(__cplusplus)
77  }
78 # endif
79 #endif /* define CLAN_relation_H */
void clan_relation_oppose_row(struct osl_relation *, int)
int clan_relation_existential(struct osl_relation *)
void clan_relation_loop_context(struct osl_relation *, struct osl_relation *, int)
void clan_relation_tag_array(struct osl_relation *, int)
void clan_relation_simplify(struct osl_relation *)
struct osl_relation * clan_relation_scattering(int *, int, int)
Definition: relation.c:133
struct osl_relation * clan_relation_build_context(int, clan_options_p)
Definition: relation.c:93
void clan_relation_compact(struct osl_relation *, int)
void clan_relation_new_output_scalar(struct osl_relation *, int)
void clan_relation_and(struct osl_relation *, struct osl_relation *)
struct osl_relation * clan_relation_not(struct osl_relation *)
struct osl_relation * clan_relation_stride(struct osl_relation *, int, int)
void clan_relation_new_output_vector(struct osl_relation *, struct osl_vector *)
struct osl_relation * clan_relation_greater(struct osl_relation *, struct osl_relation *, int)