31 #if defined(EhrhartPolynomial_RECURSES)
32 #error Recursive header files inclusion detected in EhrhartPolynomial.h
33 #else // defined(EhrhartPolynomial_RECURSES)
35 #define EhrhartPolynomial_RECURSES
37 #if !defined EhrhartPolynomial_h
39 #define EhrhartPolynomial_h
45 #include "DGtal/base/Common.h"
46 #include "DGtal/kernel/NumberTraits.h"
47 #include "DGtal/kernel/CInteger.h"
48 #include "DGtal/kernel/CSpace.h"
49 #include "DGtal/math/LagrangeInterpolation.h"
50 #include "DGtal/geometry/volumes/BoundedLatticePolytope.h"
65 template <
typename TSpace,
typename TInteger>
204 that_stream <<
"[EhrhartPolynomial num=" <<
numerator()
235 template <
typename TSpace,
typename TInteger>
254 #endif // !defined EhrhartPolynomial_h
256 #undef EhrhartPolynomial_RECURSES
257 #endif // else defined(EhrhartPolynomial_RECURSES)
Integer remainder(Integer t) const
EhrhartPolynomial & operator=(const EhrhartPolynomial &other)=default
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
EhrhartPolynomial(const LatticePolytope &polytope)
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
Aim: The traits class for all models of Cinteger.
Integer remainderInterior(Integer t) const
Integer countInterior(Integer t) const
Lagrange::Polynomial Polynomial
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
Polynomial numerator() const
Integer denominator() const
The (integral) denominator of the Ehrhart polynomial.
DGtal is the top-level namespace which contains all DGtal functions and types.
~EhrhartPolynomial()=default
static const Dimension dimension
static constants to store the dimension.
BoundedLatticePolytope< Space > LatticePolytope
Polynomial polynomial(const std::vector< Ring > &yvalues)
Integer myD
The (integral) denominator of the Ehrhart polynomial.
Aim: This class implements Lagrange basis functions and Lagrange interpolation.
void selfDisplay(std::ostream &that_stream) const
Aim: This class implements the class Ehrhart Polynomial which is related to lattice point enumeration...
Aim: Represents a multivariate polynomial, i.e. an element of , where K is some ring or field.
EhrhartPolynomial< TSpace, TInteger > Self
Aim: Represents an nD lattice polytope, i.e. a convex polyhedron bounded with vertices with integer c...
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
Polynomial myE
The Ehrhart polynomial (integral numerator part)
void init(const LatticePolytope &polytope)
Integer count(Integer t) const
LagrangeInterpolation< Integer > Lagrange