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_pw_macro.h>
10 #include <isl/hash.h>
11 
12 /* Return a hash value that digests "pw".
13  */
FN(PW,get_hash)14 uint32_t FN(PW,get_hash)(__isl_keep PW *pw)
15 {
16 	int i;
17 	uint32_t hash;
18 
19 	if (!pw)
20 		return 0;
21 
22 	hash = isl_hash_init();
23 	for (i = 0; i < pw->n; ++i) {
24 		uint32_t set_hash, el_hash;
25 
26 		set_hash = isl_set_get_hash(pw->p[i].set);
27 		isl_hash_hash(hash, set_hash);
28 		el_hash = FN(EL,get_hash)(pw->p[i].FIELD);
29 		isl_hash_hash(hash, el_hash);
30 	}
31 
32 	return hash;
33 }
34