Hi
I was trying to use add_inequality( ) method 
of sage.geometry.polyhedron.double_description.StandardDoubleDescriptionPair 
when I encountered an error (see the MWE below). Upon pulling out the 
functions required for add_inequality( ) and running it seperately, it 
works fine. I wonder if this is a bug or I'm doing something wrong:

sage: from sage.geometry.polyhedron.double_description import 
StandardAlgorithm
sage: A= matrix([(-1, -1, 0, 0), (-1, 0, 0, 0), (-1, 0, -1, 0), (-1, 0, 0, 
-1)])
sage: DD, _ = StandardAlgorithm(A).initial_pair()
sage: ineq=vector([-1, -1, -1, -1])
sage: DD = DD.add_inequality(ineq);  
sage: print DD
Double description pair (A, R) defined by
    [-1 -1  0  0]    
    [-1  0  0  0]        [ 0  0  0 -1 -1 -1]
A = [-1  0 -1  0],   R = [-1  0  0 -1  1  1]
    [-1  0  0 -1]        [ 0 -1  0  1 -1  1]
    [-1 -1 -1 -1]        [ 0  0 -1  1  1 -1]
sage: ineq=vector([-1,0,-1,-1])
sage: DD = DD.add_inequality(ineq);  
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-d81bd32d70b2> in <module>()
----> 1 DD = DD.add_inequality(ineq);

/home/jayant/Software/sagemath6_6/sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/double_description.pyc
 
in add_inequality(self, a)
    681         R_new = []
    682         for rp, rn in CartesianProduct(R_pos, R_neg):
--> 683             if not self.are_adjacent(rp, rn):
    684                 continue
    685             r = a.inner_product(rp) * rn - a.inner_product(rn) * rp

/home/jayant/Software/sagemath6_6/sage/local/lib/python2.7/site-packages/sage/geometry/polyhedron/double_description.pyc
 
in are_adjacent(self, r1, r2)
    418         Z_r1 = self.zero_set(r1)
    419         Z_r2 = self.zero_set(r2)
--> 420         Z_12 = set(Z_r1).intersection(Z_r2)
    421         A_Z12 = matrix(self.problem.base_ring(), list(Z_12))
    422         return A_Z12.rank() == self.problem.dim() - 2

/home/jayant/Software/sagemath6_6/sage/src/sage/modules/vector_integer_dense.pyx
 
in sage.modules.vector_integer_dense.Vector_integer_dense.__hash__ 
(build/cythonized/sage/modules/vector_integer_dense.c:3589)()
    170             True
    171         """
--> 172         return free_module_element.FreeModuleElement.__hash__(self)
    173 
    174     def __setitem__(self, i, value):

/home/jayant/Software/sagemath6_6/sage/src/sage/modules/free_module_element.pyx 
in sage.modules.free_module_element.FreeModuleElement.__hash__ 
(build/cythonized/sage/modules/free_module_element.c:7403)()
    963         """
    964         if self._is_mutable:
--> 965             raise TypeError("mutable vectors are unhashable")
    966         return hash(tuple(self))
    967 

TypeError: mutable vectors are unhashable

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to