Thanks :-)

On Tue, Nov 16, 2010 at 1:02 PM, luisfe <lftab...@yahoo.es> wrote:

>
>
> On Nov 16, 12:28 pm, Niels <niels.lub...@gmail.com> wrote:
> > Hi,
> >
> > I would like to compute the gcd of two bi-variate polynomials over a
> number
> > field:
> >
> > sage:     R = PolynomialRing( QQ, var( 't' ), order = 'lex' )
> > sage:     t = R.gens()[0]
> > sage:     T = NumberFieldTower( [t ** 2 - t + 1], 'a0' )
> > sage:     a0 = T.gens()[0]
> > sage:     R = R.change_ring( T )
> > sage:
> > sage:     P = PolynomialRing( T, var( 'x,y' ), order = 'lex' )
> > sage:     x, y = P.gens()
> > sage:
> > sage:     gcd( [( a0 + 1 ) * x , ( a0 + 1 ) * x * y] )
> > x
> >
> > # This should be ( a0 + 1 ) * x.
>
> I disagree, the gcd of two polynomials is defined up to constant
> multiplication. Probably the answer is monic wrt the monomial order.
>
>
> > sage:
> > sage:     t = R.gens()[0]
> > sage:     T = NumberFieldTower( [ t ** 2 - a0], 'a1' )
> > sage:     a1 = T.gens()[0]
> > sage:
> > sage:     P = PolynomialRing( T, var( 'x,y' ), order = 'lex' )
> > sage:     x, y = P.gens()
> > sage:
> >
> > # Computing the gcd in QQ(a0,a1)[x,y] gives problems.
> > # (btw qou_rem and divides also don't work over this ring)
>
> multivariate polynomials over towers of number fields are currently
> generic multivariate polynomials and there is no gcd implemented in
> Sage for multivariate polynomials over generic fields. Try to compute
> in this case a primitive element and pass to a simple extension so it
> will use Singular.
>
>
> > sage:     gcd( [( a0 + 1 ) * x , ( a0 + 1 ) * x * y] )
> >
> >
> ---------------------------------------------------------------------------
> > AttributeError                            Traceback (most recent call
> last)
> >
> > /home/niels/<ipython console> in <module>()
> >
> >
> /home/niels/Desktop/n/app/sage/local/lib/python2.6/site-packages/sage/rings/arith.pyc
> > in gcd(a, b, **kwargs)
> >    1434     if U is ZZ or U is int or U is long:#
> ZZ.has_coerce_map_from(U):
> >    1435         return sage.rings.integer.GCD_list(a)
> > -> 1436     return __GCD_sequence(seq, **kwargs)
> >    1437
> >    1438 GCD = gcd
> >
> >
> /home/niels/Desktop/n/app/sage/local/lib/python2.6/site-packages/sage/rings/arith.pyc
> > in __GCD_sequence(v, **kwargs)
> >    1476     one = v.universe()(1)
> >    1477     for vi in v:
> > -> 1478         g = vi.gcd(g, **kwargs)
> >    1479         if g == one:
> >    1480             return g
> >
> >
> /home/niels/Desktop/n/app/sage/local/lib/python2.6/site-packages/sage/structure/element.so
> > in sage.structure.element.Element.__getattr__
> > (sage/structure/element.c:2666)()
> >
> >
> /home/niels/Desktop/n/app/sage/local/lib/python2.6/site-packages/sage/structure/parent.so
> > in sage.structure.parent.getattr_from_other_class
> > (sage/structure/parent.c:2840)()
> >
> >
> /home/niels/Desktop/n/app/sage/local/lib/python2.6/site-packages/sage/structure/parent.so
> > in sage.structure.parent.raise_attribute_error
> > (sage/structure/parent.c:2638)()
> >
> > AttributeError: 'MPolynomial_polydict' object has no attribute 'gcd'
> > sage:
> >
> ---------------------------------------------------------------------------
> >
> > # giving 2 elements to gcd instead of a list, gives rise to different
> > exception
> >
> > sage: gcd( ( a0 + 1 ) * x , ( a0 + 1 ) * x * y )
> >
> ---------------------------------------------------------------------------
> > TypeError                                 Traceback (most recent call
> last)
> >
> > /home/niels/<ipython console> in <module>()
> >
> >
> /home/niels/Desktop/n/app/sage/local/lib/python2.6/site-packages/sage/rings/arith.pyc
> > in gcd(a, b, **kwargs)
> >    1427                 return ZZ(a).gcd(ZZ(b))
> >    1428             except TypeError:
> > -> 1429                 raise TypeError, "unable to find gcd of %s and
> > %s"%(a,b)
> >    1430
> >    1431     from sage.structure.sequence import Sequence
> >
> > TypeError: unable to find gcd of (a0 + 1)*x and (a0 + 1)*x*y
> > sage:
> >
> ---------------------------------------------------------------------------
> >
> > Kind regards,
> >
> > Niels
> >
> >
>
> --
> To post to this group, send an email to sage-devel@googlegroups.com
> To unsubscribe from this group, send an email to
> sage-devel+unsubscr...@googlegroups.com<sage-devel%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/sage-devel
> URL: http://www.sagemath.org
>

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to