Hi all: It looks like working with polynomial rings over transcendental field extensions still doesn't work in Sage. Am i doing something wrong below? The same computation works in Singular, giving the correct answer of the ideal generated by x*y. Should i submit a Trac ticket for this? It appears someone has taken a look at the issue since i last reported it, because this time there's a new error.
Alex ---------------------------------------------------------------------- | Sage Version 4.3.3, Release Date: 2010-02-21 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- The Sage install tree may have moved. Regenerating Python.pyo and .pyc files that hardcode the install PATH (please wait at most a few minutes)... Do not interrupt this. sage: R0.<q> = PolynomialRing(QQ); R0 Univariate Polynomial Ring in q over Rational Field sage: k= FractionField(R0); k Fraction Field of Univariate Polynomial Ring in q over Rational Field sage: R.<x,y> = PolynomialRing(k); R Multivariate Polynomial Ring in x, y over Fraction Field of Univariate Polynomial Ring in q over Rational Field sage: I = R.ideal((q*x*y)^2); I Ideal (q^2*x^2*y^2) of Multivariate Polynomial Ring in x, y over Fraction Field of Univariate Polynomial Ring in q over Rational Field sage: I.radical() --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /Users/arai021/<ipython console> in <module>() /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ polynomial/multi_polynomial_ideal.py in __call__(self, *args, **kwds) 405 if not R.base_ring().is_field(): 406 raise ValueError("Coefficient ring must be a field for function '%s'."%(self.f.__name__)) --> 407 return self.f(self._instance, *args, **kwds) 408 409 require_field = RequireField /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ polynomial/multi_polynomial_ideal.py in wrapper(*args, **kwds) 367 """ 368 with RedSBContext(): --> 369 return func(*args, **kwds) 370 371 from sage.misc.sageinspect import sage_getsource /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ polynomial/multi_polynomial_ideal.py in radical(self) 1397 import sage.libs.singular 1398 radical = sage.libs.singular.ff.primdec__lib.radical -> 1399 r = radical(self) 1400 1401 S = self.ring() /Applications/sage/local/lib/python2.6/site-packages/sage/libs/ singular/function.so in sage.libs.singular.function.SingularFunction.__call__ (sage/libs/ singular/function.cpp:9628)() TypeError: Cannot call Singular function 'radical' with ring parameter of type '<class 'sage.rings.polynomial.multi_polynomial_ring.MPolynomialRing_polydict_domain'>' On Jan 15, 2:58 pm, Alex Raichev <tortoise.s...@gmail.com> wrote: > Hi all: > > I'm trying to get Sage to compute in a multivariate polynomial ring > over a transcendental field extension but am running into > difficulties. For example, Sage crashes when trying to compute a > radical ideal as demonstrated by the example below. I tried the same > example in Singular, which gave me the correct answer (the ideal > generated by x*y). > > So is the failure below a Singular interface bug or am i doing > something wrong? I suspect Singular doesn't like Sage's fraction > field construction of a transcendental extension. > > Alex > > ---------------------------------------------------------------------- > | Sage Version 4.3, Release Date: 2009-12-24 | > | Type notebook() for the GUI, and license() for information. | > ---------------------------------------------------------------------- > WARNING: There is one major unsolved bug in some versions of > Sage on OS X 10.6 that causes an 'Abort trap' crash when > doing certain symbolic computations. > Seehttp://trac.sagemath.org/sage_trac/ticket/7095/. > sage: R0.<q> = PolynomialRing(QQ); R0 > Univariate Polynomial Ring in q over Rational Field > sage: k= FractionField(R0); k > Fraction Field of Univariate Polynomial Ring in q over Rational Field > sage: R.<x,y> = PolynomialRing(k); R > Multivariate Polynomial Ring in x, y over Fraction Field of Univariate > Polynomial Ring in q over Rational Field > sage: R.<x,y> = PolynomialRing(k); R > Multivariate Polynomial Ring in x, y over Fraction Field of Univariate > Polynomial Ring in q over Rational Field > sage: I = R.ideal((q*x*y)^2); I > Ideal (q^2*x^2*y^2) of Multivariate Polynomial Ring in x, y over > Fraction Field of Univariate Polynomial Ring in q over Rational Field > sage: I.radical() > --------------------------------------------------------------------------- > RuntimeError Traceback (most recent call > last) > > /Users/arai021/<ipython console> in <module>() > > /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ > polynomial/multi_polynomial_ideal.pyc in __call__(self, *args, **kwds) > 400 if not R.base_ring().is_field(): > 401 raise ValueError("Coefficient ring must be a field > for function '%s'."%(self.f.__name__)) > --> 402 return self.f(self._instance, *args, **kwds) > 403 > 404 require_field = RequireField > > /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ > polynomial/multi_polynomial_ideal.pyc in wrapper(*args, **kwds) > 362 """ > 363 with RedSBContext(): > --> 364 return func(*args, **kwds) > 365 > 366 from sage.misc.sageinspect import sage_getsource > > /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ > polynomial/multi_polynomial_ideal.pyc in radical(self) > 1385 I.parent().lib('primdec.lib') > 1386 r = I.radical() > -> 1387 return S.ideal(r) > 1388 > 1389 @require_field > > /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ > polynomial/multi_polynomial_ring.pyc in ideal(self, *gens, **kwds) > 496 if (kwds.has_key('coerce') and kwds['coerce']) or > do_coerce: > 497 gens = [self(x) for x in gens] # this will even > coerce from singular ideals correctly! > --> 498 return multi_polynomial_ideal.MPolynomialIdeal(self, > gens, **kwds) > 499 > 500 > > /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ > polynomial/multi_polynomial_ideal.pyc in __init__(self, ring, gens, > coerce) > 2250 Ideal (x0^2, x1^3) of Multivariate Polynomial Ring > in x0, x1 over Finite Field of size 3 > 2251 """ > -> 2252 Ideal_generic.__init__(self, ring, gens, > coerce=coerce) > 2253 > 2254 def __cmp__(self, other): > > /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ > ideal.pyc in __init__(self, ring, gens, coerce) > 238 gens = [gens] > 239 if coerce: > --> 240 gens = [ring(x) for x in gens] > 241 > 242 gens = tuple(gens) > > /Applications/sage/local/lib/python2.6/site-packages/sage/rings/ > polynomial/multi_polynomial_ring.pyc in __call__(self, x, check) > 425 self._singular_().set_ring() > 426 try: > --> 427 return x.sage_poly(self) > 428 except TypeError: > 429 raise TypeError, "unable to coerce singular > object" > > /Applications/sage/local/lib/python2.6/site-packages/sage/interfaces/ > singular.pyc in sage_poly(self, R, kcache) > 1400 > 1401 singular_poly_list = self.parent().eval("string(coef > (%s,%s))"%(\ > -> 1402 self.name > (),variable_str)).split(",") > 1403 > 1404 if singular_poly_list == ['1','0'] : > > /Applications/sage/local/lib/python2.6/site-packages/sage/interfaces/ > singular.pyc in eval(self, x, allow_semicolon, strip, **kwds) > 547 > 548 if s.find("error") != -1 or s.find("Segment fault") != > -1: > --> 549 raise RuntimeError, 'Singular error:\n%s'%s > 550 > 551 if get_verbose() > 0: > > RuntimeError: Singular error: > ? coef(`ideal`,`poly`) failed > ? expected coef(`poly`,`poly`) > ? error occurred in STDIN line 81: `string(coef(sage18,x*y));` > ? wrong type declaration. type 'help string;' > sage: -- To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org