Updates:
        Status: Invalid

Comment #1 on issue 2393 by asmeurer: Sum error
http://code.google.com/p/sympy/issues/detail?id=2393

Well, you can't do symbolic manipulation with a Python function (or else we wouldn't need SymPy!). The function just evaluates a(k) to 0, because k is not an Integer.

This is the proper way to define your own function in SymPy. Notice that if you make it always return 0 when it's not an integer:

In [32]: class a(Function):
    nargs = 1
    @classmethod
    def eval(cls, arg):
        if arg.is_Integer:
            return S.One
        return S.Zero
   ....:
   ....:

In [39]: Sum(a(k), (k, 1, 10))
Out[39]:
  10
 __
 \ `
  )   0
 /_,
k = 1

In [40]: class a(Function):
    nargs = 1
    @classmethod
    def eval(cls, arg):
        if arg.is_Integer:
            return S.One

   ....:
   ....:

In [47]: Sum(a(k), (k, 1, 10))
Out[47]:
  10
 __
 \ `
  )   a(k)
 /_,
k = 1

In [48]: Sum(a(k), (k, 1, 10)).doit()
Out[48]: 10


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

Reply via email to