Public Member Functions | Data Fields
red_object Class Reference

#include <tgb_internal.h>

Public Member Functions

void flatten ()
 
void validate ()
 
void adjust_coefs (number c_r, number c_ac_r)
 
wlen_type guess_quality (slimgb_alg *c)
 
int clear_to_poly ()
 
void canonicalize ()
 

Data Fields

kBucket_pt bucket
 
poly p
 
unsigned long sev
 
wlen_type initial_quality
 

Detailed Description

Definition at line 306 of file tgb_internal.h.

Member Function Documentation

◆ adjust_coefs()

void red_object::adjust_coefs ( number  c_r,
number  c_ac_r 
)

◆ canonicalize()

void red_object::canonicalize ( )

Definition at line 871 of file tgb.cc.

872 {
874 }
kBucket_pt bucket
Definition: tgb_internal.h:309
int kBucketCanonicalize(kBucket_pt bucket)

◆ clear_to_poly()

int red_object::clear_to_poly ( )

Definition at line 4865 of file tgb.cc.

4866 {
4867  flatten ();
4868  int l;
4869  kBucketClear (bucket, &p, &l);
4870  return l;
4871 }
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
Definition: kbuckets.cc:495
kBucket_pt bucket
Definition: tgb_internal.h:309
void flatten()
Definition: tgb.cc:4853
int l
Definition: cfEzgcd.cc:94

◆ flatten()

void red_object::flatten ( )

Definition at line 4853 of file tgb.cc.

4854 {
4855  assume (p == kBucketGetLm (bucket));
4856 }
kBucket_pt bucket
Definition: tgb_internal.h:309
const poly kBucketGetLm(kBucket_pt bucket)
Definition: kbuckets.cc:480
#define assume(x)
Definition: mod2.h:394

◆ guess_quality()

wlen_type red_object::guess_quality ( slimgb_alg c)

Definition at line 591 of file tgb.cc.

592 {
593  //works at the moment only for lenvar 1, because in different
594  //case, you have to look on coefs
595  wlen_type s = 0;
596  if(c->isDifficultField)
597  {
598  //s=kSBucketLength(bucket,this->p);
599  if(c->eliminationProblem)
600  {
601  wlen_type cs;
602  number coef;
603 
604  coef = pGetCoeff (kBucketGetLm (bucket));
605  //c=nSize(pGetCoeff(kBucketGetLm(b)));
606 
607  //c=nSize(pGetCoeff(lm));
608  if(rField_is_Q (currRing))
609  {
610  cs = nlQlogSize (coef, currRing->cf);
611  }
612  else
613  cs = nSize (coef);
614 #ifdef HAVE_COEF_BUCKETS
615  if(bucket->coef[0] != NULL)
616  {
617  if(rField_is_Q (currRing))
618  {
619  int modifier = nlQlogSize (pGetCoeff (bucket->coef[0]), currRing->cf);
620  cs += modifier;
621  }
622  else
623  {
624  int modifier = nSize (pGetCoeff (bucket->coef[0]));
625  cs *= modifier;
626  }
627  }
628 #endif
629  //FIXME:not quadratic
630  wlen_type erg = kEBucketLength (this->bucket, this->p, c);
631  //erg*=cs;//for quadratic
632  erg *= cs;
633  if(TEST_V_COEFSTRAT)
634  erg *= cs;
635  //return cs*kEBucketLength(this->bucket,this->p,c);
636  return erg;
637  }
638  s = kSBucketLength (bucket, NULL);
639  }
640  else
641  {
642  if(c->eliminationProblem)
643  //if (false)
644  s = kEBucketLength (this->bucket, this->p, c);
645  else
646  s = bucket_guess (bucket);
647  }
648  return s;
649 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
kBucket_pt bucket
Definition: tgb_internal.h:309
const poly kBucketGetLm(kBucket_pt bucket)
Definition: kbuckets.cc:480
static FORCE_INLINE int nlQlogSize(number n, const coeffs r)
only used by slimgb (tgb.cc)
Definition: longrat.h:77
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
Definition: monomials.h:51
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:10
wlen_type kEBucketLength(kBucket *b, poly lm, slimgb_alg *ca)
Definition: tgb.cc:494
BOOLEAN isDifficultField
Definition: tgb_internal.h:276
static int bucket_guess(kBucket *bucket)
Definition: tgb.cc:952
static BOOLEAN rField_is_Q(const ring r)
Definition: ring.h:501
#define TEST_V_COEFSTRAT
Definition: options.h:132
#define NULL
Definition: omList.c:10
int64 wlen_type
Definition: kutil.h:48
#define nSize(n)
Definition: numbers.h:39
BOOLEAN eliminationProblem
Definition: tgb_internal.h:280
wlen_type kSBucketLength(kBucket *b, poly lm=NULL)
TODO CoefBuckets bercksichtigen.
Definition: tgb.cc:221

◆ validate()

void red_object::validate ( )

Definition at line 4858 of file tgb.cc.

4859 {
4860  p = kBucketGetLm (bucket);
4861  if(p)
4862  sev = pGetShortExpVector (p);
4863 }
kBucket_pt bucket
Definition: tgb_internal.h:309
const poly kBucketGetLm(kBucket_pt bucket)
Definition: kbuckets.cc:480
#define pGetShortExpVector(a)
returns the "Short Exponent Vector" – used to speed up divisibility tests (see polys-impl.cc )
Definition: polys.h:152
unsigned long sev
Definition: tgb_internal.h:311

Field Documentation

◆ bucket

kBucket_pt red_object::bucket

Definition at line 309 of file tgb_internal.h.

◆ initial_quality

wlen_type red_object::initial_quality

Definition at line 314 of file tgb_internal.h.

◆ p

poly red_object::p

Definition at line 310 of file tgb_internal.h.

◆ sev

unsigned long red_object::sev

Definition at line 311 of file tgb_internal.h.


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