Thanks! On Nov 1, 8:35 pm, "William Stein" <[EMAIL PROTECTED]> wrote: > On 11/1/07, Utpal Sarkar <[EMAIL PROTECTED]> wrote: > > > I'm doing some simple things with class groups, and some things don't > > work as expected. > > Let G be a class group of a number field. > > sage: K.<a> = NumberField(x^2 + 23) > sage: G = K.class_group(); G > Class group of order 3 with structure C3 of Number Field in a with > defining polynomial x^2 + 23 > > > I am interested in obtaining > > the actual ideal classes > > (is there an easy direct way? list(G) returns abstract elements. Is it > > possible to obtain a map from the class group to the ideal group, > > mapping class group elements to representatives?) > > This is not implemented yet (the function list is just > something implemented in the base abstract abelian > group class, which is inherited -- it doesn't do anything > useful in this case, really.) Class groups were only > added to sage very recently, and aren't fully implemented. > Adding code to enumerate all elements will show up in Sage > soon, but it will take some work. > > > Since generators of G can be obtained as ideal classes, to obtain all > > of them you just have to multiply powers of the generators, and for > > that it would be useful to know the orders of the generators. > > When I call > > (G.0).order() > > it shows an error message saying that it is not implemented (which > > seems strange). > > It isn't implemented. You could implement a dumb order > function though: > > sage: K.<a> = NumberField(x^2 + 23) > sage: G = K.class_group(); G > Class group of order 3 with structure C3 of Number Field in a with > defining polynomial x^2 + 23 > sage: G.gens() > [Fractional ideal class (2, 1/2*a - 1/2)] > sage: a = G.0 > sage: def myorder(I): > ... n = 1 > ... J = I > ... while J != 1: > ... J = J * I > ... n += 1 > ... return n > sage: myorder(a) > 3 > > -- > > I don't recommend doing this -- it's much better to understand > how fractional ideals, etc. are represented using the PARI > C library in Sage, then use a call to PARI to determine the > order of the fractional ideal class. This is what I'll do > when I implement this in the Sage library. > > > I tried to work around this by generating the > > subgroups of G generated by these generators of G in turn to obtain > > their orders, but when I say > > G.subgroup([G.0]) > > or > > G.subgroup(G.gens()) > > an error results, saying that the elements passed don't belong to G. > > That's because creating subgroups of ideal class groups is not > implemented. Sage should produce a NotImplementedError in this case > too. > > I've created trac ticket #1052 > > http://trac.sagemath.org/sage_trac/ticket/1052 > > which is to implement more functionality for class groups > of number fields in Sage. The class I'm teaching > right now starts on class groups tomorrow, incidentally... > http://wiki.wstein.org/ant07/sched > > -- William
--~--~---------~--~----~------------~-------~--~----~ 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 URLs: http://sage.math.washington.edu/sage/ and http://sage.scipy.org/sage/ -~----------~----~----~----~------~----~------~--~---
