/* BigNum←internal.h - Types and structures internal to BigNum and BigZ */
 
#ifndef BIGNUM←INTERNAL←H
#define BIGNUM←INTERNAL←H
 
/*
 *	Description des types et constantes internes.
 */
/* Un nombre est un pointeur sur des UnitN a` la suite d'un ente↑te de'crivant
 * le type et la taille du tableau.
 *  .------------------------------------------.......----------------------.
 *  |  typeN  | lenN=N  |  Unit0  |  Unit1  |           | UnitN-2 | UnitN-1 |
 *  `------------------------------------------.......----------------------'
 *  ↑                   ↑
 *  |                   |
 *  BigNumHeader        BigNum
 *                    
 */
 
/* The following declarations are internal to the BigNum package: */
typedef unsigned int 	BigNumProduct;	/* The product of two digits */
struct BigNumHeader { 			/* The header of a BigNum */
   BigNumType 	type;
   int		length;
};
#define BN←TYPE(n)	(((struct BigNumHeader *) n) - 1)->type
#define BN←LENGTH(n)	(((struct BigNumHeader *) n) - 1)->length
 
#endif BIGNUM←INTERNAL←H