weyl_matrix
computes a matrix representation of the (polars of)
Weyl chambers of finite reflection groups of type A, BC, and D.
weyl_matrix(d, cone_type, product = FALSE)
d | vector of dimensions; must be same length as |
---|---|
cone_type | vector of cone types; must be same length as
|
product | logical; if |
If length(d)==1
or (length(d)>1 & product==TRUE)
then a single matrix will be returned.
If (length(d)>1 & product==FALSE)
then a list of
matrices will be returned.
The dimensions and types are given
in the vectors d
and cone_type
(vectors must be of same lengths,
entries of conetype
must be 'A', 'BC', 'D', 'Ap', 'BCp', or 'Dp').
If the length of the vectors is one, a single matrix is returned; if the
length of the vectors is greater
than one and product==FALSE
, a list of matrices is returned;
if the length of the vectors is greater than one and product==TRUE
,
a single matrix representing the product cone is returned.
Package: conivol
weyl_matrix(5, "BC")#> [,1] [,2] [,3] [,4] [,5] #> [1,] -1 1 0 0 0 #> [2,] 0 -1 1 0 0 #> [3,] 0 0 -1 1 0 #> [4,] 0 0 0 -1 1 #> [5,] 0 0 0 0 -1weyl_matrix(c(5,5), c("BC","Ap"))#> [[1]] #> [,1] [,2] [,3] [,4] [,5] #> [1,] -1 1 0 0 0 #> [2,] 0 -1 1 0 0 #> [3,] 0 0 -1 1 0 #> [4,] 0 0 0 -1 1 #> [5,] 0 0 0 0 -1 #> #> [[2]] #> [,1] [,2] [,3] [,4] [,5] [,6] [,7] #> [1,] -1 1 -5 -4 -3 -2 -1 #> [2,] -1 1 1 -4 -3 -2 -1 #> [3,] -1 1 1 2 -3 -2 -1 #> [4,] -1 1 1 2 3 -2 -1 #> [5,] -1 1 1 2 3 4 -1 #> [6,] -1 1 1 2 3 4 5 #>weyl_matrix(c(5,5), c("BC","Ap"), product = TRUE)#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] #> [1,] -1 1 0 0 0 0 0 0 0 0 0 0 #> [2,] 0 -1 1 0 0 0 0 0 0 0 0 0 #> [3,] 0 0 -1 1 0 0 0 0 0 0 0 0 #> [4,] 0 0 0 -1 1 0 0 0 0 0 0 0 #> [5,] 0 0 0 0 -1 0 0 0 0 0 0 0 #> [6,] 0 0 0 0 0 -1 1 -5 -4 -3 -2 -1 #> [7,] 0 0 0 0 0 -1 1 1 -4 -3 -2 -1 #> [8,] 0 0 0 0 0 -1 1 1 2 -3 -2 -1 #> [9,] 0 0 0 0 0 -1 1 1 2 3 -2 -1 #> [10,] 0 0 0 0 0 -1 1 1 2 3 4 -1 #> [11,] 0 0 0 0 0 -1 1 1 2 3 4 5# testing the reduced cones d <- 6 A <- weyl_matrix(d, "A") A_red <- weyl_matrix(d, "A_red") t(A) %*% A#> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] 2 -1 0 0 0 0 #> [2,] -1 2 -1 0 0 0 #> [3,] 0 -1 2 -1 0 0 #> [4,] 0 0 -1 2 -1 0 #> [5,] 0 0 0 -1 2 -1 #> [6,] 0 0 0 0 -1 2round(t(A_red) %*% A_red, digits=14)#> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] 2 -1 0 0 0 0 #> [2,] -1 2 -1 0 0 0 #> [3,] 0 -1 2 -1 0 0 #> [4,] 0 0 -1 2 -1 0 #> [5,] 0 0 0 -1 2 -1 #> [6,] 0 0 0 0 -1 2Ap <- weyl_matrix(d, "Ap") Ap_red <- weyl_matrix(d, "Ap_red") t(Ap[,-c(1,2)]) %*% Ap[,-c(1,2)]#> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] 42 35 28 21 14 7 #> [2,] 35 70 56 42 28 14 #> [3,] 28 56 84 63 42 21 #> [4,] 21 42 63 84 56 28 #> [5,] 14 28 42 56 70 35 #> [6,] 7 14 21 28 35 42t(Ap_red) %*% Ap_red#> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] 42 35 28 21 14 7 #> [2,] 35 70 56 42 28 14 #> [3,] 28 56 84 63 42 21 #> [4,] 21 42 63 84 56 28 #> [5,] 14 28 42 56 70 35 #> [6,] 7 14 21 28 35 42