1 | /* |
---|---|
2 | * Copyright 2016 Sven Verdoolaege |
3 | * |
4 | * Use of this software is governed by the MIT license |
5 | * |
6 | * Written by Sven Verdoolaege |
7 | */ |
8 | |
9 | #include <isl_multi_macro.h> |
10 | |
11 | /* Compare two multi expressions. |
12 | * |
13 | * Return -1 if "multi1" is "smaller" than "multi2", 1 if "multi1" is "greater" |
14 | * than "multi2" and 0 if they are equal. |
15 | */ |
16 | int FN(MULTI(BASE),plain_cmp)(__isl_keep MULTI(BASE) *multi1, |
17 | __isl_keep MULTI(BASE) *multi2) |
18 | { |
19 | int i; |
20 | int cmp; |
21 | |
22 | if (multi1 == multi2) |
23 | return 0; |
24 | if (!multi1) |
25 | return -1; |
26 | if (!multi2) |
27 | return 1; |
28 | |
29 | cmp = isl_space_cmp(space1: multi1->space, space2: multi2->space); |
30 | if (cmp != 0) |
31 | return cmp; |
32 | |
33 | for (i = 0; i < multi1->n; ++i) { |
34 | cmp = FN(EL,plain_cmp)(aff1: multi1->u.p[i], aff2: multi2->u.p[i]); |
35 | if (cmp != 0) |
36 | return cmp; |
37 | } |
38 | |
39 | return 0; |
40 | } |
41 |