nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | /* |
2 | * Copyright 2010 INRIA Saclay |
||
3 | * |
||
4 | * Use of this software is governed by the GNU LGPLv2.1 license |
||
5 | * |
||
6 | * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France, |
||
7 | * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod, |
||
8 | * 91893 Orsay, France |
||
9 | */ |
||
10 | |||
11 | #ifndef ISL_MORHP_H |
||
12 | #define ISL_MORHP_H |
||
13 | |||
14 | #include <stdio.h> |
||
15 | #include <isl/space.h> |
||
16 | #include <isl/mat.h> |
||
17 | #include <isl/set.h> |
||
18 | |||
19 | #if defined(__cplusplus) |
||
20 | extern "C" { |
||
21 | #endif |
||
22 | |||
23 | /* An isl_morph is a "morphism" on (basic) sets. |
||
24 | * "map" is an affine mapping from "dom" to "ran" |
||
25 | * and "inv" is the inverse mapping. |
||
26 | */ |
||
27 | struct isl_morph { |
||
28 | int ref; |
||
29 | |||
30 | isl_basic_set *dom; |
||
31 | isl_basic_set *ran; |
||
32 | |||
33 | isl_mat *map; |
||
34 | isl_mat *inv; |
||
35 | }; |
||
36 | typedef struct isl_morph isl_morph; |
||
37 | |||
38 | __isl_give isl_morph *isl_morph_alloc( |
||
39 | __isl_take isl_basic_set *dom, __isl_take isl_basic_set *ran, |
||
40 | __isl_take isl_mat *map, __isl_take isl_mat *inv); |
||
41 | __isl_give isl_morph *isl_morph_copy(__isl_keep isl_morph *morph); |
||
42 | __isl_give isl_morph *isl_morph_identity(__isl_keep isl_basic_set *bset); |
||
43 | void isl_morph_free(__isl_take isl_morph *morph); |
||
44 | |||
45 | __isl_give isl_space *isl_morph_get_ran_space(__isl_keep isl_morph *morph); |
||
46 | unsigned isl_morph_dom_dim(__isl_keep isl_morph *morph, enum isl_dim_type type); |
||
47 | unsigned isl_morph_ran_dim(__isl_keep isl_morph *morph, enum isl_dim_type type); |
||
48 | |||
49 | __isl_give isl_morph *isl_morph_remove_dom_dims(__isl_take isl_morph *morph, |
||
50 | enum isl_dim_type type, unsigned first, unsigned n); |
||
51 | __isl_give isl_morph *isl_morph_remove_ran_dims(__isl_take isl_morph *morph, |
||
52 | enum isl_dim_type type, unsigned first, unsigned n); |
||
53 | __isl_give isl_morph *isl_morph_dom_params(__isl_take isl_morph *morph); |
||
54 | __isl_give isl_morph *isl_morph_ran_params(__isl_take isl_morph *morph); |
||
55 | |||
56 | __isl_give isl_morph *isl_morph_compose(__isl_take isl_morph *morph1, |
||
57 | __isl_take isl_morph *morph2); |
||
58 | __isl_give isl_morph *isl_morph_inverse(__isl_take isl_morph *morph); |
||
59 | |||
60 | void isl_morph_print_internal(__isl_take isl_morph *morph, FILE *out); |
||
61 | void isl_morph_dump(__isl_take isl_morph *morph); |
||
62 | |||
63 | __isl_give isl_morph *isl_basic_set_variable_compression( |
||
64 | __isl_keep isl_basic_set *bset, enum isl_dim_type type); |
||
65 | __isl_give isl_morph *isl_basic_set_parameter_compression( |
||
66 | __isl_keep isl_basic_set *bset); |
||
67 | __isl_give isl_morph *isl_basic_set_full_compression( |
||
68 | __isl_keep isl_basic_set *bset); |
||
69 | |||
70 | __isl_give isl_basic_set *isl_morph_basic_set(__isl_take isl_morph *morph, |
||
71 | __isl_take isl_basic_set *bset); |
||
72 | __isl_give isl_set *isl_morph_set(__isl_take isl_morph *morph, |
||
73 | __isl_take isl_set *set); |
||
74 | __isl_give isl_vec *isl_morph_vec(__isl_take isl_morph *morph, |
||
75 | __isl_take isl_vec *vec); |
||
76 | |||
77 | #if defined(__cplusplus) |
||
78 | } |
||
79 | #endif |
||
80 | |||
81 | #endif |