// Arup Guha
// 11/12/2010
// Hash Function to use for CIS 3362 Assignment #6.

#include <stdio.h>

int arup_hash_function(char* word, int length);

int main() {
    
    printf("Hash function of cis3362 is %d\n", arup_hash_function("cis3362", 7));
    system("PAUSE");
    return 0;
}

int arup_hash_function(char* word, int length) {
    
    int IV = 0x1359df69;
    
    int i=0;
    while (i < length) {
        int value = word[i] << ((8*i)%32);
        IV = IV ^ value;      
        IV = ((IV & 0x80000000) >> 31) | (IV << 1);
        IV = (IV << 16) ^ (IV >> 16);
        i++;
    }     
    return IV;
}
