Split a polytope into simplices to compute its volume.
Two Algorithms for Determining Volumes of Convex Polyhedra (1979) by Jacques Cohen and Timothy Hickey
Journal of the ACM (JACM) JACM Homepage archive
Volume 26 Issue 3, july 1979
Pages 401-414
More...
#include <VolumeOfPolytopes_Rn.h>
Split a polytope into simplices to compute its volume.
Two Algorithms for Determining Volumes of Convex Polyhedra (1979) by Jacques Cohen and Timothy Hickey
Journal of the ACM (JACM) JACM Homepage archive
Volume 26 Issue 3, july 1979
Pages 401-414
Definition at line 139 of file VolumeOfPolytopes_Rn.h.
◆ VolumeOfPolytopes_Rn()
VolumeOfPolytopes_Rn::VolumeOfPolytopes_Rn |
( |
const boost::shared_ptr< Polytope_Rn > |
P | ) |
|
◆ ~VolumeOfPolytopes_Rn()
VolumeOfPolytopes_Rn::~VolumeOfPolytopes_Rn |
( |
| ) |
|
|
inline |
◆ check()
void VolumeOfPolytopes_Rn::check |
( |
| ) |
const |
◆ compute()
static double VolumeOfPolytopes_Rn::compute |
( |
const boost::shared_ptr< Polytope_Rn > |
P | ) |
|
|
inlinestatic |
◆ computeSimplexVolume()
double VolumeOfPolytopes_Rn::computeSimplexVolume |
( |
const std::set< boost::shared_ptr< Generator_Rn > > & |
listOfSimplexVertices | ) |
const |
Compute the volume of a simplex making use of the following formula : \( \displaystyle Vol \big( conv(v_0, ..., v_k) \big) = \frac{ \vert det( v_1-v_0, ..., v_k-v_0 ) \vert }{n!} \)
Definition at line 228 of file VolumeOfPolytopes_Rn.cpp.
◆ determinant()
double VolumeOfPolytopes_Rn::determinant |
( |
boost::numeric::ublas::matrix< double > |
a | ) |
const |
◆ dump()
void VolumeOfPolytopes_Rn::dump |
( |
std::ostream & |
this_ostream | ) |
|
|
inline |
◆ dumpAllSimplices()
void VolumeOfPolytopes_Rn::dumpAllSimplices |
( |
std::ostream & |
this_ostream | ) |
const |
|
inline |
◆ dumpDS()
void VolumeOfPolytopes_Rn::dumpDS |
( |
std::ostream & |
this_ostream | ) |
const |
|
inline |
◆ splitCloudOfVertices()
void VolumeOfPolytopes_Rn::splitCloudOfVertices |
( |
unsigned int |
DIM | ) |
|
Build all simplices to partition the polytope.
- Parameters
-
DIM | the dimension of the space we work in |
Definition at line 81 of file VolumeOfPolytopes_Rn.cpp.
◆ volume()
double VolumeOfPolytopes_Rn::volume |
( |
| ) |
|
◆ _allSimplices
◆ _dimension
unsigned int VolumeOfPolytopes_Rn::_dimension |
|
protected |
As the algorithm goes down in lower dimensions, we want to store the starting space dimension.
Definition at line 268 of file VolumeOfPolytopes_Rn.h.
◆ _facetsByVertices
std::vector< std::vector< unsigned int > > VolumeOfPolytopes_Rn::_facetsByVertices |
|
protected |
◆ _numberOfFacets
unsigned int VolumeOfPolytopes_Rn::_numberOfFacets |
|
protected |
◆ _numberOfVertices
unsigned int VolumeOfPolytopes_Rn::_numberOfVertices |
|
protected |
◆ _polytope
boost::shared_ptr<Polytope_Rn> VolumeOfPolytopes_Rn::_polytope |
|
protected |
◆ _verticesByFacets
std::vector< std::vector< unsigned int > > VolumeOfPolytopes_Rn::_verticesByFacets |
|
protected |
◆ _volume
double VolumeOfPolytopes_Rn::_volume |
|
protected |
The documentation for this class was generated from the following files: