Frobby  0.9.5
Functions
LatticeAlgs.cpp File Reference
#include "stdinc.h"
#include "LatticeAlgs.h"
#include <stack>

Go to the source code of this file.

Functions

void getThinPlanes (vector< TriPlane > &planes, const GrobLat &lat)
 
void checkPlanes (const vector< TriPlane > &thinPlanes, const vector< Plane > &dtPlanes)
 
char getPlaceCode (NeighborPlace place)
 
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 computeRhs (vector< mpz_class > &rhs, const vector< Neighbor > points)
 
void computeMlfbs (vector< Mlfb > &mlfbs, const GrobLat &lat)
 
SeqPos nextInSeq (SeqPos pos)
 
SeqPos prevInSeq (SeqPos pos)
 
size_t computeFlatIntervalCount (const vector< SeqPos > &flatSeq)
 
void computeFlatSeq (vector< SeqPos > &seq, const vector< Mlfb > &mlfbs, const Plane &plane)
 
void computePlanes (vector< Plane > &planes, const GrobLat &lat, vector< Mlfb > &mlfbs)
 
void check0Graph (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)
 
size_t pivotToFlatFacet (const Mlfb &pivot, const Plane &plane)
 Returns the facet to push in of pivot to get to a flat. 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 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 checkSeq (vector< bool > &seenOnSide, const vector< SeqPos > &seq, const Plane &plane)
 
void checkSide (vector< bool > &pivotOnSide, const vector< vector< SeqPos > > &side, const Plane &plane, const vector< Mlfb > &mlfbs)
 
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 checkGraphOnPlane (const Plane &plane, const vector< Mlfb > &mlfbs)
 
void checkDoubleTriangle (const Plane &plane, const vector< Mlfb > &mlfbs)
 
void checkGraph (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 checkNonSums (const GrobLat &lat)
 
void checkFlatSeq (const vector< SeqPos > &flatSeq, const GrobLat &lat, const Plane &plane)
 
void checkPlaneTri (const GrobLat &lat, const vector< Mlfb > &mlfbs, const vector< const Mlfb * > &pivots, const Plane &plane)
 
const char * getEdgePos (size_t index)
 
mpq_class getIndexSum (const vector< Mlfb > &mlfbs)
 

Function Documentation

◆ check0Graph()

void check0Graph ( const vector< Mlfb > &  mlfbs)

Definition at line 611 of file LatticeAlgs.cpp.

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

◆ checkSeq()

void checkSeq ( vector< bool > &  seenOnSide,
const vector< SeqPos > &  seq,
const Plane plane 
)

Definition at line 904 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.

◆ checkSide()

void checkSide ( vector< bool > &  pivotOnSide,
const vector< vector< SeqPos > > &  side,
const Plane plane,
const vector< Mlfb > &  mlfbs 
)

Definition at line 937 of file LatticeAlgs.cpp.

◆ computeFlatIntervalCount()

size_t computeFlatIntervalCount ( const vector< SeqPos > &  flatSeq)

Definition at line 445 of file LatticeAlgs.cpp.

◆ computeFlatSeq()

void computeFlatSeq ( vector< SeqPos > &  seq,
const vector< Mlfb > &  mlfbs,
const Plane plane 
)

Definition at line 471 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.

◆ computeRhs()

void computeRhs ( vector< mpz_class > &  rhs,
const vector< Neighbor points 
)

Definition at line 190 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.

◆ nextInSeq()

SeqPos nextInSeq ( SeqPos  pos)

Definition at line 415 of file LatticeAlgs.cpp.

◆ pivotToFlatFacet()

size_t pivotToFlatFacet ( const Mlfb pivot,
const Plane plane 
)

Returns the facet to push in of pivot to get to a flat.

Pivot must be a pivot.

Definition at line 726 of file LatticeAlgs.cpp.

◆ prevInSeq()

SeqPos prevInSeq ( SeqPos  pos)

Definition at line 441 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.