====== Chess - Programming - Material Hash Table ====== A Material Hash Table is used to cache once calculated material values for certain material constellations, considering not only the dot-product of the piece values, but material imbalance and even insufficient material. * One has to take care the effort of hashing is not more expensive than the full calculation, assuming incremental update only for captures or promotions. * Another pragmatical approach is to use pre-computed material tables. The hash function must have three desired characteristics. - It should be obviously faster than the function it is replacing. - It should distribute the positions that are likely occur in a single search. - It should be symmetric with respect to Black and White.