Ticket #7246: trac_7246_review.patch

File trac_7246_review.patch, 1.9 KB (added by slabbe, 11 years ago)
  • sage/graphs/graph_generators.py

    # HG changeset patch
    # User Sebastien Labbe <slabqc@gmail.com>
    # Date 1255949995 -7200
    # Node ID 52730b87e0fe17eb5282dec340fe8957a150f832
    # Parent  f9c29678efec723cd110e2f85c97e1ab9e494655
    #7246: Reviewer's patch.
    
    diff -r f9c29678efec -r 52730b87e0fe sage/graphs/graph_generators.py
    a b  
    37513751
    37523752        EXAMPLES::
    37533753
    3754             sage: db=digraphs.DeBruijn(2,2)
     3754            sage: db=digraphs.DeBruijn(2,2); db
     3755            De Bruijn digraph (n=2, k=2): Looped digraph on 4 vertices
    37553756            sage: db.order()
    37563757            4
    37573758            sage: db.size()
    37583759            8
    3759         """
    3760 
     3760
     3761        TESTS::
     3762
     3763            sage: digraphs.DeBruijn(5,0)
     3764            De Bruijn digraph (n=5, k=0): Looped multi-digraph on 1 vertex
     3765            sage: digraphs.DeBruijn(0,0)
     3766            De Bruijn digraph (n=0, k=0): Looped multi-digraph on 0 vertices
     3767
     3768        """
    37613769        from sage.combinat.words.words import Words
    3762         from sage.combinat.words.word import Word
    3763 
    3764         words=Words(n,k)
    3765         alphabet=[Word([l]) for l in words.alphabet()]
    3766         g=graph.DiGraph(loops=True)
    3767         for w in words:
    3768             ww=w[1:]
    3769             for l in alphabet:
    3770                 g.add_edge(w,ww.concatenate(l),l)
    3771         g.name("De Bruijn digraph (n="+str(n)+",k="+str(k)+")")
    3772 
     3770
     3771        W = Words(n, k)
     3772        A = Words(n, 1)
     3773        g = graph.DiGraph(loops=True)
     3774
     3775        if k == 0 :
     3776            g.allow_multiple_edges(True)
     3777            v = W[0]
     3778            for a in A:
     3779                g.add_edge(v, v, a)
     3780        else:
     3781            for w in W:
     3782                ww = w[1:]
     3783                for a in A:
     3784                    g.add_edge(w, ww*a, a)
     3785
     3786        g.name( "De Bruijn digraph (n=%s, k=%s)"%(n,k) )
    37733787        return g
    37743788
    37753789