/**
 * Constants used in the Cryptogram Solver
 * Author: Ramkumar Natarajan (nrk@cs.purdue.edu)
 **/

#ifndef CONSTANTS_H__
#define CONSTANTS_H__

#define MATCHLIST_END_  -1
#define EXP_NUMWORDS_   35
#define EXP_INP_SZ_     512

#define ALEPH_A         0x00000001
#define ALEPH_B         0x00000002
#define ALEPH_C         0x00000004
#define ALEPH_D         0x00000008

#define ALEPH_E         0x00000010
#define ALEPH_F         0x00000020
#define ALEPH_G         0x00000040
#define ALEPH_H         0x00000080

#define ALEPH_I         0x00000100
#define ALEPH_J         0x00000200
#define ALEPH_K         0x00000400
#define ALEPH_L         0x00000800

#define ALEPH_M         0x00001000
#define ALEPH_N         0x00002000
#define ALEPH_O         0x00004000
#define ALEPH_P         0x00008000

#define ALEPH_Q         0x00010000
#define ALEPH_R         0x00020000
#define ALEPH_S         0x00040000
#define ALEPH_T         0x00080000

#define ALEPH_U         0x00100000
#define ALEPH_V         0x00200000
#define ALEPH_W         0x00400000
#define ALEPH_X         0x00800000

#define ALEPH_Y         0x01000000
#define ALEPH_Z         0x02000000

#define ALEPH_ALL       0x03FFFFFF
#define ALEPH_NONE      0xFFFFFFFF

#define ALPHA_SZ_       26

#define MAX_WORDLEN_    32

#define OCCUR_SZ_       3
#define END_OF_LIST_    -1

#define WORDLIST_SZ_    2000

#define TRUE    1
#define FALSE   0

#define LOCAL   static

extern  int     aleph_codes[ALPHA_SZ_];

#endif
