Polly 20.0.0git
isl_morph.h
Go to the documentation of this file.
1/*
2 * Copyright 2010 INRIA Saclay
3 *
4 * Use of this software is governed by the MIT 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/id_type.h>
16#include <isl/space.h>
17#include <isl/mat.h>
18#include <isl/set.h>
19
20#if defined(__cplusplus)
21extern "C" {
22#endif
23
24/* An isl_morph is a "morphism" on (basic) sets.
25 * "map" is an affine mapping from "dom" to "ran"
26 * and "inv" is the inverse mapping.
27 */
28struct isl_morph {
29 int ref;
30
33
36};
37typedef struct isl_morph isl_morph;
38
40
47
49 __isl_keep isl_space *space);
50
54 __isl_keep isl_morph *morph);
57
59 enum isl_dim_type type, unsigned first, unsigned n);
61 enum isl_dim_type type, unsigned first, unsigned n);
64
66 __isl_take isl_morph *morph2);
68
69void isl_morph_print_internal(__isl_take isl_morph *morph, FILE *out);
71
80
86 __isl_take isl_vec *vec);
87
88#if defined(__cplusplus)
89}
90#endif
91
92#endif
struct isl_multi_aff isl_multi_aff
Definition: aff_type.h:29
#define __isl_take
Definition: ctx.h:22
isl_stat
Definition: ctx.h:84
#define __isl_give
Definition: ctx.h:19
#define __isl_null
Definition: ctx.h:28
#define __isl_keep
Definition: ctx.h:25
int isl_size
Definition: ctx.h:96
isl_stat isl_morph_check_applies(__isl_keep isl_morph *morph, __isl_keep isl_space *space)
Definition: isl_morph.c:215
__isl_give isl_morph * isl_basic_set_full_compression(__isl_keep isl_basic_set *bset)
Definition: isl_morph.c:766
__isl_give isl_set * isl_morph_set(__isl_take isl_morph *morph, __isl_take isl_set *set)
Definition: isl_morph.c:678
__isl_give isl_space * isl_morph_get_ran_space(__isl_keep isl_morph *morph)
Definition: isl_morph.c:226
__isl_give isl_morph * isl_morph_inverse(__isl_take isl_morph *morph)
Definition: isl_morph.c:739
__isl_give isl_morph * isl_morph_compose(__isl_take isl_morph *morph1, __isl_take isl_morph *morph2)
Definition: isl_morph.c:711
__isl_give isl_morph * isl_basic_set_variable_compression(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
Definition: isl_morph.c:472
__isl_give isl_morph * isl_morph_ran_params(__isl_take isl_morph *morph)
Definition: isl_morph.c:329
isl_size isl_morph_dom_dim(__isl_keep isl_morph *morph, enum isl_dim_type type)
Definition: isl_morph.c:234
__isl_give isl_vec * isl_morph_vec(__isl_take isl_morph *morph, __isl_take isl_vec *vec)
Definition: isl_morph.c:790
isl_size isl_morph_ran_dim(__isl_keep isl_morph *morph, enum isl_dim_type type)
Definition: isl_morph.c:242
__isl_give isl_multi_aff * isl_morph_get_var_multi_aff(__isl_keep isl_morph *morph)
Definition: isl_morph.c:135
__isl_give isl_morph * isl_morph_identity(__isl_keep isl_basic_set *bset)
Definition: isl_morph.c:380
__isl_give isl_morph * isl_morph_dom_params(__isl_take isl_morph *morph)
Definition: isl_morph.c:306
__isl_give isl_morph * isl_basic_set_parameter_compression(__isl_keep isl_basic_set *bset)
Definition: isl_morph.c:564
__isl_null isl_morph * isl_morph_free(__isl_take isl_morph *morph)
Definition: isl_morph.c:89
__isl_give isl_morph * isl_basic_set_variable_compression_with_id(__isl_keep isl_basic_set *bset, __isl_keep isl_id *id)
Definition: isl_morph.c:538
__isl_give isl_morph * isl_morph_remove_ran_dims(__isl_take isl_morph *morph, enum isl_dim_type type, unsigned first, unsigned n)
Definition: isl_morph.c:277
__isl_give isl_morph * isl_morph_alloc(__isl_take isl_basic_set *dom, __isl_take isl_basic_set *ran, __isl_take isl_mat *map, __isl_take isl_mat *inv)
Definition: isl_morph.c:31
void isl_morph_dump(__isl_take isl_morph *morph)
Definition: isl_morph.c:375
isl_ctx * isl_morph_get_ctx(__isl_keep isl_morph *morph)
Definition: isl_morph.c:24
__isl_give isl_morph * isl_morph_remove_dom_dims(__isl_take isl_morph *morph, enum isl_dim_type type, unsigned first, unsigned n)
Definition: isl_morph.c:250
void isl_morph_print_internal(__isl_take isl_morph *morph, FILE *out)
Definition: isl_morph.c:364
__isl_give isl_basic_set * isl_morph_basic_set(__isl_take isl_morph *morph, __isl_take isl_basic_set *bset)
Definition: isl_morph.c:641
__isl_give isl_morph * isl_morph_copy(__isl_keep isl_morph *morph)
Definition: isl_morph.c:59
__isl_give isl_space * isl_morph_get_dom_space(__isl_keep isl_morph *morph)
Definition: isl_morph.c:195
enum isl_fold type
Definition: isl_test.c:4017
const char * set
Definition: isl_test.c:1356
const char * map
Definition: isl_test.c:1783
struct isl_set isl_set
Definition: map_type.h:26
struct isl_basic_set isl_basic_set
Definition: map_type.h:20
isl_dim_type
Definition: space_type.h:13
isl_basic_set * ran
Definition: isl_morph.h:32
int ref
Definition: isl_morph.h:29
isl_basic_set * dom
Definition: isl_morph.h:31
isl_mat * inv
Definition: isl_morph.h:35
isl_mat * map
Definition: isl_morph.h:34
n
Definition: youcefn.c:8