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 <[email protected]> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org