Changeset 45cc512 in git for libpolys/polys/monomials/ring.cc
- Timestamp:
- Dec 5, 2013, 3:34:22 PM (10 years ago)
- Branches:
- (u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
- Children:
- 0acf3e38387201ff9fd3220d3febd9296fda35dd
- Parents:
- 6cce775fcf124d803afe198a1cae685953241af3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/monomials/ring.cc
r6cce775 r45cc512 619 619 /// Decompose & Compose, rParameter & rPar 620 620 char * rCharStr(ring r) 621 { 622 char *s; 623 int i; 624 625 #ifdef HAVE_RINGS 626 if (rField_is_Ring_Z(r)) 627 { 628 s=omStrDup("integer"); // Z 629 return s; 630 } 631 if(rField_is_Ring_2toM(r)) 632 { 633 char* s = (char*) omAlloc(7+10+2); 634 sprintf(s,"integer,%lu",r->cf->modExponent); 635 return s; 636 } 637 if(rField_is_Ring_ModN(r)) 638 { 639 long l = (long)mpz_sizeinbase(r->cf->modBase, 10) + 2+7; 640 char* s = (char*) omAlloc(l); 641 gmp_sprintf(s,"integer,%Zd",r->cf->modBase); 642 return s; 643 } 644 if(rField_is_Ring_PtoM(r)) 645 { 646 long l = (long)mpz_sizeinbase(r->cf->modBase, 10) + 2+7+10; 647 char* s = (char*) omAlloc(l); 648 gmp_sprintf(s,"integer,%Zd^%lu",r->cf->modBase,r->cf->modExponent); 649 return s; 650 } 651 #endif 652 if (rField_is_long_R(r)) 653 { 654 i = MAX_INT_LEN*2+7; // 2 integers and real,, 655 s=(char *)omAlloc(i); 656 snprintf(s,i,"real,%d,%d",r->cf->float_len,r->cf->float_len2); /* long_R */ 657 return s; 658 } 659 if (rField_is_R(r)) 660 { 661 return omStrDup("real"); /* short real */ 662 } 663 char const * const * const params = rParameter(r); 664 if (params==NULL) 665 { 666 s=(char *)omAlloc(MAX_INT_LEN+1); 667 snprintf(s,MAX_INT_LEN+1,"%d",n_GetChar(r->cf)); /* Q, Z/p */ 668 return s; 669 } 670 if (rField_is_long_C(r)) 671 { 672 i=strlen(params[0])+21; 673 s=(char *)omAlloc(i); 674 snprintf(s,i,"complex,%d,%s",r->cf->float_len,params[0]); /* C */ 675 return s; 676 } 677 if (nCoeff_is_GF(r->cf)) 678 { 679 i=strlen(params[0])+21; 680 s=(char *)omAlloc(i); 681 snprintf(s,i,"%d,%s",r->cf->m_nfCharQ,params[0]); /* GF(q) */ 682 return s; 683 } 684 int l=0; 685 for(i=0; i<rPar(r);i++) 686 { 687 l+=(strlen(params[i])+1); 688 } 689 s=(char *)omAlloc((long)(l+MAX_INT_LEN+1)); 690 s[0]='\0'; 691 snprintf(s,MAX_INT_LEN+1,"%d",r->cf->ch); /* Fp(a) or Q(a) */ 692 char tt[2]; 693 tt[0]=','; 694 tt[1]='\0'; 695 for(i=0; i<rPar(r);i++) 696 { 697 strcat(s,tt); 698 strcat(s,params[i]); 699 } 700 return s; 701 } 621 { return r->cf->cfCoeffString(r->cf); } 702 622 703 623 char * rParStr(ring r)
Note: See TracChangeset
for help on using the changeset viewer.