Functions to create and coerce word objects and cycle objects

Share:

Description

Functions to create permutation objects. permutation is a virtual class.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
word(M)
is.permutation(x)
cycle(x)
is.word(x)
is.cycle(x)
as.word(x,n=NULL)
as.cycle(x)
cycle2word(x,n=NULL)
char2cycle(char)
cyc_len(n)
## S3 method for class 'word'
as.matrix(x,...)

Arguments

M

In function word(), a matrix with rows corresponding to permutations in word form

x

See details

n

In functions as.word() and cycle2word(), the size of the word to return; in function cyc_len(), the length of the cycle to return

char

In function char2cycle() a character vector which is coerced to a cycle object

...

Further arguments passed to as.matrix()

Details

Functions word() and cycle() are rather formal functions which make no attempt to coerce their arguments into sensible forms. The user should use as.word() and as.cycle(), which are much more user-friendly.

Functions word() and cycle() are the only functions in the package which assign class word or cycle to an object.

A word is a matrix whose rows correspond to permutations in word format.

A cycle is a list whose elements correspond to permutations in cycle form. A cycle object comprises elements which are informally dubbed ‘cyclists’. A cyclist is a list of integer vectors corresponding to the cycles of the permutation.

Function cycle2word() converts cycle objects to word objects.

Function cyc_len() is a convenience wrapper for as.cycle(seq_len(n)).

It is a very common error (at least, it is for me) to use cycle() when you meant as.cycle().

Value

Returns a cycle object or a word object

Author(s)

Robin K. S. Hankin

See Also

cyclist

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
word(matrix(1:8,7,8))
cycle(list(list(c(1,8,2),c(3,6)),list(1:2, 4:8)))

char2cycle(c("(1,4)(6,7)","(3,4,2)(8,19)", "(56)","(12345)(78)","(78)"))

jj <- c(4,2,3,1)

as.word(jj)
as.cycle(jj)

as.cycle(1:2)*as.cycle(1:8) == as.cycle(1:8)*as.cycle(1:2)  # FALSE!

x <- rperm(10,7)
y <- rperm(10,7)
as.cycle(commutator(x,y))

cycle(sapply(seq_len(9),function(n){list(list(seq_len(n)))}))

cycle(sapply(seq_len(18),cyc_len))