Functions to create and coerce word objects and cycle objects
Functions to create permutation objects. permutation
is a
virtual class.
word(M) permutation(x) 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) shift_cycle(n) ## S3 method for class 'word' as.matrix(x,...)
M |
In function |
x |
See details |
n |
In functions |
char |
In function |
... |
Further arguments passed to |
Functions word()
and cycle()
are rather formal functions
which make no attempt to coerce their arguments into sensible forms.
The user should use permutation()
, which detects the form of the
input and dispatches to as.word()
or 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 shift_cycle()
is a convenience wrapper for
as.cycle(seq_len(n))
; cyc_len()
is a synonym.
It is a very common error (at least, it is for me) to use cycle()
when you meant as.cycle()
.
The print method is sensitive to the value of option
‘print_word_as_cycle
’, documented at print.Rd
.
Function as.matrix.word()
coerces a vector of permutations in word form to
a matrix, each row of which is a word. To get a permutation matrix (that is, a
square matrix of ones and zeros with exactly one entry of 1 in each row and each column),
use perm_matrix()
.
Returns a cycle
object or a word object
Robin K. S. Hankin
word(matrix(1:8,7,8)) # default print method displays cycle form 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),cyc_len))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.