I have just posted the following revisions to sage/sandpiles at http://trac.sagemath.org/ticket/18618 (needs_review):
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. -- 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 sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.