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)

Arguments

d

vector of dimensions; must be same length as cone_type.

cone_type

vector of cone types; must be same length as d, the available types are as follows:

"A":

chamber of type A

"A_red":

chamber of type A, reduced form

"BC":

chamber of type BC

"D":

chamber of type D

"Ap":

polar of chamber of type A

"Ap_red":

polar of chamber of type A, reduced form

"BCp":

polar of chamber of type BC

"Dp":

polar of chamber of type D

product

logical; if TRUE, a representation of the product cone is returned.

Value

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.

Details

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.

See also

weyl_ivols

Package: conivol

Examples

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 -1
weyl_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 2
round(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 2
Ap <- 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 42
t(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