#8670: Provide projections methods for word paths
-----------------------------+----------------------------------------------
   Reporter:  slabbe         |       Owner:  slabbe    
       Type:  enhancement    |      Status:  needs_work
   Priority:  major          |   Milestone:  sage-4.5  
  Component:  combinatorics  |    Keywords:            
     Author:                 |    Upstream:  N/A       
   Reviewer:                 |      Merged:            
Work_issues:                 |  
-----------------------------+----------------------------------------------
Changes (by saliola):

  * status:  needs_review => needs_work


Comment:

 1. Your definition of Pisot eigenvector is ambiguous.
 {{{
 Returns the left eigenvector of the incidence matrix associated
 to the largest eigenvalue (in absolute value).
 }}}
 It is possible that there are multiple eigenvalues with the same absolute
 value:
 {{{
 sage: mu = WordMorphism('a->c,b->c,c->ab')
 sage: m = matrix(mu); m
 [0 0 1]
 [0 0 1]
 [1 1 0]
 sage: m.eigenvalues()
 [0, -1.414213562373095?, 1.414213562373095?]
 }}}
 It is not clear which eigenvector gets returned here.

 Also, there may be more than one eigenvector associated to your "maximal"
 eigenvalue, and your method only returns one eigenvector:
 {{{
 sage: mu = WordMorphism('a->a,b->b,c->abc')
 sage: mu.pisot_eigenvector_left()
 (1, -1, 0)
 sage: m = matrix(mu); m
 [1 0 1]
 [0 1 1]
 [0 0 1]
 sage: m.eigenspaces_left()
 [
 (1, Vector space of degree 3 and dimension 2 over Rational Field
 User basis matrix:
 [ 1 -1  0]
 [ 0  0  1])
 ]
 }}}

 2. The method {{{directive_vector}}} should include a definition of what
 the directive vector is.

 3. In your functions {{{rotate_ith_to_zero}}} and
 {{{rotate_vector_on_axis}}}, you first construct the matrix and then
 coerce it into the ring specified by the user. Why is this preferable to
 doing the computations directly in the ring? What about making this an
 option {{{compute_in_ring=False}}}? I think all you need to do is add the
 following line at the beginning:
 {{{
 if compute_in_ring is True:
     v = vector(ring, v)
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8670#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to