Changeset 36b1aa in git
- Timestamp:
- May 11, 2005, 4:36:02 PM (19 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- bddc9d2711c370b6792832b479116d50c0ea2273
- Parents:
- 7c20514255fa4f5d6b76e6b96f42af24270fbecf
- Location:
- kernel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/tgb.cc
r7c2051 r36b1aa 5 5 * Computer Algebra System SINGULAR * 6 6 ****************************************/ 7 /* $Id: tgb.cc,v 1.1 4 2005-05-11 10:11:53bricken Exp $ */7 /* $Id: tgb.cc,v 1.15 2005-05-11 14:36:01 bricken Exp $ */ 8 8 /* 9 9 * ABSTRACT: slimgb and F4 implementation … … 4325 4325 4326 4326 } 4327 join_simple_reducer::~join_simple_reducer(){ 4328 if(fill_back!=NULL) 4329 { 4330 kBucketInit(fill_back,p,p_len); 4331 } 4332 fill_back=NULL; 4333 4334 } 4327 4335 4328 void multi_reduce_step(find_erg & erg, red_object* r, calc_dat* c){ 4336 4329 static int id=0; … … 4397 4390 } 4398 4391 assume(red_len==pLength(red)); 4399 if (red_c>=AC_NEW_MIN) 4400 pointer=new join_simple_reducer(red,red_len,r[erg.to_reduce_l].p); 4401 else 4402 pointer=new simple_reducer(red,red_len,c); 4392 4393 pointer=new simple_reducer(red,red_len,c); 4403 4394 4404 4395 if ((!woc) && (!erg.fromS)) … … 4415 4406 }; 4416 4407 4417 void join_simple_reducer::target_is_no_sum_reduce(red_object & ro){ 4418 kbTest(ro.bucket); 4419 ro.sum=new formal_sum_descriptor(); 4420 ro.sum->ac=ac; 4421 ac->counter++; 4422 kBucket_pt bucket=ro.bucket; 4423 poly a1 = pNext(p), lm = kBucketExtractLm(bucket); 4424 BOOLEAN reset_vec=FALSE; 4425 number rn; 4426 assume(a1!=NULL); 4427 number an = pGetCoeff(p), bn = pGetCoeff(lm); 4428 lm->next=NULL; 4429 int ct = ksCheckCoeff(&an, &bn); 4430 ro.sum->c_ac=nNeg(bn); 4431 ro.sum->c_my=an; 4432 assume(nIsZero(nAdd(nMult(ro.sum->c_my,lm->coef),nMult(p->coef,ro.sum->c_ac) ))); 4433 if (p_GetComp(p, bucket->bucket_ring) != p_GetComp(lm, bucket->bucket_ring)) 4434 { 4435 p_SetCompP(a1, p_GetComp(lm, bucket->bucket_ring), bucket->bucket_ring); 4436 reset_vec = TRUE; 4437 p_SetComp(lm, p_GetComp(p, bucket->bucket_ring), bucket->bucket_ring); 4438 p_Setm(lm, bucket->bucket_ring); 4439 } 4440 4441 4442 4443 4444 p_DeleteLm(&lm, bucket->bucket_ring); 4445 if (reset_vec) p_SetCompP(a1, 0, bucket->bucket_ring); 4446 kbTest(bucket); 4447 4448 } 4408 4449 4409 4450 4410 reduction_accumulator::reduction_accumulator(poly p, int p_len, poly high_to){ … … 4469 4429 } 4470 4430 void simple_reducer:: pre_reduce(red_object* r, int l, int u){} 4471 void join_simple_reducer:: pre_reduce(red_object* r, int l, int u){ 4472 for(int i=l;i<=u;i++) 4473 { 4474 if (r[i].sum){ 4475 if(r[i].sum->ac->counter<=AC_FLATTEN) r[i].flatten(); 4476 4477 } 4478 } 4479 } 4431 -
kernel/tgb_internal.h
r7c2051 r36b1aa 5 5 * Computer Algebra System SINGULAR * 6 6 ****************************************/ 7 /* $Id: tgb_internal.h,v 1. 5 2005-05-11 10:11:54bricken Exp $ */7 /* $Id: tgb_internal.h,v 1.6 2005-05-11 14:36:02 bricken Exp $ */ 8 8 /* 9 9 * ABSTRACT: tgb internal .h file … … 247 247 virtual void target_is_no_sum_reduce(red_object & ro); 248 248 }; 249 class join_simple_reducer:public simple_reducer{ 250 public: 251 join_simple_reducer(poly p, int p_len, poly high_to):simple_reducer(p,p_len){ 252 ac=new reduction_accumulator( p, p_len, high_to); 253 254 255 } 256 ~join_simple_reducer(); 257 void pre_reduce(red_object* r, int l, int u); 258 void target_is_no_sum_reduce(red_object & ro); 259 reduction_accumulator* ac; 260 }; 249 261 250 //class sum_canceling_reducer:public reduction_step { 262 251 // void reduce(red_object* r, int l, int u);
Note: See TracChangeset
for help on using the changeset viewer.