politopix
4.1.0
|
Combinatorial face enumeration for polytopes. More...
#include <PolyhedralAlgorithms_Rn.h>
Public Member Functions | |
FaceEnumeration (const boost::shared_ptr< Polytope_Rn > &A) | |
General Face Enumeration Algorithm. More... | |
const std::vector< std::vector < ListOfFaces > > & | getFacesWithVertices () throw (std::domain_error) |
const std::vector< std::vector < ListOfFaces > > & | getFacesWithFacets () throw (std::domain_error) |
void | clear () |
void | printFacesWithVerticesToSage (std::ostream &this_ostream) const |
void | printFacesWithVertices (std::ostream &this_ostream) const |
void | printFacesWithFacets (std::ostream &this_ostream) const |
void | save (std::ostream &this_stream) const |
Static Public Member Functions | |
static void | Compute (const boost::shared_ptr< Polytope_Rn > &A) |
static void | Compute (const boost::shared_ptr< Polytope_Rn > &A, FaceEnumeration &FE) |
static void | save (const std::string &filename, const std::vector< std::vector< ListOfFaces > > &latt) |
Save the polytope lattice. More... | |
static void | load (const std::string &filename, std::vector< std::vector< ListOfFaces > > &latt) throw (std::ios_base::failure) |
Load the polytope lattice. More... | |
static void | load (std::istream &this_stream, std::vector< std::vector< ListOfFaces > > &latt) throw (std::out_of_range) |
Load the polytope lattice 1st line : comments = "# SpaceDimension NumberOfHalfspaces" 2nd line : SpaceDimension TotalNumberOfFaces 3rd line : FiDimension k V1 ... Vk 4th line : FjDimension l Vu ... V(u+l) k-th line : ... More... | |
static void | save (std::ostream &this_stream, const std::vector< std::vector< ListOfFaces > > &latt) |
Save the polytope lattice 1st line : comments = "# SpaceDimension NumberOfHalfspaces" 2nd line : SpaceDimension TotalNumberOfFaces 3rd line : FiDimension k V1 ... Vk 4th line : FjDimension l Vu ... V(u+l) k-th line : ... More... | |
Static Protected Member Functions | |
static void | ComputeWithFacets (const boost::shared_ptr< Polytope_Rn > &A, FaceEnumeration &FaceEnum) |
static void | ComputeWithVertices (const boost::shared_ptr< Polytope_Rn > &A, FaceEnumeration &FaceEnum) |
Protected Attributes | |
std::vector< std::vector < ListOfFaces > > | _allFacesWithFacets |
std::vector< std::vector < ListOfFaces > > | _allFacesWithVertices |
const boost::shared_ptr < Polytope_Rn > & | _polytope |
Combinatorial face enumeration for polytopes.
Definition at line 44 of file PolyhedralAlgorithms_Rn.h.
|
inline |
General Face Enumeration Algorithm.
Definition at line 49 of file PolyhedralAlgorithms_Rn.h.
|
inline |
Definition at line 89 of file PolyhedralAlgorithms_Rn.h.
|
static |
General Face Enumeration Algorithm from Combinatorial face enumeration in convex polytopes (1994) by Komei Fukuda and Vera Rosta.
Input: the set of vertices of a polytope P.
Output: the set of vertices of a polytope P.
procedure FaceEnumeration( : vertices)
Create a binary tree T with set of leaves
k=0; f0 = ;
WHILE fk >= 2 DO
fk+1 = 0 ;
FOREACH pair (F, F') in DO
IF THEN
IF or
THEN
Delete F'' from ;
fk = fk - 1
ENDIF
Add F'' to T and to
fk+1 = fk+1 + 1
ENDIF
ENDFOR
Output ; k=k+1
ENDWHILE
Definition at line 40 of file PolyhedralAlgorithms_Rn.cpp.
|
static |
Definition at line 46 of file PolyhedralAlgorithms_Rn.cpp.
|
staticprotected |
Definition at line 51 of file PolyhedralAlgorithms_Rn.cpp.
|
staticprotected |
Definition at line 124 of file PolyhedralAlgorithms_Rn.cpp.
|
inline |
Definition at line 83 of file PolyhedralAlgorithms_Rn.h.
|
inline |
Definition at line 77 of file PolyhedralAlgorithms_Rn.h.
|
static |
Load the polytope lattice.
Definition at line 262 of file PolyhedralAlgorithms_Rn.cpp.
|
static |
Load the polytope lattice 1st line : comments = "# SpaceDimension NumberOfHalfspaces"
2nd line : SpaceDimension TotalNumberOfFaces
3rd line : FiDimension k V1 ... Vk
4th line : FjDimension l Vu ... V(u+l)
k-th line : ...
Definition at line 287 of file PolyhedralAlgorithms_Rn.cpp.
void FaceEnumeration::printFacesWithFacets | ( | std::ostream & | this_ostream | ) | const |
Definition at line 173 of file PolyhedralAlgorithms_Rn.cpp.
void FaceEnumeration::printFacesWithVertices | ( | std::ostream & | this_ostream | ) | const |
Definition at line 198 of file PolyhedralAlgorithms_Rn.cpp.
void FaceEnumeration::printFacesWithVerticesToSage | ( | std::ostream & | this_ostream | ) | const |
Definition at line 223 of file PolyhedralAlgorithms_Rn.cpp.
|
static |
Save the polytope lattice.
Definition at line 275 of file PolyhedralAlgorithms_Rn.cpp.
|
static |
Save the polytope lattice 1st line : comments = "# SpaceDimension NumberOfHalfspaces"
2nd line : SpaceDimension TotalNumberOfFaces
3rd line : FiDimension k V1 ... Vk
4th line : FjDimension l Vu ... V(u+l)
k-th line : ...
Definition at line 321 of file PolyhedralAlgorithms_Rn.cpp.
|
inline |
Definition at line 121 of file PolyhedralAlgorithms_Rn.h.
|
protected |
Definition at line 129 of file PolyhedralAlgorithms_Rn.h.
|
protected |
Definition at line 131 of file PolyhedralAlgorithms_Rn.h.
|
protected |
Definition at line 133 of file PolyhedralAlgorithms_Rn.h.