#define OffsetFileSuffix	".HashOffsetTable"
#define PosFileSuffix		".HashPosTable"

// This code is specifically for 12mers encoded in 24 bits.
#define MerSize	12
#define MerHashSize (1 << (2*MerSize))
#define MerHashMask (MerHashSize - 1)

char nucleotides[] = "acgt";

int  codings[] = {
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1,  0, -1,  1, -1, -1, -1,  2,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1,  3, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1,  0, -1,  1, -1, -1, -1,  2,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1,  3, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
  -1, -1, -1, -1, -1, -1, -1, -1,
};

typedef struct hashMMData {
  char	*chrStart;
  int	chrLL;
  unsigned int	*offsetTable;
  unsigned int	*posTable;
} HashMMData;

