#18618: sandpile revisions
-------------------------------------+-------------------------------------
       Reporter:  dperkinson         |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.8
      Component:  graph theory       |   Resolution:
       Keywords:  sandpile           |    Merged in:
        Authors:  David Perkinson    |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/dperkinson/sandpile_revisions    |  9e022d84a8eeee729426210e3f2b9ac466805cee
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------
Description changed by dperkinson:

Old description:

> Summary of sandpile.py changes from version 2.3 to 2.4
> June 11, 2015
>
>  1. Eliminated dependence on 4ti2, substituting the use of Polyhedron
> methods.  Thus, no optional packages are necessary.
>  2. Fixed bug in Sandpile.__init__ so that now multigraphs are handled
> correctly.
>  3. Created `sandpiles` to handle examples of Sandpiles in analogy with
> `graphs`, `simplicial_complexes`, and `polytopes`.  In the process, we
> implemented a much faster way of producing the sandpile grid graph.
>  4. Added support for open and closed sandpile Markov chains.
>  5. Added support for Weierstrass points.
>  6. Implemented the Cori-Le Borgne algorithm for computing ranks of
> divisors on complete graphs.
>
> NEW METHODS
>
> **Sandpile**
>  * avalanche_polynomial      -- the avalance polynomial
>  * genus                     -- genus of the sandpile graph (undirected
> case only)
>  * group_gens                -- minimal set of generators for the
> sandpile group
>  * help                      -- list of Sandpile-specific methods
>  * jacobian_representatives  -- representatives for elements of the
> Jacobian group
>  * markov_chain              -- open and closed sandpile Markov chain
>  * picard_representatives    -- representatives for elements of the
> Picard group
>  * smith_form                -- Smith normal from for transpose of the
> Laplacian
>  * stable_configs            -- iterator for all stable configurations
>  * stationary_density        -- the stationary density for the closed
> sandpile Markov chain
>  * tutte_polynomial          -- Tutte polynomial of underlying graph
> (undirected case only)
>
> **!SandpileConfig**
>  * burst_size                -- statistic for sandpile Markov chain
>  * help                      -- list of !SandpileConfig methods
>
> **SandpileDivisor**
>  * help                      -- list of SandpileDivisor methods
>  * is_linearly_equivalent    -- Is the divisor linearly equivalent to a
> given divisor?
>  * is_q_reduced              -- Is the divisor q-reduced (q=sink)
>  * is_weierstrass_pt         -- Is the given vertex a Weierstrass pt for
> the divisor?
>  * polytope                  -- polytope determining the complete linear
> system
>  * polytope_integer_pts      -- integer points inside the divisor's
> polytope
>  * q_reduced                 -- linearly equiv. q-reduced divisor
>  * rank                      -- the rank of the divisor
>  * simulate_threshold        -- simulate closed sandpile Markov chain
> until threshold
>  * stabilize                 -- stabilize, if possible
>  * weierstrass_gap_seq       -- the Weierstrass gap sequence for the
> given vertex
>  * weierstrass_pts           -- all Weierstrass points (vertices) for the
> divisor
>  * weierstrass_rank_seq      -- the rank sequence at a Weierstrass point
>
> DEPRECATED
>  * SandpileDivisor.linear_system -- uses 4ti2.  Replaced by
> SandpileDivisor.polytope.
>  * SandpileDivisor.r_of_D -- uses 4ti2.  Replaced by
> SandpileDivisor.rank.
>  * sandlib method -- replaced by `sandpiles`
>  * complete_sandpile -- replaced by sandpiles.Complete
>  * grid_sandpile -- replaced by sandpiles.Grid
>  * triangle_sandpile -- Not used much.  Will still be able to import.
>  * aztec_sandpile -- Not used much.  Will still be able to import.
>  * random_digraph -- Duplicates methods from graphs and digraphs, more or
> less.
>  * random_DAG -- Not used much.  Will still be able to import.
>  * random_tree -- Duplicates method from graphs and digraphs, more or
> less.
>  * glue_graphs -- Not used much.  Will still be able to import.
>  * admissible_partitions -- Not used much.  Will still be able to import.
>  * firing_vector -- Replaced by SandpileDivisor.is_linearly_equivalent.
>  * min_cycles -- Not used much.  Will still be able to import.
>
> MINOR CHANGES
>  * The `sink` argument to Sandpile.__init__ now defaults to the first
> vertex.
>  * A SandpileConfig or SandpileDivisor may now be multiplied by an
> integer.
>  * Sped up __add__ method for SandpileConfig and SandpileDivisor.
>  * Enhanced string representation of a Sandpile (via _repr_ and the
> `name` method).
>  * Recurrents for complete graphs and cycle graphs are computed more
> quickly.
>  * The stabilization code for SandpilConfig has been made more efficient.
>  * Added optional probability distribution arguments to `add_random`
> methods.

New description:

 Summary of sandpile.py changes from version 2.3 to 2.4
 June 11, 2015

  1. Eliminated dependence on 4ti2, substituting the use of Polyhedron
 methods.  Thus, no optional packages are necessary.
  2. Fixed bug in Sandpile.__init__ so that now multigraphs are handled
 correctly.
  3. Created `sandpiles` to handle examples of Sandpiles in analogy with
 `graphs`, `simplicial_complexes`, and `polytopes`.  In the process, we
 implemented a much faster way of producing the sandpile grid graph.
  4. Added support for open and closed sandpile Markov chains.
  5. Added support for Weierstrass points.
  6. Implemented the Cori-Le Borgne algorithm for computing ranks of
 divisors on complete graphs.

 NEW METHODS

 **Sandpile**
  * avalanche_polynomial      -- the avalance polynomial
  * genus                     -- genus of the sandpile graph (undirected
 case only)
  * group_gens                -- minimal set of generators for the sandpile
 group
  * help                      -- list of Sandpile-specific methods
  * jacobian_representatives  -- representatives for elements of the
 Jacobian group
  * markov_chain              -- open and closed sandpile Markov chain
  * picard_representatives    -- representatives for elements of the Picard
 group
  * smith_form                -- Smith normal from for transpose of the
 Laplacian
  * stable_configs            -- iterator for all stable configurations
  * stationary_density        -- the stationary density for the closed
 sandpile Markov chain
  * tutte_polynomial          -- Tutte polynomial of underlying graph
 (undirected case only)

 **!SandpileConfig**
  * burst_size                -- statistic for sandpile Markov chain
  * help                      -- list of !SandpileConfig methods

 **!SandpileDivisor**
  * help                      -- list of !SandpileDivisor methods
  * is_linearly_equivalent    -- Is the divisor linearly equivalent to a
 given divisor?
  * is_q_reduced              -- Is the divisor q-reduced (q=sink)
  * is_weierstrass_pt         -- Is the given vertex a Weierstrass pt for
 the divisor?
  * polytope                  -- polytope determining the complete linear
 system
  * polytope_integer_pts      -- integer points inside the divisor's
 polytope
  * q_reduced                 -- linearly equiv. q-reduced divisor
  * rank                      -- the rank of the divisor
  * simulate_threshold        -- simulate closed sandpile Markov chain
 until threshold
  * stabilize                 -- stabilize, if possible
  * weierstrass_gap_seq       -- the Weierstrass gap sequence for the given
 vertex
  * weierstrass_pts           -- all Weierstrass points (vertices) for the
 divisor
  * weierstrass_rank_seq      -- the rank sequence at a Weierstrass point

 DEPRECATED
  * !SandpileDivisor.linear_system -- uses 4ti2.  Replaced by
 !SandpileDivisor.polytope.
  * !SandpileDivisor.r_of_D -- uses 4ti2.  Replaced by
 !SandpileDivisor.rank.
  * sandlib method -- replaced by `sandpiles`
  * complete_sandpile -- replaced by sandpiles.Complete
  * grid_sandpile -- replaced by sandpiles.Grid
  * triangle_sandpile -- Not used much.  Will still be able to import.
  * aztec_sandpile -- Not used much.  Will still be able to import.
  * random_digraph -- Duplicates methods from graphs and digraphs, more or
 less.
  * random_DAG -- Not used much.  Will still be able to import.
  * random_tree -- Duplicates method from graphs and digraphs, more or
 less.
  * glue_graphs -- Not used much.  Will still be able to import.
  * admissible_partitions -- Not used much.  Will still be able to import.
  * firing_vector -- Replaced by !SandpileDivisor.is_linearly_equivalent.
  * min_cycles -- Not used much.  Will still be able to import.

 MINOR CHANGES
  * The `sink` argument to Sandpile.__init__ now defaults to the first
 vertex.
  * A !SandpileConfig or !SandpileDivisor may now be multiplied by an
 integer.
  * Sped up __add__ method for !SandpileConfig and !SandpileDivisor.
  * Enhanced string representation of a Sandpile (via _repr_ and the `name`
 method).
  * Recurrents for complete graphs and cycle graphs are computed more
 quickly.
  * The stabilization code for !SandpileConfig has been made more
 efficient.
  * Added optional probability distribution arguments to `add_random`
 methods.

--

--
Ticket URL: <http://trac.sagemath.org/ticket/18618#comment:9>
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