#16453: Cythonize quiver paths
-------------------------------------+-------------------------------------
       Reporter:  SimonKing          |        Owner:
           Type:  enhancement        |       Status:  needs_info
       Priority:  major              |    Milestone:  sage-6.4
      Component:  algebra            |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Simon King         |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  public/ticket/16453                |  9d56888d08c500f692116354e5ba0f498a84c6d0
   Dependencies:  #15820 #17564      |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by SimonKing):

 Hi Vincent,

 Replying to [comment:93 vdelecroix]:
 > These paths have more applications than quivers (e.g.
 [https://github.com/coulbois/sage-train-track train-tracks for free group
 automorphisms]). Could you move it from `src.sage.quivers` to
 `sage.graphs`?

 `sage.graphs` is quite large already, that's why I created the new module
 `sage.quivers`, for everything that implements representation theoretic
 aspects of directed multigraphs.

 I could imagine to use cythoned path algebra elements (see #17435) to
 provide a better implementation of free associative algebras, but a
 potential application is no reason to move the code, IMHO.

 Do you really need oriented paths for train tracks? Or do you rather need
 sequences of integers to implement train tracks? If the integers are
 subject to a global bound, then see
 `sage.data_structures.bounded_integer_sequences`.

 > And also remove the name 'quivers' from there.. why not `GraphPaths`?

 Most people understand "graph" as a non-directed graph. But we are talking
 here about objects for which orientation is absolutely essential. The
 original Python code for quivers and their representation had to make a
 difference between two different notions of paths in a graph, one being a
 sequence of vertices, the other being a sequence of edges. `QuiverPaths`
 is about paths as sequences of ''directed'' edges.

 When developing the current Python code for quiver representations, there
 was some discussion about terminology. "Quiver" is a well-established
 mathematical notion, so, good to use. It is the same as multi-digraph, but
 is a shorter word. It seems that the decision was to use "`DiGraph`" in
 Sage to denote the mere directed graph, whereas one uses "`Quiver`" when
 one considers the directed graph as an algebraic object.

 While it may be acceptable to replace the word "Quiver" by "`DiGraph`", it
 can certainly not be replaced by the word "Graph". Hence, changing
 `QuiverPath` into `GraphPath` would be misleading. I am against that
 change.

 > Actually, for train track automorphisms one needs the groupoid of paths
 (that is authorize to take edges in reversed direction). As far as I
 understand, it is different from yours. Do you have an idea for a
 compatible terminology?

 Well, the current terminology for the algebraic object formed by the
 oriented paths in a multi-digraph subject to concatenation is "path
 semigroup", and thus the terminology for your groupoid of invertible paths
 would naturally be "path groupoid", isn't it?

--
Ticket URL: <http://trac.sagemath.org/ticket/16453#comment:94>
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 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-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to