Changeset 8078c8 in git
- Timestamp:
- Feb 22, 2008, 12:14:16 PM (15 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 6f801b4e767f113dae2ed6a6e8b95d7227f2c3db
- Parents:
- d6e849378be41014886cff67801e4f404ef983ca
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ipshell.cc
rd6e849 r8078c8 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ipshell.cc,v 1.17 7 2008-02-06 20:22:41 wienandExp $ */4 /* $Id: ipshell.cc,v 1.178 2008-02-22 11:14:16 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: … … 4195 4195 R->wvhdl=(int**)omAlloc0(n*sizeof(int_ptr)); 4196 4196 4197 int *weights=(int*)omAlloc0((R->N+1)*sizeof(int)); 4198 4197 4199 // init order, so that rBlocks works correctly 4198 4200 for (j=0; j < n-1; j++) … … 4218 4220 */ 4219 4221 R->order[n] = (*iv)[1]; 4222 typ=1; 4220 4223 switch ((*iv)[1]) 4221 4224 { … … 4226 4229 case ringorder_Wp: 4227 4230 R->wvhdl[n]=(int*)omAlloc((iv->length()-1)*sizeof(int)); 4231 R->block0[n] = last+1; 4228 4232 for (i=2; i<iv->length(); i++) 4229 4233 { 4230 4234 R->wvhdl[n][i-2] = (*iv)[i]; 4235 last++; 4236 if (weights[last]==0) weights[last]=(*iv)[i]*typ; 4231 4237 } 4232 R->block0[n] = last+1;4233 last += iv->length()-2;4234 4238 R->block1[n] = last; 4235 4239 break; … … 4249 4253 if (R->block0[n]>R->block1[n]) return TRUE; 4250 4254 if (rCheckIV(iv)) return TRUE; 4255 for(i=R->block0[n];i<=R->block1[n];i++) 4256 { 4257 if (weights[i]==0) weights[i]=typ; 4258 } 4251 4259 break; 4252 4260 case ringorder_S: … … 4263 4271 { 4264 4272 R->wvhdl[n][i-2]=(*iv)[i]; 4265 if ((*iv)[i]<0) typ=-1; 4273 last++; 4274 if (weights[last]==0) weights[last]=(*iv)[i]*typ; 4266 4275 } 4276 last=R->block0[n]-1; 4267 4277 break; 4268 4278 case ringorder_a64: … … 4275 4285 { 4276 4286 w[i-2]=(*iv)[i]; 4277 if ((*iv)[i]<0) typ=-1; 4287 last++; 4288 if (weights[last]==0) weights[last]=(*iv)[i]*typ; 4278 4289 } 4290 last=R->block0[n]-1; 4279 4291 break; 4280 4292 } … … 4284 4296 if (Mtyp==0) return TRUE; 4285 4297 if (Mtyp==-1) typ = -1; 4298 for(i=R->block0[n];i<=R->block1[n];i++) 4299 { 4300 if (weights[i]==0) weights[i]=typ; 4301 } 4286 4302 4287 4303 R->wvhdl[n] =( int *)omAlloc((iv->length()-1)*sizeof(int)); … … 4332 4348 } 4333 4349 } 4334 R->OrdSgn = typ; 4350 // find OrdSgn: 4351 R->OrdSgn = 1; 4352 for(i=1;i<=R->N;i++) 4353 { if (weights[i]<0) { R->OrdSgn=-1;break; }} 4354 omFree(weights); 4335 4355 return FALSE; 4336 4356 }
Note: See TracChangeset
for help on using the changeset viewer.