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 */
14uint32_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