Changeset 638c230 in git
- Timestamp:
- Jul 21, 2014, 5:08:47 PM (9 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 2a2ba4fcd246395ea2e5d241d8945e66d030c103a6220140edf75f76ad53c0c68c15bc93888c1868
- Parents:
- bb965979c7d2760b9dc6eb5c19522c4d28c7d5bb
- Files:
-
- 3 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/maps_ip.cc
rbb9659 r638c230 116 116 res->data=(void *)prCopyR( (poly)data, preimage_r, currRing); 117 117 else 118 118 if ( (what==IMAP_CMD) || /*(*/ (what==FETCH_CMD) /*)*/) /* && (nMap!=nCopy)*/ 119 119 res->data=(void *)p_PermPoly((poly)data,perm,preimage_r,currRing, nMap,par_perm,P); 120 120 else /*if (what==MAP_CMD)*/ … … 154 154 } 155 155 else 156 156 if ( (what==IMAP_CMD) || /*(*/ (what==FETCH_CMD) /*)*/) /* && (nMap!=nCopy)*/ 157 157 { 158 158 for (i=R*C-1;i>=0;i--) … … 236 236 poly pSubstPar(poly p, int par, poly image) 237 237 { 238 assume( nCoeff_is_transExt(currRing->cf) ); // nCoeff_is_Extension???239 238 const ring R = currRing->cf->extRing; 240 241 239 ideal theMapI = idInit(rPar(currRing),1); 242 240 nMapFunc nMap = n_SetMap(R->cf, currRing->cf); 243 244 241 int i; 245 242 for(i = rPar(currRing);i>0;i--) … … 261 258 262 259 p_Normalize(p,currRing); 263 while (p!=NULL) 264 { 265 memset(v,0,sizeof(sleftv)); 266 267 number d = n_GetDenom(p_GetCoeff(p, currRing), currRing); 268 assume( p_Test((poly)NUM(d), R) ); 269 270 if ( n_IsOne (d, currRing->cf) ) 271 { 272 n_Delete(&d, currRing); d = NULL; 273 } 274 else if (!p_IsConstant((poly)NUM(d), R)) 275 { 276 WarnS("ignoring denominators of coefficients..."); 277 n_Delete(&d, currRing); d = NULL; 278 } 279 280 number num = n_GetNumerator(p_GetCoeff(p, currRing), currRing); 281 memset(&tmpW,0,sizeof(sleftv)); 282 tmpW.rtyp = POLY_CMD; 283 if (num==NULL) // minpoly 284 { 285 num=(number)(currRing->cf->extRing->qideal->m[0]); 286 tmpW.data = num; 260 if (currRing->cf->rep==n_rep_rat_fct ) 261 { 262 while (p!=NULL) 263 { 264 memset(v,0,sizeof(sleftv)); 265 266 number d = n_GetDenom(p_GetCoeff(p, currRing), currRing); 267 assume( p_Test((poly)NUM(d), R) ); 268 269 if ( n_IsOne (d, currRing->cf) ) 270 { 271 n_Delete(&d, currRing); d = NULL; 272 } 273 else if (!p_IsConstant((poly)NUM(d), R)) 274 { 275 WarnS("ignoring denominators of coefficients..."); 276 n_Delete(&d, currRing); d = NULL; 277 } 278 279 number num = n_GetNumerator(p_GetCoeff(p, currRing), currRing); 280 memset(&tmpW,0,sizeof(sleftv)); 281 tmpW.rtyp = POLY_CMD; 282 assume( p_Test((poly)NUM(num), R) ); 283 284 tmpW.data = NUM (num); // a copy of this poly will be used 285 286 p_Normalize(NUM(num),R); 287 287 if (maApplyFetch(MAP_CMD,theMap,v,&tmpW,R,NULL,NULL,0,nMap)) 288 288 { … … 290 290 v->data=NULL; 291 291 } 292 } 293 else 294 { 295 assume( p_Test((poly)NUM(num), R) ); 296 297 tmpW.data = NUM (num); // a copy of this poly will be used 298 299 p_Normalize(NUM(num),R); 292 n_Delete(&num, currRing); 293 //TODO check for memory leaks 294 poly pp = pHead(p); 295 //PrintS("map:");pWrite(pp); 296 if( d != NULL ) 297 { 298 pSetCoeff(pp, n_Invers(d, currRing->cf)); 299 n_Delete(&d, currRing); // d = NULL; 300 } 301 else 302 pSetCoeff(pp, nInit(1)); 303 304 //PrintS("->");pWrite((poly)(v->data)); 305 poly ppp = pMult((poly)(v->data),pp); 306 //PrintS("->");pWrite(ppp); 307 res=pAdd(res,ppp); 308 pIter(p); 309 } 310 } 311 else if (currRing->cf->rep==n_rep_poly ) 312 { 313 while (p!=NULL) 314 { 315 memset(v,0,sizeof(sleftv)); 316 317 number num = n_GetNumerator(p_GetCoeff(p, currRing), currRing); 318 memset(&tmpW,0,sizeof(sleftv)); 319 tmpW.rtyp = POLY_CMD; 320 assume( p_Test((poly)num, R) ); 321 322 323 p_Normalize((poly)num,R); 324 if (num==NULL) num=(number)R->qideal->m[0]; 325 tmpW.data = num; // a copy of this poly will be used 300 326 if (maApplyFetch(MAP_CMD,theMap,v,&tmpW,R,NULL,NULL,0,nMap)) 301 327 { … … 303 329 v->data=NULL; 304 330 } 305 n_Delete(&num, currRing); 306 } 307 //TODO check for memory leaks 308 poly pp = pHead(p); 309 //PrintS("map:");pWrite(pp); 310 if( d != NULL ) 311 { 312 pSetCoeff(pp, n_Invers(d, currRing->cf)); 313 n_Delete(&d, currRing); // d = NULL; 314 } 315 else 316 pSetCoeff(pp, nInit(1)); 317 318 //PrintS("->");pWrite((poly)(v->data)); 319 poly ppp = pMult((poly)(v->data),pp); 320 //PrintS("->");pWrite(ppp); 321 res=pAdd(res,ppp); 322 pIter(p); 331 if (num!=(number)R->qideal->m[0]) n_Delete(&num, currRing); 332 //TODO check for memory leaks 333 poly pp = pHead(p); 334 //PrintS("map:");pWrite(pp); 335 pSetCoeff(pp,n_Init(1,currRing)); 336 //PrintS("cf->");pWrite((poly)(v->data)); 337 poly ppp = pMult((poly)(v->data),pp); 338 //PrintS("->");pWrite(ppp); 339 res=pAdd(res,ppp); 340 pIter(p); 341 } 342 } 343 else 344 { 345 WerrorS("cannot apply subst for these coeffcients"); 323 346 } 324 347 idDelete((ideal *)(&theMap)); -
Tst/Short/ok_s.lst
rbb9659 r638c230 140 140 bug_tr599 141 141 bug_tr604 142 bug_tr627 142 143 bug_genus_etc 143 144 bug_x_i_j
Note: See TracChangeset
for help on using the changeset viewer.