51 static polito_EXPORT int savePolytope(
const string& pathA, boost::shared_ptr<Polytope_Rn>& A)
throw (ios_base::failure);
57 static polito_EXPORT int savePolyhedralCone(
const string& pathA, boost::shared_ptr<PolyhedralCone_Rn>& A)
throw (ios_base::failure);
63 static polito_EXPORT int loadPolytope(
const string& pathA, boost::shared_ptr<Polytope_Rn>& A)
throw (ios_base::failure);
69 static polito_EXPORT int loadPolyhedralCone(
const string& pathA, boost::shared_ptr<PolyhedralCone_Rn>& A)
throw (ios_base::failure);
75 static polito_EXPORT int addHalfspace(boost::shared_ptr<Polytope_Rn>& A,
const boost::shared_ptr<HalfSpace_Rn>& HS);
81 static polito_EXPORT int addGenerator(boost::shared_ptr<Polytope_Rn>& A,
const boost::shared_ptr<Generator_Rn>& GN);
87 static polito_EXPORT int computeDoubleDescription(boost::shared_ptr<Polytope_Rn>& A,
double bb_size=1000.)
88 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
93 static polito_EXPORT int computeDoubleDescriptionWithoutCheck(boost::shared_ptr<Polytope_Rn>& A,
double bb_size=1000.)
94 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
101 static polito_EXPORT int computeIntersection(
const boost::shared_ptr<Polytope_Rn>& A,
const boost::shared_ptr<Polytope_Rn>& B,
102 boost::shared_ptr<Polytope_Rn>& C)
103 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
109 static polito_EXPORT int computeIntersection(boost::shared_ptr<Polytope_Rn>& A,
const boost::shared_ptr<Polytope_Rn>& B)
110 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
116 static polito_EXPORT int computeIntersectionWithoutCheck(boost::shared_ptr<Polytope_Rn>& A,
117 const boost::shared_ptr<Polytope_Rn>& B)
118 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
124 static polito_EXPORT bool isIncluded(
const boost::shared_ptr<Polytope_Rn>& A,
125 const boost::shared_ptr<Polytope_Rn>& B)
126 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
133 static polito_EXPORT int computeMinkowskiSumOfPolytopes(
const boost::shared_ptr<Polytope_Rn>& A,
134 const boost::shared_ptr<Polytope_Rn>& B, boost::shared_ptr<Polytope_Rn>& C)
135 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
142 const std::vector< boost::shared_ptr<Polytope_Rn> >& arrayOfPol,
143 boost::shared_ptr<Polytope_Rn>& C)
144 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
152 static polito_EXPORT int computeMinkowskiSumOfPolytopes(
const boost::shared_ptr<Polytope_Rn>& A,
153 const boost::shared_ptr<Polytope_Rn>& B,
154 boost::shared_ptr<Polytope_Rn>& C,
155 const std::vector< std::vector<int> >& genitorsOfGeneratorsA,
156 const std::vector< std::vector<int> >& genitorsOfGeneratorsB,
157 std::vector< std::vector<int> >& traceGenerators)
158 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
166 static polito_EXPORT int checkEqualityOfPolytopes(
const boost::shared_ptr<Polytope_Rn>& A,
167 const boost::shared_ptr<Polytope_Rn>& B,
168 bool getFaceMapping=
false)
169 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
176 static polito_EXPORT bool checkEqualityOfVertices(
const boost::shared_ptr<Polytope_Rn>& A,
177 const boost::shared_ptr<Polytope_Rn>& B)
178 throw (invalid_argument, out_of_range, ios_base::failure, logic_error);
183 static polito_EXPORT int checkTopologyAndGeometry(
const boost::shared_ptr<PolyhedralCone_Rn>& A);
189 static polito_EXPORT int makeCube(boost::shared_ptr<Polytope_Rn>& A,
double M);
202 static polito_EXPORT int PolarPolytope(
const boost::shared_ptr<Polytope_Rn>& original_pol, boost::shared_ptr<Polytope_Rn>& polar_pol);
208 static polito_EXPORT int Translate(boost::shared_ptr<Polytope_Rn>& pol,
const boost::numeric::ublas::vector<double>& v2t);
213 static polito_EXPORT double computeVolume(
const boost::shared_ptr<Polytope_Rn> P)
214 throw (invalid_argument, out_of_range, ios_base::failure);
222 const boost::shared_ptr<Polytope_Rn>& A,
223 const boost::shared_ptr<Polytope_Rn>& B,
224 boost::shared_ptr<Polytope_Rn>& C,
225 const std::set< unsigned int >& firstOperandCaps,
226 const std::set< unsigned int >& secondOperandCaps,
227 std::set< unsigned int >& newCaps,
228 double bb_size=1000.)
throw (invalid_argument,out_of_range,ios_base::failure,logic_error);
236 const boost::shared_ptr<Polytope_Rn>& A,
237 const boost::shared_ptr<Polytope_Rn>& B,
238 boost::shared_ptr<Polytope_Rn>& C,
239 const std::set< unsigned int >& firstOperandCaps,
240 const std::set< unsigned int >& secondOperandCaps,
241 std::set< unsigned int >& newCaps,
242 double bb_size=1000.)
throw (invalid_argument,out_of_range,ios_base::failure,logic_error);
251 const boost::shared_ptr<Polytope_Rn>& inputSpace,
252 const std::vector<Point_Rn>& listOfSeeds,
253 std::vector< boost::shared_ptr<Polytope_Rn> >& VoronoiCells,
Creation of a n-coordinate geometric point designed to be shared by its neighbour faces...
The main class to run the basic API.
TypeOfAlgorithm
Choose the kind of algorithm to be run.