public int hashIntArray(int[] array) {
		int a = 0xdeadbeef + ((array.length)<<2);
		int[] tab = new int[3];
		tab[0] = tab[1] = tab[2] = a;
		
		int pt = 0;
		int length = array.length;
		while(length>3){
			tab[0] += array[pt];
			tab[1] += array[pt+1];
			tab[2] += array[pt+2];
			mix(tab);
			length -= 3;
			pt += 3; 
		}
		
		switch(length){
		case 3:
			tab[2] += array[pt+2];
		case 2:
			tab[1] += array[pt+1];
		case 1:
		 	tab[0] += array[pt];
		 	finalMix(tab);
		case 0:
			break;
		}
		
		return tab[2];
	}