ok. I can do that later this week. On Tuesday, March 1, 2016 at 11:22:04 AM UTC-6, David Roe wrote: > > The only reason that monomial_divides is unimplemented there is that > nobody has done it yet. :-) > David > > On Tue, Mar 1, 2016 at 12:20 PM, Ben Hutz <[email protected] <javascript:>> > wrote: > >> ok, so that is what the logic is. >> >> Not begin familiar with the different polynomial ring classes: is there a >> reason not to implement the monomial_divides function in that class? I >> think the current function just checks the exponents and it's lack is >> preventing the groebner basis from running. >> >> On Monday, February 29, 2016 at 2:25:45 PM UTC-6, David Roe wrote: >>> >>> >>> >>> On Mon, Feb 29, 2016 at 9:19 AM, Ben Hutz <[email protected]> wrote: >>> >>>> I was exploring some quotient ring operations and came across the >>>> following: >>>> >>>> {{{ >>>> R.<y>=QQ[] >>>> K.<w>=NumberField(y^3 + 2*y - 2401) >>>> k.<v>=K.quo(K.prime_factors(7)[1]) >>>> R.<x,y>=PolynomialRing(k) >>>> R.monomial_divides(y,x^3*y) >>>> Error >>>> }}} >>>> >>>> {{{ >>>> R.<y>=QQ[] >>>> K.<w>=NumberField(y^3 + 2*y - 2401) >>>> k.<v>=K.residue_field(K.prime_factors(7)[1]) >>>> R.<x,y>=PolynomialRing(k) >>>> R.monomial_divides(y,x^3*y) >>>> True >>>> }}} >>>> >>>> The second works, the first does not. I came across this since >>>> .monomial_divides is used is a groebner basis computation. So played >>>> around >>>> a little more and the following seems weirder >>>> >>>> {{{ >>>> A.<x,y,z> = PolynomialRing(Zmod(42)) >>>> A.monomial_divides(y,x^2*y) >>>> True >>>> }}} >>>> >>>> {{{ >>>> A.<x,y,z> = PolynomialRing(Zmod(2521515232)) #but one less digit works >>>> A.monomial_divides(y,x^2*y) >>>> Error >>>> }} >>>> >>>> The first works, but the 2nd does not, even though neither is prime. It >>>> seems to have to do with what type of polynomial ring they are initialized >>>> as, but I had a hard time tracking down where that code lived and how it >>>> decided. Is there someone familiar with polynomial rings in Sage who could >>>> shed some light on whether this is expected behavior? >>>> >>> >>> The difference is that we use singular over Z/n for small enough n. You >>> can detect this in the types of the polynomial rings: >>> >>> sage: A.<x,y,z> = PolynomialRing(Zmod(42)) >>> sage: type(A) >>> <type >>> 'sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular'> >>> sage: A.<x,y,z> = PolynomialRing(Zmod(2521515232)) >>> sage: type(A) >>> <class >>> 'sage.rings.polynomial.multi_polynomial_ring.MPolynomialRing_polydict_with_category'> >>> >>> The monomial_divides method just isn't implemented >>> for MPolynomialRing_polydict. >>> David >>> >>>> >>>> Thanks, >>>> Ben >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "sage-devel" 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 https://groups.google.com/group/sage-devel. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >
-- You received this message because you are subscribed to the Google Groups "sage-devel" 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 https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
