File: isl_multi_gist.c

package info (click to toggle)
isl 0.27-1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 20,476 kB
  • sloc: ansic: 230,339; python: 19,348; cpp: 7,165; sh: 4,701; makefile: 767; lisp: 207; perl: 9
file content (50 lines) | stat: -rw-r--r-- 1,439 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
 * Copyright 2011      Sven Verdoolaege
 * Copyright 2012-2013 Ecole Normale Superieure
 *
 * Use of this software is governed by the MIT license
 *
 * Written by Sven Verdoolaege,
 * Ecole Normale Superieure, 45 rue d’Ulm, 75230 Paris, France
 */

#include <isl_multi_macro.h>

/* Compute the gist of the parameter domain "dom1" with respect to "dom2".
 *
 * Since "dom2" may not be a parameter domain, explicitly convert it
 * to a parameter domain first.
 */
static __isl_give DOM *FN(MULTI(BASE),domain_gist_params)(DOM *dom1,
	__isl_take DOM *dom2)
{
	isl_set *params;

	params = FN(DOM,params)(dom2);
	dom1 = FN(DOM,gist_params)(dom1, params);

	return dom1;
}

/* Compute the gist of "multi" with respect to the domain constraints
 * of "context".
 */
__isl_give MULTI(BASE) *FN(MULTI(BASE),gist)(__isl_take MULTI(BASE) *multi,
	__isl_take DOM *context)
{
	if (FN(MULTI(BASE),check_compatible_domain)(multi, context) < 0)
		context = FN(DOM,free)(context);
	return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, context, &FN(EL,gist),
					&FN(DOM,gist),
					&FN(MULTI(BASE),domain_gist_params));
}

/* Compute the gist of "multi" with respect to the parameter constraints
 * of "context".
 */
__isl_give MULTI(BASE) *FN(MULTI(BASE),gist_params)(
	__isl_take MULTI(BASE) *multi, __isl_take isl_set *context)
{
	return FN(MULTI(BASE),apply_set)(multi, context, &FN(EL,gist_params),
				&FN(DOM,gist_params), &FN(DOM,gist_params));
}