1 /* Copyright Digital Equipment Corporation & INRIA 1988, 1989 */
2 /* Last modified_on Thu Mar 22 21:29:09 GMT+1:00 1990 by shand */
3 /* modified_on Mon Jan 23 18:38:46 GMT+1:00 1989 by herve */
5 /* BigZ.h: Types and structures for clients of BigZ */
14 #define BzSign BigNumCmp
17 /* BigZ compare result */
23 #define BzCmp BigNumCmp
41 struct BigZHeader Header;
42 BigNumDigit Digits [16];
46 typedef struct BigZStruct * BigZ;
51 /*********** macros of bz.c **********/
54 #define BzGetSize(z) ((z)->Header.Size)
55 #define BzGetSign(z) ((z)->Header.Sign)
57 #define BzSetSize(z,s) (z)->Header.Size = s
58 #define BzSetSign(z,s) (z)->Header.Sign = s
60 #define BzGetOppositeSign(z) (-(z)->Header.Sign)
63 /*********** functions of bz.c **********/
65 extern void BzInit ();
66 extern void BzClose ();
68 extern BigZ BzCreate ();
69 extern void BzFree ();
70 extern void BzFreeString ();
72 extern unsigned BzNumDigits ();
74 extern BigZ BzCopy ();
75 extern BigZ BzNegate ();
77 extern BzCmp BzCompare ();
80 extern BigZ BzSubtract ();
81 extern BigZ BzMultiply ();
82 extern BigZ BzDivide ();
86 extern BigZ BzFromString ();
87 extern char * BzToString ();
89 extern BigZ BzFromInteger ();
90 extern int BzToInteger ();
92 extern BigZ BzFromBigNum ();
93 extern BigNum BzToBigNum ();
95 /*********** functions of bzf.c **********/
97 extern BigZ BzFactorial ();