My Project  debian-1:4.1.1-p2+ds-4build1
Public Member Functions | Data Fields
simple_reducer Class Reference

#include <tgb_internal.h>

Public Member Functions

 simple_reducer (poly pp, int pp_len, int pp_reducer_deg, slimgb_alg *pp_c=NULL)
 
virtual void pre_reduce (red_object *r, int l, int u)
 
virtual void reduce (red_object *r, int l, int u)
 we assume hat all occuring red_objects have same lm, and all occ. lm's in r[l...u] are the same, only reductor does not occur More...
 
 ~simple_reducer ()
 
virtual void do_reduce (red_object &ro)
 
- Public Member Functions inherited from reduction_step
virtual ~reduction_step ()
 

Data Fields

poly p
 
kBucket_pt fill_back
 
int p_len
 
int reducer_deg
 
- Data Fields inherited from reduction_step
slimgb_algc
 
int reduction_id
 

Detailed Description

Definition at line 355 of file tgb_internal.h.

Constructor & Destructor Documentation

◆ simple_reducer()

simple_reducer::simple_reducer ( poly  pp,
int  pp_len,
int  pp_reducer_deg,
slimgb_alg pp_c = NULL 
)
inline

Definition at line 362 of file tgb_internal.h.

364  {
365  this->p=pp;
366  this->reducer_deg=pp_reducer_deg;
367  assume(pp_len==pLength(pp));
368  this->p_len=pp_len;
369  this->c=pp_c;

◆ ~simple_reducer()

simple_reducer::~simple_reducer ( )

Definition at line 4887 of file tgb.cc.

4888 {
4889  if(fill_back != NULL)
4890  {
4892  }
4893  fill_back = NULL;
4894 }

Member Function Documentation

◆ do_reduce()

void simple_reducer::do_reduce ( red_object ro)
virtual

Definition at line 4847 of file tgb.cc.

4848 {
4849  number coef;
4850 #ifdef HAVE_PLURAL
4851  if(c->nc)
4852  nc_BucketPolyRed_Z (ro.bucket, p, &coef);
4853  else
4854 #endif
4855  coef = kBucketPolyRed (ro.bucket, p, p_len, c->strat->kNoether);
4856  nDelete (&coef);
4857 }

◆ pre_reduce()

void simple_reducer::pre_reduce ( red_object r,
int  l,
int  u 
)
virtual

Definition at line 5008 of file tgb.cc.

5009 {
5010 }

◆ reduce()

void simple_reducer::reduce ( red_object r,
int  l,
int  u 
)
virtual

we assume hat all occuring red_objects have same lm, and all occ. lm's in r[l...u] are the same, only reductor does not occur

Reimplemented from reduction_step.

Definition at line 4859 of file tgb.cc.

4860 {
4861  this->pre_reduce (r, l, u);
4862  int i;
4863 //debug start
4864 
4865  if(c->eliminationProblem)
4866  {
4867  assume (p_LmEqual (r[l].p, r[u].p, c->r));
4868  /*int lm_deg=pTotaldegree(r[l].p);
4869  reducer_deg=lm_deg+pTotaldegree_full(p)-pTotaldegree(p); */
4870  }
4871 
4872  for(i = l; i <= u; i++)
4873  {
4874  this->do_reduce (r[i]);
4875  }
4876  for(i = l; i <= u; i++)
4877  {
4878  kBucketSimpleContent (r[i].bucket);
4879  r[i].validate ();
4880  }
4881 }

Field Documentation

◆ fill_back

kBucket_pt simple_reducer::fill_back

Definition at line 359 of file tgb_internal.h.

◆ p

poly simple_reducer::p

Definition at line 358 of file tgb_internal.h.

◆ p_len

int simple_reducer::p_len

Definition at line 360 of file tgb_internal.h.

◆ reducer_deg

int simple_reducer::reducer_deg

Definition at line 361 of file tgb_internal.h.


The documentation for this class was generated from the following files:
kBucketSimpleContent
void kBucketSimpleContent(kBucket_pt bucket)
Definition: kbuckets.cc:1161
simple_reducer::p
poly p
Definition: tgb_internal.h:358
reduction_step::c
slimgb_alg * c
Definition: tgb_internal.h:352
simple_reducer::do_reduce
virtual void do_reduce(red_object &ro)
Definition: tgb.cc:4847
kBucketPolyRed
number kBucketPolyRed(kBucket_pt bucket, poly p1, int l1, poly spNoether)
Definition: kbuckets.cc:1060
red_object::bucket
kBucket_pt bucket
Definition: tgb_internal.h:307
slimgb_alg::r
ring r
Definition: tgb_internal.h:226
p_LmEqual
#define p_LmEqual(p1, p2, r)
Definition: p_polys.h:1638
pLength
static unsigned pLength(poly a)
Definition: p_polys.h:183
i
int i
Definition: cfEzgcd.cc:125
slimgb_alg::nc
BOOLEAN nc
Definition: tgb_internal.h:280
kBucketInit
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition: kbuckets.cc:474
slimgb_alg::strat
kStrategy strat
Definition: tgb_internal.h:230
pp
CanonicalForm pp(const CanonicalForm &)
CanonicalForm pp ( const CanonicalForm & f )
Definition: cf_gcd.cc:253
nc_BucketPolyRed_Z
static void nc_BucketPolyRed_Z(kBucket_pt b, poly p, number *c)
Definition: nc.h:295
simple_reducer::reducer_deg
int reducer_deg
Definition: tgb_internal.h:361
skStrategy::kNoether
poly kNoether
Definition: kutil.h:320
assume
#define assume(x)
Definition: mod2.h:384
NULL
#define NULL
Definition: omList.c:9
l
int l
Definition: cfEzgcd.cc:93
nDelete
#define nDelete(n)
Definition: numbers.h:16
red_object::validate
void validate()
Definition: tgb.cc:4828
slimgb_alg::eliminationProblem
BOOLEAN eliminationProblem
Definition: tgb_internal.h:278
simple_reducer::fill_back
kBucket_pt fill_back
Definition: tgb_internal.h:359
simple_reducer::p_len
int p_len
Definition: tgb_internal.h:360
simple_reducer::pre_reduce
virtual void pre_reduce(red_object *r, int l, int u)
Definition: tgb.cc:5008