Frobby  0.9.5
Public Member Functions | Private Attributes | List of all members
SatBinomIdeal Class Reference

Represents a saturated binomial ideal. More...

#include <SatBinomIdeal.h>

Public Member Functions

 SatBinomIdeal ()
 
 SatBinomIdeal (const VarNames &names)
 
void insert (const vector< mpz_class > &binom)
 
const vector< mpz_class > & getGenerator (size_t index) const
 
size_t getGeneratorCount () const
 
void print (FILE *file) const
 
void print (ostream &out) const
 
void clearAndSetNames (const VarNames &names)
 
void removeGeneratorsWithLeadingZero ()
 
void removeGeneratorsWithoutLeadingZero ()
 
void getInitialIdeal (BigIdeal &ideal) const
 
void renameVars (const VarNames &names)
 Requires that names.getVarCount() equals getVarCount(). More...
 
size_t getVarCount () const
 
void clear ()
 
void reserve (size_t size)
 
vector< mpz_class > & getLastBinomRef ()
 
void newLastTerm ()
 
const VarNamesgetNames () const
 
bool hasZeroEntry () const
 Returns true if any generator does not involve every variable, i.e. More...
 
bool initialIdealIsWeaklyGeneric () const
 Returns true if the initial ideal is weakly generic. More...
 
bool isGeneric () const
 Returns true if the generating set is generic, i.e. More...
 
void getDoubleTriangleCount (mpz_class &count) const
 Returns the number of pairs of generators a and b such that {0,a,a+b} and {0,b,a+b} are both interior point-free bodies. More...
 
bool isPointFreeBody (const vector< mpz_class > &a, const vector< mpz_class > &b) const
 Returns true if the smallest body containing zero, a and b has no generator in its interior. More...
 
bool isPointFreeBody (const vector< mpz_class > &a, const vector< mpz_class > &b, const vector< mpz_class > &c) const
 Returns true if the smallest body containing zero, a, b and c has no generator in its interior. More...
 
bool isInterior (const vector< mpz_class > &a, const vector< mpz_class > &b) const
 Returns true if max(0,a,b) is strictly positive in every element. More...
 
bool isInteriorEdge (size_t from, size_t to) const
 Returns whether {to,to+from} is an interior edge of Top. More...
 
bool isTerminatingEdge (size_t from, size_t to) const
 Returns wehther {from,to+from} is an interior edge of Top and also {to,to+from} is an edge of Top (not necessarily interior). More...
 
bool validate () const
 Temporary. More...
 
bool isDominating (const vector< mpz_class > &v) const
 Returns true if any generator, considered as an integer vector, is dominated by v. More...
 
bool isGenerator (const vector< mpz_class > &v) const
 Returns true if v is a generator. More...
 
void projectVar (size_t var)
 
SatBinomIdealoperator= (const SatBinomIdeal &ideal)
 
void getMatrix (Matrix &matrix) const
 

Private Attributes

vector< vector< mpz_class > > _gens
 
VarNames _names
 

Detailed Description

Represents a saturated binomial ideal.

Definition at line 28 of file SatBinomIdeal.h.

Constructor & Destructor Documentation

◆ SatBinomIdeal() [1/2]

SatBinomIdeal::SatBinomIdeal ( )

Definition at line 26 of file SatBinomIdeal.cpp.

◆ SatBinomIdeal() [2/2]

SatBinomIdeal::SatBinomIdeal ( const VarNames names)

Definition at line 29 of file SatBinomIdeal.cpp.

Member Function Documentation

◆ clear()

void SatBinomIdeal::clear ( )

Definition at line 86 of file SatBinomIdeal.cpp.

◆ clearAndSetNames()

void SatBinomIdeal::clearAndSetNames ( const VarNames names)

Definition at line 67 of file SatBinomIdeal.cpp.

◆ getDoubleTriangleCount()

void SatBinomIdeal::getDoubleTriangleCount ( mpz_class &  count) const

Returns the number of pairs of generators a and b such that {0,a,a+b} and {0,b,a+b} are both interior point-free bodies.

Definition at line 308 of file SatBinomIdeal.cpp.

◆ getGenerator()

const vector< mpz_class > & SatBinomIdeal::getGenerator ( size_t  index) const

Definition at line 39 of file SatBinomIdeal.cpp.

◆ getGeneratorCount()

size_t SatBinomIdeal::getGeneratorCount ( ) const

Definition at line 45 of file SatBinomIdeal.cpp.

◆ getInitialIdeal()

void SatBinomIdeal::getInitialIdeal ( BigIdeal ideal) const

Definition at line 117 of file SatBinomIdeal.cpp.

◆ getLastBinomRef()

vector< mpz_class > & SatBinomIdeal::getLastBinomRef ( )

Definition at line 129 of file SatBinomIdeal.cpp.

◆ getMatrix()

void SatBinomIdeal::getMatrix ( Matrix matrix) const

Definition at line 368 of file SatBinomIdeal.cpp.

◆ getNames()

const VarNames & SatBinomIdeal::getNames ( ) const

Definition at line 82 of file SatBinomIdeal.cpp.

◆ getVarCount()

size_t SatBinomIdeal::getVarCount ( ) const

Definition at line 72 of file SatBinomIdeal.cpp.

◆ hasZeroEntry()

bool SatBinomIdeal::hasZeroEntry ( ) const

Returns true if any generator does not involve every variable, i.e.

the vector representing the generator has a zero entry.

Definition at line 140 of file SatBinomIdeal.cpp.

◆ initialIdealIsWeaklyGeneric()

bool SatBinomIdeal::initialIdealIsWeaklyGeneric ( ) const

Returns true if the initial ideal is weakly generic.

Definition at line 148 of file SatBinomIdeal.cpp.

◆ insert()

void SatBinomIdeal::insert ( const vector< mpz_class > &  binom)

Definition at line 33 of file SatBinomIdeal.cpp.

◆ isDominating()

bool SatBinomIdeal::isDominating ( const vector< mpz_class > &  v) const

Returns true if any generator, considered as an integer vector, is dominated by v.

Definition at line 337 of file SatBinomIdeal.cpp.

◆ isGenerator()

bool SatBinomIdeal::isGenerator ( const vector< mpz_class > &  v) const

Returns true if v is a generator.

Definition at line 352 of file SatBinomIdeal.cpp.

◆ isGeneric()

bool SatBinomIdeal::isGeneric ( ) const

Returns true if the generating set is generic, i.e.

no generator has a zero entry.

This concept of genericity comes from Scarf's theory of maximal lattice-free bodies, and this link is preserved if the generating set is a graded reverse-lex toric Grobner basis of a primitive vector.

Definition at line 327 of file SatBinomIdeal.cpp.

◆ isInterior()

bool SatBinomIdeal::isInterior ( const vector< mpz_class > &  a,
const vector< mpz_class > &  b 
) const

Returns true if max(0,a,b) is strictly positive in every element.

Definition at line 213 of file SatBinomIdeal.cpp.

◆ isInteriorEdge()

bool SatBinomIdeal::isInteriorEdge ( size_t  from,
size_t  to 
) const

Returns whether {to,to+from} is an interior edge of Top.

Definition at line 280 of file SatBinomIdeal.cpp.

◆ isPointFreeBody() [1/2]

bool SatBinomIdeal::isPointFreeBody ( const vector< mpz_class > &  a,
const vector< mpz_class > &  b 
) const

Returns true if the smallest body containing zero, a and b has no generator in its interior.

Definition at line 175 of file SatBinomIdeal.cpp.

◆ isPointFreeBody() [2/2]

bool SatBinomIdeal::isPointFreeBody ( const vector< mpz_class > &  a,
const vector< mpz_class > &  b,
const vector< mpz_class > &  c 
) const

Returns true if the smallest body containing zero, a, b and c has no generator in its interior.

Definition at line 193 of file SatBinomIdeal.cpp.

◆ isTerminatingEdge()

bool SatBinomIdeal::isTerminatingEdge ( size_t  from,
size_t  to 
) const

Returns wehther {from,to+from} is an interior edge of Top and also {to,to+from} is an edge of Top (not necessarily interior).

Definition at line 295 of file SatBinomIdeal.cpp.

◆ newLastTerm()

void SatBinomIdeal::newLastTerm ( )

Definition at line 135 of file SatBinomIdeal.cpp.

◆ operator=()

SatBinomIdeal & SatBinomIdeal::operator= ( const SatBinomIdeal ideal)

Definition at line 331 of file SatBinomIdeal.cpp.

◆ print() [1/2]

void SatBinomIdeal::print ( FILE *  file) const

Definition at line 49 of file SatBinomIdeal.cpp.

◆ print() [2/2]

void SatBinomIdeal::print ( ostream &  out) const

Definition at line 55 of file SatBinomIdeal.cpp.

◆ projectVar()

void SatBinomIdeal::projectVar ( size_t  var)

Definition at line 360 of file SatBinomIdeal.cpp.

◆ removeGeneratorsWithLeadingZero()

void SatBinomIdeal::removeGeneratorsWithLeadingZero ( )

Definition at line 95 of file SatBinomIdeal.cpp.

◆ removeGeneratorsWithoutLeadingZero()

void SatBinomIdeal::removeGeneratorsWithoutLeadingZero ( )

Definition at line 106 of file SatBinomIdeal.cpp.

◆ renameVars()

void SatBinomIdeal::renameVars ( const VarNames names)

Requires that names.getVarCount() equals getVarCount().

Definition at line 76 of file SatBinomIdeal.cpp.

◆ reserve()

void SatBinomIdeal::reserve ( size_t  size)

Definition at line 91 of file SatBinomIdeal.cpp.

◆ validate()

bool SatBinomIdeal::validate ( ) const

Temporary.

Returns whether the graph satisfies some conditions that it should if some hypotheses are correct.

Definition at line 246 of file SatBinomIdeal.cpp.

Member Data Documentation

◆ _gens

vector<vector<mpz_class> > SatBinomIdeal::_gens
private

Definition at line 122 of file SatBinomIdeal.h.

◆ _names

VarNames SatBinomIdeal::_names
private

Definition at line 123 of file SatBinomIdeal.h.


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