Changeset 550b4c in git for Singular/longalg.cc
- Timestamp:
- Apr 21, 1998, 12:59:29 PM (26 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 559a4bf0a3b03fde23553e3ceb0d6c6ff9e2d4e3
- Parents:
- aaafeb24812a2fa1306280482a08f65373287b7e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/longalg.cc
raaafeb r550b4c 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: longalg.cc,v 1.2 0 1998-03-27 15:43:28obachman Exp $ */4 /* $Id: longalg.cc,v 1.21 1998-04-21 10:59:24 obachman Exp $ */ 5 5 /* 6 6 * ABSTRACT: algebraic numbers … … 40 40 alg naMinimalPoly; 41 41 int naNumbOfPar; 42 int napMonomSize; 42 43 char **naParNames; 43 44 static int naIsChar0; … … 98 99 naParNames=param; 99 100 naNumbOfPar=pars; 101 napMonomSize = RECA_SIZE + naNumbOfPar*SIZEOF_PARAMETER; 100 102 if (i == 1) 101 103 { … … 180 182 static alg napInit(int i) 181 183 { 182 alg a = (alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));184 alg a = (alg)Alloc0(napMonomSize); 183 185 184 186 a->ko = nacInit(i); … … 189 191 else 190 192 { 191 Free((ADDRESS)a, RECA_SIZE + naNumbOfPar * sizeof(int));193 Free((ADDRESS)a, napMonomSize); 192 194 return NULL; 193 195 } … … 199 201 alg napInitz(number z) 200 202 { 201 alg a = (alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));203 alg a = (alg)Alloc0(napMonomSize); 202 204 203 205 a->ko = z; … … 216 218 *p = h->ne; 217 219 nacDelete(&(h->ko)); 218 Free((ADDRESS)h, RECA_SIZE + naNumbOfPar * sizeof(int));220 Free((ADDRESS)h, napMonomSize); 219 221 } 220 222 } … … 232 234 h = h->ne; 233 235 nacDelete(&(w->ko)); 234 Free((ADDRESS)w, RECA_SIZE + naNumbOfPar * sizeof(int));236 Free((ADDRESS)w, napMonomSize); 235 237 } 236 238 *p = NULL; … … 246 248 247 249 alg w, a; 248 int s=RECA_SIZE + naNumbOfPar * sizeof(int); 249 250 mmTestP(p,RECA_SIZE+naNumbOfPar*sizeof(int)); 251 a = w = (alg)Alloc(s); 252 memcpy(w->e, p->e, naNumbOfPar * sizeof(int)); 250 251 mmTestP(p,napMonomSize); 252 a = w = (alg)Alloc(napMonomSize); 253 memcpy(w->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 253 254 w->ko = nacCopy(p->ko); 254 255 loop … … 256 257 p=p->ne; 257 258 if (p==NULL) break; 258 mmTestP(p, s);259 a->ne = (alg)Alloc( s);259 mmTestP(p,napMonomSize); 260 a->ne = (alg)Alloc(napMonomSize); 260 261 a = a->ne; 261 memcpy(a->e, p->e, naNumbOfPar * sizeof(int));262 memcpy(a->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 262 263 a->ko = nacCopy(p->ko); 263 264 } … … 274 275 275 276 if (p==NULL) return NULL; 276 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));277 a = w = (alg)Alloc( RECA_SIZE + naNumbOfPar * sizeof(int));278 memcpy(w->e, p->e, naNumbOfPar * sizeof(int));277 mmTestP(p,napMonomSize); 278 a = w = (alg)Alloc(napMonomSize); 279 memcpy(w->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 279 280 w->ko = nacNeg(nacCopy(p->ko)); 280 281 loop … … 282 283 p=p->ne; 283 284 if (p==NULL) break; 284 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));285 a->ne = (alg)Alloc( RECA_SIZE + naNumbOfPar * sizeof(int));285 mmTestP(p,napMonomSize); 286 a->ne = (alg)Alloc(napMonomSize); 286 287 a = a->ne; 287 memcpy(a->e, p->e, naNumbOfPar * sizeof(int));288 memcpy(a->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 288 289 a->ko = nacNeg(nacCopy(p->ko)); 289 290 } … … 299 300 int i = 0; 300 301 301 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));302 mmTestP(q, RECA_SIZE+naNumbOfPar*sizeof(int));302 mmTestP(p,napMonomSize); 303 mmTestP(q,napMonomSize); 303 304 while (p->e[i] == q->e[i]) 304 305 { … … 323 324 if (p1==NULL) return p2; 324 325 if (p2==NULL) return p1; 325 mmTestP(p1, RECA_SIZE+naNumbOfPar*sizeof(int));326 mmTestP(p2, RECA_SIZE+naNumbOfPar*sizeof(int));326 mmTestP(p1,napMonomSize); 327 mmTestP(p2,napMonomSize); 327 328 a1 = p1; 328 329 a2 = p2; 329 a = p = (alg)Alloc( RECA_SIZE + naNumbOfPar * sizeof(int));330 a = p = (alg)Alloc(napMonomSize); 330 331 loop 331 332 { … … 340 341 break; 341 342 } 342 mmTestP(a1, RECA_SIZE+naNumbOfPar*sizeof(int));343 mmTestP(a1,napMonomSize); 343 344 } 344 345 else if (c == -1) … … 351 352 break; 352 353 } 353 mmTestP(a2, RECA_SIZE+naNumbOfPar*sizeof(int));354 mmTestP(a2,napMonomSize); 354 355 } 355 356 else … … 379 380 break; 380 381 } 381 mmTestP(a1, RECA_SIZE+naNumbOfPar*sizeof(int));382 mmTestP(a2, RECA_SIZE+naNumbOfPar*sizeof(int));382 mmTestP(a1,napMonomSize); 383 mmTestP(a2,napMonomSize); 383 384 } 384 385 } 385 386 a = p->ne; 386 Free((ADDRESS)p, RECA_SIZE + naNumbOfPar * sizeof(int));387 Free((ADDRESS)p, napMonomSize); 387 388 return a; 388 389 } … … 398 399 while (p!=NULL) 399 400 { 400 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));401 mmTestP(p,napMonomSize); 401 402 p->ko = nacNeg(p->ko); 402 403 p = p->ne; … … 414 415 while (p!=NULL) 415 416 { 416 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));417 mmTestP(p,napMonomSize); 417 418 t = nacMult(p->ko, z); 418 419 nacNormalize(t); … … 552 553 alg a, h, qq; 553 554 554 qq = (alg)Alloc( RECA_SIZE + naNumbOfPar * sizeof(int));555 qq = (alg)Alloc(napMonomSize); 555 556 qq->ne = NULL; 556 557 a = f; 557 558 do 558 559 { 559 mmTestP(a, RECA_SIZE+naNumbOfPar*sizeof(int));560 mmTestP(g, RECA_SIZE+naNumbOfPar*sizeof(int));560 mmTestP(a,napMonomSize); 561 mmTestP(g,napMonomSize); 561 562 qq->e[0] = a->e[0] - g->e[0]; 562 563 qq->ko = nacDiv(a->ko, g->ko); … … 568 569 } 569 570 while ((a!=NULL) && (a->e[0] >= g->e[0])); 570 Free((ADDRESS)qq, RECA_SIZE + naNumbOfPar * sizeof(int));571 Free((ADDRESS)qq, napMonomSize); 571 572 return a; 572 573 } … … 579 580 alg a, h, b, qq; 580 581 581 qq = (alg)Alloc( RECA_SIZE + naNumbOfPar * sizeof(int));582 qq = (alg)Alloc(napMonomSize); 582 583 qq->ne = b = NULL; 583 584 a = f; 584 585 do 585 586 { 586 mmTestP(a, RECA_SIZE+naNumbOfPar*sizeof(int));587 mmTestP(g, RECA_SIZE+naNumbOfPar*sizeof(int));587 mmTestP(a,napMonomSize); 588 mmTestP(g,napMonomSize); 588 589 qq->e[0] = a->e[0] - g->e[0]; 589 590 qq->ko = nacDiv(a->ko, g->ko); … … 596 597 } 597 598 while ((a!=NULL) && (a->e[0] >= g->e[0])); 598 Free((ADDRESS)qq, RECA_SIZE + naNumbOfPar * sizeof(int));599 Free((ADDRESS)qq, napMonomSize); 599 600 *q = b; 600 601 *r = a; … … 694 695 int d = 0, i; 695 696 696 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));697 mmTestP(p,napMonomSize); 697 698 for (i = naNumbOfPar-1; i>=0; i--) 698 699 d += p->e[i]; … … 713 714 { 714 715 BOOLEAN wroteCoeff=FALSE; 715 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));716 mmTestP(p,napMonomSize); 716 717 if ((napDeg(p)==0) 717 718 || ((!nacIsOne(p->ko)) … … 754 755 755 756 756 static char *napHandleMons(char *s, int i, int*ex)757 static char *napHandleMons(char *s, int i, PARAMETER_TYPE *ex) 757 758 { 758 759 int j; … … 776 777 alg a; 777 778 int i; 778 a = (alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));779 a = (alg)Alloc0(napMonomSize); 779 780 if ((*s >= '0') && (*s <= '9')) 780 781 { … … 1004 1005 return g; 1005 1006 } 1006 x = (alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));1007 x = (alg)Alloc0(napMonomSize); 1007 1008 g=a; 1008 1009 h=b; … … 1061 1062 alg napRedp (alg q) 1062 1063 { 1063 alg h = (alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));1064 alg h = (alg)Alloc0(napMonomSize); 1064 1065 int i=0,j; 1065 1066 … … 1068 1069 if (napDivPoly (naI->liste[i], q)) 1069 1070 { 1070 mmTestP((ADDRESS)q, RECA_SIZE + naNumbOfPar * sizeof(int));1071 mmTestP((ADDRESS)q,napMonomSize); 1071 1072 //StringSetS(""); 1072 1073 //napWrite(q); … … 1333 1334 alg x; 1334 1335 1335 naTest(la);1336 naTest(lb);1337 mmTestP(a,sizeof(rnumber));1338 mmTestP(b,sizeof(rnumber));1339 naTest(la);1340 naTest(lb);1341 alg tp=napCopy(a->z);1342 naTest(la);1343 naTest(lb);1344 napDelete(&tp);1345 naTest(la);1346 naTest(lb);1347 tp=napCopy(b->z);1348 naTest(la);1349 naTest(lb);1350 napDelete(&tp);1351 tp=napCopy(a->z);1352 naTest(la);1353 naTest(lb);1354 napDelete(&tp);1355 naTest(la);1356 naTest(lb);1357 tp=napCopy(b->z);1358 naTest(la);1359 naTest(lb);1360 napDelete(&tp);1361 naTest(la);1362 naTest(lb);1363 1336 lo = (lnumber)Alloc(sizeof(rnumber)); 1364 1337 lo->z = napMult(napCopy(a->z), napCopy(b->z)); … … 2172 2145 lnumber l=(lnumber)Alloc(sizeof(rnumber)); 2173 2146 l->s=2; 2174 l->z=(alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));2147 l->z=(alg)Alloc0(napMonomSize); 2175 2148 int i=(int)c; 2176 2149 if (i>(naPrimeM>>2)) i-=naPrimeM; … … 2188 2161 lnumber l=(lnumber)Alloc(sizeof(rnumber)); 2189 2162 l->s=0; 2190 l->z=(alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));2163 l->z=(alg)Alloc0(napMonomSize); 2191 2164 l->z->ko=nlCopy(c); 2192 2165 l->n=NULL; … … 2202 2175 lnumber l=(lnumber)Alloc(sizeof(rnumber)); 2203 2176 l->s=2; 2204 l->z=(alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));2177 l->z=(alg)Alloc0(napMonomSize); 2205 2178 l->z->ko=c; /* omit npCopy, because npCopy is a no-op */ 2206 2179 l->n=NULL; … … 2220 2193 lnumber l=(lnumber)Alloc(sizeof(rnumber)); 2221 2194 l->s=2; 2222 l->z=(alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));2195 l->z=(alg)Alloc0(napMonomSize); 2223 2196 l->z->ko=n; 2224 2197 l->n=NULL; … … 2236 2209 lnumber l=(lnumber)Alloc(sizeof(rnumber)); 2237 2210 l->s=2; 2238 l->z=(alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));2211 l->z=(alg)Alloc0(napMonomSize); 2239 2212 l->z->ko=n; 2240 2213 l->n=NULL; … … 2249 2222 2250 2223 if (p==NULL) return NULL; 2251 a = w = (alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));2252 memcpy(a->e, p->e, naParsToCopy * sizeof(int));2224 a = w = (alg)Alloc0(napMonomSize); 2225 memcpy(a->e, p->e, naParsToCopy * SIZEOF_PARAMETER); 2253 2226 w->ko = nacMap(p->ko); 2254 2227 loop … … 2256 2229 p=p->ne; 2257 2230 if (p==NULL) break; 2258 a->ne = (alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int));2231 a->ne = (alg)Alloc0(napMonomSize); 2259 2232 a = a->ne; 2260 memcpy(a->e, p->e, naParsToCopy * sizeof(int));2233 memcpy(a->e, p->e, naParsToCopy * SIZEOF_PARAMETER); 2261 2234 a->ko = nacMap(p->ko); 2262 2235 } … … 2476 2449 return FALSE; 2477 2450 #ifdef MDEBUG 2478 mmDBTestBlock(p, RECA_SIZE+naNumbOfPar*sizeof(int),f,l);2451 mmDBTestBlock(p,napMonomSize,f,l); 2479 2452 #endif 2480 2453 p = p->ne; … … 2486 2459 return FALSE; 2487 2460 #ifdef MDEBUG 2488 if (!mmDBTestBlock(p, RECA_SIZE+naNumbOfPar*sizeof(int),f,l))2461 if (!mmDBTestBlock(p,napMonomSize,f,l)) 2489 2462 return FALSE; 2490 2463 #endif
Note: See TracChangeset
for help on using the changeset viewer.