Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Trac #22552: 2 bugs creating a simple 2-point Polytope
Sara Billey (of Univ of Washington) reported these. {{{ ~/Sara$ sage-develop ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 7.6.beta5, Release Date: 2017-02-26 │ │ Type "notebook()" for the browser-based notebook interface. │ │ Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Warning: this is a prerelease version, and it may be unstable. ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ sage: P=Polyhedron(vertices =[(8.3319544851638732, 7.0567045956967727), (6.4876921900819049, 4.8435898415984129)]) sage: P The empty polyhedron in (Real Field with 57 bits of precision)^2 sage: # WRONG! It should not be empty. Indeed, look: sage: P=Polyhedron(vertices =[(8.3319544851638732, 7.0567045956967727), (6.4876921900819049, 4.84358984159841)]) sage: P A 1-dimensional polyhedron in RDF^2 defined as the convex hull of 2 vertices sage: # Also, here's a hub traceback for no reason (as a second but maybe related bug): sage: P=Polyhedron(vertices =[(8.3319544851638732, 7.0567045956967727), (6.4876921900819049, 4.8435898415984129)], base_ring=RealField(40)) sage: P.plot() ------------------------------------------------------------------------ --- KeyError Traceback (most recent call last) <ipython-input-8-d297b4e23e6b> in <module>() ----> 1 P.plot() /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/base.pyc in plot(self, point, line, polygon, wireframe, fill, projection_direction, **kwds) 694 return polyhedron.projection() 695 --> 696 projection = project(self) 697 try: 698 plot_method = projection.plot /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/base.pyc in project(polyhedron) 692 return polyhedron.schlegel_projection() 693 else: --> 694 return polyhedron.projection() 695 696 projection = project(self) /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/base.pyc in projection(self) 3759 """ 3760 from .plot import Projection -> 3761 self.projection = Projection(self) 3762 return self.projection 3763 /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/plot.py in __init__(self, polyhedron, proj) 492 493 if polyhedron.ambient_dim() == 2: --> 494 self._init_from_2d(polyhedron) 495 elif polyhedron.ambient_dim() == 3: 496 self._init_from_3d(polyhedron) /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/plot.py in _init_from_2d(self, polyhedron) 748 self.dimension = 2 749 self._init_points(polyhedron) --> 750 self._init_lines_arrows(polyhedron) 751 self._init_area_2d(polyhedron) 752 /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/plot.py in _init_lines_arrows(self, polyhedron) 812 if not obj[i].is_vertex(): continue 813 for j in range(len(obj)): --> 814 if polyhedron.vertex_adjacency_matrix()[i,j] == 0: continue 815 if i < j and obj[j].is_vertex(): 816 l = [obj[i].vector(), obj[j].vector()] /projects/sage/sage-dev/src/sage/misc/cachefunc.pyx in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (/projects/sage /sage-dev/src/build/cythonized/sage/misc/cachefunc.c:13453)() 2399 if self.cache is None: 2400 f = self.f -> 2401 self.cache = f(self._instance) 2402 return self.cache 2403 /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/base.pyc in vertex_adjacency_matrix(self) 1933 (0, 0, 1, 1, 0) A vertex at (3, 0) 1934 """ -> 1935 return self._vertex_adjacency_matrix() 1936 1937 adjacency_matrix = vertex_adjacency_matrix /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/base.pyc in _vertex_adjacency_matrix(self) 318 M[j, i] = 1 319 --> 320 face_lattice = self.face_lattice() 321 for face in face_lattice: 322 Vrep = face.ambient_Vrepresentation() /projects/sage/sage-dev/src/sage/misc/cachefunc.pyx in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (/projects/sage /sage-dev/src/build/cythonized/sage/misc/cachefunc.c:13453)() 2399 if self.cache is None: 2400 f = self.f -> 2401 self.cache = f(self._instance) 2402 return self.cache 2403 /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/polyhedron/base.pyc in face_lattice(self) 3408 return Hasse_diagram_from_incidences\ 3409 (atoms_incidences, coatoms_incidences, -> 3410 face_constructor=face_constructor, required_atoms=atoms_vertices) 3411 3412 def faces(self, face_dimension): /projects/sage/sage-dev/local/lib/python2.7/site- packages/sage/geometry/hasse_diagram.pyc in Hasse_diagram_from_incidences(atom_to_coatoms, coatom_to_atoms, face_constructor, required_atoms, key, **kwds) 180 # Make sure that coatoms are in the end in proper order 181 tail = [faces[atoms, frozenset([coatom])] --> 182 for coatom, atoms in enumerate(coatom_to_atoms)] 183 tail.append(faces[A, frozenset()]) 184 new_order = [n for n in new_order if n not in tail] + tail KeyError: (frozenset([]), frozenset([0])) sage: }}} See public worksheet: https://cloud.sagemath.com/projects/53b9d6b6-ce2c-4007-843a- 257cc01bf65b/files/Sara/Polygon%20Bug.sagews URL: https://trac.sagemath.org/22552 Reported by: was Ticket author(s): Jean-Philippe Labbé Reviewer(s): Vincent Delecroix
- Loading branch information