Nothing
## ----out.width='20%', out.extra='style="float:right; padding:10px"',echo=FALSE----
knitr::include_graphics(system.file("help/figures/permutations.png", package = "permutations"))
## ----label=setup,include=FALSE------------------------------------------------
library("permutations")
library("magrittr")
## ----label=definea------------------------------------------------------------
a <- as.cycle("(145)(26)")
a
## ----setprintopts-------------------------------------------------------------
options("print_word_as_cycle" = FALSE)
(a <- as.word(a))
## ----showactiveform-----------------------------------------------------------
a_active <- rbind(1:6, as.word(a))
rownames(a_active) <- c("place before move", "place after move")
a_active
## ----printinv-----------------------------------------------------------------
inverse(a)
## ----invpassive---------------------------------------------------------------
a_passive <- rbind(1:6, as.word(inverse(a)))
rownames(a_passive) <- c("place after move", "place before move")
a_passive
## ----coercetoword-------------------------------------------------------------
b <- as.word(c(5, 2, 3, 4, 6, 1))
b
## ----staridiom----------------------------------------------------------------
a * b
## ----operatesasexp------------------------------------------------------------
as.vector(b)[as.vector(a)]
## ----whathappenstoobject------------------------------------------------------
fa <- as.function(a)
fb <- as.function(b)
fb(fa(1))
as.function(a * b)(1) # should match fb(fa(1))
## ----usepipes-----------------------------------------------------------------
1 %>%
fa() %>%
fb() # idiom for fb(fa(1)), should match result above
## ----expresspass--------------------------------------------------------------
a # word form
a_active # matrix form (active); defined above
a_passive # matrix form (passive); defined above
## ----asbefore, echo=TRUE------------------------------------------------------
b_active <- rbind(1:6, as.word(b))
rownames(b_active) <- c("place before move", "place after move")
b_passive <- rbind(1:6, as.word(inverse(b)))
rownames(b_passive) <- c("place after move", "place before move")
## ----showtwo------------------------------------------------------------------
b
b_active
b_passive
## ----showanothertwo-----------------------------------------------------------
a_passive
b_passive
## ----inverseidiom-------------------------------------------------------------
inverse(inverse(b) * inverse(a)) == a * b # both should be TRUE
inverse(b) * inverse(a) == inverse(a * b) # note b precedes a on LHS
## ----geng---------------------------------------------------------------------
g <- as.cycle(c(1, 2, 6))
g
## ----pgperm-------------------------------------------------------------------
pg <- perm_matrix(g)
pg
## ----relabelconv--------------------------------------------------------------
dimnames(pg) <- list(place_before_move = 1:6, place_after_move = 1:6)
pg
## ----hinmatrix----------------------------------------------------------------
h <- as.word(c(1, 3, 4, 5, 2, 6))
h
ph <- perm_matrix(h)
dimnames(ph) <- list(place_before_move = 1:6, place_after_move = 1:6)
ph
## ----ghmatmult----------------------------------------------------------------
pg %*% ph
## ----label=firstactiveverif---------------------------------------------------
pa_active <- perm_matrix(a)
all(solve(pa_active) == t(pa_active))
## ----label=checkmatmulta------------------------------------------------------
pb_active <- perm_matrix(b)
all(perm_matrix(a*b) == pa_active %*% pb_active)
## ----label=secondpassive------------------------------------------------------
pa_passive <- perm_matrix(inverse(a))
pb_passive <- perm_matrix(inverse(b))
all(solve(perm_matrix(a * b)) == pb_passive %*% pa_passive) # note order of ops
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.