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 */ FN(MULTI (BASE),plain_cmp)16int 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(multi1->space, multi2->space); 30 if (cmp != 0) 31 return cmp; 32 33 for (i = 0; i < multi1->n; ++i) { 34 cmp = FN(EL,plain_cmp)(multi1->u.p[i], multi2->u.p[i]); 35 if (cmp != 0) 36 return cmp; 37 } 38 39 return 0; 40 } 41