sorry some keyboard shortcut has sent the post. I was saying:

def C(*args): #C for "cycle"
    return Permutation([ args ])

and then for (1, 2, 3)(4, 5) I type C(1, 2, 3) * C(4, 5). I got very used 
to it.

cheers
Pierre

On Thursday, September 11, 2014 2:12:21 PM UTC+2, Pierre wrote:
>
> Hi all,
>
> Here are a few suggestions:
>
> (1) permutations have a to_matrix() method; permuting the rows of M 
> according to the permutation sigma can be done by
>
> M= M * sigma.to_matrix()
>
> and for the rows:
>
> M= sigma.to_matrix().transpose() * M
>
> Of course there is a debate about the behaviour of to_matrix() ; however i 
> think the code for matrices should rely on to_matrix(), and then at least 
> the conversation would be strictly one about the code for permutations. 
> This answers a complain above.
>
> (2) if sigma is a permutation, i don't think sigma[i] should make sense at 
> all. This requires the user to appreciate that sigma is implemented as a 
> list, which i think is not a good idea. Of course some people (including 
> me) want the permutation as a word; why not have a as_word() method, which 
> could take a bunch of parameters for shifting (starting from 0 instead of 1 
> for example...) ?
>
> Also, permutations should always print in cycle notation, just like in GAP 
> ! It's much easier to read, and drives the user away from the idea that the 
> permutation "is" a list.
>
> [By the way, i also don't think sigma(i) should be implemented. The 
> permutations in Sage act on the right, so i^sigma, just like in GAP, is 
> more logical. This is not a very useful comment as changing the behaviour 
> of standard ints is complicated (if possible at all?), and backward 
> compatibility is needed.]
>
> (3) in fact i agree that permutations should not be implemented as lists, 
> and should be thought of as acting on all integers from 0, as was 
> suggested. Would the multiplication be as fast if they were stored as lists 
> of cycles? I'm thinking that an implementation as a dictionnary, much like 
> a sparse matrix, would be reasonable.
>
> (4) Here's a notation I use when I have a lot of permutation to input 
> interactively:
>
> def C(*args) :  # C for "cycle"
>
>
>
>
>
>
>
>

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to