More efficient dispersion computation not using resultants
Docstrings for dispersion functions
Clean up generator handling
Define maximum of empty set
Add tests
Avoid factoring the same polynomial twice
Fix mathematical description
More and better tests for dispersion computation
An even better implementation of the dispersion algorithm
Add complete references
Fix a bug and factor over the correct domain
Construct test polys directly
Move dispersion code to polynomials module
Proper documentation for all dispersion stuff
Refactored sympy.core.relational.

Broke out logic from the Relational class into subclasses.  Simplified the
logic without modifying it.  Eliminated the helper functions, replacing with
aliases to the relevant classes.  Added docstrings for Relational, Equality,
and Unequality.
Fixes #2627, latex printing of Indexed and IndexedBase.
add quick solution for linear systems of equations

The routines were added to the solvers.py instead of matrices since
it is in the context of solving symbolic matrices that these are
most applicable.
Don't escape underscores in Function names in the LaTeX printer

The common case of underscores is to represent subscripts. If a function wants
a literal underscore, it should define its own printer.

This reverts #996 and fixes #2752.
use generate_bell for det_perm; work with Sparse, too

self -> M

simplify=False is used in the tests. Without this, the
times taken increases significantly. (e.g. 48 seconds
instead of 2 seconds for the system of issue 2015.)

some refactoring of code was also done.
Use iterable(expr) rather than hasattr(expr, '__iter__') in together()

The difference is that the former excludes strings and dictionaries.

Related to #2750.

Unfortunately, I don't have a good test for this. The expression from #2750
breaks in a new way. They are both related to the matrix expressions objects
containing strings in their .args. And even if that worked, they would not
test this fix if that behavior ever changes.