Hi !

I've been playing with libgap, which is great (I love the fact that lists 
returned by GAP now start at 0...)

I have been unable, however, to elegantly work around the following simple 
taks. Suppose:

sage: G= libgap.SymmetricGroup(3)
sage: g= libgap.eval("(1,2,3)")
sage: g in G # error

This does not work, to test membership. Unsatisfactory workarounds are:

(1) g in G.AsList()

works, but for large G this is VERY inefficient ! GAP is of course clever 
at testing membership.

(2) use libgap.eval("G:= SymmetricGroup(3)") then libgap.eval("g:= 
(1,2,3)") then libgap.eval("g in G")

This works, but well, in my real life example G and g are just not built 
like that.

(3) best so far is

libgap.set_golobal("G", G)
libgap.set_global("g", g)
libgap.eval("g in G")
libgap.unset_global("G")
libgap.unset_global("g)

works, but is a bit long !

Is there a better way? in particular, is it possible to find the name which 
G and g must have as variables within GAP? this used to be G.name() with 
the old GAP interface. Maybe it doesn't make sense anymore.

I guess I could write a little GAP_membership(G, g) function, implememting 
solution (3). It would work in general (eg, verifying whether g is in a 
given conjugacy class, as returned by G.ConjugacyClasses() ).

thanks!
Pierre






-- 
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 https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to