Update .mailmap

There are still a few more entries that need to be put in here, but I
need to wait for people to get back to me on their preferred email/name
spelling.  You can test this by running

git log  --format="%aN <%aE>" | sort -u | less.
Update Thomas Wiecki in the .mailmap file
Add Felix Kaiser to .mailmap

I'm using the email that he told me he prefers.
Add Andy Terrel to the .mailmap file

I'm using the email he told me he preferred.
Add Nicolas Pourcelot/wxgeo to the .mailmap file
Add Min to the .mailmap file
Fixes to Integer.__divmod__

This was only working correctly if both arguments were sympified.  Now
divmod(int, Integer) and divmod(Integer, int) both work correctly. Also,
change it to return a Tuple.  See issue 2613.
Add Bradley Froehle to the .mailmap file
Add Matthew Rocklin to the .mailmap file
combinatorics/generators: Added some well known named generators
of permutation groups.

Signed-off-by: Saptarshi Mandal <sapta.iitkgp@gmail.com>
Use a better character for the horizontal line in unicode roots

See issue 447. Previously, we used HORIZONTAL SCAN LINE-9.  This looked
like this:

In [8]: a = x

In [9]: for i in xrange(5):
   ...:     a **= Rational(1, 2)
   ...:     a += x
   ...:

In [10]: a
Out[10]:
          ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
         ╱          ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
        ╱          ╱         ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
       ╱          ╱         ╱        ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
      ╱          ╱         ╱        ╱   ⎽⎽⎽
x + ╲╱     x + ╲╱    x + ╲╱   x + ╲╱  ╲╱ x  + x

Now, we use LOW LINE.  This looks like this:

In [2]: a = x

In [3]: for i in xrange(5):
   ...:     a **= Rational(1, 2)
   ...:     a += x
   ...:

In [4]: a
Out[4]:
          _________________________________________
         ╱          ______________________________
        ╱          ╱         ____________________
       ╱          ╱         ╱        ___________
      ╱          ╱         ╱        ╱   ___
x + ╲╱     x + ╲╱    x + ╲╱   x + ╲╱  ╲╱ x  + x

At least on my computer, the new one aligns exactly with the /, whereas
with the old one there was a gap.

This symbol is also used for pretty printing unicode conjugates.  We
have old:

In [11]: conjugate(x)
Out[11]:
⎽
x

In [12]: conjugate(f(x + sin(x)))
Out[12]:
⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽
f(x + sin(x))

New:

In [5]: conjugate(x)
Out[5]:
_
x

In [6]: conjugate(f(x + sin(x)))
Out[6]:
_____________
f(x + sin(x))
doc/src/gotchas: Make type() doctest Python 3 compatible

In Python 2, type(float) returns "<type 'float'>", but in Python 3 it
returns "<class 'float'>". This confuses the doctest which must match
output exactly. Use the ellipsis syntax to avoid this. See also commit
b457bee: Make some doctests Python 3 compatible.
doc/../evalf.txt: Skip some doctests related to float()

In Python 3, floats have a higher precision by default and it is not
possible to override it. This is a problem for doctests, which rely on
matching output exactly. As the purpose of these doctests is to show
limitations in Python floats, we can't just convert them to the more
precise SymPy Floats. Fix by skipping the four affected doctests.
utilities/runtest: Wrap a str.encode with a version check

Commit f75a1013 (Fix the doctest runner in Python 2.5 with utf-8 files)
introduced the _indent method from upstream. In Python 3, this converts
a (unicode) string to bytes, which don't support regex, thus crashing
when there's a doctest failure (that's the only time this function is
called). Wrap the encode code with a version check and enter it only
under Python 2.
ntheory/factor_: Don't use reduce in doctest

2to3 crashes when ran on a doctest containing reduce(). This is
an upstream problem (issue 12611). Replace the only use of this in our
doctests with a for cycle. This fixes issue #2605.
utilities/runtests: Fix doctest runner for Python 3

In Python 3, the _load_testfile method has a fourth argument, encoding.
As we already use this, just pass it to the function when under Python
3. However, we then try to decode a str (because we specified
an encoding) which is wrong, so set the encoding to None in Python 3. We
cannot just use None as an encoding as Python 2 relies on the decode
step.

This error only appeared when running .txt doctests, as the usual
doctests use a different codepath.
Fix 2to3 TokenError parsing errors

2to3 reports some errors of the type "TokenError: ('EOF in multi-line
statement', ...)" and can't parse those docstrings. Fix these by
correctly using multi-line strings and statements in doctests.
physics/wigner: Explicitly cast range() arguments to int

In Python 2, a SymPy Float could be used as an argument of range(). This
is no longer possible in Python 3. There are two occurances of this in
wigner.py. In the first, a function which expected an integer (per the
doctest) got a Float and then called range() on it; in the second,
range() was called directly on Floats. Fix by explicitly casting to int.
ntheory/factor_: Fix namespace leak from list comprehension

In Python 3, variables are no longer in the namespace after being used
in a list comprehension. Fix one doctest to directly use a number
instead of a variable.
doc/src/*.txt: Use init_printing() instead of setting the displayhook

Some .txt doctests were setting the sys.displayhook to pprint which
produced subtle errors in Python 3 (printing an extra "None" in some
cases). Instead, use the init_printing() function from
interactive.printing. It is called by default with use_unicode=false,
to match the expected output in the files.

These errors only appeared in tutorial.txt and matrices.txt, but use
init_printing() in four other files which were also setting the
displayhook.

Also skip a doctest in the tutorial demonstrating the old-style
division which no longer exists in Python 3 and modify two doctests in
matrices.txt not to expect a result of None (which wasn't strictly
correct).