CoCoALib-0.9905 date: 23 May 2007


CoCoA::geobucket Class Reference

Implementation of polynomials for fast summation of many short polynomials. More...

#include <geobucket.H>

List of all members.

Public Member Functions

 geobucket (const SparsePolyRing &)
 ~geobucket ()
std::size_t mySize (void) const
void myPushBackZeroBucket (std::size_t MaxLen)
void myAddClear (RefRingElem, std::size_t len)
void myDeleteLM (void)
std::size_t myBucketIndex (std::size_t len)
void myAddMul (ConstRefRingElem monom, ConstRefRingElem g, std::size_t gLen)
 *this += monom*g
void myAddMul (ConstRefRingElem monom, ConstRefRingElem g, std::size_t gLen, SparsePolyRingBase::SkipLMFlag)
 *this += monom*g
void myDivByCoeff (ConstRefRingElem coeff)
 content MUST be divisible by coeff
void myMulByCoeff (ConstRefRingElem coeff)
void myCascadeFrom (std::size_t i)

Friends

std::ostream & operator<< (std::ostream &, const geobucket &)
void PrintLengths (std::ostream &, const geobucket &)
 just for debugging
RingElem content (const geobucket &)
void RemoveBigContent (geobucket &)
const ringCoeffRing (const geobucket &g)
const PPMonoidPPM (const geobucket &g)
void AddClear (RefRingElem f, geobucket &gbk)
bool IsZero (const geobucket &)
ConstRefRingElem LC (const geobucket &)
ConstRefPPMonoidElem LPP (const geobucket &)
void MoveLM (RefRingElem g, geobucket &gbk)
void ReductionStep (geobucket &gbk, ConstRefRingElem g, std::size_t RedLen)
void ReductionStepGCD (geobucket &gbk, ConstRefRingElem g, RefRingElem FScale, std::size_t RedLen)

Classes

class  bucket
 used only in geobuckets More...


Detailed Description

Implementation of polynomials for fast summation of many short polynomials.

A geobucket is a polynomial represented in a C++ vector of buckets: a bucket contains a polynomial (and some other info)

This construction is useful when adding many short polynomials to a long one (in particular the reduction process) because it lowers the number of calls of "cmp".

AFTER CALLING SetLM() LM(gbk) is in gbk.myBuckets[0], the first bucket [and then gbk==0 iff gbk.myBuckets[0]=0 ]

gbk.myBuckets[i] contains at most gbk_minlen * gbk_factor^i summands

Definition at line 54 of file geobucket.H.


Constructor & Destructor Documentation

CoCoA::geobucket::geobucket const SparsePolyRing  ) 
 

CoCoA::geobucket::~geobucket  ) 
 


Member Function Documentation

std::size_t CoCoA::geobucket::mySize void   )  const [inline]
 

Definition at line 210 of file geobucket.H.

void CoCoA::geobucket::myPushBackZeroBucket std::size_t  MaxLen  ) 
 

void CoCoA::geobucket::myAddClear RefRingElem  ,
std::size_t  len
 

void CoCoA::geobucket::myDeleteLM void   ) 
 

std::size_t CoCoA::geobucket::myBucketIndex std::size_t  len  ) 
 

Returns:
the bucket index for a polynomial of length len

void CoCoA::geobucket::myAddMul ConstRefRingElem  monom,
ConstRefRingElem  g,
std::size_t  gLen
 

*this += monom*g

void CoCoA::geobucket::myAddMul ConstRefRingElem  monom,
ConstRefRingElem  g,
std::size_t  gLen,
SparsePolyRingBase::SkipLMFlag 
 

*this += monom*g

void CoCoA::geobucket::myDivByCoeff ConstRefRingElem  coeff  ) 
 

content MUST be divisible by coeff

void CoCoA::geobucket::myMulByCoeff ConstRefRingElem  coeff  ) 
 

void CoCoA::geobucket::myCascadeFrom std::size_t  i  ) 
 


Friends And Related Function Documentation

std::ostream& operator<< std::ostream &  ,
const geobucket
[friend]
 

void PrintLengths std::ostream &  ,
const geobucket
[friend]
 

just for debugging

RingElem content const geobucket  )  [friend]
 

void RemoveBigContent geobucket  )  [friend]
 

const ring& CoeffRing const geobucket g  )  [friend]
 

Definition at line 214 of file geobucket.H.

const PPMonoid& PPM const geobucket g  )  [friend]
 

Definition at line 218 of file geobucket.H.

void AddClear RefRingElem  f,
geobucket gbk
[friend]
 

bool IsZero const geobucket g  )  [friend]
 

Definition at line 222 of file geobucket.H.

ConstRefRingElem LC const geobucket  )  [friend]
 

ConstRefPPMonoidElem LPP const geobucket gbk  )  [friend]
 

Definition at line 202 of file geobucket.H.

void MoveLM RefRingElem  g,
geobucket gbk
[friend]
 

void ReductionStep geobucket gbk,
ConstRefRingElem  g,
std::size_t  RedLen
[friend]
 

void ReductionStepGCD geobucket gbk,
ConstRefRingElem  g,
RefRingElem  FScale,
std::size_t  RedLen
[friend]
 


The documentation for this class was generated from the following file:
Generated on Wed May 23 13:46:19 2007 for CoCoALib by  doxygen 1.4.6