Skip to content

Normaliz backend is broken with double description input #30248

@jplab

Description

@jplab

This bug was found while manipulating hyperplane arrangements.

A minimal example to reproduce the bug is:

sage: p1 = Polyhedron(backend='normaliz', base_ring=AA, rays=[(AA(0), AA(0), AA(1)), (AA(0), AA(1), AA(-1)), (AA(1), AA(0), AA(-1))], vertices=[(AA(0), AA(0), AA(0))])
sage: p1
A 3-dimensional polyhedron in AA^3 defined as the convex hull of 1 vertex and 3 rays
sage: -p1
A 3-dimensional polyhedron in AA^3 defined as the convex hull of 1 vertex and 3 lines
sage: p2 = Polyhedron(backend='normaliz', base_ring=AA, rays=[(AA(-1), AA(0), AA(1)), (AA(-1), AA(1), AA(0)), (AA(0), AA(0), AA(-1))], vertices=[(AA(0), AA(0), AA(0))])
sage: p2
A 3-dimensional polyhedron in AA^3 defined as the convex hull of 1 vertex and 3 rays
sage: -p2
A 3-dimensional polyhedron in AA^3 defined as the convex hull of 1 vertex and 3 lines

Looking at dilation it seems that dilation is not the problem, it does the right thing, but the parent.element_class call messes things up.

Notice that changing the base ring to QQ or ZZ or removing the 'normaliz' backend, one does not get the error... This is nasty.

In the hyperplane arrangement, there are some rational regions, and some irrational regions...

CC: @kliem @LaisRast @mkoeppe @tscrim

Component: geometry

Keywords: polytope, backend, normaliz, hyperplane, regions

Author: Jean-Philippe Labbé

Branch/Commit: 83453fb

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/30248

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions