Sympy object pointer in CSymPy

```
In [1]: from csympy.lib.csympy_wrapper import *

In [2]: import sympy

In [3]: sympy.var("x y z w")

In [4]: a = Integer(1) + sympy.Ynm(x,y,z,w)

In [5]: type(a)
Out[5]: csympy.lib.csympy_wrapper.Add

In [6]: b = a.args[1]

In [7]: type(b)
Out[7]: csympy.lib.csympy_wrapper.SympyFunction

In [8]: c = b._sympy_()

In [9]: type(c)
Out[9]: sympy.functions.special.spherical_harmonics.Ynm
```
I was thinking that the user should also provide a function for releasing
the object (i.e. for things like x-x=0) and also for comparison (currently
we just compare the pointers). I think that would do for all use cases. And
in the Python wrappers we just implement these using Python.

Sent from my mobile phone.
On Dec 15, 2014 6:20 PM, "Isuru Fernando" <notifications@github.com> wrote:

> In src/functions.h
> <https://github.com/sympy/csympy/pull/341#discussion-diff-21872260>:
>
> > @@ -10,6 +10,11 @@
> >  #include "basic.h"
> >  #include "dict.h"
> >
> > +#ifndef PyObject_HEAD
> > +struct _object;
> > +typedef _object PyObject;
> > +#endif
>
> Having a PyObject pointer is no different than using void * here, but I
> wanted to look into reference counting.
> http://edcjones.tripod.com/refcount.html
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/sympy/csympy/pull/341/files#r21872260>.
>