Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 2841 by [email protected]: sympy.Abs and sympy.Integral
http://code.google.com/p/sympy/issues/detail?id=2841

In Dev version

import sympy
x = sympy.Symbol('x')
i = sympy.integrate(sympy.Abs(x), (x, -1, 1))
i.n()

/env/src/sympy/sympy/core/evalf.pyc in evalf(self, n, subs, maxn, chop, strict, quad, verbose)
   1022             options['quad'] = quad
   1023         try:
-> 1024             result = evalf(self, prec+4, options)
   1025         except NotImplementedError:
   1026             # Fall back to the ordinary evalf


/env/src/sympy/sympy/core/evalf.pyc in evalf(x, prec, options)
    954     try:
    955         rf = evalf_table[x.func]
--> 956         r = rf(x, prec, options)
    957     except KeyError:
958 #r = finalize_complex(x._eval_evalf(prec)._mpf_, fzero, prec)


/env/src/sympy/sympy/core/evalf.pyc in evalf_integral(expr, prec, options)
    741     maxprec = options.get('maxprec', INF)
    742     while 1:
--> 743         result = do_integral(expr, workprec, options)
    744         accuracy = complex_accuracy(result)
    745         if accuracy >= prec or workprec >= maxprec:

/env/src/sympy/sympy/core/evalf.pyc in do_integral(expr, prec, options)
    706             quadrature_error = MINUS_INF
    707         else:
--> 708 result, quadrature_error = quadts(f, [xlow, xhigh], error=1)
    709             quadrature_error = fastlog(quadrature_error._mpf_)
    710

/env/src/sympy/sympy/mpmath/calculus/quadrature.pyc in quadts(ctx, *args, **kwargs)
    784         """
    785         kwargs['method'] = 'tanh-sinh'
--> 786         return ctx.quad(*args, **kwargs)
    787
    788     def quadgl(ctx, *args, **kwargs):

/env/src/sympy/sympy/mpmath/calculus/quadrature.pyc in quad(ctx, f, *points, **kwargs)
    741             ctx.prec += 20
    742             if dim == 1:
--> 743 v, err = rule.summation(f, points[0], prec, epsilon, m, verbose)
    744             elif dim == 2:
    745                 v, err = rule.summation(lambda x: \

/env/src/sympy/sympy/mpmath/calculus/quadrature.pyc in summation(self, f, points, prec, epsilon, max_degree, verbose) 230 print("Integrating from %s to %s (degree %s of %s)" % \ 231 (ctx.nstr(a), ctx.nstr(b), degree, max_degree)) --> 232 results.append(self.sum_next(f, nodes, degree, prec, results, verbose))
    233                 if degree > 1:
234 err = self.estimate_error(results, prec, epsilon)

/env/src/sympy/sympy/mpmath/calculus/quadrature.pyc in sum_next(self, f, nodes, degree, prec, previous, verbose)
    302         else:
    303             S = self.ctx.zero
--> 304         S += self.ctx.fdot((w,f(x)) for (x,w) in nodes)
    305         return h*S
    306

/env/src/sympy/sympy/mpmath/ctx_mp_python.pyc in fdot(ctx, A, B, conjugate)
    923         hasattr_ = hasattr
    924         types = (ctx.mpf, ctx.mpc)
--> 925         for a, b in A:
    926             if type(a) not in types: a = ctx.convert(a)
    927             if type(b) not in types: b = ctx.convert(b)

/env/src/sympy/sympy/mpmath/calculus/quadrature.pyc in <genexpr>((x, w))
    302         else:
    303             S = self.ctx.zero
--> 304         S += self.ctx.fdot((w,f(x)) for (x,w) in nodes)
    305         return h*S
    306

/env/src/sympy/sympy/core/evalf.pyc in f(t)
    679
    680         def f(t):
--> 681 re, im, re_acc, im_acc = evalf(func, mp.prec, {'subs':{x:t}})
    682
    683             have_part[0] = re or have_part[0]

/env/src/sympy/sympy/core/evalf.pyc in evalf(x, prec, options)
    954     try:
    955         rf = evalf_table[x.func]
--> 956         r = rf(x, prec, options)
    957     except KeyError:
958 #r = finalize_complex(x._eval_evalf(prec)._mpf_, fzero, prec)


/env/src/sympy/sympy/core/evalf.pyc in evalf_abs(expr, prec, options)
    140
    141 def evalf_abs(expr, prec, options):
--> 142     return get_abs(expr.args[0], prec, options)
    143
    144 def evalf_re(expr, prec, options):

/env/src/sympy/sympy/core/evalf.pyc in get_abs(expr, prec, options)
    125         return libmp.mpc_abs((re, im), prec), None, re_acc, None
    126     else:
--> 127         return mpf_abs(re), None, re_acc, None
    128
    129 def get_complex_part(expr, no, prec, options):

/env/src/sympy/sympy/mpmath/libmp/libmpf.pyc in mpf_abs(s, prec, rnd)
    653     precision. The prec argument can be omitted to generate an
    654     exact result."""
--> 655     sign, man, exp, bc = s
    656     if (not man) and exp:
    657         if s == fninf:

TypeError: 'NoneType' object is not iterable



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

Reply via email to