Hi all,

I have been working on this and after a while decided that my original
approach wasn't the most appropriate and started rewriting everything
for scratch.

After thinking about this problem making "conjugacy_class" a method
that returns a list (or set) didn't feel right. GAP has many methods
working on conjugacy classes, so the most natural thing to do should
be to create a sage/python class "ConjugacyClass" for conjugacy
classes, and wrap any desired GAP methods inside this class. Does this
sound fine?

I have some working code, including the definition of the class,
wrapping of several GAP functions, and some native python methods such
as list, set, iter, getitem, repr and so on, but before pushing it I
wanted to be sure this is the right approach.

I think within this new framework, the definition of the class
"ConjugacyClass" should go in the groups file (but don't know exactly
where!), and the G.conjugacy_class(g) method should be defined for all
groups, not only for finite, with the "set" and "list" methods
initially raising NotImplemented errors for infinite groups, but
giving room if somebody ever want to implement explicit descriptions
for some particular infinite groups (like f.i. FC-groups).

Is there anything I should take into account regarding the eventual
merge with the categories code?

Cheers
J

On Dec 3 2009, 10:15 pm, Florent Hivert <florent.hiv...@univ-rouen.fr>
wrote:
> > Yes, have a look at sage/groups/group.pyx.  It has a FiniteGroup
> > class, where I think you should put your main method (that's what
> > Florent said as well, I think).
>
> Yep ! This will probably needs some cleanup when we will merge categories with
> the other generic stuff but I think this is the right place in the mean time.
>
>
>
> > For group elements, one possibility is to put the wrapper method in
> > the class MultiplicativeGroupElement in the file
> > sage/structure/element.pyx.  You would probably want to do something
> > like
>
> > defconjugacy_class(self):
> >     G = self.parent()
> >     try:
> >         return G.conjugacy_class(self)
> >     except AttributeError:
> >         raise NotImplementedError, "Computation of conjugacy classes not 
> > implemented for %s"%self
>
> > because some groups (e.g. infinite ones) won't have the 
> > methodconjugacy_class().
> > If anybody thinks that element.pyx should not get cluttered with this
> > kind of thing, please say something!
>
> something :-)
>
> Same remark as above...
>
> Florent
-- 
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