Changeset 550b4c in git
- Timestamp:
- Apr 21, 1998, 12:59:29 PM (25 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
- Children:
- 559a4bf0a3b03fde23553e3ceb0d6c6ff9e2d4e3
- Parents:
- aaafeb24812a2fa1306280482a08f65373287b7e
- Location:
- Singular
- Files:
-
- 5 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 -
Singular/longalg.h
raaafeb r550b4c 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: longalg.h,v 1. 5 1998-02-17 15:05:53obachman Exp $ */6 /* $Id: longalg.h,v 1.6 1998-04-21 10:59:26 obachman Exp $ */ 7 7 /* 8 8 * ABSTRACT: algebraic numbers … … 10 10 #include "structs.h" 11 11 #include "longrat.h" 12 #include "polys-impl.h" 12 13 13 14 struct slnumber; 14 15 typedef struct slnumber * lnumber; 16 17 //make parameter type same as exponent type 18 #if 1 19 #define PARAMETER_TYPE EXPONENT_TYPE 20 #define SIZEOF_PARAMETER SIZEOF_EXPONENT 21 #else 22 #define PARAMETER_TYPE int 23 #define SIZEOF_PARAMETER SIZOF_EXPONENT 24 #endif 25 15 26 struct reca 16 27 { 17 28 alg ne; 18 29 number ko; 19 inte[1];30 PARAMETER_TYPE e[1]; 20 31 }; 32 21 33 struct slnumber 22 34 { … … 29 41 extern alg naMinimalPoly; 30 42 extern char **naParNames; 43 extern int napMonomSize; 31 44 32 45 void naSetChar(int p, BOOLEAN complete, char ** param, int pars); … … 83 96 #define napGetCoeff(p) (p->ko) 84 97 #define napGetExp(p,i) (p->e[(i)-1]) 85 #define napNew() ((alg)Alloc0( RECA_SIZE + naNumbOfPar * sizeof(int)))98 #define napNew() ((alg)Alloc0(napMonomSize)) 86 99 #define nanumber lnumber 87 100 #define naGetNom(na) (((nanumber)(na))->z) -
Singular/mpsr.h
raaafeb r550b4c 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: mpsr.h,v 1. 7 1997-08-08 12:59:25obachman Exp $ */4 /* $Id: mpsr.h,v 1.8 1998-04-21 10:59:27 obachman Exp $ */ 5 5 /*************************************************************** 6 6 * … … 110 110 } 111 111 112 extern MP_Sint32_t *gTa; 113 extern MP_Sint32_t gTa_Length; 114 115 116 inline void mpsr_InitTempArray(int length) 117 { 118 if (gTa_Length < length) 119 { 120 Free(gTa, gTa_Length*sizeof(MP_Sint32_t)); 121 gTa = (MP_Sint32_t *) Alloc((length)*sizeof(MP_Sint32_t)); 122 gTa_Length = length; 123 } 124 } 125 112 126 /*************************************************************** 113 127 * -
Singular/mpsr_GetPoly.cc
raaafeb r550b4c 3 3 ****************************************/ 4 4 5 /* $Id: mpsr_GetPoly.cc,v 1.1 5 1998-04-07 18:35:26obachman Exp $ */5 /* $Id: mpsr_GetPoly.cc,v 1.16 1998-04-21 10:59:28 obachman Exp $ */ 6 6 7 7 /*************************************************************** … … 63 63 static MP_Sint32_t gNalgvars = 0; 64 64 static MP_Sint32_t gNvars = 0; 65 static MP_Sint32_t *gTa = NULL;66 65 static ring currGetRing = NULL; 67 66 … … 103 102 currGetRing = r; 104 103 // first, we set the PutNumber function 105 if (r->N != gNvars) 106 { 107 if (gTa != NULL) 108 Free(gTa, (gNvars+1)*sizeof(MP_Sint32_t)); 109 110 gNvars = r->N; 111 if (gNvars > 1) 112 gTa = (MP_Sint32_t *) Alloc((gNvars+1)*sizeof(MP_Sint32_t)); 113 else 114 gTa = NULL; 115 } 104 gNvars = r->N; 105 mpsr_InitTempArray(gNvars + 1); 116 106 117 107 if ((r->ch) == 0) … … 131 121 // now we come to algebraic numbers 132 122 gNalgvars = rPar(r); 123 mpsr_InitTempArray(gNalgvars); 133 124 GetCoeff = GetAlgNumber; 134 125 if ((r->ch) < 0) … … 315 306 { 316 307 MP_Uint32_t j, nm; 317 int *exp ;308 int *exp, i; 318 309 alg a; 319 310 … … 329 320 330 321 failr(GetAlgNumberNumber(link, &(a->ko))); 322 #if SIZEOF_INT == SIZEOF_PARAMETER 331 323 exp = &(a->e[0]); 332 324 mp_failr(IMP_GetSint32Vector(link, (MP_Sint32_t **) &exp, naNumbOfPar)); 325 #else 326 mp_failr(IMP_GetSint32Vector(link, (MP_Sint32_t **) &gTa, naNumbOfPar)); 327 for (i=0; i<naNumbOfPar; i++) 328 a->e[i] = (PARAMETER_TYPE) gTa[i]; 329 #endif 333 330 334 331 for (j=1; j<nm; j++) … … 337 334 a = a->ne; 338 335 failr(GetAlgNumberNumber(link, &(a->ko))); 336 #if SIZEOF_INT == SIZEOF_PARAMETER 339 337 exp = &(a->e[0]); 340 338 mp_failr(IMP_GetSint32Vector(link, (MP_Sint32_t **) &exp, naNumbOfPar)); 339 #else 340 mp_failr(IMP_GetSint32Vector(link, (MP_Sint32_t **) &gTa, naNumbOfPar)); 341 for (i=0; i<naNumbOfPar; i++) 342 a->e[i] = (PARAMETER_TYPE) gTa[i]; 343 #endif 341 344 } 342 345 a->ne = NULL; -
Singular/mpsr_PutPoly.cc
raaafeb r550b4c 3 3 ****************************************/ 4 4 5 /* $Id: mpsr_PutPoly.cc,v 1.1 1 1998-04-16 16:10:22obachman Exp $ */5 /* $Id: mpsr_PutPoly.cc,v 1.12 1998-04-21 10:59:29 obachman Exp $ */ 6 6 7 7 /*************************************************************** … … 49 49 ***************************************************************/ 50 50 51 mpsr_Status_t (*PutCoeff)(MP_Link_pt link, number x); 52 mpsr_Status_t (*PutAlgAlgNumber)(MP_Link_pt link, number x); 53 MP_Uint32_t gNalgvars = 0; 54 MP_Sint32_t gNvars = 0; 51 static mpsr_Status_t (*PutCoeff)(MP_Link_pt link, number x); 52 static mpsr_Status_t (*PutAlgAlgNumber)(MP_Link_pt link, number x); 53 static MP_Uint32_t gNalgvars = 0; 54 static MP_Sint32_t gNvars = 0; 55 static ring CurrPutRing = NULL; 56 55 57 MP_Sint32_t *gTa = NULL; 56 ring CurrPutRing = NULL; 57 58 MP_Sint32_t gTa_Length = 0; 58 59 59 60 /*************************************************************** … … 77 78 static mpsr_Status_t PutDefRelsAnnot(MP_Link_pt link, ring r); 78 79 80 79 81 /*************************************************************** 80 82 * … … 86 88 CurrPutRing = r; 87 89 // first, we set the PutNumber function 88 if (r->N != gNvars) 89 { 90 if (gTa != NULL) 91 Free(gTa, (gNvars+1)*sizeof(MP_Sint32_t)); 92 93 gNvars = r->N; 94 if (gNvars > 1) 95 gTa = (MP_Sint32_t *) Alloc((gNvars+1)*sizeof(MP_Sint32_t)); 96 else 97 gTa = NULL; 98 } 90 gNvars = r->N; 91 mpsr_InitTempArray(gNvars+1); 99 92 100 93 if ((r->ch) == 0) … … 111 104 // now we come to algebraic numbers 112 105 gNalgvars = rPar(r); 106 mpsr_InitTempArray(gNalgvars); 113 107 PutCoeff = PutAlgNumber; 114 108 if ((r->ch) < 0) … … 223 217 static mpsr_Status_t PutAlgPoly(MP_Link_pt link, alg a) 224 218 { 225 int i;219 unsigned int i; 226 220 int *exp; 227 221 … … 230 224 { 231 225 failr(PutAlgAlgNumber(link, a->ko)); 226 #if (SIZEOF_INT == SIZEOF_PARAMETER) 232 227 mp_failr(IMP_PutSint32Vector(link, (MP_Sint32_t *) a->e, gNalgvars)); 228 #else 229 for (i=0; i<gNalgvars; i++) 230 gTa[i] = a->e[i]; 231 mp_failr(IMP_PutSint32Vector(link, gTa, gNalgvars)); 232 #endif 233 233 a = a->ne; 234 234 }
Note: See TracChangeset
for help on using the changeset viewer.