DGtal 1.4.0
|
Aim: This class implements the class Ehrhart Polynomial which is related to lattice point enumeration in bounded lattice polytopes. More...
#include <DGtal/geometry/volumes/EhrhartPolynomial.h>
Public Types | |
typedef EhrhartPolynomial< TSpace, TInteger > | Self |
typedef TSpace | Space |
typedef TInteger | Integer |
typedef BoundedLatticePolytope< Space > | LatticePolytope |
typedef LagrangeInterpolation< Integer > | Lagrange |
typedef Lagrange::Polynomial | Polynomial |
typedef std::size_t | Size |
Public Member Functions | |
~EhrhartPolynomial ()=default | |
EhrhartPolynomial () | |
EhrhartPolynomial (const LatticePolytope &polytope) | |
EhrhartPolynomial (const EhrhartPolynomial &other)=default | |
EhrhartPolynomial (EhrhartPolynomial &&other)=default | |
EhrhartPolynomial & | operator= (const EhrhartPolynomial &other)=default |
EhrhartPolynomial & | operator= (EhrhartPolynomial &&other)=default |
Polynomial | numerator () const |
Integer | denominator () const |
The (integral) denominator of the Ehrhart polynomial. | |
void | init (const LatticePolytope &polytope) |
Integer | count (Integer t) const |
Integer | remainder (Integer t) const |
Integer | countInterior (Integer t) const |
Integer | remainderInterior (Integer t) const |
void | selfDisplay (std::ostream &that_stream) const |
bool | OK () const |
Protected Attributes | |
Polynomial | myE |
The Ehrhart polynomial (integral numerator part) | |
Integer | myD |
The (integral) denominator of the Ehrhart polynomial. | |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CInteger< TInteger >)) | |
Aim: This class implements the class Ehrhart Polynomial which is related to lattice point enumeration in bounded lattice polytopes.
Description of class 'EhrhartPolynomial'
TSpace | an arbitrary model of CSpace, which tells in which space live bounded lattice polytopes. |
TInteger | an arbitrary model of CInteger, which must be precise enough to compute the Ehrhart polynomial (either int64_t or BigInteger). |
Definition at line 66 of file EhrhartPolynomial.h.
typedef TInteger DGtal::EhrhartPolynomial< TSpace, TInteger >::Integer |
Definition at line 75 of file EhrhartPolynomial.h.
typedef LagrangeInterpolation< Integer > DGtal::EhrhartPolynomial< TSpace, TInteger >::Lagrange |
Definition at line 77 of file EhrhartPolynomial.h.
typedef BoundedLatticePolytope<Space> DGtal::EhrhartPolynomial< TSpace, TInteger >::LatticePolytope |
Definition at line 76 of file EhrhartPolynomial.h.
typedef Lagrange::Polynomial DGtal::EhrhartPolynomial< TSpace, TInteger >::Polynomial |
Definition at line 78 of file EhrhartPolynomial.h.
typedef EhrhartPolynomial< TSpace, TInteger > DGtal::EhrhartPolynomial< TSpace, TInteger >::Self |
Definition at line 73 of file EhrhartPolynomial.h.
typedef std::size_t DGtal::EhrhartPolynomial< TSpace, TInteger >::Size |
Definition at line 79 of file EhrhartPolynomial.h.
typedef TSpace DGtal::EhrhartPolynomial< TSpace, TInteger >::Space |
Definition at line 74 of file EhrhartPolynomial.h.
|
default |
Destructor.
|
inline |
Constructor. The object is invalid.
Definition at line 92 of file EhrhartPolynomial.h.
|
inline |
Constructs the Ehrhart polynomial from a lattice polytope
polytope | the lattice polytope |
Definition at line 99 of file EhrhartPolynomial.h.
References DGtal::EhrhartPolynomial< TSpace, TInteger >::init().
|
default |
Copy constructor.
other | the object to clone. |
|
default |
Move constructor.
other | the object to clone. |
|
private |
|
private |
|
inline |
Definition at line 166 of file EhrhartPolynomial.h.
References DGtal::EhrhartPolynomial< TSpace, TInteger >::myD, and DGtal::EhrhartPolynomial< TSpace, TInteger >::myE.
|
inline |
Definition at line 181 of file EhrhartPolynomial.h.
References DGtal::MPolynomial< n, TRing, TAlloc >::degree(), DGtal::EhrhartPolynomial< TSpace, TInteger >::myD, and DGtal::EhrhartPolynomial< TSpace, TInteger >::myE.
|
inline |
The (integral) denominator of the Ehrhart polynomial.
Definition at line 137 of file EhrhartPolynomial.h.
References DGtal::EhrhartPolynomial< TSpace, TInteger >::myD.
Referenced by DGtal::EhrhartPolynomial< TSpace, TInteger >::selfDisplay().
|
inline |
Initializes the Ehrhart polynomial with a lattice polytope.
polytope | the lattice polytope |
Definition at line 145 of file EhrhartPolynomial.h.
References DGtal::BoundedLatticePolytope< TSpace >::count(), DGtal::LagrangeInterpolation< TEuclideanRing >::denominator(), DGtal::SpaceND< dim, TInteger >::dimension, DGtal::EhrhartPolynomial< TSpace, TInteger >::myD, DGtal::EhrhartPolynomial< TSpace, TInteger >::myE, and DGtal::LagrangeInterpolation< TEuclideanRing >::polynomial().
Referenced by DGtal::EhrhartPolynomial< TSpace, TInteger >::EhrhartPolynomial().
|
inline |
Definition at line 131 of file EhrhartPolynomial.h.
References DGtal::EhrhartPolynomial< TSpace, TInteger >::myE.
Referenced by DGtal::EhrhartPolynomial< TSpace, TInteger >::selfDisplay().
|
inline |
Checks the validity/consistency of the object.
Definition at line 212 of file EhrhartPolynomial.h.
References DGtal::EhrhartPolynomial< TSpace, TInteger >::myD.
|
default |
Assignment.
other | the object to copy. |
|
default |
Move assignment.
other | the object to move. |
|
inline |
Definition at line 173 of file EhrhartPolynomial.h.
References DGtal::EhrhartPolynomial< TSpace, TInteger >::myD, and DGtal::EhrhartPolynomial< TSpace, TInteger >::myE.
|
inline |
Definition at line 189 of file EhrhartPolynomial.h.
References DGtal::MPolynomial< n, TRing, TAlloc >::degree(), DGtal::EhrhartPolynomial< TSpace, TInteger >::myD, and DGtal::EhrhartPolynomial< TSpace, TInteger >::myE.
|
inline |
Writes/Displays the object on an output stream.
that_stream | the output stream where the object is written. |
Definition at line 202 of file EhrhartPolynomial.h.
References DGtal::EhrhartPolynomial< TSpace, TInteger >::denominator(), and DGtal::EhrhartPolynomial< TSpace, TInteger >::numerator().
Referenced by DGtal::operator<<().
|
protected |
The (integral) denominator of the Ehrhart polynomial.
Definition at line 223 of file EhrhartPolynomial.h.
Referenced by DGtal::EhrhartPolynomial< TSpace, TInteger >::count(), DGtal::EhrhartPolynomial< TSpace, TInteger >::countInterior(), DGtal::EhrhartPolynomial< TSpace, TInteger >::denominator(), DGtal::EhrhartPolynomial< TSpace, TInteger >::init(), DGtal::EhrhartPolynomial< TSpace, TInteger >::OK(), DGtal::EhrhartPolynomial< TSpace, TInteger >::remainder(), and DGtal::EhrhartPolynomial< TSpace, TInteger >::remainderInterior().
|
protected |
The Ehrhart polynomial (integral numerator part)
Definition at line 221 of file EhrhartPolynomial.h.
Referenced by DGtal::EhrhartPolynomial< TSpace, TInteger >::count(), DGtal::EhrhartPolynomial< TSpace, TInteger >::countInterior(), DGtal::EhrhartPolynomial< TSpace, TInteger >::init(), DGtal::EhrhartPolynomial< TSpace, TInteger >::numerator(), DGtal::EhrhartPolynomial< TSpace, TInteger >::remainder(), and DGtal::EhrhartPolynomial< TSpace, TInteger >::remainderInterior().