Changeset 4c6e420 in git for libpolys/polys/monomials
- Timestamp:
- Apr 27, 2011, 4:25:41 PM (13 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 760a78f4333abdcf36c17059f611fa15a34c2dac
- Parents:
- 5c97e10bb44ba586b18c55984cb4187d64f2d618
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2011-04-27 16:25:41+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 12:31:30+01:00
- Location:
- libpolys/polys/monomials
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/monomials/maps.cc
r5c97e10 r4c6e420 155 155 omFreeSize((ADDRESS)monoms,l*sizeof(poly)); 156 156 } 157 if ( dst_r->cf->minpoly!=NULL) result=p_MinPolyNormalize(result, dst_r);157 if (!rMinpolyIsNULL(dst_r)) result=p_MinPolyNormalize(result, dst_r); 158 158 } 159 159 return result; … … 270 270 int *perm=(int *)omAlloc0((r->N+1)*sizeof(int)); 271 271 //int *par_perm=(int *)omAlloc0(rPar(r)*sizeof(int)); 272 maFindPerm(r->names, rVar(r), r ->cf->parameter, rPar(r),273 dst_r->names, rVar(dst_r), dst_r->cf->parameter, rPar(dst_r),272 maFindPerm(r->names, rVar(r), rParameter(r), rPar(r), 273 dst_r->names, rVar(dst_r),rParameter(dst_r), rPar(dst_r), 274 274 perm,NULL, dst_r->cf->ch); 275 275 poly res=p_PermPoly(p,perm,r,dst_r, nMap /*,par_perm,rPar(r)*/); -
libpolys/polys/monomials/p_polys.cc
r5c97e10 r4c6e420 1856 1856 p=ph; 1857 1857 } 1858 else if ((rField_is_Extension(r)) 1859 && ((rPar(r)>1)||(r->cf->minpoly==NULL))) 1858 else if (rField_is_Extension(r) 1859 && 1860 ( 1861 (rPar(r)>1) || rMinpolyIsNULL(r) 1862 ) 1863 ) 1860 1864 { 1861 1865 h=p_InitContent_a(ph,r); … … 3240 3244 qq = p_Init(dst); 3241 3245 number n=nMap(pGetCoeff(p),oldRing->cf,dst->cf); 3242 if (( dst->cf->minpoly!=NULL)3246 if ((!rMinpolyIsNULL(dst)) 3243 3247 && ((rField_is_Zp_a(dst)) || (rField_is_Q_a(dst)))) 3244 3248 { … … 3254 3258 #if 0 3255 3259 aq=naPermNumber(pGetCoeff(p),par_perm,OldPar, oldRing); 3256 if (( dst->cf->minpoly!=NULL)3260 if ((!rMinpolyIsNULL(dst)) 3257 3261 && ((rField_is_Zp_a(dst)) || (rField_is_Q_a(dst)))) 3258 3262 { … … 3329 3333 } 3330 3334 if (mapped_to_par 3331 && ( dst->cf->minpoly!=NULL))3335 && (!rMinpolyIsNULL(dst))) 3332 3336 { 3333 3337 number n=pGetCoeff(qq); -
libpolys/polys/monomials/ring.cc
r5c97e10 r4c6e420 108 108 void rChangeCurrRing(ring r) 109 109 { 110 // if ( (currRing!=NULL) && (currRing->cf->minpoly!=NULL))110 // if (!rMinpolyIsNULL(currRing)) 111 111 // { 112 112 // omCheckAddr(currRing->cf->minpoly); … … 282 282 { 283 283 PrintS("// characteristic : "); 284 if (r ->cf->parameter!=NULL)284 if (rParameter(r)!=NULL) 285 285 { 286 286 Print ("// %d parameter : ",rPar(r)); 287 char **sp= r->cf->parameter;287 char **sp= rParameter(r); 288 288 int nop=0; 289 289 while (nop<rPar(r)) … … 297 297 { 298 298 // i^2+1: 299 Print("(%s^2+1)\n",r ->cf->parameter[0]);300 } 301 else if (r ->cf->minpoly==NULL)299 Print("(%s^2+1)\n",rParameter(r)[0]); 300 } 301 else if (rMinpolyIsNULL(r)) 302 302 { 303 303 PrintS("0\n"); … … 482 482 483 483 // // delete parameter 484 // if (r ->cf->parameter!=NULL)484 // if (rParameter(r)!=NULL) 485 485 // { 486 // char **s= r->cf->parameter;486 // char **s= rParameter(r); 487 487 // j = 0; 488 488 // while (j < rPar(r)) … … 492 492 // j++; 493 493 // } 494 // omFreeSize((ADDRESS)r ->cf->parameter,rPar(r)*sizeof(char *));494 // omFreeSize((ADDRESS)rParameter(r),rPar(r)*sizeof(char *)); 495 495 // } 496 496 omFreeBin(r, sip_sring_bin); … … 637 637 } 638 638 #endif 639 if (r ->cf->parameter==NULL)639 if (rParameter(r)==NULL) 640 640 { 641 641 i=r->cf->ch; … … 651 651 if (rField_is_long_C(r)) 652 652 { 653 s=(char *)omAlloc(21+strlen(r ->cf->parameter[0]));654 sprintf(s,"complex,%d,%s",r->float_len,r ->cf->parameter[0]); /* C */653 s=(char *)omAlloc(21+strlen(rParameter(r)[0])); 654 sprintf(s,"complex,%d,%s",r->float_len,rParameter(r)[0]); /* C */ 655 655 return s; 656 656 } … … 658 658 for(i=0; i<rPar(r);i++) 659 659 { 660 l+=(strlen(r ->cf->parameter[i])+1);660 l+=(strlen(rParameter(r)[i])+1); 661 661 } 662 662 s=(char *)omAlloc((long)(l+MAX_INT_LEN+1)); … … 666 666 else 667 667 { 668 sprintf(s,"%d,%s",r->cf->ch,r ->cf->parameter[0]); /* GF(q) */668 sprintf(s,"%d,%s",r->cf->ch,rParameter(r)[0]); /* GF(q) */ 669 669 return s; 670 670 } … … 675 675 { 676 676 strcat(s,tt); 677 strcat(s,r ->cf->parameter[i]);677 strcat(s,rParameter(r)[i]); 678 678 } 679 679 return s; … … 682 682 char * rParStr(ring r) 683 683 { 684 if ((r==NULL)||(r ->cf->parameter==NULL)) return omStrDup("");684 if ((r==NULL)||(rParameter(r)==NULL)) return omStrDup(""); 685 685 686 686 int i; … … 689 689 for (i=0; i<rPar(r); i++) 690 690 { 691 l+=strlen(r ->cf->parameter[i])+1;691 l+=strlen(rParameter(r)[i])+1; 692 692 } 693 693 char *s=(char *)omAlloc((long)l); … … 695 695 for (i=0; i<rPar(r)-1; i++) 696 696 { 697 strcat(s,r ->cf->parameter[i]);697 strcat(s,rParameter(r)[i]); 698 698 strcat(s,","); 699 699 } 700 strcat(s,r ->cf->parameter[i]);700 strcat(s,rParameter(r)[i]); 701 701 return s; 702 702 } … … 715 715 } 716 716 717 int rIsExtension(const ring r)718 {719 return (r->cf->parameter!=NULL); /* R, Q, Fp: FALSE */720 }721 717 722 718 static int binaryPower (const int a, const int b) … … 866 862 if (*(r1->names[i]) == '\0') 867 863 b = FALSE; 868 else if ((r 2->cf->parameter!=NULL) && (strlen(r1->names[i])==1))864 else if ((rParameter(r2)!=NULL) && (strlen(r1->names[i])==1)) 869 865 { 870 866 if (vartest) … … 872 868 for(j=0;j<rPar(r2);j++) 873 869 { 874 if (strcmp(r1->names[i],r 2->cf->parameter[j])==0)870 if (strcmp(r1->names[i],rParameter(r2)[j])==0) 875 871 { 876 872 b=FALSE; … … 898 894 if (*(r2->names[i]) == '\0') 899 895 b = FALSE; 900 else if ((r 1->cf->parameter!=NULL) && (strlen(r2->names[i])==1))896 else if ((rParameter(r1)!=NULL) && (strlen(r2->names[i])==1)) 901 897 { 902 898 if (vartest) … … 904 900 for(j=0;j<rPar(r1);j++) 905 901 { 906 if (strcmp(r2->names[i],r 1->cf->parameter[j])==0)902 if (strcmp(r2->names[i],rParameter(r1)[j])==0) 907 903 { 908 904 b=FALSE; … … 1160 1156 if (rPar(R2)!=0) par_perm2=(int *)omAlloc0((rPar(R2)+1)*sizeof(int)); 1161 1157 1162 maFindPerm(R1->names, rVar(R1), R1->cf->parameter, rPar(R1),1163 sum->names, rVar(sum), sum->cf->parameter, rPar(sum),1158 maFindPerm(R1->names, rVar(R1), rParameter(R1), rPar(R1), 1159 sum->names, rVar(sum), rParameter(sum), rPar(sum), 1164 1160 perm1, par_perm1, sum->cf->ch); 1165 1161 1166 maFindPerm(R2->names, rVar(R2), R2->cf->parameter, rPar(R2),1167 sum->names, rVar(sum), sum->cf->parameter, rPar(sum),1162 maFindPerm(R2->names, rVar(R2), rParameter(R2), rPar(R2), 1163 sum->names, rVar(sum), rParameter(sum), rPar(sum), 1168 1164 perm2, par_perm2, sum->cf->ch); 1169 1165 … … 1265 1261 int *par_perm1 = NULL; 1266 1262 if (rPar(r1)!=0) par_perm1=(int *)omAlloc0((rPar(r1)+1)*sizeof(int)); 1267 maFindPerm(r1->names, rVar(r1), r 1->cf->parameter, rPar(r1),1268 sum->names, rVar(sum), sum->cf->parameter, rPar(sum),1263 maFindPerm(r1->names, rVar(r1), rParameter(r1), rPar(r1), 1264 sum->names, rVar(sum), rParameter(sum), rPar(sum), 1269 1265 perm1, par_perm1, sum->cf->ch); 1270 1266 nMapFunc nMap1 = n_SetMap(r1->cf,sum->cf); … … 1288 1284 int *par_perm2 = NULL; 1289 1285 if (rPar(r2)!=0) par_perm2=(int *)omAlloc0((rPar(r2)+1)*sizeof(int)); 1290 maFindPerm(r2->names, rVar(r2), r 2->cf->parameter, rPar(r2),1291 sum->names, rVar(sum), sum->cf->parameter, rPar(sum),1286 maFindPerm(r2->names, rVar(r2), rParameter(r2), rPar(r2), 1287 sum->names, rVar(sum), rParameter(sum), rPar(sum), 1292 1288 perm2, par_perm2, sum->cf->ch); 1293 1289 nMapFunc nMap2 = n_SetMap(r2->cf,sum->cf); … … 1413 1409 //memset: res->cf=NULL; 1414 1410 res->options=r->options; 1415 // 1411 1412 /* 1416 1413 if (r->algring!=NULL) 1417 1414 r->algring->ref++; 1418 res->algring=r->algring; 1415 1416 res->algring=r->algring; 1419 1417 //memset: res->minideal=NULL; 1418 */ 1419 1420 1420 1421 if (copy_ordering == TRUE) 1421 1422 { … … 1551 1552 for (i=0; i<rPar(r1);i++) 1552 1553 { 1553 if (strcmp(r 1->cf->parameter[i], r2->cf->parameter[i])!=0)1554 if (strcmp(rParameter(r1)[i], rParameter(r2)[i])!=0) 1554 1555 return FALSE; 1555 1556 } 1556 1557 1557 if ( r1->cf->minpoly != NULL)1558 { 1559 if ( r2->cf->minpoly == NULL) return FALSE;1558 if ( !rMinpolyIsNULL(r1) ) 1559 { 1560 if ( rMinpolyIsNULL(r2) ) return FALSE; 1560 1561 if (! n_Equal(r1->cf->minpoly, r2->cf->minpoly, r1->cf)) return FALSE; 1561 1562 } 1562 else if ( r2->cf->minpoly != NULL) return FALSE;1563 else if (!rMinpolyIsNULL(r2)) return FALSE; 1563 1564 1564 1565 if (qr) … … 1982 1983 } 1983 1984 } 1984 if (r->cf->minpoly!=NULL) 1985 {1985 1986 if (!rMinpolyIsNULL(r)) 1986 1987 omCheckAddr(r->cf->minpoly); 1987 } 1988 1988 1989 //assume(r->cf!=NULL); 1989 1990 … … 2866 2867 { 2867 2868 int i; 2868 if (r ->cf->parameter!=NULL)2869 if (rParameter(r)!=NULL) 2869 2870 { 2870 2871 for (i=0;i<rPar(r);i++) 2871 2872 { 2872 if(strlen(r ->cf->parameter[i])>1)2873 if(strlen(rParameter(r)[i])>1) 2873 2874 { 2874 2875 r->ShortOut=FALSE; … … 5381 5382 } 5382 5383 } 5384 5385 5386 BOOLEAN rMinpolyIsNULL(const ring r) 5387 { 5388 assume(r != NULL); 5389 const coeffs C = r->cf; 5390 assume(C != NULL); 5391 5392 if( rField_is_Extension(r) ) 5393 { 5394 const ring R = C->algring; 5395 assume( R != NULL ); 5396 return idIs0(R->qideal); 5397 } 5398 return TRUE; 5399 } 5400 -
libpolys/polys/monomials/ring.h
r5c97e10 r4c6e420 306 306 p_SetmProc p_Setm; 307 307 n_Procs_s* cf; 308 ring algring;309 308 #ifdef HAVE_PLURAL 310 309 private: … … 401 400 char * rString(ring r); 402 401 int rChar(ring r); 403 #define rPar(r) (r->cf->P) 404 #define rVar(r) (r->N) 402 405 403 char * rParStr(ring r); 406 int rIsExtension(const ring r); 404 407 405 int rSum(ring r1, ring r2, ring &sum); 408 406 int rSumInternal(ring r1, ring r2, ring &sum, BOOLEAN vartest, BOOLEAN dp_dp); … … 518 516 assume(r != NULL); return (r->ShortOut); 519 517 } 518 519 /// #define rVar(r) (r->N) 520 static inline short rVar(const ring r) 521 { 522 assume(r != NULL); 523 return r->N; 524 } 525 526 /// (r->cf->P) 527 static inline short rPar(const ring r) 528 { 529 assume(r != NULL); 530 const coeffs C = r->cf; 531 assume(C != NULL); 532 533 if( rField_is_Extension(r) ) 534 { 535 const ring R = C->algring; 536 assume( R != NULL ); 537 return rVar( R ); 538 } 539 return 0; 540 } 541 542 543 /// (r->cf->parameter) 544 static inline char** rParameter(const ring r) 545 { 546 assume(r != NULL); 547 const coeffs C = r->cf; 548 assume(C != NULL); 549 550 if( rField_is_Extension(r) ) 551 { 552 const ring R = C->algring; 553 assume( R != NULL ); 554 return R->names; 555 } 556 return NULL; 557 } 558 559 /* R, Q, Fp: FALSE */ 560 static inline BOOLEAN rIsExtension(const ring r) 561 { 562 assume( (rParameter(r)!=NULL) == rField_is_Extension(r) ); // ? 563 return rField_is_Extension(r); 564 } 565 566 /// Tests whether '(r->cf->minpoly) == NULL' 567 BOOLEAN rMinpolyIsNULL(const ring r); 568 520 569 521 570 /// order stuff
Note: See TracChangeset
for help on using the changeset viewer.