Updates:
Status: Valid
Comment #1 on issue 3980 by [email protected]: Error in simplify for big
expressions
http://code.google.com/p/sympy/issues/detail?id=3980
I keyboard interrupted it and it was in factor in trigsimp.
In [16]: f.simplify()
^C---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
<ipython-input-16-d99fbed8346b> in <module>()
----> 1 f.simplify()
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/matrices/dense.py in
simplify(self, ratio, measure)
932 for i in range(len(self._mat)):
933 self._mat[i] = _simplify(self._mat[i], ratio=ratio,
--> 934 measure=measure)
935
936 def fill(self, value):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in simplify(expr, ratio, measure, fu)
3697 if expr.has(C.TrigonometricFunction) and not fu or expr.has(
3698 C.HyperbolicFunction):
-> 3699 expr = trigsimp(expr, deep=True)
3700
3701 if expr.has(C.log):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in trigsimp(expr, **opts)
1425 }[method]
1426
-> 1427 return trigsimpfunc(expr)
1428
1429
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in <lambda>(x)
1418 trigsimpfunc = {
1419 'fu': (lambda x: fu(x)),
-> 1420 'matching': (lambda x: futrig(x)),
1421 'groebner': (lambda x: groebnersimp(x, **opts)),
1422 'combined': (lambda x: futrig(groebnersimp(x,
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in futrig(e, **kwargs)
4270
4271 old = e
-> 4272 e = bottom_up(e, lambda x: _futrig(x, **kwargs))
4273
4274 if kwargs.pop('hyper', True) and e.has(C.HyperbolicFunction):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in bottom_up(rv, F, atoms, nonbasic)
4042 if rv.args:
4043 args = tuple([bottom_up(a, F, atoms, nonbasic)
-> 4044 for a in rv.args])
4045 if args != rv.args:
4046 rv = rv.func(*args)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in <listcomp>(.0)
4042 if rv.args:
4043 args = tuple([bottom_up(a, F, atoms, nonbasic)
-> 4044 for a in rv.args])
4045 if args != rv.args:
4046 rv = rv.func(*args)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in bottom_up(rv, F, atoms, nonbasic)
4045 if args != rv.args:
4046 rv = rv.func(*args)
-> 4047 rv = F(rv)
4048 elif atoms:
4049 rv = F(rv)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in <lambda>(x)
4270
4271 old = e
-> 4272 e = bottom_up(e, lambda x: _futrig(x, **kwargs))
4273
4274 if kwargs.pop('hyper', True) and e.has(C.HyperbolicFunction):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in _futrig(e, **kwargs)
4340 factor_terms, TR12(x), trigs)], # expand tan of sum
4341 )]
-> 4342 e = greedy(tree, objective=Lops)(e)
4343
4344 return coeff*e
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/strategies/core.py in
minrule(expr)
116 objective = kwargs.get('objective', identity)
117 def minrule(expr):
--> 118 return min([rule(expr) for rule in rules], key=objective)
119 return minrule
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/strategies/core.py in
<listcomp>(.0)
116 objective = kwargs.get('objective', identity)
117 def minrule(expr):
--> 118 return min([rule(expr) for rule in rules], key=objective)
119 return minrule
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/strategies/core.py in
chain_rl(expr)
43 def chain_rl(expr):
44 for rule in rules:
---> 45 expr = rule(expr)
46 return expr
47 return chain_rl
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in <lambda>(x)
4317 TR10, # sin-cos of sums -> sin-cos prod
4318 TR11, TR6, # reduce double angles and rewrite cos pows
-> 4319 lambda x: _eapply(factor, x, trigs),
4320 TR14, # factored powers of identities
4321 [identity, lambda x: _eapply(_mexpand, x, trigs)],
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/simplify/simplify.py
in _eapply(func, e, cond)
4233 return e
4234 if _is_Expr(e) or not e.args:
-> 4235 return func(e)
4236 return e.func(*[
4237 _eapply(func, ei) if (cond is None or cond(ei)) else ei
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/polytools.py in
factor(f, *gens, **args)
5768
5769 try:
-> 5770 return _generic_factor(f, gens, args, method='factor')
5771 except PolynomialError as msg:
5772 if not f.is_commutative:
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/polytools.py in
_generic_factor(expr, gens, args, method)
5463 options.allowed_flags(args, [])
5464 opt = options.build_options(gens, args)
-> 5465 return _symbolic_factor(sympify(expr), opt, method)
5466
5467
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/polytools.py in
_symbolic_factor(expr, opt, method)
5408 """Helper function for :func:`_factor`. """
5409 if isinstance(expr, Expr) and not expr.is_Relational:
-> 5410 coeff, factors = _symbolic_factor_list(together(expr), opt,
method)
5411 return _keep_coeff(coeff, _factors_product(factors))
5412 elif hasattr(expr, 'args'):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/polytools.py in
_symbolic_factor_list(expr, opt, method)
5372 func = getattr(poly, method + '_list')
5373
-> 5374 _coeff, _factors = func()
5375 if _coeff is not S.One:
5376 if exp.is_Integer:
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/polytools.py in
factor_list(f)
2903 if hasattr(f.rep, 'factor_list'):
2904 try:
-> 2905 coeff, factors = f.rep.factor_list()
2906 except DomainError:
2907 return S.One, [(f, 1)]
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/polyclasses.py
in factor_list(f)
755 def factor_list(f):
756 """Returns a list of irreducible factors of ``f``. """
--> 757 coeff, factors = dmp_factor_list(f.rep, f.lev, f.dom)
758 return coeff, [ (f.per(g), k) for g, k in factors ]
759
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/factortools.py
in dmp_factor_list(f, u, K0)
1275 if K.is_ZZ:
1276 levels, f, v = dmp_exclude(f, u, K)
-> 1277 coeff, factors = dmp_zz_factor(f, v, K)
1278
1279 for i, (f, k) in enumerate(factors):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/factortools.py
in dmp_zz_factor(f, u, K)
1088
1089 if dmp_degree(g, u) > 0:
-> 1090 g = dmp_sqf_part(g, u, K)
1091 H = dmp_zz_wang(g, u, K)
1092 factors = dmp_trial_division(f, H, u, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/sqfreetools.py
in dmp_sqf_part(f, u, K)
245 f = dmp_neg(f, u, K)
246
--> 247 gcd = dmp_gcd(f, dmp_diff(f, 1, u, K), u, K)
248 sqf = dmp_quo(f, gcd, u, K)
249
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_gcd(f, g, u, K)
1668
1669 """
-> 1670 return dmp_inner_gcd(f, g, u, K)[0]
1671
1672
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_inner_gcd(f, g, u, K)
1627
1628 J, (f, g) = dmp_multi_deflate((f, g), u, K)
-> 1629 h, cff, cfg = _dmp_inner_gcd(f, g, u, K)
1630
1631 return (dmp_inflate(h, J, u, K),
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in _dmp_inner_gcd(f, g, u, K)
1596 if K.is_ZZ and query('USE_HEU_GCD'):
1597 try:
-> 1598 return dmp_zz_heu_gcd(f, g, u, K)
1599 except HeuristicGCDFailed:
1600 pass
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1377
1378 if not (dmp_zero_p(ff, v) or dmp_zero_p(gg, v)):
-> 1379 h, cff, cfg = dmp_zz_heu_gcd(ff, gg, v, K)
1380
1381 h = _dmp_zz_gcd_interpolate(h, x, v, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dmp_zz_heu_gcd(f, g, u, K)
1352 """
1353 if not u:
-> 1354 return dup_zz_heu_gcd(f, g, K)
1355
1356 result = _dmp_rr_trivial_gcd(f, g, u, K)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/euclidtools.py
in dup_zz_heu_gcd(f, g, K)
1231 dg = dup_degree(g)
1232
-> 1233 gcd, f, g = dup_extract(f, g, K)
1234
1235 if df == 0 or dg == 0:
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/densetools.py
in dup_extract(f, g, K)
745 """
746 fc = dup_content(f, K)
--> 747 gc = dup_content(g, K)
748
749 gcd = K.gcd(fc, gc)
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/densetools.py
in dup_content(f, K)
608 else:
609 for c in f:
--> 610 cont = K.gcd(cont, c)
611
612 if K.is_one(cont):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/polys/domains/pythonintegerring.py
in
gcd(self, a, b)
76 def gcd(self, a, b):
77 """Compute GCD of ``a`` and ``b``. """
---> 78 return python_gcd(a, b)
79
80 def lcm(self, a, b):
/Users/aaronmeurer/Documents/Python/sympy/sympy/sympy/core/numbers.py in
igcd(a, b)
126
127 while b:
--> 128 a, b = b, a % b
129 else:
130 a = abs(a or b)
KeyboardInterrupt:
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"sympy-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy-issues.
For more options, visit https://groups.google.com/groups/opt_out.