Parents for Polyhedra

sage.geometry.polyhedron.parent.Polyhedra(base_ring, ambient_dim, backend=None)

Construct a suitable parent class for polyhedra

INPUT:

  • base_ring – A ring. Currently there are backends for \(\ZZ\), \(\QQ\), and \(\RDF\).

  • ambient_dim – integer. The ambient space dimension.

  • backend – string. The name of the backend for computations. There are

    several backends implemented:

    • backend="ppl" uses the Parma Polyhedra Library
    • backend="cdd" uses CDD
    • backend="normaliz" uses normaliz
    • backend="polymake" uses polymake
    • backend="field" a generic Sage implementation

OUTPUT:

A parent class for polyhedra over the given base ring if the backend supports it. If not, the parent base ring can be larger (for example, \(\QQ\) instead of \(\ZZ\)). If there is no implementation at all, a ValueError is raised.

EXAMPLES:

sage: from sage.geometry.polyhedron.parent import Polyhedra
sage: Polyhedra(AA, 3)
Polyhedra in AA^3
sage: Polyhedra(ZZ, 3)
Polyhedra in ZZ^3
sage: type(_)
<class 'sage.geometry.polyhedron.parent.Polyhedra_ZZ_ppl_with_category'>
sage: Polyhedra(QQ, 3, backend='cdd')
Polyhedra in QQ^3
sage: type(_)
<class 'sage.geometry.polyhedron.parent.Polyhedra_QQ_cdd_with_category'>

CDD does not support integer polytopes directly:

sage: Polyhedra(ZZ, 3, backend='cdd')
Polyhedra in QQ^3
class sage.geometry.polyhedron.parent.Polyhedra_QQ_cdd(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_QQ_cdd

class sage.geometry.polyhedron.parent.Polyhedra_QQ_normaliz(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_QQ_normaliz

class sage.geometry.polyhedron.parent.Polyhedra_QQ_ppl(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_QQ_ppl

class sage.geometry.polyhedron.parent.Polyhedra_RDF_cdd(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_RDF_cdd

class sage.geometry.polyhedron.parent.Polyhedra_ZZ_normaliz(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_ZZ_normaliz

class sage.geometry.polyhedron.parent.Polyhedra_ZZ_ppl(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_ZZ_ppl

sage.geometry.polyhedron.parent.Polyhedra_base

Polyhedra in a fixed ambient space.

INPUT:

  • base_ring – either ZZ, QQ, or RDF. The base ring of the ambient module/vector space.

  • ambient_dim – integer. The ambient space dimension.

  • backend – string. The name of the backend for computations. There are

    several backends implemented:

    • backend="ppl" uses the Parma Polyhedra Library
    • backend="cdd" uses CDD
    • backend="normaliz" uses normaliz
    • backend="polymake" uses polymake
    • backend="field" a generic Sage implementation

EXAMPLES:

sage: from sage.geometry.polyhedron.parent import Polyhedra
sage: Polyhedra(ZZ, 3)
Polyhedra in ZZ^3
class sage.geometry.polyhedron.parent.Polyhedra_field(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_field

class sage.geometry.polyhedron.parent.Polyhedra_polymake(base_ring, ambient_dim, backend)

Bases: sage.geometry.polyhedron.parent.Polyhedra_base

Element

alias of Polyhedron_polymake