Changeset e7f87f in git
- Timestamp:
- Jan 31, 2019, 5:09:18 PM (4 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 64dfab7cf1b26074304621f8a4c209d347712ac7
- Parents:
- d59bc4cf80963a61978ac9d26d399d9a7bcbffd2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/links/ssiLink.cc
rd59bc4 re7f87f 49 49 #include <netinet/in.h> /* for htons etc.*/ 50 50 51 #define SSI_VERSION 1 251 #define SSI_VERSION 13 52 52 // 5->6: changed newstruct representation 53 53 // 6->7: attributes … … 57 57 // 10->11: extended ring descr. for named coeffs (not in used until 4.1) 58 58 // 11->12: add rank to ideal/module, add smatrix 59 // 12->13: NC rings 59 60 60 61 VAR link_list ssiToBeClosed=NULL; … … 233 234 { 234 235 fputs("0 0 0 0 "/*,r->ch,r->N, blocks, q-ideal*/,d->f_write); 236 } 237 if (rIsLPRing(r)) // cannot be combined with 23 2 238 { 239 fprintf(d->f_write,"23 1 %d %d ",SI_LOG2(r->bitmask),r->isLPring); 240 } 241 else 242 { 243 unsigned long bm=0; 244 int b=0; 245 bm=rGetExpSize(bm,b,r->N); 246 if (r->bitmask!=bm) 247 { 248 fprintf(d->f_write,"23 0 %d ",SI_LOG2(r->bitmask)); 249 } 250 if (rIsPluralRing(r)) 251 { 252 fputs("23 2 ",d->f_write); 253 void ssiWriteIdeal(const ssiInfo *d, int typ,const ideal I); 254 ssiWriteIdeal(d,MATRIX_CMD,(ideal)r->GetNC()->C); 255 ssiWriteIdeal(d,MATRIX_CMD,(ideal)r->GetNC()->D); 256 } 235 257 } 236 258 } … … 779 801 } 780 802 res->flag=fl; 803 } 804 void ssiReadRingProperties(si_link l) 805 { 806 ssiInfo *d=(ssiInfo*)l->data; 807 int what=s_readint(d->f_read); 808 switch(what) 809 { 810 case 0: // bitmask 811 { 812 int lb=s_readint(d->f_read); 813 unsigned long bm=~0L; 814 bm=bm<<lb; 815 bm=~bm; 816 rUnComplete(d->r); 817 d->r->bitmask=bm; 818 rComplete(d->r); 819 break; 820 } 821 case 1: // LPRing 822 { 823 int lb=s_readint(d->f_read); 824 int isLPring=s_readint(d->f_read); 825 unsigned long bm=~0L; 826 bm=bm<<lb; 827 bm=~bm; 828 rUnComplete(d->r); 829 d->r->bitmask=bm; 830 d->r->isLPring=isLPring; 831 rComplete(d->r); 832 break; 833 } 834 case 2: // Plural rings 835 { 836 matrix C=ssiReadMatrix(d); 837 matrix D=ssiReadMatrix(d); 838 nc_CallPlural(C,D,NULL,NULL,d->r,true,true,false,d->r,false); 839 break; 840 } 841 } 781 842 } 782 843 //**************************************************************************/ … … 1360 1421 case 21: ssiReadAttrib(res,l); 1361 1422 break; 1423 case 23: ssiReadRingProperties(l); 1424 return ssiRead1(l); 1425 break; 1362 1426 // ------------ 1363 1427 case 98: // version … … 1520 1584 else if(tt==MATRIX_CMD) fputs("8 ",d->f_write); 1521 1585 else if(tt==SMATRIX_CMD) fputs("22 ",d->f_write); 1522 else 1586 else /* tt==MODUL_CMD*/ 1523 1587 { 1524 1588 ideal M=(ideal)dd; … … 2168 2232 // 21 attrib <bit-attrib> <len> <a-name1> <val1>... <data> 2169 2233 // 22 smatrix 2234 // 23 0 <log(bitmask)> ring properties: max.exp. 2235 // 23 1 <log(bitmask)> <r->IsLPRing> ring properties:LPRing 2236 // 23 2 <matrix C> <matrix D> ring properties: PLuralRing 2170 2237 // 2171 2238 // 98: verify version: <ssi-version> <MAX_TOK> <OPT1> <OPT2>
Note: See TracChangeset
for help on using the changeset viewer.