Frobby  0.9.5
Classes | Macros | Enumerations | Functions
LatticeAlgs.h File Reference
#include "SatBinomIdeal.h"
#include "IOFacade.h"
#include "Scanner.h"
#include "IOHandler.h"
#include "DataType.h"
#include "BigIdeal.h"
#include "MsmStrategy.h"
#include "TermTranslator.h"
#include "TranslatingTermConsumer.h"
#include "DebugStrategy.h"
#include "Matrix.h"
#include "BigTermRecorder.h"
#include "SliceParams.h"
#include "SliceFacade.h"
#include <algorithm>
#include <set>
#include <sstream>
#include <limits>
#include <fstream>
#include <map>
#include <iostream>

Go to the source code of this file.

Classes

struct  SeqPos
 
class  Neighbor
 
class  GrobLat
 A lattice with associated Grobner basis/neighbors. More...
 
class  Tri
 
class  Plane
 
class  Mlfb
 
class  TriPlane
 

Macros

#define CHECK(X)
 

Enumerations

enum  NeighborPlace { InPlane , UnderPlane , OverPlane , NoPlace }
 

Functions

char getPlaceCode (NeighborPlace place)
 
void getThinPlanes (vector< TriPlane > &planes, const GrobLat &lat)
 
void checkPlanes (const vector< TriPlane > &thinPlanes, const vector< Plane > &dtPlanes)
 
size_t pushOutFacetPositive (size_t facetPushOut, const vector< mpz_class > &rhs, const GrobLat &lat)
 
size_t pushOutFacetZero (const vector< mpz_class > &rhs, const GrobLat &lat)
 
void computeMlfbs (vector< Mlfb > &mlfbs, const GrobLat &lat)
 
void computeSeqs (vector< vector< SeqPos > > &left, vector< vector< SeqPos > > &right, const vector< Mlfb > &mlfbs, const Plane &plane)
 
void computePivotSeqs (vector< vector< SeqPos > > &seqs, const Mlfb &pivot, const Plane &plane)
 Starting at pivot (which must be a pivot), follow the three non-flat sequences starting at pivot. More...
 
void checkSeqs (const vector< vector< SeqPos > > &left, const vector< vector< SeqPos > > &right, const Plane &plane, const vector< Mlfb > &mlfbs)
 
void checkMiddle (const Plane &plane, const vector< Mlfb > &mlfbs)
 
void checkDoubleTriangle (const Plane &plane, const vector< Mlfb > &mlfbs)
 
void checkGraph (const vector< Mlfb > &mlfbs)
 
void checkGraphOnPlane (const Plane &plane, const vector< Mlfb > &mlfbs)
 
void checkPivotSeqs (vector< vector< SeqPos > > &pivotSeqs, const Plane &plane, const vector< Mlfb > &mlfbs, const vector< SeqPos > &flatSeq)
 Perform checks where pivotSeqs are the 3 non-flat sequences on one side. More...
 
void checkPlaneTri (const GrobLat &lat, const vector< Mlfb > &mlfbs, const vector< const Mlfb * > &pivots, const Plane &plane)
 
void computePlanes (vector< Plane > &planes, const GrobLat &lat, vector< Mlfb > &mlfbs)
 
void setupPlaneCountsAndOrder (vector< Mlfb > &mlfbs, const Plane &plane, map< size_t, size_t > &typeCounts)
 Set the plane vertex count for each mlfb and count how many MLFBs have each possible number of vertices. More...
 
bool disjointSeqs (const vector< SeqPos > &a, const vector< SeqPos > &b)
 
void computePivots (vector< const Mlfb * > &pivots, const vector< Mlfb > &mlfbs, const Plane &plane, const vector< SeqPos > &flatSeq)
 Put all pivots into pivots. More...
 
void checkNonSums (const GrobLat &lat)
 
void checkFlatSeq (const vector< SeqPos > &flatSeq, const GrobLat &lat, const Plane &plane)
 
const char * getEdgePos (size_t index)
 
mpq_class getIndexSum (const vector< Mlfb > &mlfbs)
 
void checkMlfbs (const vector< Mlfb > &mlfbs, const GrobLat &lat)
 
void checkDoubleTrianglePlanes (const vector< Plane > &planes, const GrobLat &lat, const vector< Mlfb > &mlfbs)
 
void checkPlane (const Plane &plane, const vector< Mlfb > &mlfbs)
 

Macro Definition Documentation

◆ CHECK

#define CHECK (   X)
Value:
do { \
if (!(X)) { \
cout << "Check condition on line " \
<< __LINE__ << " of file " << __FILE__ \
<< " not satisfied:\n "#X << endl; \
exit(1); \
} \
} while (false)

Definition at line 48 of file LatticeAlgs.h.

Enumeration Type Documentation

◆ NeighborPlace

Enumerator
InPlane 
UnderPlane 
OverPlane 
NoPlace 

Definition at line 58 of file LatticeAlgs.h.

Function Documentation

◆ checkDoubleTriangle()

void checkDoubleTriangle ( const Plane plane,
const vector< Mlfb > &  mlfbs 
)

Definition at line 1043 of file LatticeAlgs.cpp.

◆ checkDoubleTrianglePlanes()

void checkDoubleTrianglePlanes ( const vector< Plane > &  planes,
const GrobLat lat,
const vector< Mlfb > &  mlfbs 
)

Definition at line 649 of file LatticeAlgs.cpp.

◆ checkFlatSeq()

void checkFlatSeq ( const vector< SeqPos > &  flatSeq,
const GrobLat lat,
const Plane plane 
)

Definition at line 1180 of file LatticeAlgs.cpp.

◆ checkGraph()

void checkGraph ( const vector< Mlfb > &  mlfbs)

Definition at line 1060 of file LatticeAlgs.cpp.

◆ checkGraphOnPlane()

void checkGraphOnPlane ( const Plane plane,
const vector< Mlfb > &  mlfbs 
)

Definition at line 1017 of file LatticeAlgs.cpp.

◆ checkMiddle()

void checkMiddle ( const Plane plane,
const vector< Mlfb > &  mlfbs 
)

Definition at line 985 of file LatticeAlgs.cpp.

◆ checkMlfbs()

void checkMlfbs ( const vector< Mlfb > &  mlfbs,
const GrobLat lat 
)

Definition at line 642 of file LatticeAlgs.cpp.

◆ checkNonSums()

void checkNonSums ( const GrobLat lat)

Definition at line 1157 of file LatticeAlgs.cpp.

◆ checkPivotSeqs()

void checkPivotSeqs ( vector< vector< SeqPos > > &  pivotSeqs,
const Plane plane,
const vector< Mlfb > &  mlfbs,
const vector< SeqPos > &  flatSeq 
)

Perform checks where pivotSeqs are the 3 non-flat sequences on one side.

Definition at line 1092 of file LatticeAlgs.cpp.

◆ checkPlane()

void checkPlane ( const Plane plane,
const vector< Mlfb > &  mlfbs 
)

Definition at line 714 of file LatticeAlgs.cpp.

◆ checkPlanes()

void checkPlanes ( const vector< TriPlane > &  thinPlanes,
const vector< Plane > &  dtPlanes 
)

Definition at line 99 of file LatticeAlgs.cpp.

◆ checkPlaneTri()

void checkPlaneTri ( const GrobLat lat,
const vector< Mlfb > &  mlfbs,
const vector< const Mlfb * > &  pivots,
const Plane plane 
)

Definition at line 1259 of file LatticeAlgs.cpp.

◆ checkSeqs()

void checkSeqs ( const vector< vector< SeqPos > > &  left,
const vector< vector< SeqPos > > &  right,
const Plane plane,
const vector< Mlfb > &  mlfbs 
)

Definition at line 966 of file LatticeAlgs.cpp.

◆ computeMlfbs()

void computeMlfbs ( vector< Mlfb > &  mlfbs,
const GrobLat lat 
)

Definition at line 239 of file LatticeAlgs.cpp.

◆ computePivots()

void computePivots ( vector< const Mlfb * > &  pivots,
const vector< Mlfb > &  mlfbs,
const Plane plane,
const vector< SeqPos > &  flatSeq 
)

Put all pivots into pivots.

flatSeq must be the sequence of flats. If flatSeq is not empty, then offsets 0,1 will be the left pivots while 2,3 will be the right pivots.

Definition at line 746 of file LatticeAlgs.cpp.

◆ computePivotSeqs()

void computePivotSeqs ( vector< vector< SeqPos > > &  seqs,
const Mlfb pivot,
const Plane plane 
)

Starting at pivot (which must be a pivot), follow the three non-flat sequences starting at pivot.

Definition at line 881 of file LatticeAlgs.cpp.

◆ computePlanes()

void computePlanes ( vector< Plane > &  planes,
const GrobLat lat,
vector< Mlfb > &  mlfbs 
)

Definition at line 511 of file LatticeAlgs.cpp.

◆ computeSeqs()

void computeSeqs ( vector< vector< SeqPos > > &  left,
vector< vector< SeqPos > > &  right,
const vector< Mlfb > &  mlfbs,
const Plane plane 
)

Definition at line 769 of file LatticeAlgs.cpp.

◆ disjointSeqs()

bool disjointSeqs ( const vector< SeqPos > &  a,
const vector< SeqPos > &  b 
)

Definition at line 738 of file LatticeAlgs.cpp.

◆ getEdgePos()

const char* getEdgePos ( size_t  index)

Definition at line 1310 of file LatticeAlgs.cpp.

◆ getIndexSum()

mpq_class getIndexSum ( const vector< Mlfb > &  mlfbs)

Definition at line 1321 of file LatticeAlgs.cpp.

◆ getPlaceCode()

char getPlaceCode ( NeighborPlace  place)

Definition at line 135 of file LatticeAlgs.cpp.

◆ getThinPlanes()

void getThinPlanes ( vector< TriPlane > &  planes,
const GrobLat lat 
)

Definition at line 22 of file LatticeAlgs.cpp.

◆ pushOutFacetPositive()

size_t pushOutFacetPositive ( size_t  facetPushOut,
const vector< mpz_class > &  rhs,
const GrobLat lat 
)

Definition at line 145 of file LatticeAlgs.cpp.

◆ pushOutFacetZero()

size_t pushOutFacetZero ( const vector< mpz_class > &  rhs,
const GrobLat lat 
)

Definition at line 170 of file LatticeAlgs.cpp.

◆ setupPlaneCountsAndOrder()

void setupPlaneCountsAndOrder ( vector< Mlfb > &  mlfbs,
const Plane plane,
map< size_t, size_t > &  typeCounts 
)

Set the plane vertex count for each mlfb and count how many MLFBs have each possible number of vertices.