// file: train_hash_table_constants.h
//
// this is the constants header file for the Hash_table class
//

// make sure definitions are made only once
//
#ifndef __TRAIN_HASH_TABLE_CONSTANTS
#define __TRAIN_HASH_TABLE_CONSTANTS

// isip include files
//
#ifndef  __ISIP_INTEGRAL_CONSTANTS
#include <integral_constants.h>
#endif

// define the class name
//
#define TRAIN_HASH_TABLE_CLASS_NAME (char_1*)"Train_Hash_table"

// The hash function we use here converts the key to an integer,
// divided by the size of the index range and take the reminder as the
// result.  The size is often a prime number to get the affect of
// spreading the keys quite uniformly.  We usually hope that the index
// obtained from the keys can achieve a good spread (uniform); and at
// the same time ensure that the result is in the proper range and
// with few collisions. The larger the number of values to be stored
// in a hash table, larger is the size needed. For instance, there are
// more than 20,000 words to be hashed in a SWITCHBOARD application.

// define the default size
//
#define TRAIN_HASH_TABLE_SIZE (int_4)5701
#define TRAIN_HASH_TABLE_FACTOR (int_4)31

// define the hash table modes
//
#define TRAIN_HASH_TABLE_STRING_DRIVEN (char_1)'S'
#define TRAIN_HASH_TABLE_LONG_DRIVEN (char_1)'L'
#define TRAIN_HASH_TABLE_DEF_MODE TRAIN_HASH_TABLE_STRING_DRIVEN

// end of file
//
#endif


