

#ifndef _ILZR_H
#define _ILZR_H
/**-----------------------------------------------------------------------
  *   Bloque de constantes 'NEMOTECNICAS' para una mejor simplicidad
  * de csdigo, lo siento si alguien cree que tengo demasiada tendencia
  * a las palabras de origen sajsn, pero no puedo sufrir versiones 
  * castellanas ni catalanas. Sera la costumbre.
  *
  **/

#define TRUE                  1
#define FALSE                 0
#define NIL                   0
#define UNUSED                0
#define CONTROL               0L    /* Indicador de que control   */
#define END_OF_FILE           0L    /* Indic. fin de fichero      */
#define BITS_CHARS            8     /* 8 order-0 ; 16 order-1 ... */

#define WIND_BITS            14
#define WIND_SIZE             ( 1 << WIND_BITS )
#define WIND_MASK             ( WIND_SIZE - 1 )
#define MOD_WIN( a )          ( ( a ) & WIND_MASK )

#define INIT_BIT_BUMP              8

#define BITS_LOOKAHEAD        4
#define RAW_LOOKAHEAD         ( 1 << BITS_LOOKAHEAD ) 

#define MIN_MATCH             3     /* No lo toques o no funciona */
#define MAX_MATCH             (RAW_LOOKAHEAD + MIN_MATCH -1 )

#define HASH_BITS             15    /* Sugiero mmnimo de 12 pero llega a 10 */
#define HASH_SIZE            (unsigned)(1<<HASH_BITS)
#define HASH_MASK             ( HASH_SIZE - 1)
#define HASH_SHIFT            (( HASH_BITS + MIN_MATCH -1 )/MIN_MATCH) /* 5 */

#define MAX_HASH_COL          17

#define REHASH( h , c )      h = (( (( h )<<HASH_SHIFT) ^ ( c )) & HASH_MASK )


/**-----------------------------------------------------------------------
  *   Aqum se encuentran las variables globales, espero que no quede nada 
  * pues en caso contrario uno no puede hacer residente el codigo
  *
  **/


/**-----------------------------------------------------------------------
  *   Definicisn de tipos a causa de mi vagancia al escribir, tambien
  * simplifica considerablemente el entendimiento de los parametros.
  *
  **/

typedef unsigned char  CHARS;   /* Por si en el futuro amplio a order-1    */
                              /* El 1.8 Speedup , 14% compresion-down( text ) */

#endif