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_alg * | c
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.

{
this->p=pp;
this->reducer_deg=pp_reducer_deg;
assume(pp_len==(int)pLength(pp));
this->p_len=pp_len;
this->c=pp_c;
}
pp
CanonicalForm FACTORY_PUBLIC pp(const CanonicalForm &)
CanonicalForm pp ( const CanonicalForm & f ).
Definition cf_gcd.cc:676
reduction_step::c
slimgb_alg * c
Definition tgb_internal.h:339
simple_reducer::reducer_deg
int reducer_deg
Definition tgb_internal.h:348
simple_reducer::p_len
int p_len
Definition tgb_internal.h:347
simple_reducer::p
poly p
Definition tgb_internal.h:345
assume
#define assume(x)
Definition mod2.h:389
pLength
static int pLength(poly a)
Definition p_polys.h:190

## ~simple_reducer()

simple_reducer::~simple_reducer | ( |  | ) |

Definition at line 4937 of file tgb.cc.

{
if(fill_back != NULL)
{
kBucketInit (fill_back, p, p_len);
}
fill_back = NULL;
}
simple_reducer::fill_back
kBucket_pt fill_back
Definition tgb_internal.h:346
kBucketInit
void kBucketInit(kBucket_pt bucket, poly lm, int length)
Definition kbuckets.cc:493
NULL
#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.

{
number coef;
#ifdef HAVE_PLURAL
if(c->nc)
nc_kBucketPolyRed_Z (ro.bucket, p, &coef, FALSE);
else
#endif
coef = kBucketPolyRed (ro.bucket, p, p_len, c->strat->kNoether);
nDelete (&coef);
}
FALSE
#define FALSE
Definition auxiliary.h:97
red_object::bucket
kBucket_pt bucket
Definition tgb_internal.h:294
kBucketPolyRed
number kBucketPolyRed(kBucket_pt bucket, poly p1, int l1, poly spNoether)
Definition kbuckets.cc:1071
nc_kBucketPolyRed_Z
static void nc_kBucketPolyRed_Z(kBucket_pt b, poly p, number *c, BOOLEAN reduce)
Definition nc.h:284
nDelete
#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.

{
}

## 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.

{
this->pre_reduce (r, l, u);
int i;
//debug start
if(c->eliminationProblem)
{
assume (p_LmEqual (r[l].p, r[u].p, c->r));
/*int lm_deg=pTotaldegree(r[l].p);
reducer_deg=lm_deg+pTotaldegree_full(p)-pTotaldegree(p); */
}
for(i = l; i <= u; i++)
{
this->do_reduce (r[i]);
}
for(i = l; i <= u; i++)
{
kBucketSimpleContent (r[i].bucket);
r[i].validate ();
}
}
l
int l
Definition cfEzgcd.cc:100
i
int i
Definition cfEzgcd.cc:132
red_object::validate
void validate()
Definition tgb.cc:4878
simple_reducer::pre_reduce
virtual void pre_reduce(red_object *r, int l, int u)
Definition tgb.cc:5058
simple_reducer::do_reduce
virtual void do_reduce(red_object &ro)
Definition tgb.cc:4897
kBucketSimpleContent
void kBucketSimpleContent(kBucket_pt bucket)
Definition kbuckets.cc:1283
p_LmEqual
#define p_LmEqual(p1, p2, r)
Definition p_polys.h:1744

## 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:

- kernel/GBEngine/tgb_internal.h
- kernel/GBEngine/tgb.cc