/[gcl]/gcl/o/gmp_num_log.c
ViewVC logotype

Diff of /gcl/o/gmp_num_log.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by camm, Fri May 17 04:23:15 2002 UTC revision 1.3 by camm, Sat Jul 20 07:10:55 2002 UTC
# Line 9  object big_log_op(); Line 9  object big_log_op();
9  object normalize_big(object);  object normalize_big(object);
10    
11  object  object
12  log_op(op,mp_op)  log_op(int (*op) (/* ??? */), void (*mp_op) (/* ??? */))
 int (*op)();  
 void (*mp_op)();  
13  {  {
14          object x;          object x;
15          int     narg, i, j;          int     narg, i, j;
# Line 48  BIG_OP: Line 46  BIG_OP:
46    
47    
48  void  void
49  mp_and_op(u, i, j)  mp_and_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
50  {  {
51          mpz_and(u,i,j);          mpz_and(u,i,j);
52           /* (i & j); */           /* (i & j); */
53  }  }
54    
55  void  void
56  mp_eqv_op(u, i, j)  mp_eqv_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
57  {  {
58          mpz_xor(u,i,j);          mpz_xor(u,i,j);
59          mpz_com(u,u);          mpz_com(u,u);
# Line 66  mpz_t u, i, j; Line 62  mpz_t u, i, j;
62  }  }
63    
64  void  void
65  mp_nand_op(u, i, j)  mp_nand_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
66  {  {
67          mpz_and(u,i,j);          mpz_and(u,i,j);
68          mpz_com(u,u);          mpz_com(u,u);
# Line 75  mpz_t u, i, j; Line 70  mpz_t u, i, j;
70  }  }
71    
72  void  void
73  mp_nor_op(u, i, j)  mp_nor_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
74  {  {
75       mpz_ior(u,u,j);       mpz_ior(u,u,j);
76       mpz_com(u,i);       mpz_com(u,i);
# Line 84  mpz_t u, i, j; Line 78  mpz_t u, i, j;
78  }  }
79    
80  void  void
81  mp_andc1_op(u,i, j)  mp_andc1_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
82  {  {
83       mpz_com(u,i);       mpz_com(u,i);
84       mpz_and(u,u,j);       mpz_and(u,u,j);
# Line 93  mpz_t u, i, j; Line 86  mpz_t u, i, j;
86  }  }
87    
88  void  void
89  mp_andc2_op(u,i, j)  mp_andc2_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
90  {  {
91        mpz_com(u,j);        mpz_com(u,j);
92        mpz_and(u,u,i);        mpz_and(u,u,i);
# Line 102  mpz_t u, i, j; Line 94  mpz_t u, i, j;
94  }  }
95    
96  void  void
97  mp_orc1_op(u, i, j)  mp_orc1_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
98  {  {
99     mpz_com(u,i);     mpz_com(u,i);
100     mpz_ior(u,u,j);     mpz_ior(u,u,j);
# Line 111  mpz_t u, i, j; Line 102  mpz_t u, i, j;
102  }  }
103    
104  void  void
105  mp_orc2_op(u,i, j)  mp_orc2_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
106  {  {
107      mpz_com(u,j);      mpz_com(u,j);
108      mpz_ior(u,u,i);      mpz_ior(u,u,i);
# Line 120  mpz_t u, i, j; Line 110  mpz_t u, i, j;
110  }  }
111    
112  void  void
113  mp_b_clr_op(u,i, j)  mp_b_clr_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
114  {  {
115      mpz_set_si(u,0);      mpz_set_si(u,0);
116  /*      (0); */  /*      (0); */
117  }  }
118    
119  void  void
120  mp_b_set_op(u,i, j)  mp_b_set_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
121  {  {
122     mpz_set_si(u,-1);     mpz_set_si(u,-1);
123          /* (-1); */          /* (-1); */
124  }  }
125    
126  void  void
127  mp_b_1_op(u, i, j)  mp_b_1_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
128  {  {
129      mpz_set(u,i);      mpz_set(u,i);
130     /*   (i); */     /*   (i); */
131  }  }
132    
133  void  void
134  mp_b_2_op(u, i, j)  mp_b_2_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
135  {  {
136     mpz_set(u,j);     mpz_set(u,j);
137  /*      (j); */  /*      (j); */
138  }  }
139    
140  void  void
141  mp_b_c1_op(u, i, j)  mp_b_c1_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
142  {  {
143    mpz_com(u,i);    mpz_com(u,i);
144          /* (~i); */          /* (~i); */
145  }  }
146    
147  void  void
148  mp_b_c2_op(u, i, j)  mp_b_c2_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
149  {  {
150     mpz_com(u,j);     mpz_com(u,j);
151          /* (~j); */          /* (~j); */
# Line 171  mpz_t u, i, j; Line 155  mpz_t u, i, j;
155    
156    
157  int  int
158  big_bitp(x, p)  big_bitp(object x, int p)
 object  x;  
 int     p;  
159  {  {
160    return mpz_tstbit(MP(x),p);    return mpz_tstbit(MP(x),p);
161  }  }
# Line 183  int    p; Line 165  int    p;
165        
166    
167  void  void
168  mp_ior_op(u, i, j)  mp_ior_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
169  {  {
170          mpz_ior(u,i,j);          mpz_ior(u,i,j);
171      /* (i | j); */      /* (i | j); */
172  }  }
173    
174  void  void
175  mp_xor_op(u, i, j)  mp_xor_op(__mpz_struct *u, __mpz_struct *i, __mpz_struct *j)
 mpz_t u, i, j;  
176  {  {
177          mpz_xor(u,i,j);          mpz_xor(u,i,j);
178    /* (i ^ j); */    /* (i ^ j); */
179  }  }
180    
181  int  int
182  mpz_bitcount(x)  mpz_bitcount(__mpz_struct *x)
      mpz_t x;  
       
183  {  {
184    if (mpz_sgn(x) >= 0) {    if (mpz_sgn(x) >= 0) {
185      return mpz_popcount(x);      return mpz_popcount(x);
# Line 214  mpz_bitcount(x) Line 192  mpz_bitcount(x)
192    
193    
194  int  int
195  mpz_bitlength(x)  mpz_bitlength(__mpz_struct *x)
      mpz_t x;  
       
196  {  {
197    if (mpz_sgn(x) >= 0) {    if (mpz_sgn(x) >= 0) {
198      return mpz_sizeinbase(x,2);      return mpz_sizeinbase(x,2);

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26