My Project
Loading...
Searching...
No Matches
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 that all occurring red_objects have same lm, and all occ. lm's in r[l...u] are the same, only reductor does not occur
 
 ~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 342 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 349 of file tgb_internal.h.

350 {
351 this->p=pp;
352 this->reducer_deg=pp_reducer_deg;
353 assume(pp_len==(int)pLength(pp));
354 this->p_len=pp_len;
355 this->c=pp_c;
356 }
CanonicalForm FACTORY_PUBLIC pp(const CanonicalForm &)
CanonicalForm pp ( const CanonicalForm & f )
Definition cf_gcd.cc:676
slimgb_alg * c
#define assume(x)
Definition mod2.h:389
static int pLength(poly a)
Definition p_polys.h:190

◆ ~simple_reducer()

simple_reducer::~simple_reducer ( )

Definition at line 4937 of file tgb.cc.

4938{
4939 if(fill_back != NULL)
4940 {
4942 }
4943 fill_back = NULL;
4944}
kBucket_pt fill_back
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition kbuckets.cc:493
#define NULL
Definition omList.c:12

Member Function Documentation

◆ do_reduce()

void simple_reducer::do_reduce ( red_object & ro)
virtual

Definition at line 4897 of file tgb.cc.

4898{
4899 number coef;
4900#ifdef HAVE_PLURAL
4901 if(c->nc)
4902 nc_kBucketPolyRed_Z (ro.bucket, p, &coef, FALSE);
4903 else
4904#endif
4905 coef = kBucketPolyRed (ro.bucket, p, p_len, c->strat->kNoether);
4906 nDelete (&coef);
4907}
#define FALSE
Definition auxiliary.h:97
kBucket_pt bucket
number kBucketPolyRed(kBucket_pt bucket, poly p1, int l1, poly spNoether)
Definition kbuckets.cc:1071
static void nc_kBucketPolyRed_Z(kBucket_pt b, poly p, number *c, BOOLEAN reduce)
Definition nc.h:284
#define nDelete(n)
Definition numbers.h:16

◆ pre_reduce()

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

Definition at line 5058 of file tgb.cc.

5059{
5060}

◆ reduce()

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

we assume that all occurring 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 4909 of file tgb.cc.

4910{
4911 this->pre_reduce (r, l, u);
4912 int i;
4913//debug start
4914
4915 if(c->eliminationProblem)
4916 {
4917 assume (p_LmEqual (r[l].p, r[u].p, c->r));
4918 /*int lm_deg=pTotaldegree(r[l].p);
4919 reducer_deg=lm_deg+pTotaldegree_full(p)-pTotaldegree(p); */
4920 }
4921
4922 for(i = l; i <= u; i++)
4923 {
4924 this->do_reduce (r[i]);
4925 }
4926 for(i = l; i <= u; i++)
4927 {
4928 kBucketSimpleContent (r[i].bucket);
4929 r[i].validate ();
4930 }
4931}
int l
Definition cfEzgcd.cc:100
int i
Definition cfEzgcd.cc:132
void validate()
Definition tgb.cc:4878
virtual void pre_reduce(red_object *r, int l, int u)
Definition tgb.cc:5058
virtual void do_reduce(red_object &ro)
Definition tgb.cc:4897
void kBucketSimpleContent(kBucket_pt bucket)
Definition kbuckets.cc:1283
#define p_LmEqual(p1, p2, r)
Definition p_polys.h:1739

Field Documentation

◆ fill_back

kBucket_pt simple_reducer::fill_back

Definition at line 346 of file tgb_internal.h.

◆ p

poly simple_reducer::p

Definition at line 345 of file tgb_internal.h.

◆ p_len

int simple_reducer::p_len

Definition at line 347 of file tgb_internal.h.

◆ reducer_deg

int simple_reducer::reducer_deg

Definition at line 348 of file tgb_internal.h.


The documentation for this class was generated from the following files: