Mateusz Paprocki | 1 Jun 04:08 2011
Picon

Re: why does terms_gcd clear the denominators of an expression

Hi,

On 27 May 2011 21:08, Chris Smith <smichr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
Aaron S. Meurer wrote:
>> Shouldn't it return 1?

The quote I posted takes the approach that the divisor is the number that divides both and still gives an integer, so our gcd and current primitive method (soon to be changed) is consistent with that notion.

   >>> R=Rational;gcd(R(2,3),R(4,9))
   2/9

The primitive function in polys doesn't advertise (and doesn't do) a removal of the gcd...it should clearly state that, I think, or be changed to do so. I will have to defer to those that know what primitive is suppose to mean.

For long time I wasn't convinced what gcd(p/q, P/Q) should return and the safest was to return 1. Some libraries, e.g. gmpy, don't define gcd() of rationals at all. However, following other symbolic mathematics systems it seems useful to define gcd(p/q, P/Q) as gcd(p, P)/lcm(q, Q) because this way we can clear denominators when dividing by the gcd and core diverged from polys. As I recall, the implementation of gcd() in core was done upon request. To make core and polys behave the same way, I submitted a pull request:


in which I changed behavior of gcd() and lcm() in Field. As expected (by myself), no tests failed other than those testing the old behavior.
 

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To unsubscribe from this group, send email to sympy+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.


Mateusz

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Brian Granger | 1 Jun 05:51 2011
Picon

Re: Uses and Size of Sympy Matrices

Hi,

In sympy.physics.quantum we use sympy Matrix instances all over the
place.  These can be quite large (100x100 up to many 1000x1000.  In
the future we could get even bigger) and always have symbolic entries.
 At times we do like to convert them to numerical numpy arrays, but in
many cases we really want the symbolic forms.

On Sat, May 28, 2011 at 6:56 AM, SherjilOzair
<sherjilozair@...> wrote:
> I would like to know how and where Sympy's matrices are used.
> Is Sympy matrices used for numeric computing anywhere ?
> Are Sympy Matrices expected to offer any advantage that matrices in
> numpy/scipy or other libraries cannot offer ?
>
> Is its use limited to symbolic ? What size of Matrices with symbolic
> content is used ?
> Operations on Expr are way costlier than operations on numerics. So,
> knowing the size of the symbolic matrices that are required would help
> me in optimization when writing algorithms for sparse matrices, and
> also when refactoring Matrix.
>
> I expect that one cannot use too large symbolic matrices, as solving/
> inversing/etc. would result in expression blowup.
>
> I would be glad if you could also tell what running time you would
> expect from the matrices that you use.

instant ;)

When we are dealing with large symbolic matrices, we are typically
just doing matrix/vector multplies.  But for small matrices we do
other things like linear solves, decompositions and eigenvalue
problems.  symbolic eigenvalues are great, but expressions quickly get
out of hand as the matrix size increases.

Cheers,

Brian

> --
> You received this message because you are subscribed to the Google Groups "sympy" group.
> To post to this group, send email to sympy@...
> To unsubscribe from this group, send email to sympy+unsubscribe@...
> For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
>
>

-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger@... and ellisonbg@...

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe@...
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

Brian Granger | 1 Jun 05:54 2011
Picon

Re: Reorganise the package structure

+1 on linalg as that follows the convention of numpy/scipy.

On Fri, May 27, 2011 at 6:04 PM, Andy Ray Terrel
<andy.terrel@...> wrote:
> I'm +1 for linalg over matrix/matrices.  Having a Matrix file and
> putting all the linear algebra routines in it violates modularity and
> extensibility.  Also it makes the library unclear as to where other
> linear algebraic operators actually fit.  While the name "linear"
> might not be the best fit for all linear algebraic operations, it is
> the mathematical tradition.
>
>
> -- Andy
>
> On Thu, May 26, 2011 at 6:09 PM, Ondrej Certik <ondrej@...> wrote:
>> On Thu, May 26, 2011 at 2:49 PM, Brian Granger <ellisonbg@...> wrote:
>>> +1 on manipulate
>>> +1 on matrices or matrix, -1 on linear instead of matrx/matrices
>>
>> The same here.
>>
>> Ondrej
>>
>> --
>> You received this message because you are subscribed to the Google Groups "sympy" group.
>> To post to this group, send email to sympy@...
>> To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
>> For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups "sympy" group.
> To post to this group, send email to sympy@...
> To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
>
>

-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger@... and ellisonbg@...

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

sherjilozair | 1 Jun 08:55 2011
Picon

Re: Reorganise the package structure

How about having having two folders, dense and sparse, in the matrices folder. The dense folder contains
densematrix.py and linalg.py. densematrix.py contains the class DenseMatrix (the current Matrix
class, or should the name remain the same ? ). The sparse folder has dokmatrix.py, linalg.py.
dokmatrix.py contains the class DOKMatrix (currently SMatrix). More sparse reprsentations would be
added here later. linalg.py contains routines for factorization, solves for dense and sparse
respectively. 
This is much like what scipy has. 
If we choose to remain the current Matrix class to DenseMatrix, we can have a file matrix.py in
sympy/matrices/ which has a Matrix class which serves as a wrapper over DenseMatrix, and the various
SparseMatrices. 

As to the class hierarchy, I intend to keep sparse and dense separate. There are only some printing and other
utility functions that they could share. 

So, some more abstract claasses like _printable_matrix, would also be there. 
Sent on my BlackBerry® from Vodafone

-----Original Message-----
From: Brian Granger <ellisonbg@...>
Sender: sympy@...
Date: Tue, 31 May 2011 20:54:14 
To: <sympy@...>
Reply-To: sympy@...
Subject: Re: [sympy] Reorganise the package structure

+1 on linalg as that follows the convention of numpy/scipy.

On Fri, May 27, 2011 at 6:04 PM, Andy Ray Terrel
<andy.terrel@...> wrote:
> I'm +1 for linalg over matrix/matrices.  Having a Matrix file and
> putting all the linear algebra routines in it violates modularity and
> extensibility.  Also it makes the library unclear as to where other
> linear algebraic operators actually fit.  While the name "linear"
> might not be the best fit for all linear algebraic operations, it is
> the mathematical tradition.
>
>
> -- Andy
>
> On Thu, May 26, 2011 at 6:09 PM, Ondrej Certik <ondrej@...> wrote:
>> On Thu, May 26, 2011 at 2:49 PM, Brian Granger <ellisonbg@...> wrote:
>>> +1 on manipulate
>>> +1 on matrices or matrix, -1 on linear instead of matrx/matrices
>>
>> The same here.
>>
>> Ondrej
>>
>> --
>> You received this message because you are subscribed to the Google Groups "sympy" group.
>> To post to this group, send email to sympy@...
>> To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
>> For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups "sympy" group.
> To post to this group, send email to sympy@...
> To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
>
>

-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger@... and ellisonbg@...

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

Sherjil Ozair | 1 Jun 11:00 2011
Picon

Segmentation fault when importing sympy

I have uploaded my terminal saved output.

I was previously working with python 2.6. I updated to 2.7 a few days back. 
I was re-installing gmpy for 2.7 when this happened. Sympy no longer imports. I can import gmpy, but importing sympy gives a segmentation fault.
What seems to be the cause of this ? 
I know that this is something to do with C. Maybe some problem in Cython. But I don't understand how installing gmpy could cause this.

Waiting for a solution,
Sherjil Ozair

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
Last login: Wed Jun  1 13:57:48 on console
Mac:~ sherjilozair$ cd sympy
Mac:sympy sherjilozair$ open sympy/matrices/DOKMatrix.py
Mac:sympy sherjilozair$ open sympy/matrices/matrices.py
Mac:sympy sherjilozair$ bin/isympy
Leopard libedit detected.
IPython console for SymPy 0.6.7-git (Python 2.7.1) (ground types: python)

These commands were executed:
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> from line_profiler import LineProfiler as LP

Documentation can be found at http://www.sympy.org

In [1]: exit(0
   ...: y
------------------------------------------------------------
   File "<ipython console>", line 2
     y
     ^
SyntaxError: invalid syntax

                                          exit()                                Do you really want to exit ([y]/n)? y
Exiting ...
Mac:sympy sherjilozair$ bin/isympy
Leopard libedit detected.
IPython console for SymPy 0.6.7-git (Python 2.7.1) (ground types: python)

These commands were executed:
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> from line_profiler import LineProfiler as LP

Documentation can be found at http://www.sympy.org

In [1]: test(10,2)
[[(0, 0), (0, 1)], [(1, 1)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5), (4, 6)], [(5, 5), (5, 6), (5, 7)], [(6, 6), (6, 7)], [(7, 7)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1)], [(1, 1)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5), (4, 6)], [(5, 5), (5, 6), (5, 7)], [(6, 6), (6, 7)], [(7, 7)], [(8, 8), (8, 9)], [(9, 9)]]
Out[1]: 
⎛⎡1.0   0    0    0         0               0          0         0         0  
⎜⎢                                                                            
⎜⎢1.0  1.0   0    0         0               0          0         0         0  
⎜⎢                                                                            
⎜⎢ 0    0   1.0   0         0               0          0         0         0  
⎜⎢                                                                            
⎜⎢ 0    0   1.0  1.0        0               0          0         0         0  
⎜⎢                                                                            
⎜⎢ 0    0    0   1.0  1.41421356237         0          0         0         0  
⎜⎢                                                                            
⎜⎢ 0    0    0    0   0.707106781187  1.22474487139    0         0         0  
⎜⎢                                                                            
⎜⎢ 0    0    0    0   0.707106781187  1.22474487139   1.0        0         0  
⎜⎢                                                                            
⎜⎢ 0    0    0    0         0         0.816496580928  1.0  0.57735026919   0  
⎜⎢                                                                            
⎜⎢ 0    0    0    0         0               0          0         0        1.0 
⎜⎢                                                                            
⎝⎣ 0    0    0    0         0               0          0         0        1.0 

  0 ⎤, ⎡24⎤, ⎡      22.0       ⎤, ⎡      -2.0       ⎤⎞
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢2 ⎥  ⎢       2.0       ⎥  ⎢      22.0       ⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢74⎥  ⎢101.113999428062 ⎥  ⎢27.1139994280625 ⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢42⎥  ⎢-27.1139994280625⎥  ⎢      32.0       ⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢37⎥  ⎢69.1139994280625 ⎥  ⎢33.6279559129498 ⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢15⎥  ⎢-14.677778404966 ⎥  ⎢15.8944438456019 ⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢76⎥  ⎢-71.2243186433545⎥  ⎢-116.329874797753⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢85⎥  ⎢147.224318643355 ⎥  ⎢-83.208674526624 ⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  0 ⎥  ⎢31⎥  ⎢      -1.0       ⎥  ⎢      -32.0      ⎥⎟
    ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
 1.0⎦  ⎣32⎦  ⎣      32.0       ⎦  ⎣      -1.0       ⎦⎠

In [2]: 
In [2]: test(10,2)
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6)], [(7, 7)], [(8, 8)], []]
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6)], [(7, 7)], [(8, 8)], [(9, 9)]]
Out[2]: 
⎛⎡1.41421356237         0          0         0          0    0    0    0    0 
⎜⎢                                                                            
⎜⎢0.707106781187  1.22474487139    0         0          0    0    0    0    0 
⎜⎢                                                                            
⎜⎢0.707106781187  1.22474487139   1.0        0          0    0    0    0    0 
⎜⎢                                                                            
⎜⎢      0         0.816496580928  1.0  1.15470053838    0    0    0    0    0 
⎜⎢                                                                            
⎜⎢      0               0          0   0.866025403784  0.5   0    0    0    0 
⎜⎢                                                                            
⎜⎢      0               0          0         0          0   1.0   0    0    0 
⎜⎢                                                                            
⎜⎢      0               0          0         0          0   1.0  1.0   0    0 
⎜⎢                                                                            
⎜⎢      0               0          0         0          0    0    0   1.0   0 
⎜⎢                                                                            
⎜⎢      0               0          0         0          0    0    0    0   1.0
⎜⎢                                                                            
⎝⎣      0               0          0         0          0    0    0    0    0 

   0 ⎤, ⎡26⎤, ⎡-38.2314467095627⎤, ⎡-80.0674304458078⎤⎞
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢58⎥  ⎢-13.5810204797008⎥  ⎢-101.667000403682⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢28⎥  ⎢126.813466520527 ⎥  ⎢55.1464661168451 ⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢21⎥  ⎢-98.8134665205267⎥  ⎢-19.3753532570308⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢78⎥  ⎢      156.0      ⎥  ⎢-85.5749722427792⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢13⎥  ⎢      -6.0       ⎥  ⎢      -19.0      ⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢19⎥  ⎢      19.0       ⎥  ⎢      -6.0       ⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢42⎥  ⎢      42.0       ⎥  ⎢        0        ⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
   0 ⎥  ⎢84⎥  ⎢      84.0       ⎥  ⎢        0        ⎥⎟
     ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                 ⎥⎟
  1.0⎦  ⎣70⎦  ⎣      70.0       ⎦  ⎣        0        ⎦⎠

In [3]: exit()
Do you really want to exit ([y]/n)? y
Exiting ...
Mac:sympy sherjilozair$ bin/isympy
Leopard libedit detected.
IPython console for SymPy 0.6.7-git (Python 2.7.1) (ground types: python)

These commands were executed:
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> from line_profiler import LineProfiler as LP

Documentation can be found at http://www.sympy.org

In [1]: test(10,2)
[[(0, 0), (0, 1)], [(1, 1), (1, 2)], [(2, 2)], [(3, 3)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8), (7, 9)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1)], [(1, 1), (1, 2)], [(2, 2)], [(3, 3)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8), (7, 9)], [(8, 8), (8, 9)], [(9, 9)]]
Out[1]: 
⎛⎡1.41421356237  0.707106781187        0          0    0    0         0              0               0               0       ⎤, ⎡21⎤, ⎡57.7012332833643 ⎤, ⎡         0          ⎤⎞
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0        1.22474487139   0.816496580928   0    0    0         0              0               0               0       ⎥  ⎢11⎥  ⎢-85.7039817568937⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0              0         0.57735026919    0    0    0         0              0               0               0       ⎥  ⎢82⎥  ⎢142.028166220648 ⎥  ⎢-1.4210854715202e-14⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0              0               0         1.0   0    0         0              0               0               0       ⎥  ⎢93⎥  ⎢      93.0       ⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0              0               0          0   1.0   0         0              0               0               0       ⎥  ⎢36⎥  ⎢      36.0       ⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0              0               0          0    0   1.0       1.0             0               0               0       ⎥  ⎢60⎥  ⎢-26.1573611671676⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0              0               0          0    0    0   1.41421356237  0.707106781187  0.707106781187        0       ⎥  ⎢99⎥  ⎢86.1573611671676 ⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0              0               0          0    0    0         0        1.22474487139   1.22474487139   0.816496580928⎥  ⎢17⎥  ⎢-25.0255473566437⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢      0              0               0          0    0    0         0              0              1.0             1.0      ⎥  ⎢62⎥  ⎢-7.28203230275507⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                           ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎝⎣      0              0               0          0    0    0         0              0               0         0.57735026919 ⎦  ⎣40⎦  ⎣69.2820323027551 ⎦  ⎣         0          ⎦⎠

In [2]: test(10,2)
[[(0, 0), (0, 1)], [(1, 1)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1)], [(1, 1)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], [(9, 9)]]
Out[2]: 
⎛⎡1.0  1.0   0         0              0               0              0               0               0          0 ⎤, ⎡51⎤, ⎡      -5.0       ⎤, ⎡         0         ⎤⎞
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0   1.0   0         0              0               0              0               0               0          0 ⎥  ⎢56⎥  ⎢      56.0       ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0   1.0       1.0             0               0              0               0               0          0 ⎥  ⎢59⎥  ⎢102.133513652379 ⎥  ⎢-7.105427357601e-15⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0   1.41421356237  0.707106781187        0              0               0               0          0 ⎥  ⎢16⎥  ⎢-43.1335136523794⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0         0        0.707106781187        0              0               0               0          0 ⎥  ⎢77⎥  ⎢108.894444302728 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0         0              0         1.41421356237  0.707106781187        0               0          0 ⎥  ⎢93⎥  ⎢70.3847107013467 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0         0              0               0        1.22474487139   0.816496580928  0.816496580928   0 ⎥  ⎢41⎥  ⎢-9.24756010199555⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0         0              0               0              0         0.57735026919   0.57735026919    0 ⎥  ⎢37⎥  ⎢52.0858798800485 ⎥  ⎢-7.105427357601e-15⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0         0              0               0              0               0              1.0        1.0⎥  ⎢34⎥  ⎢      12.0       ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎝⎣ 0    0    0         0              0               0              0               0               0         1.0⎦  ⎣22⎦  ⎣      22.0       ⎦  ⎣         0         ⎦⎠

In [3]: test(10,2)
[[(0, 0)], [(1, 1), (1, 2)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5), (5, 6)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], []]
[[(0, 0)], [(1, 1), (1, 2)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5), (5, 6)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], [(9, 9)]]
Out[3]: 
⎛⎡1.0   0    0    0    0    0         0              0              0               0       ⎤, ⎡3 ⎤, ⎡       3.0       ⎤, ⎡         0         ⎤⎞
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0   1.0  1.0   0    0    0         0              0              0               0       ⎥  ⎢80⎥  ⎢110.085347938571 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0   1.0  1.0   0    0         0              0              0               0       ⎥  ⎢76⎥  ⎢-30.0853479385711⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0   1.0  1.0   0         0              0              0               0       ⎥  ⎢56⎥  ⎢106.085347938571 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0    0   1.0  1.0        0              0              0               0       ⎥  ⎢55⎥  ⎢-50.0853479385711⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0    0    0   1.0       1.0             0              0               0       ⎥  ⎢37⎥  ⎢105.085347938571 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0    0    0    0   1.41421356237  1.41421356237  0.707106781187        0       ⎥  ⎢44⎥  ⎢-68.0853479385711⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0    0    0    0         0             1.0            1.0              0       ⎥  ⎢76⎥  ⎢122.396092621558 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0    0    0    0    0    0         0              0        1.22474487139   0.816496580928⎥  ⎢45⎥  ⎢-46.3960926215585⎥  ⎢-7.105427357601e-15⎥⎟
⎜⎢                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎝⎣ 0    0    0    0    0    0         0              0              0         0.57735026919 ⎦  ⎣72⎦  ⎣124.707658144959 ⎦  ⎣         0         ⎦⎠

In [4]: test(10,2)
[[(0, 0), (0, 1)], [(1, 1)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5), (5, 6), (5, 7)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8)], []]
[[(0, 0), (0, 1)], [(1, 1)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5), (5, 6), (5, 7)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8)], [(9, 9)]]
Out[4]: 
⎛⎡1.41421356237  0.707106781187   0    0    0         0              0               0               0          0 ⎤, ⎡19⎤, ⎡-50.9116882454314⎤, ⎡0⎤⎞
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0        0.707106781187   0    0    0         0              0               0               0          0 ⎥  ⎢91⎥  ⎢128.693434175952 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0              0         1.0  1.0   0         0              0               0               0          0 ⎥  ⎢84⎥  ⎢14.5474939548301 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0              0          0   1.0  1.0        0              0               0               0          0 ⎥  ⎢89⎥  ⎢69.4525060451699 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0              0          0    0   1.0       1.0             0               0               0          0 ⎥  ⎢72⎥  ⎢19.5474939548301 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0              0          0    0    0   1.41421356237  0.707106781187  0.707106781187        0          0 ⎥  ⎢66⎥  ⎢52.4525060451699 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0              0          0    0    0         0        1.22474487139   1.22474487139   0.816496580928   0 ⎥  ⎢82⎥  ⎢31.2125379409681 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0              0          0    0    0         0              0              1.0             1.0         0 ⎥  ⎢75⎥  ⎢-42.7794549146836⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢      0              0          0    0    0         0              0               0         0.57735026919    0 ⎥  ⎢68⎥  ⎢117.779454914684 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎝⎣      0              0          0    0    0         0              0               0               0         1.0⎦  ⎣4 ⎦  ⎣       4.0       ⎦  ⎣0⎦⎠

In [5]: test(10,2)
[[(0, 0), (0, 1)], [(1, 1), (1, 2)], [(2, 2)], [(3, 3), (3, 4), (3, 5)], [(4, 4), (4, 5), (4, 6)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7), (7, 8), (7, 9)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1)], [(1, 1), (1, 2)], [(2, 2)], [(3, 3), (3, 4), (3, 5)], [(4, 4), (4, 5), (4, 6)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7), (7, 8), (7, 9)], [(8, 8), (8, 9)], [(9, 9)]]
Out[5]: 
⎛⎡1.0       1.0             0               0              0              0                 0                0              0               0       ⎤, ⎡16⎤, ⎡32.9705627484771 ⎤, ⎡         0         ⎤⎞
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0   1.41421356237  0.707106781187        0              0              0                 0                0              0               0       ⎥  ⎢14⎥  ⎢-16.9705627484771⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0         0        0.707106781187        0              0              0                 0                0              0               0       ⎥  ⎢38⎥  ⎢53.7401153701776 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0         0              0         1.41421356237  1.41421356237  0.707106781187          0                0              0               0       ⎥  ⎢89⎥  ⎢142.379725676967 ⎥  ⎢1.4210854715202e-14⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0         0              0               0             1.0            1.0               1.0               0              0               0       ⎥  ⎢1 ⎥  ⎢-143.086832458153⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0         0              0               0              0        0.707106781187  3.14018491737e-16        0              0               0       ⎥  ⎢90⎥  ⎢127.279220613579 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0         0              0               0              0              0                1.0              1.0             0               0       ⎥  ⎢26⎥  ⎢16.8076118445749 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0         0              0               0              0              0                 0          1.41421356237  0.707106781187  0.707106781187⎥  ⎢80⎥  ⎢9.19238815542512 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎜⎢ 0         0              0               0              0              0                 0                0        0.707106781187  0.707106781187⎥  ⎢67⎥  ⎢62.7523086789974 ⎥  ⎢         0         ⎥⎟
⎜⎢                                                                                                                                                  ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                   ⎥⎟
⎝⎣ 0         0              0               0              0              0                 0                0              0              1.0      ⎦  ⎣32⎦  ⎣      32.0       ⎦  ⎣         0         ⎦⎠

In [6]: test(10,2)
[[(0, 0), (0, 1)], [(1, 1), (1, 2)], [(2, 2), (2, 3)], [(3, 3), (3, 4), (3, 5)], [(4, 4), (4, 5)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1)], [(1, 1), (1, 2)], [(2, 2), (2, 3)], [(3, 3), (3, 4), (3, 5)], [(4, 4), (4, 5)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7)], [(8, 8), (8, 9)], [(9, 9)]]
Out[6]: 
⎛⎡1.0  1.0        0              0               0               0               0               0          0    0 ⎤, ⎡94⎤, ⎡63.9011676327696 ⎤, ⎡         0          ⎤⎞
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0   1.0       1.0             0               0               0               0               0          0    0 ⎥  ⎢38⎥  ⎢30.0988323672304 ⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0    0   1.41421356237  0.707106781187        0               0               0               0          0    0 ⎥  ⎢36⎥  ⎢7.90116763276961 ⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0    0         0        1.22474487139   0.816496580928  0.816496580928        0               0          0    0 ⎥  ⎢43⎥  ⎢35.1093529798922 ⎥  ⎢ 7.105427357601e-15 ⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0    0         0              0         0.57735026919   0.57735026919         0               0          0    0 ⎥  ⎢0 ⎥  ⎢-84.6339766375866⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0    0         0              0               0         1.41421356237   0.707106781187        0          0    0 ⎥  ⎢91⎥  ⎢84.6339766375866 ⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0    0         0              0               0               0         1.22474487139   0.816496580928   0    0 ⎥  ⎢79⎥  ⎢-40.5745190992216⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0    0         0              0               0               0               0         0.57735026919    0    0 ⎥  ⎢91⎥  ⎢157.616623488768 ⎥  ⎢-1.4210854715202e-14⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎜⎢ 0    0         0              0               0               0               0               0         1.0  1.0⎥  ⎢89⎥  ⎢      68.0       ⎥  ⎢         0          ⎥⎟
⎜⎢                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                    ⎥⎟
⎝⎣ 0    0         0              0               0               0               0               0          0   1.0⎦  ⎣21⎦  ⎣      21.0       ⎦  ⎣         0          ⎦⎠

In [7]: test(10,2)
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2)], [(2, 2)], [(3, 3), (3, 4), (3, 5)], [(4, 4), (4, 5)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2)], [(2, 2)], [(3, 3), (3, 4), (3, 5)], [(4, 4), (4, 5)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], [(9, 9)]]
Out[7]: 
⎛⎡1.41421356237  0.707106781187  0.707106781187        0              0              0               0               0               0              0       ⎤, ⎡47⎤, ⎡9.89949493661167 ⎤, ⎡         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0        0.707106781187  0.707106781187        0              0              0               0               0               0              0       ⎥  ⎢33⎥  ⎢1.66904755831213 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0              1.0              0              0              0               0               0               0              0       ⎥  ⎢45⎥  ⎢      45.0       ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0               0         1.41421356237  1.41421356237  0.707106781187        0               0               0              0       ⎥  ⎢30⎥  ⎢-63.9590351084259⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0               0               0             1.0            1.0              0               0               0              0       ⎥  ⎢77⎥  ⎢93.3444770880447 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0               0               0              0        1.22474487139   0.816496580928        0               0              0       ⎥  ⎢37⎥  ⎢-16.3444770880447⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0               0               0              0              0         1.15470053838   0.866025403784        0              0       ⎥  ⎢99⎥  ⎢69.8322758735559 ⎥  ⎢1.42108547152
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0               0               0              0              0               0         1.11803398875    0.894427191         0       ⎥  ⎢59⎥  ⎢21.2056521348048 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0               0               0              0              0               0               0         1.09544511501  0.912870929175⎥  ⎢79⎥  ⎢39.4569401677378 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎝⎣      0              0               0               0              0              0               0               0               0        0.408248290464⎦  ⎣16⎦  ⎣39.1918358845308 ⎦  ⎣         0   

      ⎤⎞
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
02e-14⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎦⎠

In [8]: test(10,2)
[[(0, 0)], [(1, 1)], [(2, 2)], [(3, 3)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7)], [(8, 8), (8, 9)], []]
[[(0, 0)], [(1, 1)], [(2, 2)], [(3, 3)], [(4, 4)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7)], [(8, 8), (8, 9)], [(9, 9)]]
Out[8]: 
⎛⎡1.0   0    0    0    0    0         0              0          0    0 ⎤, ⎡69⎤, ⎡      69.0      ⎤, ⎡0⎤⎞
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0   1.0   0    0    0    0         0              0          0    0 ⎥  ⎢42⎥  ⎢      42.0      ⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0    0   1.0   0    0    0         0              0          0    0 ⎥  ⎢53⎥  ⎢      53.0      ⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0    0    0   1.0   0    0         0              0          0    0 ⎥  ⎢74⎥  ⎢      74.0      ⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0    0    0    0   1.0   0         0              0          0    0 ⎥  ⎢72⎥  ⎢      72.0      ⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0    0    0    0    0   1.0       1.0             0          0    0 ⎥  ⎢93⎥  ⎢78.857864376269 ⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0    0    0    0    0    0   1.41421356237  0.707106781187   0    0 ⎥  ⎢60⎥  ⎢14.142135623731 ⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0    0    0    0    0    0         0        0.707106781187   0    0 ⎥  ⎢40⎥  ⎢56.5685424949238⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎜⎢ 0    0    0    0    0    0         0              0         1.0  1.0⎥  ⎢47⎥  ⎢      41.0      ⎥  ⎢0⎥⎟
⎜⎢                                                                     ⎥  ⎢  ⎥  ⎢                ⎥  ⎢ ⎥⎟
⎝⎣ 0    0    0    0    0    0         0              0          0   1.0⎦  ⎣6 ⎦  ⎣      6.0       ⎦  ⎣0⎦⎠

In [9]: test(10,2)
[[(0, 0)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5), (4, 6)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], []]
[[(0, 0)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5), (4, 6)], [(5, 5), (5, 6)], [(6, 6), (6, 7)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], [(9, 9)]]
Out[9]: 
⎛⎡1.0        0              0               0               0               0               0               0              0               0       ⎤, ⎡55⎤, ⎡      55.0       ⎤, ⎡          0          ⎤
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0   1.41421356237  0.707106781187  0.707106781187        0               0               0               0              0               0       ⎥  ⎢31⎥  ⎢2.12132034355965 ⎥  ⎢ 3.5527136788005e-15 ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0         0        0.707106781187  0.707106781187        0               0               0               0              0               0       ⎥  ⎢28⎥  ⎢-25.9821500713158⎥  ⎢          0          ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0         0              0         1.41421356237   0.707106781187        0               0               0              0               0       ⎥  ⎢61⎥  ⎢65.5801298177625 ⎥  ⎢          0          ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0         0              0               0         1.22474487139   0.816496580928  0.816496580928        0              0               0       ⎥  ⎢3 ⎥  ⎢-44.8932323307662⎥  ⎢          0          ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0         0              0               0               0         0.57735026919   0.57735026919         0              0               0       ⎥  ⎢41⎥  ⎢23.5949469498016 ⎥  ⎢          0          ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0         0              0               0               0               0              1.0             1.0             0               0       ⎥  ⎢82⎥  ⎢47.4191361605224 ⎥  ⎢          0          ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0         0              0               0               0               0               0         1.41421356237  0.707106781187        0       ⎥  ⎢84⎥  ⎢34.5808638394776 ⎥  ⎢          0          ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎜⎢ 0         0              0               0               0               0               0               0        1.22474487139   0.816496580928⎥  ⎢82⎥  ⎢49.6322115603848 ⎥  ⎢          0          ⎥
⎜⎢                                                                                                                                                 ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢                     ⎥
⎝⎣ 0         0              0               0               0               0               0               0              0         0.57735026919 ⎦  ⎣15⎦  ⎣25.9807621135332 ⎦  ⎣-1.77635683940025e-15⎦

⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠

In [10]: test(10,2)
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5), (5, 6), (5, 7)], [(6, 6), (6, 7)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5), (5, 6), (5, 7)], [(6, 6), (6, 7)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], [(9, 9)]]
Out[10]: 
⎛⎡1.41421356237  1.41421356237  0.707106781187        0               0               0              0               0               0              0       ⎤, ⎡23⎤, ⎡34.7405270082535 ⎤, ⎡3.55271367880
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0             1.0            1.0             1.0              0               0              0               0               0              0       ⎥  ⎢35⎥  ⎢-34.604606019187 ⎥  ⎢7.10542735760
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0        1.22474487139   0.816496580928        0               0              0               0               0              0       ⎥  ⎢70⎥  ⎢32.2550699564483 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0              0         1.15470053838   0.866025403784        0              0               0               0              0       ⎥  ⎢14⎥  ⎢37.3495360627387 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0              0               0         1.11803398875    0.894427191         0               0               0              0       ⎥  ⎢28⎥  ⎢-33.6335738796755⎥  ⎢-7.1054273576
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0              0               0               0         1.09544511501  0.912870929175  0.912870929175        0              0       ⎥  ⎢96⎥  ⎢73.3469190345914 ⎥  ⎢2.84217094304
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0              0               0               0               0        0.408248290464  0.408248290464        0              0       ⎥  ⎢7 ⎥  ⎢-14.7322514569581⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0              0               0               0               0              0              1.0             1.0             0       ⎥  ⎢34⎥  ⎢31.8786796564403 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎜⎢      0              0              0               0               0               0              0               0         1.41421356237  0.707106781187⎥  ⎢76⎥  ⎢2.12132034355965 ⎥  ⎢         0   
⎜⎢                                                                                                                                                          ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢             
⎝⎣      0              0              0               0               0               0              0               0               0        0.707106781187⎦  ⎣73⎦  ⎣103.237590053236 ⎦  ⎣         0   

05e-15⎤⎞
      ⎥⎟
1e-15 ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
01e-15⎥⎟
      ⎥⎟
04e-14⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎥⎟
      ⎦⎠

In [11]: test(10,2)
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], []]
[[(0, 0), (0, 1), (0, 2)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8), (8, 9)], [(9, 9)]]
Out[11]: 
⎛⎡1.41421356237  1.41421356237  0.707106781187        0               0              0              0              0              0               0       ⎤, ⎡29⎤, ⎡35.7420981475157 ⎤, ⎡         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0             1.0            1.0             1.0              0              0              0              0              0               0       ⎥  ⎢57⎥  ⎢-21.9840712452585⎥  ⎢         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0              0        1.22474487139   0.816496580928        0              0              0              0              0               0       ⎥  ⎢70⎥  ⎢13.4961395043054 ⎥  ⎢         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0              0              0         1.15470053838   0.866025403784       0              0              0              0               0       ⎥  ⎢64⎥  ⎢65.4879317409531 ⎥  ⎢         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0              0              0               0         1.11803398875   0.894427191         0              0              0               0       ⎥  ⎢83⎥  ⎢-13.4164078649987⎥  ⎢         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0              0              0               0               0         0.4472135955        0              0              0               0       ⎥  ⎢49⎥  ⎢ 109.56733089749 ⎥  ⎢ 7.105427357601
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0              0              0               0               0              0        1.41421356237  1.41421356237  0.707106781187        0       ⎥  ⎢46⎥  ⎢-1.08218726341437⎥  ⎢         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0              0              0               0               0              0              0             1.0            1.0              0       ⎥  ⎢7 ⎥  ⎢60.2181983959911 ⎥  ⎢         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎜⎢      0              0              0               0               0              0              0              0        1.22474487139   0.816496580928⎥  ⎢72⎥  ⎢-53.2181983959912⎥  ⎢         0     
⎜⎢                                                                                                                                                        ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢               
⎝⎣      0              0              0               0               0              0              0              0              0         0.57735026919 ⎦  ⎣97⎦  ⎣168.008928334181 ⎦  ⎣-1.421085471520

     ⎤⎞
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
e-15 ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
     ⎥⎟
2e-14⎦⎠

In [12]: test(10,2)
[[(0, 0)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8)], []]
[[(0, 0)], [(1, 1), (1, 2), (1, 3)], [(2, 2), (2, 3)], [(3, 3), (3, 4)], [(4, 4), (4, 5)], [(5, 5)], [(6, 6), (6, 7), (6, 8)], [(7, 7), (7, 8)], [(8, 8)], [(9, 9)]]
Out[12]: 
⎛⎡1.0        0              0               0               0               0               0              0               0          0 ⎤, ⎡14⎤, ⎡      14.0       ⎤, ⎡0⎤⎞
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0   1.41421356237  0.707106781187  0.707106781187        0               0               0              0               0          0 ⎥  ⎢70⎥  ⎢-7.07106781186547⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0         0        0.707106781187  0.707106781187        0               0               0              0               0          0 ⎥  ⎢80⎥  ⎢90.9530766177731 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0         0              0         1.41421356237   0.707106781187        0               0              0               0          0 ⎥  ⎢20⎥  ⎢22.1840083720745 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0         0              0               0         1.22474487139   0.816496580928        0              0               0          0 ⎥  ⎢10⎥  ⎢-16.083745496687 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0         0              0               0               0         0.57735026919         0              0               0          0 ⎥  ⎢21⎥  ⎢36.3730669589464 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0         0              0               0               0               0         1.41421356237  0.707106781187  0.707106781187   0 ⎥  ⎢85⎥  ⎢-7.07106781186546⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0         0              0               0               0               0               0        0.707106781187  0.707106781187   0 ⎥  ⎢95⎥  ⎢ 89.350288425444 ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎜⎢ 0         0              0               0               0               0               0              0              1.0         0 ⎥  ⎢45⎥  ⎢      45.0       ⎥  ⎢0⎥⎟
⎜⎢                                                                                                                                      ⎥  ⎢  ⎥  ⎢                 ⎥  ⎢ ⎥⎟
⎝⎣ 0         0              0               0               0               0               0              0               0         1.0⎦  ⎣83⎦  ⎣      83.0       ⎦  ⎣0⎦⎠

In [13]: %timeit sum(i**2 for i in xrange(100))
100000 loops, best of 3: 12.4 us per loop

In [14]: a = [Integer(i) for i in xrange(100)]

In [15]: %timeit sum(i**2 for i in a)
1000 loops, best of 3: 1.43 ms per loop

In [16]: import gmpy
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)

/Users/sherjilozair/sympy/<ipython console> in <module>()

ImportError: No module named gmpy

In [17]: exit()
Do you really want to exit ([y]/n)? y
Exiting ...
Mac:sympy sherjilozair$ cd ~/Downloads/gmpy
gmpy/                 gmpy-1.14/            gmpy-1.14.zip         gmpy-sources-101.zip  
Mac:sympy sherjilozair$ cd ~/Downloads/gmpy-1.14
Mac:gmpy-1.14 sherjilozair$ ls
PKG-INFO		changes.txt		lgpl-2.1.txt		mutable_mpz.txt		setup.py		test			win_x64_sdk_build.txt
README			doc			mac_build.txt		setes.py		src			test3			windows_build.txt
Mac:gmpy-1.14 sherjilozair$ python setup.py install
running install
running build
running build_ext
building 'gmpy' extension
creating build
creating build/temp.macosx-10.6-intel-2.7
creating build/temp.macosx-10.6-intel-2.7/src
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I./src -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/gmpy.c -o build/temp.macosx-10.6-intel-2.7/src/gmpy.o
creating build/lib.macosx-10.6-intel-2.7
gcc-4.2 -arch i386 -arch x86_64 -isysroot / -g -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -isysroot / -g build/temp.macosx-10.6-intel-2.7/src/gmpy.o -L/usr/local/lib -lgmp -o build/lib.macosx-10.6-intel-2.7/gmpy.so
ld: warning: in /usr/local/lib/libgmp.dylib, file is not of required architecture
running install_lib
copying build/lib.macosx-10.6-intel-2.7/gmpy.so -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
running install_egg_info
Writing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gmpy-1.14-py2.7.egg-info
Mac:gmpy-1.14 sherjilozair$ cd ~
Mac:~ sherjilozair$ cd sympy
Mac:sympy sherjilozair$ bin/isympy
Segmentation fault
Mac:sympy sherjilozair$ bin/isympy
Segmentation fault
Mac:sympy sherjilozair$ cd ~/Downloads/
Mac:Downloads sherjilozair$ cd gmpy2-2.0.0a1
Mac:gmpy2-2.0.0a1 sherjilozair$ ls
PKG-INFO		build.vc10		changes.txt		lgpl-2.1.txt		setup.py		test			win_x64_sdk_build.txt
README			build.vc9		doc			mac_build.txt		src			test3			windows_build.txt
Mac:gmpy2-2.0.0a1 sherjilozair$ sudo python setup.py install
Password:
running install
running build
running build_ext
building 'gmpy2' extension
creating build
creating build/temp.macosx-10.6-intel-2.7
creating build/temp.macosx-10.6-intel-2.7/src
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I./src -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/gmpy2.c -o build/temp.macosx-10.6-intel-2.7/src/gmpy2.o
src/gmpy2.c:313: error: ‘MPFR_RNDN’ undeclared here (not in a function)
src/gmpy2.c: In function ‘Pympf2Pympz’:
src/gmpy2.c:952: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2Pyxmpz’:
src/gmpy2.c:974: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2binary’:
src/gmpy2.c:1782: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:1782: error: (Each undeclared identifier is reported only once
src/gmpy2.c:1782: error: for each function it appears in.)
src/gmpy2.c:1782: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:1806: error: ‘the_exp’ undeclared (first use in this function)
src/gmpy2.c: In function ‘Pympf_ascii’:
src/gmpy2.c:2197: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:2197: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:2265: error: ‘the_exp’ undeclared (first use in this function)
In file included from src/gmpy2.c:3391:
src/gmpy_misc.c: In function ‘Pygmpy_set_rounding’:
src/gmpy_misc.c:516: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy_misc.c:518: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy_misc.c:520: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_misc.c:522: error: ‘MPFR_RNDA’ undeclared (first use in this function)
In file included from src/gmpy2.c:3397:
src/gmpy_basic.c: In function ‘Pympany_floordiv’:
src/gmpy_basic.c:741: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_rem’:
src/gmpy_basic.c:1346: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_divmod’:
src/gmpy_basic.c:1573: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c: In function ‘initgmpy2’:
src/gmpy2.c:4625: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy2.c:4626: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy2.c:4627: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c:4628: error: ‘MPFR_RNDA’ undeclared (first use in this function)
src/gmpy2.c:313: error: ‘MPFR_RNDN’ undeclared here (not in a function)
src/gmpy2.c: In function ‘Pympf2Pympz’:
src/gmpy2.c:952: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2Pyxmpz’:
src/gmpy2.c:974: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2binary’:
src/gmpy2.c:1782: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:1782: error: (Each undeclared identifier is reported only once
src/gmpy2.c:1782: error: for each function it appears in.)
src/gmpy2.c:1782: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:1806: error: ‘the_exp’ undeclared (first use in this function)
src/gmpy2.c: In function ‘Pympf_ascii’:
src/gmpy2.c:2197: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:2197: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:2265: error: ‘the_exp’ undeclared (first use in this function)
In file included from src/gmpy2.c:3391:
src/gmpy_misc.c: In function ‘Pygmpy_set_rounding’:
src/gmpy_misc.c:516: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy_misc.c:518: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy_misc.c:520: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_misc.c:522: error: ‘MPFR_RNDA’ undeclared (first use in this function)
In file included from src/gmpy2.c:3397:
src/gmpy_basic.c: In function ‘Pympany_floordiv’:
src/gmpy_basic.c:741: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_rem’:
src/gmpy_basic.c:1346: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_divmod’:
src/gmpy_basic.c:1573: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c: In function ‘initgmpy2’:
src/gmpy2.c:4625: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy2.c:4626: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy2.c:4627: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c:4628: error: ‘MPFR_RNDA’ undeclared (first use in this function)
lipo: can't figure out the architecture type of: /var/tmp//cc3l5W2L.out
error: command 'gcc-4.2' failed with exit status 1
Mac:gmpy2-2.0.0a1 sherjilozair$ sudo python setup.py install
running install
running build
running build_ext
building 'gmpy2' extension
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I./src -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/gmpy2.c -o build/temp.macosx-10.6-intel-2.7/src/gmpy2.o
src/gmpy2.c:313: error: ‘MPFR_RNDN’ undeclared here (not in a function)
src/gmpy2.c: In function ‘Pympf2Pympz’:
src/gmpy2.c:952: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2Pyxmpz’:
src/gmpy2.c:974: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2binary’:
src/gmpy2.c:1782: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:1782: error: (Each undeclared identifier is reported only once
src/gmpy2.c:1782: error: for each function it appears in.)
src/gmpy2.c:1782: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:1806: error: ‘the_exp’ undeclared (first use in this function)
src/gmpy2.c: In function ‘Pympf_ascii’:
src/gmpy2.c:2197: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:2197: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:2265: error: ‘the_exp’ undeclared (first use in this function)
In file included from src/gmpy2.c:3391:
src/gmpy_misc.c: In function ‘Pygmpy_set_rounding’:
src/gmpy_misc.c:516: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy_misc.c:518: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy_misc.c:520: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_misc.c:522: error: ‘MPFR_RNDA’ undeclared (first use in this function)
In file included from src/gmpy2.c:3397:
src/gmpy_basic.c: In function ‘Pympany_floordiv’:
src/gmpy_basic.c:741: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_rem’:
src/gmpy_basic.c:1346: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_divmod’:
src/gmpy_basic.c:1573: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c: In function ‘initgmpy2’:
src/gmpy2.c:4625: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy2.c:4626: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy2.c:4627: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c:4628: error: ‘MPFR_RNDA’ undeclared (first use in this function)
src/gmpy2.c:313: error: ‘MPFR_RNDN’ undeclared here (not in a function)
src/gmpy2.c: In function ‘Pympf2Pympz’:
src/gmpy2.c:952: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2Pyxmpz’:
src/gmpy2.c:974: error: void value not ignored as it ought to be
src/gmpy2.c: In function ‘Pympf2binary’:
src/gmpy2.c:1782: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:1782: error: (Each undeclared identifier is reported only once
src/gmpy2.c:1782: error: for each function it appears in.)
src/gmpy2.c:1782: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:1806: error: ‘the_exp’ undeclared (first use in this function)
src/gmpy2.c: In function ‘Pympf_ascii’:
src/gmpy2.c:2197: error: ‘mpfr_exp_t’ undeclared (first use in this function)
src/gmpy2.c:2197: error: expected ‘;’ before ‘the_exp’
src/gmpy2.c:2265: error: ‘the_exp’ undeclared (first use in this function)
In file included from src/gmpy2.c:3391:
src/gmpy_misc.c: In function ‘Pygmpy_set_rounding’:
src/gmpy_misc.c:516: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy_misc.c:518: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy_misc.c:520: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_misc.c:522: error: ‘MPFR_RNDA’ undeclared (first use in this function)
In file included from src/gmpy2.c:3397:
src/gmpy_basic.c: In function ‘Pympany_floordiv’:
src/gmpy_basic.c:741: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_rem’:
src/gmpy_basic.c:1346: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy_basic.c: In function ‘Pympany_divmod’:
src/gmpy_basic.c:1573: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c: In function ‘initgmpy2’:
src/gmpy2.c:4625: error: ‘MPFR_RNDZ’ undeclared (first use in this function)
src/gmpy2.c:4626: error: ‘MPFR_RNDU’ undeclared (first use in this function)
src/gmpy2.c:4627: error: ‘MPFR_RNDD’ undeclared (first use in this function)
src/gmpy2.c:4628: error: ‘MPFR_RNDA’ undeclared (first use in this function)
lipo: can't figure out the architecture type of: /var/tmp//ccUN0ax0.out
error: command 'gcc-4.2' failed with exit status 1
Mac:gmpy2-2.0.0a1 sherjilozair$ ~/sympy/bin/isympy
Segmentation fault
Mac:gmpy2-2.0.0a1 sherjilozair$ cd ..
Mac:Downloads sherjilozair$ cd gmpy
gmpy/                 gmpy-1.14/            gmpy-1.14 (1).zip     gmpy-1.14 2/          gmpy-1.14.zip         gmpy-sources-101.zip  gmpy2-2.0.0a1/        gmpy2-2.0.0a1.zip     
Mac:Downloads sherjilozair$ cd gmpy
gmpy/                 gmpy-1.14/            gmpy-1.14 (1).zip     gmpy-1.14 2/          gmpy-1.14.zip         gmpy-sources-101.zip  gmpy2-2.0.0a1/        gmpy2-2.0.0a1.zip     
Mac:Downloads sherjilozair$ cd gmpy-1.14
gmpy-1.14/         gmpy-1.14 (1).zip  gmpy-1.14 2/       gmpy-1.14.zip      
Mac:Downloads sherjilozair$ cd gmpy-1.14
gmpy-1.14/         gmpy-1.14 (1).zip  gmpy-1.14 2/       gmpy-1.14.zip      
Mac:Downloads sherjilozair$ cd gmpy-1.14
Mac:gmpy-1.14 sherjilozair$ ls
PKG-INFO		build			doc			mac_build.txt		setes.py		src			test3			windows_build.txt
README			changes.txt		lgpl-2.1.txt		mutable_mpz.txt		setup.py		test			win_x64_sdk_build.txt
Mac:gmpy-1.14 sherjilozair$ sudo python setup.py install
running install
running build
running build_ext
running install_lib
running install_egg_info
Removing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gmpy-1.14-py2.7.egg-info
Writing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gmpy-1.14-py2.7.egg-info
Mac:gmpy-1.14 sherjilozair$ ~/sympy/bin/isympy
Segmentation fault
Mac:gmpy-1.14 sherjilozair$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import gmpy
>>> gmpy.mpz(123)
mpz(123)
>>> exit()
Mac:gmpy-1.14 sherjilozair$ ipython
Leopard libedit detected.
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
Type "copyright", "credits" or "license" for more information.

IPython 0.10.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: exit()
Do you really want to exit ([y]/n)? y
Mac:gmpy-1.14 sherjilozair$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named sympy
>>> exit()
Mac:gmpy-1.14 sherjilozair$ cd ~/sympy
Mac:sympy sherjilozair$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import *
Segmentation fault
Mac:sympy sherjilozair$ 
Mac:sympy sherjilozair$ 
Mac:sympy sherjilozair$ 
Mac:sympy sherjilozair$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy.matrices import Matrix
Segmentation fault
Mac:sympy sherjilozair$ python
SherjilOzair | 1 Jun 11:11 2011
Picon

Re: Segmentation fault when importing sympy

Mac:sympy sherjilozair$ git checkout cholesky
Switched to branch 'cholesky'
Mac:sympy sherjilozair$ bin/isympy
Segmentation fault
Mac:sympy sherjilozair$ git diff
Mac:sympy sherjilozair$

I tried it with a non-experimental branch. It still doesn't work. That
means, the sympy code is fine.

>>> import gmpy
>>> int(gmpy.mpz(2**256))
115792089237316195423570985008687907853269984665640564039457584007913129639936L
>>> int(gmpy.mpz(2**512))
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096L
>>> import numpy
>>> import scipy
>>> import sympy
Segmentation fault
Mac:sympy sherjilozair$

numpy/scipy/gmpy work fine.

What are Sympy's dependencies ? There seems to be a problem with one
of the dependencies. My guess is Cython, but I don't know much about
Cython.

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe@...
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

SherjilOzair | 1 Jun 17:42 2011
Picon

Re: Segmentation fault when importing sympy

Issue resolved.

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe@...
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

Aaron Meurer | 2 Jun 01:48 2011
Picon

Re: Solving equations with exp

Are you sure that Sage code was running SymPy.  In isympy, I get:

>>> solve(exp(x)-exp(x**2),x)
NotImplementedError: Unable to solve the equation

Maybe Sage just returns the original equation when it can't do it (?)

Anyway, as Rajeev pointed out, to properly implement this in the
complex case, we need a way to represent an infinite number of
solutions parameterized by an integer (similar to solving sin(x) ==
0).

On the other hand, maybe solve should be able to tell that f(x) - f(y)
== 0 implies the solution x == y (but there may be more solutions
unless f is one-to-one).

Aaron Meurer

On Mon, May 30, 2011 at 10:54 AM, Christophe BAL <projetmbc@...> wrote:
> Hello,
> you're right.
>
> But it could be usefull to havethe cancellation in case of real equation.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To post to this group, send email to sympy@...
> To unsubscribe from this group, send email to
> sympy+unsubscribe@...
> For more options, visit this group at
> http://groups.google.com/group/sympy?hl=en.
>

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe@...
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

Aaron Meurer | 2 Jun 03:31 2011
Picon

Re: Re: A simple idea regarding groundtypes for Matrix

I think the key point that should be made here is that the matrices
should try to use the *exact* same ground types/domains as the polys,
so that there is no code duplication.  This will probably involve
improving and even changing a little bit the design of the polys
classes (but this is good, because it will make them more modular,
which is the goal anyway).

On Sun, May 29, 2011 at 3:44 PM, Mateusz Paprocki <mattpap@...> wrote:
> Hi,
>
> On 29 May 2011 23:10, Tom Bachmann <e_mc_h2@...> wrote:
>>>
>>> On May 30, 12:13 am, Tom Bachmann<e_mc...@...>  wrote:
>>>>
>>>> How is this at all different from what Polys does? I'm not saying it's
>>>> bad, I'm just not seeing your point. Basically what you call ground
>>>> types are called domains in polys, and they are in polys/domains ...
>>>
>>> I need usable types. For example, you mentioned that one usable type
>>> is DMF, and it is in poly/polyclasses.
>>> How many other such types exist and where ?
>>>
>>
>> DMF is already higher level. The things you should probably be looking at
>> are in polys/domains.
>
> Well, DMF is low-level. In domains you will find FractionField domain that
> uses DMF a ground type.
>
>>
>> There's a lot there, and it's a bit of a shame that there's not much
>> documentation.
>
> There isn't that much, but main ideas are described in my thesis (ch. 2). If
> more information is needed, I can always provide it (as long as a question
> is specific).

There would be more, as I wrote doctests for all those things back in
https://github.com/asmeurer/sympy/tree/polydocs.  But the domains code
was all moved to polys/domains and the API changed so much that I
never bothered to transfer the doctests.

If you need to know how a module works and there is no documentation,
writing doctests for all the functions/methods is a great way to fix
both problems.  This is how I learned how the polys in general worked
at the beginning of last summer (see the above linked branch).  In
this case, you could just work on transferring my doctests that were
never transferred.

Aaron Meurer

>
>>
>> I think construct_domain should somehow construct a domain that can hold
>> your data. If you need to divide, or take square roots, etc, you presumably
>> have to figure out what larger domain you need. There are probably functions
>> for this, but I don't know about them. Ask Mateusz about anything specific.
>>
>> As for ground types, they work roughly like this:
>>
>> >>> from sympy.polys.domains import FF
>>
>> This imports a constructor for finite fields. As I understand it, this
>> will automatically use gmpy or python types depending on what is available.
>>
>>
>> Construct a domain for arithmetic mod 5:
>> >>> F5 = FF(5)
>>
>> Do some arithmetic:
>> >>> F5(3) + F5(8)
>> 1 mod 5
>> >>> F5(3)/F5(2)
>> 4 mod 5
>>
>> Funny things can happen if you do division where you should not:
>> >>> from sympy.polys.domains import ZZ
>> >>> ZZ(2)/ZZ(3)
>> 0.666666666667
>>
>> But this works:
>> >>> Q = ZZ.get_field()
>> >>> Q(2)/Q(3)
>> 2/3
>
> Division in Python is tricky because there are / and //. The meaning of /
> can differ (2/3 can give either 0 or a float). If you want to make your code
> independent of this use quo(), rem(), div() methods of an appropriate
> domain, e.g.:
> In [1]: ZZ.quo(ZZ(2), ZZ(3))
> Out[1]: 0
> In [2]: ZZ.rem(ZZ(2), ZZ(3))
> Out[2]: 2
> In [3]: ZZ.div(ZZ(2), ZZ(3))
> Out[3]: (0, 2)
> Domains and ground types in polys work as follows: +, - (unary/binary) and *
> must be implemented in ground types and must solve zero equivalence problem.
> Division, gcd, lcm and other can be implemented in ground types but code
> using those ground types can't take advantage of them and must use
> domain.div(), domain.gcd(), domain.lcm() and so on.
> Using +, -, * in code directly makes the code fast. Division isn't very
> common so we can use a thin layer above / and //, and as division is
> generally a mess (e.g. extra qdiv() in gmpy), the extra layer in necessary
> to use single code for multiple ground types (here I'm not only speaking
> about handling numbers and polynomials in one code, but also different
> implementations of numbers (Integer, int, mpz, ...), because they have very
> different APIs).
>>
>> I suppose to see how to do this sort of stuff automatically, you have to
>> read polytools.py.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To post to this group, send email to sympy@...
>> To unsubscribe from this group, send email to
>> sympy+unsubscribe@...
>> For more options, visit this group at
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> Mateusz
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To post to this group, send email to sympy@...
> To unsubscribe from this group, send email to
> sympy+unsubscribe@...
> For more options, visit this group at
> http://groups.google.com/group/sympy?hl=en.
>

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.

Brian Granger | 2 Jun 04:09 2011
Picon

Re: Re: A simple idea regarding groundtypes for Matrix

Is there a link somewhere to documentation about the groundtypes in
polys?  I am interested why such things are needed?  It sort of sounds
like there are two semi-independent code bases living here...

On Wed, Jun 1, 2011 at 6:31 PM, Aaron Meurer <asmeurer@...> wrote:
> I think the key point that should be made here is that the matrices
> should try to use the *exact* same ground types/domains as the polys,
> so that there is no code duplication.  This will probably involve
> improving and even changing a little bit the design of the polys
> classes (but this is good, because it will make them more modular,
> which is the goal anyway).
>
> On Sun, May 29, 2011 at 3:44 PM, Mateusz Paprocki <mattpap@...> wrote:
>> Hi,
>>
>> On 29 May 2011 23:10, Tom Bachmann <e_mc_h2@...> wrote:
>>>>
>>>> On May 30, 12:13 am, Tom Bachmann<e_mc...@...>  wrote:
>>>>>
>>>>> How is this at all different from what Polys does? I'm not saying it's
>>>>> bad, I'm just not seeing your point. Basically what you call ground
>>>>> types are called domains in polys, and they are in polys/domains ...
>>>>
>>>> I need usable types. For example, you mentioned that one usable type
>>>> is DMF, and it is in poly/polyclasses.
>>>> How many other such types exist and where ?
>>>>
>>>
>>> DMF is already higher level. The things you should probably be looking at
>>> are in polys/domains.
>>
>> Well, DMF is low-level. In domains you will find FractionField domain that
>> uses DMF a ground type.
>>
>>>
>>> There's a lot there, and it's a bit of a shame that there's not much
>>> documentation.
>>
>> There isn't that much, but main ideas are described in my thesis (ch. 2). If
>> more information is needed, I can always provide it (as long as a question
>> is specific).
>
> There would be more, as I wrote doctests for all those things back in
> https://github.com/asmeurer/sympy/tree/polydocs.  But the domains code
> was all moved to polys/domains and the API changed so much that I
> never bothered to transfer the doctests.
>
> If you need to know how a module works and there is no documentation,
> writing doctests for all the functions/methods is a great way to fix
> both problems.  This is how I learned how the polys in general worked
> at the beginning of last summer (see the above linked branch).  In
> this case, you could just work on transferring my doctests that were
> never transferred.
>
> Aaron Meurer
>
>>
>>>
>>> I think construct_domain should somehow construct a domain that can hold
>>> your data. If you need to divide, or take square roots, etc, you presumably
>>> have to figure out what larger domain you need. There are probably functions
>>> for this, but I don't know about them. Ask Mateusz about anything specific.
>>>
>>> As for ground types, they work roughly like this:
>>>
>>> >>> from sympy.polys.domains import FF
>>>
>>> This imports a constructor for finite fields. As I understand it, this
>>> will automatically use gmpy or python types depending on what is available.
>>>
>>>
>>> Construct a domain for arithmetic mod 5:
>>> >>> F5 = FF(5)
>>>
>>> Do some arithmetic:
>>> >>> F5(3) + F5(8)
>>> 1 mod 5
>>> >>> F5(3)/F5(2)
>>> 4 mod 5
>>>
>>> Funny things can happen if you do division where you should not:
>>> >>> from sympy.polys.domains import ZZ
>>> >>> ZZ(2)/ZZ(3)
>>> 0.666666666667
>>>
>>> But this works:
>>> >>> Q = ZZ.get_field()
>>> >>> Q(2)/Q(3)
>>> 2/3
>>
>> Division in Python is tricky because there are / and //. The meaning of /
>> can differ (2/3 can give either 0 or a float). If you want to make your code
>> independent of this use quo(), rem(), div() methods of an appropriate
>> domain, e.g.:
>> In [1]: ZZ.quo(ZZ(2), ZZ(3))
>> Out[1]: 0
>> In [2]: ZZ.rem(ZZ(2), ZZ(3))
>> Out[2]: 2
>> In [3]: ZZ.div(ZZ(2), ZZ(3))
>> Out[3]: (0, 2)
>> Domains and ground types in polys work as follows: +, - (unary/binary) and *
>> must be implemented in ground types and must solve zero equivalence problem.
>> Division, gcd, lcm and other can be implemented in ground types but code
>> using those ground types can't take advantage of them and must use
>> domain.div(), domain.gcd(), domain.lcm() and so on.
>> Using +, -, * in code directly makes the code fast. Division isn't very
>> common so we can use a thin layer above / and //, and as division is
>> generally a mess (e.g. extra qdiv() in gmpy), the extra layer in necessary
>> to use single code for multiple ground types (here I'm not only speaking
>> about handling numbers and polynomials in one code, but also different
>> implementations of numbers (Integer, int, mpz, ...), because they have very
>> different APIs).
>>>
>>> I suppose to see how to do this sort of stuff automatically, you have to
>>> read polytools.py.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "sympy" group.
>>> To post to this group, send email to sympy@...
>>> To unsubscribe from this group, send email to
>>> sympy+unsubscribe@...
>>> For more options, visit this group at
>>> http://groups.google.com/group/sympy?hl=en.
>>>
>>
>> Mateusz
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To post to this group, send email to sympy@...
>> To unsubscribe from this group, send email to
>> sympy+unsubscribe@...
>> For more options, visit this group at
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups "sympy" group.
> To post to this group, send email to sympy@...
> To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
>
>

-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger@... and ellisonbg@...

--

-- 
You received this message because you are subscribed to the Google Groups "sympy" group.
To post to this group, send email to sympy@...
To unsubscribe from this group, send email to sympy+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sympy?hl=en.


Gmane