]> andersk Git - moira.git/blob - util/gdss/lib/crypto/bignum/h/BigZ.h
initial import of gdss from the Athena source tree
[moira.git] / util / gdss / lib / crypto / bignum / h / BigZ.h
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 */
4
5 /* BigZ.h: Types and structures for clients of BigZ */
6  
7
8                         /* BigZ sign */
9
10
11 #define BZ_PLUS                         1
12 #define BZ_ZERO                         0
13 #define BZ_MINUS                        -1
14 #define BzSign                          BigNumCmp
15
16
17                         /* BigZ compare result */
18
19
20 #define BZ_LT                           BN_LT
21 #define BZ_EQ                           BN_EQ
22 #define BZ_GT                           BN_GT
23 #define BzCmp                           BigNumCmp
24
25
26                         /* BigZ number */
27
28 #ifndef BIGNUM
29 #include "BigNum.h"
30 #endif
31
32 struct BigZHeader
33 {
34     unsigned long                       Size;
35     BzSign                              Sign;
36 };
37
38
39 struct BigZStruct
40 {
41     struct BigZHeader                   Header;
42     BigNumDigit                         Digits [16];
43 };
44
45
46 typedef struct BigZStruct *             BigZ;
47
48 /*\f*/
49
50
51                 /*********** macros of bz.c **********/
52
53
54 #define BzGetSize(z)                    ((z)->Header.Size)
55 #define BzGetSign(z)                    ((z)->Header.Sign)
56
57 #define BzSetSize(z,s)                  (z)->Header.Size = s
58 #define BzSetSign(z,s)                  (z)->Header.Sign = s
59
60 #define BzGetOppositeSign(z)            (-(z)->Header.Sign)
61
62
63                 /*********** functions of bz.c **********/
64
65 extern void             BzInit                  ();
66 extern void             BzClose                  ();
67
68 extern BigZ             BzCreate                ();
69 extern void             BzFree                  ();
70 extern void             BzFreeString            ();
71
72 extern unsigned         BzNumDigits             ();
73
74 extern BigZ             BzCopy                  ();
75 extern BigZ             BzNegate                ();
76 extern BigZ             BzAbs                   ();
77 extern BzCmp            BzCompare               ();
78
79 extern BigZ             BzAdd                   ();
80 extern BigZ             BzSubtract              ();
81 extern BigZ             BzMultiply              ();
82 extern BigZ             BzDivide                ();
83 extern BigZ             BzDiv                   ();
84 extern BigZ             BzMod                   ();
85
86 extern BigZ             BzFromString            ();
87 extern char *           BzToString              ();
88
89 extern BigZ             BzFromInteger           ();
90 extern int              BzToInteger             ();
91
92 extern BigZ             BzFromBigNum            ();
93 extern BigNum           BzToBigNum              ();
94
95                 /*********** functions of bzf.c **********/
96
97 extern BigZ             BzFactorial             ();
This page took 0.046648 seconds and 5 git commands to generate.