Re: [sage-support] Re: Extending a Finite Field second time
On 4 May 2015 at 15:22, Evrim Ulu evrim...@gmail.com wrote: Here it is: F16.extension(modulus=x^7+x+1) To quote from the documentation of the extension() method used here: Extensions of non-prime finite fields by polynomials are not yet supported: we fall back to generic code: follwed by an example. In your case you get Univariate Quotient Polynomial Ring in x over Finite Field in g of size 2^4 with modulus x^7 + x + 1 which does at least know that it is a field, but its type is not FiniteField but PolynomialQuatientRing . There has been recent work to improve handling of relative extensions of finite fields, and perhaps someone who has been involved with that will comment further. John Cremona On Monday, May 4, 2015 at 5:02:52 PM UTC+3, Evrim Ulu wrote: Hello, I'm having trouble extending a finite field. Any help would be appreciated. F16 = GF(16, 'g') F16_x.x = PolynomialRing(F16, 'x') HH = GF(F16^7, modulus=x^7 + x + 1, name='h') I basically try to extend 2^4 to 2^4*7 with a degree 7 irreducible. I get the following. best, evrim. sage: HH = FiniteField(F16^7, modulus=x^7 + x + g^15, name='h') --- TypeError Traceback (most recent call last) /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/all_cmdline.pyc in module() 1 HH = FiniteField(F16**Integer(7), modulus=x**Integer(7) + x + g**Integer(15), name='h') /usr/lib/sagemath/src/sage/structure/factory.pyx in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:1207)() 362 False 363 -- 364 key, kwds = self.create_key_and_extra_args(*args, **kwds) 365 version = self.get_version(sage_version) 366 return self.get_object(version, key, kwds) /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/rings/finite_rings/constructor.pyc in create_key_and_extra_args(self, order, name, modulus, names, impl, proof, check_irreducible, **kwds) 426 proof = arithmetic() 427 with WithProof('arithmetic', proof): -- 428 order = Integer(order) 429 if order = 1: 430 raise ValueError(the order of a finite field must be at least 2) /usr/lib/sagemath/src/sage/rings/integer.pyx in sage.rings.integer.Integer.__init__ (build/cythonized/sage/rings/integer.c:6020)() 688 return 689 -- 690 raise TypeError, unable to coerce %s to an integer % type(x) 691 692 def __reduce__(self): TypeError: unable to coerce class 'sage.modules.free_module.FreeModule_ambient_field_with_category' to an integer -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
Re: [sage-support] Re: Extending a Finite Field second time
I see that, thanks for the info. Actually F16.extension(..).gen().multiplicative_order() gives NotImplementedError So basically, if i want to simulate the behaviour I can take two poly f(x), g(x) and generate a field using modulus f(g(x)) composition i guess. best evrim. 2015-05-04 17:55 GMT+03:00 John Cremona john.crem...@gmail.com: On 4 May 2015 at 15:22, Evrim Ulu evrim...@gmail.com wrote: Here it is: F16.extension(modulus=x^7+x+1) To quote from the documentation of the extension() method used here: Extensions of non-prime finite fields by polynomials are not yet supported: we fall back to generic code: follwed by an example. In your case you get Univariate Quotient Polynomial Ring in x over Finite Field in g of size 2^4 with modulus x^7 + x + 1 which does at least know that it is a field, but its type is not FiniteField but PolynomialQuatientRing . There has been recent work to improve handling of relative extensions of finite fields, and perhaps someone who has been involved with that will comment further. John Cremona On Monday, May 4, 2015 at 5:02:52 PM UTC+3, Evrim Ulu wrote: Hello, I'm having trouble extending a finite field. Any help would be appreciated. F16 = GF(16, 'g') F16_x.x = PolynomialRing(F16, 'x') HH = GF(F16^7, modulus=x^7 + x + 1, name='h') I basically try to extend 2^4 to 2^4*7 with a degree 7 irreducible. I get the following. best, evrim. sage: HH = FiniteField(F16^7, modulus=x^7 + x + g^15, name='h') --- TypeError Traceback (most recent call last) /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/all_cmdline.pyc in module() 1 HH = FiniteField(F16**Integer(7), modulus=x**Integer(7) + x + g**Integer(15), name='h') /usr/lib/sagemath/src/sage/structure/factory.pyx in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:1207)() 362 False 363 -- 364 key, kwds = self.create_key_and_extra_args(*args, **kwds) 365 version = self.get_version(sage_version) 366 return self.get_object(version, key, kwds) /usr/lib/sagemath/local/lib/python2.7/site-packages/sage/rings/finite_rings/constructor.pyc in create_key_and_extra_args(self, order, name, modulus, names, impl, proof, check_irreducible, **kwds) 426 proof = arithmetic() 427 with WithProof('arithmetic', proof): -- 428 order = Integer(order) 429 if order = 1: 430 raise ValueError(the order of a finite field must be at least 2) /usr/lib/sagemath/src/sage/rings/integer.pyx in sage.rings.integer.Integer.__init__ (build/cythonized/sage/rings/integer.c:6020)() 688 return 689 -- 690 raise TypeError, unable to coerce %s to an integer % type(x) 691 692 def __reduce__(self): TypeError: unable to coerce class 'sage.modules.free_module.FreeModule_ambient_field_with_category' to an integer -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to a topic in the Google Groups sage-support group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/sage-support/mVoFYqsfAAY/unsubscribe. To unsubscribe from this group and all its topics, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
Re: [sage-support] Re: Extending a Finite Field second time
On Monday, May 4, 2015 at 7:58:19 AM UTC-7, Evrim Ulu wrote: I see that, thanks for the info. Actually F16.extension(..).gen().multiplicative_order() gives NotImplementedError So basically, if i want to simulate the behaviour I can take two poly f(x), g(x) and generate a field using modulus f(g(x)) composition i guess. Only if you care about having that basis (is f(g(x)) guaranteed to be irreducible?) You can also just construct k=GF(2^(4*7),'a') and hope the underlying library takes a smart choice for its generator. You can then see how GF[x]/(x^7+x+1) embeds by asking for (k[x](x^7+x+1)).roots() -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
Re: [sage-support] Re: Extending a Finite Field second time
Thats right f(g(x)) is not irreducible obviously, shame on me. I did this to get the order: sage: (k[x](x^7+x+1)).roots()[0][0].multiplicative_order() 127 First root, multiplicative order. The real confusion comes from the notation I guess. When you said k[x](x^7+x+1) i obviously thought we are generating an Ideal. This is obviously untrue since k[x]() is a function who casts it into the ring. This is really confusing, Thanks for your help. best, evrim. 2015-05-04 18:27 GMT+03:00 Nils Bruin nbr...@sfu.ca: On Monday, May 4, 2015 at 7:58:19 AM UTC-7, Evrim Ulu wrote: I see that, thanks for the info. Actually F16.extension(..).gen().multiplicative_order() gives NotImplementedError So basically, if i want to simulate the behaviour I can take two poly f(x), g(x) and generate a field using modulus f(g(x)) composition i guess. Only if you care about having that basis (is f(g(x)) guaranteed to be irreducible?) You can also just construct k=GF(2^(4*7),'a') and hope the underlying library takes a smart choice for its generator. You can then see how GF[x]/(x^7+x+1) embeds by asking for (k[x](x^7+x+1)).roots() -- You received this message because you are subscribed to a topic in the Google Groups sage-support group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/sage-support/mVoFYqsfAAY/unsubscribe. To unsubscribe from this group and all its topics, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
Re: [sage-support] Re: Extending a Finite Field second time
One more question If I may ask. Is there a way to get the minimal poly of some conjugates over GF(2^4)? I always end up degree 28 in this case, i want to see some of degree 7. I've tried to embed it into GF(2^4)[x] and factor yet no luck. Best, evrim. 2015-05-04 20:04 GMT+03:00 Evrim Ulu evrim...@gmail.com: Thats right f(g(x)) is not irreducible obviously, shame on me. I did this to get the order: sage: (k[x](x^7+x+1)).roots()[0][0].multiplicative_order() 127 First root, multiplicative order. The real confusion comes from the notation I guess. When you said k[x](x^7+x+1) i obviously thought we are generating an Ideal. This is obviously untrue since k[x]() is a function who casts it into the ring. This is really confusing, Thanks for your help. best, evrim. 2015-05-04 18:27 GMT+03:00 Nils Bruin nbr...@sfu.ca: On Monday, May 4, 2015 at 7:58:19 AM UTC-7, Evrim Ulu wrote: I see that, thanks for the info. Actually F16.extension(..).gen().multiplicative_order() gives NotImplementedError So basically, if i want to simulate the behaviour I can take two poly f(x), g(x) and generate a field using modulus f(g(x)) composition i guess. Only if you care about having that basis (is f(g(x)) guaranteed to be irreducible?) You can also just construct k=GF(2^(4*7),'a') and hope the underlying library takes a smart choice for its generator. You can then see how GF[x]/(x^7+x+1) embeds by asking for (k[x](x^7+x+1)).roots() -- You received this message because you are subscribed to a topic in the Google Groups sage-support group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/sage-support/mVoFYqsfAAY/unsubscribe. To unsubscribe from this group and all its topics, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.