1*5971e316Smrg /* 2*5971e316Smrg * Copyright 2016 Sven Verdoolaege 3*5971e316Smrg * 4*5971e316Smrg * Use of this software is governed by the MIT license 5*5971e316Smrg * 6*5971e316Smrg * Written by Sven Verdoolaege 7*5971e316Smrg */ 8*5971e316Smrg 9*5971e316Smrg #include <isl_pw_macro.h> 10*5971e316Smrg #include <isl/hash.h> 11*5971e316Smrg 12*5971e316Smrg /* Return a hash value that digests "pw". 13*5971e316Smrg */ FN(PW,get_hash)14*5971e316Smrguint32_t FN(PW,get_hash)(__isl_keep PW *pw) 15*5971e316Smrg { 16*5971e316Smrg int i; 17*5971e316Smrg uint32_t hash; 18*5971e316Smrg 19*5971e316Smrg if (!pw) 20*5971e316Smrg return 0; 21*5971e316Smrg 22*5971e316Smrg hash = isl_hash_init(); 23*5971e316Smrg for (i = 0; i < pw->n; ++i) { 24*5971e316Smrg uint32_t set_hash, el_hash; 25*5971e316Smrg 26*5971e316Smrg set_hash = isl_set_get_hash(pw->p[i].set); 27*5971e316Smrg isl_hash_hash(hash, set_hash); 28*5971e316Smrg el_hash = FN(EL,get_hash)(pw->p[i].FIELD); 29*5971e316Smrg isl_hash_hash(hash, el_hash); 30*5971e316Smrg } 31*5971e316Smrg 32*5971e316Smrg return hash; 33*5971e316Smrg } 34