Title: | Jack, Zonal, Schur, and Other Symmetric Polynomials |
---|---|
Description: | Schur polynomials appear in combinatorics and zonal polynomials appear in random matrix theory. They are particular cases of Jack polynomials. This package allows to compute these polynomials and other symmetric multivariate polynomials: flagged Schur polynomials, factorial Schur polynomials, t-Schur polynomials, Hall-Littlewood polynomials, Green polynomials, Macdonald polynomials, and modified Macdonald polynomials. In addition, it can compute the Kostka-Jack numbers, the Kostka-Foulkes polynomials, the Kostka-Macdonald polynomials, and the Hall polynomials. Mainly based on Demmel & Koev's paper (2006) <doi:10.1090/S0025-5718-05-01780-1> and Macdonald's book (1995) <doi:10.1093/oso/9780198534891.003.0001>. |
Authors: | Stéphane Laurent [aut, cre] |
Maintainer: | Stéphane Laurent <[email protected]> |
License: | GPL-3 |
Version: | 6.1.0.9001 |
Built: | 2024-10-27 03:19:29 UTC |
Source: | https://github.com/stla/jackr |
Returns a complete symmetric homogeneous polynomial.
cshPolynomial(n, lambda)
cshPolynomial(n, lambda)
n |
integer, the number of variables |
lambda |
an integer partition, given as a vector of decreasing nonnegative integers |
A qspray
object.
library(jack) cshPolynomial(3, c(3, 1))
library(jack) cshPolynomial(3, c(3, 1))
Evaluates an elementary symmetric function.
ESF(x, lambda)
ESF(x, lambda)
x |
a numeric vector or a |
lambda |
an integer partition, given as a vector of decreasing integers |
A number if x
is numeric, a bigq
rational number
if x
is a bigq
vector.
x <- c(1, 2, 5/2) lambda <- c(3, 1) ESF(x, lambda) library(gmp) x <- c(as.bigq(1), as.bigq(2), as.bigq(5,2)) ESF(x, lambda)
x <- c(1, 2, 5/2) lambda <- c(3, 1) ESF(x, lambda) library(gmp) x <- c(as.bigq(1), as.bigq(2), as.bigq(5,2)) ESF(x, lambda)
Returns an elementary symmetric polynomial.
esPolynomial(n, lambda)
esPolynomial(n, lambda)
n |
integer, the number of variables |
lambda |
an integer partition, given as a vector of decreasing nonnegative integers |
A qspray
object.
library(jack) esPolynomial(3, c(3, 1))
library(jack) esPolynomial(3, c(3, 1))
Computes a factorial Schur polynomial.
factorialSchurPol(n, lambda, a)
factorialSchurPol(n, lambda, a)
n |
number of variables |
lambda |
integer partition |
a |
vector of |
A qspray
polynomial.
I.G. Macdonald. Schur functions: theme and variations. Publ. IRMA Strasbourg, 1992.
# for a=c(0, 0, ...), the factorial Schur polynomial is the Schur polynomial n <- 3 lambda <- c(2, 2, 2) a <- c(0, 0, 0, 0) factorialSchurPoly <- factorialSchurPol(n, lambda, a) schurPoly <- SchurPol(n, lambda) factorialSchurPoly == schurPoly # should be TRUE
# for a=c(0, 0, ...), the factorial Schur polynomial is the Schur polynomial n <- 3 lambda <- c(2, 2, 2) a <- c(0, 0, 0, 0) factorialSchurPoly <- factorialSchurPol(n, lambda, a) schurPoly <- SchurPol(n, lambda) factorialSchurPoly == schurPoly # should be TRUE
Computes a flagged Schur polynomial (which is not symmetric in general). See Chains in the Bruhat order for the definition.
flaggedSchurPol(lambda, a, b)
flaggedSchurPol(lambda, a, b)
lambda |
integer partition |
a , b
|
lower bounds and upper bounds, weakly increasing vectors of
integers; |
A qspray
polynomial.
lambda <- c(3, 2, 2) n <- 3 a <- c(1, 1, 1); b <- c(n, n, n) flaggedPoly <- flaggedSchurPol(lambda, a, b) poly <- SchurPol(n, lambda) flaggedPoly == poly # should be TRUE
lambda <- c(3, 2, 2) n <- 3 a <- c(1, 1, 1); b <- c(n, n, n) flaggedPoly <- flaggedSchurPol(lambda, a, b) poly <- SchurPol(n, lambda) flaggedPoly == poly # should be TRUE
Computes a flagged skew Schur polynomial (which is not symmetric in general). See Schur polynomials (flagged) for the definition.
flaggedSkewSchurPol(lambda, mu, a, b)
flaggedSkewSchurPol(lambda, mu, a, b)
lambda , mu
|
integer partitions defining the skew partition:
|
a , b
|
lower bounds and upper bounds, weakly increasing vectors of
integers; |
A qspray
polynomial.
lambda <- c(3, 2, 2); mu <- c(2, 1) n <- 3 a <- c(1, 1, 1); b <- c(n, n, n) flaggedPoly <- flaggedSkewSchurPol(lambda, mu, a, b) poly <- SkewSchurPol(n, lambda, mu) flaggedPoly == poly # should be TRUE
lambda <- c(3, 2, 2); mu <- c(2, 1) n <- 3 a <- c(1, 1, 1); b <- c(n, n, n) flaggedPoly <- flaggedSkewSchurPol(lambda, mu, a, b) poly <- SkewSchurPol(n, lambda, mu) flaggedPoly == poly # should be TRUE
Computes the Green Q-polynomials for a given integer partition.
GreenQpolynomials(rho)
GreenQpolynomials(rho)
rho |
an integer partition |
The Green Q-polynomials, usually denoted by ,
for all integer partitions
of the same weight as the
given integer partition
.
They are returned in a list. Each element of this list is itself a list,
with two elements. The first one, called
lambda
, represents the
partition . The second one, called
polynomial
,
represents the Green Q-polynomial . This is a
univariate
qspray
polynomial whose variable is denoted by
q
.
The names of the list encode the partitions .
The Green Q-polynomials are the "true" Green polynomials.
The Green X-polynomials (GreenXpolynomials
) are a
variant of the Green Q-polynomials.
GreenQpolynomials(c(2, 1))
GreenQpolynomials(c(2, 1))
Computes the Green X-polynomials for a given integer partition.
GreenXpolynomials(rho)
GreenXpolynomials(rho)
rho |
an integer partition |
The Green X-polynomials, usually denoted by ,
for all integer partitions
of the same weight as the
given integer partition
.
They are returned in a list. Each element of this list is itself a list,
with two elements. The first one, called
lambda
, represents the
partition . The second one, called
polynomial
,
represents the Green X-polynomial . This is a
univariate
qspray
polynomial whose variable is denoted by
t
, and all its coefficients are some integers.
The names of the list encode the partitions .
The Green X-polynomials are a variant of the "true" Green polynomials,
that we called the Green Q-polynomials (GreenQpolynomials
).
GreenXpolynomials(c(2, 1))
GreenXpolynomials(c(2, 1))
Hall-Littlewood polynomial of a given partition.
HallLittlewoodPol(n, lambda, which = "P")
HallLittlewoodPol(n, lambda, which = "P")
n |
number of variables |
lambda |
integer partition |
which |
which Hall-Littlewood polynomial, |
The Hall-Littlewood polynomial in n
variables of the
integer partition lambda
. This is a symbolicQspray
polynomial with a unique parameter usually denoted by and
its coefficients are polynomial in this parameter. When substituting
with
in the Hall-Littlewood
-polynomials, one
obtains the Schur polynomials.
Hall polynomials for given
integer partitions
and
.
HallPolynomials(mu, nu)
HallPolynomials(mu, nu)
mu , nu
|
integer partitions |
A list of lists. Each of these lists has two elements: an integer
partition in the field
lambda
, and a univariate
qspray
polynomial in the field polynomial
, the Hall
polynomial . Every coefficient of a
Hall polynomial is an integer.
This function is slow.
HallPolynomials(c(2, 1), c(1, 1))
HallPolynomials(c(2, 1), c(1, 1))
Returns the expression of a symmetric polynomial as a linear combination of some Hall-Littlewood P-polynomials.
HLcombinationP(Qspray, check = TRUE)
HLcombinationP(Qspray, check = TRUE)
Qspray |
a |
check |
Boolean, whether to check the symmetry |
A list defining the linear combination. Each element of this list
is itself a list, with two elements: coeff
, which is a
ratioOfQsprays
, and the second element of this list is
lambda
, an integer partition; then this list
corresponds to the term coeff * HallLittlewoodPol(n, lambda, "P")
of the linear combination, where n
is the number of variables in
the symmetric polynomial Qspray
.
The output list defining the linear combination is named
by some character strings encoding the partitions lambda
.
Returns the expression of a symmetric polynomial as a linear combination of some Hall-Littlewood Q-polynomials.
HLcombinationQ(Qspray, check = TRUE)
HLcombinationQ(Qspray, check = TRUE)
Qspray |
a |
check |
Boolean, whether to check the symmetry |
A list defining the linear combination. Each element of this list
is itself a list, with two elements: coeff
, which is a
ratioOfQsprays
, and the second element of this list is
lambda
, an integer partition; then this list
corresponds to the term coeff * HallLittlewoodPol(n, lambda, "Q")
of the linear combination, where n
is the number of variables in
the symmetric polynomial Qspray
.
The output list defining the linear combination is named
by some character strings representing the partitions lambda
.
Evaluates a Jack polynomial.
Jack(x, lambda, alpha)
Jack(x, lambda, alpha)
x |
values of the variables, either a vector of ordinary numbers,
or a vector of |
lambda |
an integer partition, given as a vector of decreasing integers |
alpha |
an ordinary number, or a rational number given as a string
such as |
The type of the value of this function is determined by the
type of alpha
. If alpha
is a bigq
number or
a rational number given as a string such as "2/3"
or a R
integer such as 2L
, then the value will be a bigq
number.
Otherwise the value will be an ordinary R number.
An ordinary number or a bigq
number; see details.
Jack(c("1", "3/2", "-2/3"), lambda = c(3, 1), alpha = "1/4")
Jack(c("1", "3/2", "-2/3"), lambda = c(3, 1), alpha = "1/4")
Expression of a symmetric polynomial as a linear combination of Jack polynomials.
JackCombination(qspray, alpha, which = "J", check = TRUE)
JackCombination(qspray, alpha, which = "J", check = TRUE)
qspray |
a |
alpha |
Jack parameter, must be coercible to a |
which |
which Jack polynomials, |
check |
Boolean, whether to check the symmetry of |
A list defining the combination. Each element of this list is a
list with two elements: coeff
, which is a bigq
number if
qspray
is a qspray
polynomial or a ratioOfQsprays
if
qspray
is a symbolicQspray
polynomial, and the second
element of the list is lambda
, an integer partition; then this list
corresponds to the term coeff * JackPol(n, lambda, alpha, which)
,
where n
is the number of variables in the symmetric polynomial
qspray
.
Returns a Jack polynomial.
JackPol(n, lambda, alpha, which = "J")
JackPol(n, lambda, alpha, which = "J")
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
alpha |
rational number, given as a string such as
|
which |
which Jack polynomial, |
A qspray
multivariate polynomial.
JackPol(3, lambda = c(3, 1), alpha = "2/5")
JackPol(3, lambda = c(3, 1), alpha = "2/5")
Returns the Jack polynomial.
JackPolR(n, lambda, alpha, algorithm = "DK", basis = "canonical", which = "J")
JackPolR(n, lambda, alpha, algorithm = "DK", basis = "canonical", which = "J")
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
alpha |
parameter of the Jack polynomial, a number, possibly (and
preferably) a |
algorithm |
the algorithm used, either |
basis |
the polynomial basis for |
which |
which Jack polynomial, |
A mvp
multivariate polynomial (see mvp-package),
or a qspray
multivariate polynomial if alpha
is a bigq
rational number and algorithm = "DK"
, or a
character string if basis = "MSF"
.
JackPolR(3, lambda = c(3,1), alpha = gmp::as.bigq(2,3), algorithm = "naive") JackPolR(3, lambda = c(3,1), alpha = 2/3, algorithm = "DK") JackPolR(3, lambda = c(3,1), alpha = gmp::as.bigq(2,3), algorithm = "DK") JackPolR(3, lambda = c(3,1), alpha= gmp::as.bigq(2,3), algorithm = "naive", basis = "MSF") # when the Jack polynomial is a `qspray` object, you can # evaluate it with `qspray::evalQspray`: jack <- JackPolR(3, lambda = c(3, 1), alpha = gmp::as.bigq(2)) evalQspray(jack, c("1", "1/2", "3"))
JackPolR(3, lambda = c(3,1), alpha = gmp::as.bigq(2,3), algorithm = "naive") JackPolR(3, lambda = c(3,1), alpha = 2/3, algorithm = "DK") JackPolR(3, lambda = c(3,1), alpha = gmp::as.bigq(2,3), algorithm = "DK") JackPolR(3, lambda = c(3,1), alpha= gmp::as.bigq(2,3), algorithm = "naive", basis = "MSF") # when the Jack polynomial is a `qspray` object, you can # evaluate it with `qspray::evalQspray`: jack <- JackPolR(3, lambda = c(3, 1), alpha = gmp::as.bigq(2)) evalQspray(jack, c("1", "1/2", "3"))
Evaluates a Jack polynomial.
JackR(x, lambda, alpha, algorithm = "DK")
JackR(x, lambda, alpha, algorithm = "DK")
x |
numeric or complex vector or |
lambda |
an integer partition, given as a vector of decreasing integers |
alpha |
ordinary number or |
algorithm |
the algorithm used, either |
A numeric or complex scalar or a bigq
rational number.
I.G. Macdonald. Symmetric Functions and Hall Polynomials. Oxford Mathematical Monographs. The Clarendon Press Oxford University Press, New York, second edition, 1995.
J. Demmel & P. Koev. Accurate and efficient evaluation of Schur and Jack functions. Mathematics of computations, vol. 75, n. 253, 223-229, 2005.
Jack polynomials. https://www.symmetricfunctions.com/jack.htm
lambda <- c(2,1,1) JackR(c(1/2, 2/3, 1), lambda, alpha = 3) # exact value: JackR(c(gmp::as.bigq(1,2), gmp::as.bigq(2,3), gmp::as.bigq(1)), lambda, alpha = gmp::as.bigq(3))
lambda <- c(2,1,1) JackR(c(1/2, 2/3, 1), lambda, alpha = 3) # exact value: JackR(c(gmp::as.bigq(1,2), gmp::as.bigq(2,3), gmp::as.bigq(1)), lambda, alpha = gmp::as.bigq(3))
Returns the Jack polynomial with a symbolic Jack parameter.
JackSymPol(n, lambda, which = "J")
JackSymPol(n, lambda, which = "J")
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
which |
which Jack polynomial, |
A symbolicQspray
object.
JackSymPol(3, lambda = c(3, 1))
JackSymPol(3, lambda = c(3, 1))
Kostka-Foulkes polynomial for two given partitions.
KostkaFoulkesPolynomial(lambda, mu)
KostkaFoulkesPolynomial(lambda, mu)
lambda , mu
|
integer partitions; in order for the Kostka-Foulkes
polynomial to be non-zero, a necessary condition is that |
The Kostka-Foulkes polynomial associated to lambda
and
mu
. This is a univariate qspray
polynomial whose value
at 1
is the Kostka number associated to lambda
and
mu
.
Kostka numbers with Jack parameter, or Kostka-Jack numbers, for partitions of a given weight and a given Jack parameter.
KostkaJackNumbers(n, alpha = "1")
KostkaJackNumbers(n, alpha = "1")
n |
positive integer, the weight of the partitions |
alpha |
the Jack parameter, a |
The Kostka-Jack number is the
coefficient of the monomial symmetric polynomial
in the
expression of the
-Jack polynomial
as a
linear combination of monomial symmetric polynomials. For
it is the ordinary Kostka number.
The matrix of the Kostka-Jack numbers
given as character strings representing integers or fractions.
The row names of this matrix encode the partitions
and
the column names encode the partitions
KostkaJackNumbersWithGivenLambda
,
symbolicKostkaJackNumbers
,
skewKostkaJackNumbers
.
KostkaJackNumbers(4)
KostkaJackNumbers(4)
Kostka numbers with Jack parameter, or Kostka-Jack numbers
for a given Jack parameter
and a given integer partition
.
KostkaJackNumbersWithGivenLambda(lambda, alpha, output = "vector")
KostkaJackNumbersWithGivenLambda(lambda, alpha, output = "vector")
lambda |
integer partition |
alpha |
the Jack parameter, a |
output |
the format of the output, either |
The Kostka-Jack number is the
coefficient of the monomial symmetric polynomial
in the
expression of the
-Jack polynomial
as a
linear combination of monomial symmetric polynomials. For
it is the ordinary Kostka number.
If output="vector"
, this function returns a named vector.
This vector is made of the non-zero (i.e. positive) Kostka-Jack numbers
given as character strings and its names
encode the partitions
.
If
ouput="list"
, this function returns a list of lists.
Each of these lists has two
elements. The first one is named mu
and is an integer
partition, and the second one is named value
and is a bigq
rational number, the Kostka-Jack number .
KostkaJackNumbers
,
symbolicKostkaJackNumbersWithGivenLambda
.
KostkaJackNumbersWithGivenLambda(c(3, 2), alpha = "2")
KostkaJackNumbersWithGivenLambda(c(3, 2), alpha = "2")
Expression of the product of two Schur polynomials as a linear combination of Schur polynomials.
LRmult(mu, nu, output = "dataframe")
LRmult(mu, nu, output = "dataframe")
mu , nu
|
integer partitions, given as vectors of decreasing integers |
output |
the type of the output, |
This computes the expression of the product of the two Schur
polynomials associated to mu
and nu
as a linear combination
of Schur polynomials. If output="dataframe"
, the output is a
dataframe with two columns: the column coeff
gives the coefficients
of this linear combination, these are positive integers, and the column
lambda
gives the partitions defining the Schur polynomials of this
linear combination as character strings, e.g. the partition
c(4, 3, 1)
is encoded by the character string "[4, 3, 1]"
.
If output="list"
, the output is a list
of lists with two elements. Each of these lists with two elements
corresponds to a term of the linear combination: the first element,
named coeff
, is the coefficient, namely the Littlewood-Richardson
coefficient , where
is the
integer partition given in the second element of the list, named
lambda
, which defines the Schur polynomial of the
linear combination.
library(jack) mu <- c(2, 1) nu <- c(3, 2, 1) LR <- LRmult(mu, nu, output = "list") LRterms <- lapply(LR, function(lr) { lr[["coeff"]] * SchurPol(3, lr[["lambda"]]) }) smu_times_snu <- Reduce(`+`, LRterms) smu_times_snu == SchurPol(3, mu) * SchurPol(3, nu) # should be TRUE
library(jack) mu <- c(2, 1) nu <- c(3, 2, 1) LR <- LRmult(mu, nu, output = "list") LRterms <- lapply(LR, function(lr) { lr[["coeff"]] * SchurPol(3, lr[["lambda"]]) }) smu_times_snu <- Reduce(`+`, LRterms) smu_times_snu == SchurPol(3, mu) * SchurPol(3, nu) # should be TRUE
Expression of a skew Schur polynomial as a linear combination of Schur polynomials.
LRskew(lambda, mu, output = "dataframe")
LRskew(lambda, mu, output = "dataframe")
lambda , mu
|
integer partitions defining the skew partition:
|
output |
the type of the output, |
This computes the expression of the skew Schur polynomial
associated to the skew partition defined by lambda
and mu
as a linear combination of Schur polynomials. Every coefficient of this
linear combination is a positive integer, a so-called
Littlewood-Richardson coefficient.
If output="dataframe"
,
the output is a dataframe with two columns: the column coeff
gives
the coefficients of this linear combination, and the column nu
gives the partitions defining the Schur polynomials of this linear
combination as character strings, e.g. the partition c(4, 3, 1)
is
given by "[4, 3, 1]"
. If output="list"
, the output is a list
of lists with two elements. Each of these lists with two elements
corresponds to a term of the linear combination: the first element, named
coeff
, is the coefficient, namely the Littlewood-Richardson
coefficient , where
is the integer
partition given in the second element of the list, named
nu
, which defines the Schur polynomial of the linear
combination.
library(jack) LRskew(lambda = c(4, 2, 1), mu = c(3, 1))
library(jack) LRskew(lambda = c(4, 2, 1), mu = c(3, 1))
Returns the Macdonald polynomial associated to the given integer partition.
MacdonaldPol(n, lambda, which = "P")
MacdonaldPol(n, lambda, which = "P")
n |
number of variables, a positive integer |
lambda |
integer partition |
which |
which Macdonald polynomial, |
A symbolicQspray
multivariate polynomial, the
Macdonald polynomial associated to the integer partition
lambda
. It has two parameters usually denoted by
and
. Substituting
with
yields the
Hall-Littlewood polynomials.
Returns the modified Macdonald polynomial associated to a given integer partition.
modifiedMacdonaldPol(n, mu)
modifiedMacdonaldPol(n, mu)
n |
number of variables, a positive integer |
mu |
integer partition |
A symbolicQspray
multivariate polynomial, the modified
Macdonald polynomial associated to the integer partition mu
.
It has two parameters and its coefficients are polynomials in these
parameters.
Returns a monomial symmetric polynomial.
msPolynomial(n, lambda)
msPolynomial(n, lambda)
n |
integer, the number of variables |
lambda |
an integer partition, given as a vector of decreasing nonnegative integers |
A qspray
object.
library(jack) msPolynomial(3, c(3, 1))
library(jack) msPolynomial(3, c(3, 1))
Returns a power sum polynomial.
psPolynomial(n, lambda)
psPolynomial(n, lambda)
n |
integer, the number of variables |
lambda |
an integer partition, given as a vector of decreasing positive integers |
A qspray
object.
library(jack) psPolynomial(3, c(3, 1))
library(jack) psPolynomial(3, c(3, 1))
qt-Kostka polynomials, aka Kostka-Macdonald polynomials.
qtKostkaPolynomials(mu)
qtKostkaPolynomials(mu)
mu |
integer partition |
A list. The qt-Kostka polynomials are usually denoted by
where
and
denote the two
variables and
and
are two integer partitions.
One obtains the Kostka-Foulkes polynomials by substituting
with
.
For a given partition
, the function returns the
polynomials
as
qspray
objects
for all partitions of the same weight as
. The
generated list is a list of lists with two elements: the integer
partition
and the polynomial.
Skew qt-Kostka polynomials associated to a given skew partition.
qtSkewKostkaPolynomials(lambda, mu)
qtSkewKostkaPolynomials(lambda, mu)
lambda , mu
|
integer partitions defining the skew partition:
|
A list. The skew qt-Kostka polynomials are usually denoted by
where
and
denote the two
variables,
and
are the two integer partitions
defining the skew partition, and
is an integer partition.
One obtains the skew Kostka-Foulkes polynomials by substituting
with
.
For given partitions
and
, the function returns the
polynomials
as
qspray
objects
for all partitions of the same weight as the skew partition. The
generated list is a list of lists with two elements: the integer
partition
and the polynomial.
Evaluates a Schur polynomial. The Schur polynomials are the
Jack -polynomials with Jack parameter
.
Schur(x, lambda)
Schur(x, lambda)
x |
values of the variables, a vector of |
lambda |
an integer partition, given as a vector of decreasing integers |
A bigq
number.
Schur(c("1", "3/2", "-2/3"), lambda = c(3, 1))
Schur(c("1", "3/2", "-2/3"), lambda = c(3, 1))
Expression of a symmetric polynomial as a linear combination of some Schur polynomials.
SchurCombination(qspray, check = TRUE)
SchurCombination(qspray, check = TRUE)
qspray |
a |
check |
Boolean, whether to check the symmetry of |
A list defining the combination. Each element of this list is a
list with two elements: coeff
, a bigq
number, and
lambda
, an integer partition; then this list corresponds to the
term coeff * SchurPol(n, lambda)
, where n
is the number of
variables in the symmetric polynomial.
Returns a Schur polynomial. The Schur polynomials are the
Jack -polynomials with Jack parameter
.
SchurPol(n, lambda)
SchurPol(n, lambda)
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
A qspray
multivariate polynomial.
( schur <- SchurPol(3, lambda = c(3, 1)) ) schur == JackPol(3, lambda = c(3, 1), alpha = "1", which = "P")
( schur <- SchurPol(3, lambda = c(3, 1)) ) schur == JackPol(3, lambda = c(3, 1), alpha = "1", which = "P")
Returns the Schur polynomial.
SchurPolR(n, lambda, algorithm = "DK", basis = "canonical", exact = TRUE)
SchurPolR(n, lambda, algorithm = "DK", basis = "canonical", exact = TRUE)
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
algorithm |
the algorithm used, either |
basis |
the polynomial basis for |
exact |
logical, whether to use exact arithmetic |
A mvp
multivariate polynomial (see mvp-package),
or a qspray
multivariate polynomial if
exact = TRUE
and algorithm = "DK"
, or a
character string if basis = "MSF"
.
SchurPolR(3, lambda = c(3,1), algorithm = "naive") SchurPolR(3, lambda = c(3,1), algorithm = "DK") SchurPolR(3, lambda = c(3,1), algorithm = "DK", exact = FALSE) SchurPolR(3, lambda = c(3,1), algorithm = "naive", basis = "MSF")
SchurPolR(3, lambda = c(3,1), algorithm = "naive") SchurPolR(3, lambda = c(3,1), algorithm = "DK") SchurPolR(3, lambda = c(3,1), algorithm = "DK", exact = FALSE) SchurPolR(3, lambda = c(3,1), algorithm = "naive", basis = "MSF")
Evaluates a Schur polynomial.
SchurR(x, lambda, algorithm = "DK")
SchurR(x, lambda, algorithm = "DK")
x |
numeric or complex vector or bigq vector |
lambda |
an integer partition, given as a vector of decreasing integers |
algorithm |
the algorithm used, either |
A numeric or complex scalar or a bigq
rational number.
J. Demmel & P. Koev. Accurate and efficient evaluation of Schur and Jack functions. Mathematics of computations, vol. 75, n. 253, 223-229, 2005.
x <- c(2,3,4) SchurR(x, c(2,1,1)) prod(x) * sum(x)
x <- c(2,3,4) SchurR(x, c(2,1,1)) prod(x) * sum(x)
Computes the skew factorial Schur polynomial associated to a given skew partition.
SkewFactorialSchurPol(n, lambda, mu, a, i0)
SkewFactorialSchurPol(n, lambda, mu, a, i0)
n |
number of variables |
lambda , mu
|
integer partitions defining the skew partition:
|
a |
vector of |
i0 |
positive integer, the index of |
A qspray
polynomial.
I.G. Macdonald. Schur functions: theme and variations. Publ. IRMA Strasbourg, 1992.
# for a=c(0, 0, ...), the skew factorial Schur polynomial is the # skew Schur polynomial; let's check n <- 4 lambda <- c(3, 3, 2, 2); mu <- c(2, 2) a <- rep(0, 9) i0 <- 3 skewFactorialSchurPoly <- SkewFactorialSchurPol(n, lambda, mu, a, i0) skewSchurPoly <- SkewSchurPol(n, lambda, mu) skewFactorialSchurPoly == skewSchurPoly # should be TRUE
# for a=c(0, 0, ...), the skew factorial Schur polynomial is the # skew Schur polynomial; let's check n <- 4 lambda <- c(3, 3, 2, 2); mu <- c(2, 2) a <- rep(0, 9) i0 <- 3 skewFactorialSchurPoly <- SkewFactorialSchurPol(n, lambda, mu, a, i0) skewSchurPoly <- SkewSchurPol(n, lambda, mu) skewFactorialSchurPoly == skewSchurPoly # should be TRUE
Returns the skew Hall-Littlewood polynomial associated to the given skew partition.
SkewHallLittlewoodPol(n, lambda, mu, which = "P")
SkewHallLittlewoodPol(n, lambda, mu, which = "P")
n |
number of variables, a positive integer |
lambda , mu
|
integer partitions defining the skew partition:
|
which |
which skew Hall-Littlewood polynomial, |
A symbolicQspray
multivariate polynomial, the skew
Hall-Littlewood polynomial associated to the skew partition defined by
lambda
and mu
. It has a single parameter usually denoted
by and its coefficients are polynomial in this parameter.
When substituting
with
in the skew Hall-Littlewood
-polynomials, one obtains the skew Schur polynomials.
n <- 3; lambda <- c(3, 2, 1); mu <- c(1, 1) skewHLpoly <- SkewHallLittlewoodPol(n, lambda, mu) skewSchurPoly <- SkewSchurPol(n, lambda, mu) substituteParameters(skewHLpoly, 0) == skewSchurPoly # should be TRUE
n <- 3; lambda <- c(3, 2, 1); mu <- c(1, 1) skewHLpoly <- SkewHallLittlewoodPol(n, lambda, mu) skewSchurPoly <- SkewSchurPol(n, lambda, mu) substituteParameters(skewHLpoly, 0) == skewSchurPoly # should be TRUE
Computes a skew Jack polynomial with a given Jack parameter.
SkewJackPol(n, lambda, mu, alpha, which = "J")
SkewJackPol(n, lambda, mu, alpha, which = "J")
n |
positive integer, the number of variables |
lambda |
outer integer partition of the skew partition |
mu |
inner integer partition of the skew partition; it must be a
subpartition of |
alpha |
the Jack parameter, any object coercible to a |
which |
which skew Jack polynomial, |
A qspray
polynomial.
SkewJackPol(3, c(3,1), c(2), "2")
SkewJackPol(3, c(3,1), c(2), "2")
Computes a skew Jack polynomial with a symbolic Jack parameter.
SkewJackSymPol(n, lambda, mu, which = "J")
SkewJackSymPol(n, lambda, mu, which = "J")
n |
positive integer, the number of variables |
lambda |
outer integer partition of the skew partition |
mu |
inner integer partition of the skew partition; it must be a
subpartition of |
which |
which skew Jack polynomial, |
A symbolicQspray
polynomial.
SkewJackSymPol(3, c(3,1), c(2))
SkewJackSymPol(3, c(3,1), c(2))
Computes a skew Kostka-Foulkes polynomial.
SkewKostkaFoulkesPolynomial(lambda, mu, nu)
SkewKostkaFoulkesPolynomial(lambda, mu, nu)
lambda , mu
|
integer partitions defining the skew partition:
|
nu |
integer partition; the condition
|
The skew Kostka-Foulkes polynomial associated to the skew
partitiion defined by lambda
and mu
and to the partition
nu
. This is a univariate qspray
polynomial whose value
at 1
is the skew Kostka number associated to the skew partition
defined by lambda
and mu
and to the partition nu
.
Skew Kostka-Jack numbers associated to a given skew partition and a given Jack parameter.
skewKostkaJackNumbers(lambda, mu, alpha = NULL, output = "vector")
skewKostkaJackNumbers(lambda, mu, alpha = NULL, output = "vector")
lambda , mu
|
integer partitions defining the skew partition:
|
alpha |
the Jack parameter, a |
output |
the format of the output, either |
The skew Kostka-Jack number is
the coefficient of the monomial symmetric polynomial
in the
expression of the skew
-Jack polynomial
as a linear combination of monomial
symmetric polynomials. For
it is the ordinary skew Kostka
number.
If output="vector"
, the function returns a named vector.
This vector is made of the non-zero skew Kostka-Jack numbers
given as character strings and its names
encode the partitions
.
If
ouput="list"
, the function returns a list. Each element of this
list is a named list with two elements: an integer partition
in the field named
"nu"
, and the corresponding skew Kostka-Jack
number in the field named
"value"
.
Only the non-null skew Kostka-Jack numbers are provided by this list.
The skew Kostka-Jack numbers are
well defined when the Jack parameter
is zero, however this
function does not work with
alpha=0
. A possible way to get the
skew Kostka-Jack numbers is to use the
function
symbolicSkewKostkaJackNumbers
to get the skew
Kostka-Jack numbers with a symbolic Jack parameter , and then
to substitute
with
.
symbolicSkewKostkaJackNumbers
.
skewKostkaJackNumbers(c(4,2,2), c(2,2))
skewKostkaJackNumbers(c(4,2,2), c(2,2))
Returns the skew Macdonald polynomial associated to the given skew partition.
SkewMacdonaldPol(n, lambda, mu, which = "P")
SkewMacdonaldPol(n, lambda, mu, which = "P")
n |
number of variables, a positive integer |
lambda , mu
|
integer partitions defining the skew partition:
|
which |
which skew Macdonald polynomial, |
A symbolicQspray
multivariate polynomial, the skew
Macdonald polynomial associated to the skew partition defined by
lambda
and mu
. It has two parameters usually
denoted by and
. Substituting
with
yields the skew Hall-Littlewood polynomials.
Returns the skew Schur polynomial.
SkewSchurPol(n, lambda, mu)
SkewSchurPol(n, lambda, mu)
n |
number of variables, a positive integer |
lambda , mu
|
integer partitions defining the skew partition:
|
The computation is performed with the help of the
Littlewood-Richardson rule (see LRskew
).
A qspray
multivariate polynomial, the skew Schur polynomial
associated to the skew partition defined by lambda
and mu
.
SkewSchurPol(3, lambda = c(3, 2, 1), mu = c(1, 1))
SkewSchurPol(3, lambda = c(3, 2, 1), mu = c(1, 1))
Expression of a symmetric polynomial as a linear combination of Jack polynomials with a symbolic Jack parameter.
symbolicJackCombination(qspray, which = "J", check = TRUE)
symbolicJackCombination(qspray, which = "J", check = TRUE)
qspray |
a |
which |
which Jack polynomials, |
check |
Boolean, whether to check the symmetry |
A list defining the combination. Each element of this list is a
list with two elements: coeff
, a bigq
number, and
lambda
, an integer partition; then this list corresponds to the
term coeff * JackSymPol(n, lambda, which)
, where n
is
the number of variables in the symmetric polynomial.
Kostka-Jack numbers with a symbolic Jack parameter for integer partitions of a given weight.
symbolicKostkaJackNumbers(n)
symbolicKostkaJackNumbers(n)
n |
positive integer, the weight of the partitions |
A named list of named lists of ratioOfQsprays
objects.
Denoting the Kostka-Jack numbers by , the
names of the outer list correspond to the partitions
, and
the names of the inner lists correspond to the partitions
.
KostkaJackNumbers
,
symbolicKostkaJackNumbersWithGivenLambda
.
symbolicKostkaJackNumbers(3)
symbolicKostkaJackNumbers(3)
Kostka-Jack numbers with a
symbolic Jack parameter
for a given
integer partition
.
symbolicKostkaJackNumbersWithGivenLambda(lambda)
symbolicKostkaJackNumbersWithGivenLambda(lambda)
lambda |
integer partition |
A named list of ratioOfQsprays
objects. The elements of this
list are the Kostka-Jack numbers and
its names correspond to the partitions
.
KostkaJackNumbersWithGivenLambda
,
symbolicKostkaJackNumbers
.
symbolicKostkaJackNumbersWithGivenLambda(c(3, 1))
symbolicKostkaJackNumbersWithGivenLambda(c(3, 1))
Skew Kostka-Jack numbers associated to a given skew partition with a symbolic Jack parameter.
symbolicSkewKostkaJackNumbers(lambda, mu)
symbolicSkewKostkaJackNumbers(lambda, mu)
lambda , mu
|
integer partitions defining the skew partition:
|
The function returns a list. Each element of this
list is a named list with two elements: an integer partition
in the field named
"nu"
, and the corresponding skew Kostka number
in the field named
"value"
, a
ratioOfQsprays
object.
symbolicSkewKostkaJackNumbers(c(4,2,2), c(2,2))
symbolicSkewKostkaJackNumbers(c(4,2,2), c(2,2))
Returns the t-Schur polynomial associated to the given partition.
tSchurPol(n, lambda)
tSchurPol(n, lambda)
n |
number of variables, a positive integer |
lambda |
integer partition |
A symbolicQspray
multivariate polynomial, the
t-Schur polynomial associated to lambda
.
It has a single parameter usually denoted by and its
coefficients are polynomials in this parameter. Substituting
with
yields the Schur polynomials.
The name "t-Schur polynomial" is taken from Wheeler and Zinn-Justin's paper Hall polynomials, inverse Kostka polynomials and puzzles.
Returns the skew t-Schur polynomial associated to the given skew partition.
tSkewSchurPol(n, lambda, mu)
tSkewSchurPol(n, lambda, mu)
n |
number of variables, a positive integer |
lambda , mu
|
integer partitions defining the skew partition:
|
A symbolicQspray
multivariate polynomial, the skew
t-Schur polynomial associated to the skew partition defined by
lambda
and mu
.
It has a single parameter usually denoted by and its
coefficients are polynomials in this parameter. Substituting
with
yields the skew Schur polynomials.
Evaluates a zonal polynomial. The zonal polynomials are the
Jack -polynomials with Jack parameter
.
Zonal(x, lambda)
Zonal(x, lambda)
x |
values of the variables, a vector of |
lambda |
an integer partition, given as a vector of decreasing integers |
A bigq
number.
Zonal(c("1", "3/2", "-2/3"), lambda = c(3, 1))
Zonal(c("1", "3/2", "-2/3"), lambda = c(3, 1))
Returns a zonal polynomial. The zonal polynomials are the
Jack -polynomials with Jack parameter
.
ZonalPol(n, lambda)
ZonalPol(n, lambda)
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
A qspray
multivariate polynomial.
( zonal <- ZonalPol(3, lambda = c(3, 1)) ) zonal == JackPol(3, lambda = c(3, 1), alpha = "2", which = "C")
( zonal <- ZonalPol(3, lambda = c(3, 1)) ) zonal == JackPol(3, lambda = c(3, 1), alpha = "2", which = "C")
Returns the zonal polynomial.
ZonalPolR(n, lambda, algorithm = "DK", basis = "canonical", exact = TRUE)
ZonalPolR(n, lambda, algorithm = "DK", basis = "canonical", exact = TRUE)
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
algorithm |
the algorithm used, either |
basis |
the polynomial basis for |
exact |
logical, whether to get rational coefficients |
A mvp
multivariate polynomial (see mvp-package),
or a qspray
multivariate polynomial if
exact = TRUE
and algorithm = "DK"
, or a
character string if basis = "MSF"
.
ZonalPolR(3, lambda = c(3,1), algorithm = "naive") ZonalPolR(3, lambda = c(3,1), algorithm = "DK") ZonalPolR(3, lambda = c(3,1), algorithm = "DK", exact = FALSE) ZonalPolR(3, lambda = c(3,1), algorithm = "naive", basis = "MSF")
ZonalPolR(3, lambda = c(3,1), algorithm = "naive") ZonalPolR(3, lambda = c(3,1), algorithm = "DK") ZonalPolR(3, lambda = c(3,1), algorithm = "DK", exact = FALSE) ZonalPolR(3, lambda = c(3,1), algorithm = "naive", basis = "MSF")
Evaluates a zonal quaternionic polynomial. The quaternionic
zonal polynomials are the Jack -polynomials with Jack
parameter
.
ZonalQ(x, lambda)
ZonalQ(x, lambda)
x |
values of the variables, a vector of |
lambda |
an integer partition, given as a vector of decreasing integers |
A bigq
number.
ZonalQ(c("1", "3/2", "-2/3"), lambda = c(3, 1))
ZonalQ(c("1", "3/2", "-2/3"), lambda = c(3, 1))
Returns a quaternionic zonal polynomial. The quaternionic
zonal polynomials are the Jack -polynomials with Jack
parameter
.
ZonalQPol(n, lambda)
ZonalQPol(n, lambda)
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
A qspray
multivariate polynomial.
( zonalQ <- ZonalQPol(3, lambda = c(3, 1)) ) zonalQ == JackPol(3, lambda = c(3, 1), alpha = "1/2", which = "C")
( zonalQ <- ZonalQPol(3, lambda = c(3, 1)) ) zonalQ == JackPol(3, lambda = c(3, 1), alpha = "1/2", which = "C")
Returns the quaternionic (or symplectic) zonal polynomial.
ZonalQPolR(n, lambda, algorithm = "DK", basis = "canonical", exact = TRUE)
ZonalQPolR(n, lambda, algorithm = "DK", basis = "canonical", exact = TRUE)
n |
number of variables, a positive integer |
lambda |
an integer partition, given as a vector of decreasing integers |
algorithm |
the algorithm used, either |
basis |
the polynomial basis for |
exact |
logical, whether to get rational coefficients |
A mvp
multivariate polynomial (see mvp-package),
or a qspray
multivariate polynomial if
exact = TRUE
and algorithm = "DK"
, or a
character string if basis = "MSF"
.
ZonalQPolR(3, lambda = c(3,1), algorithm = "naive") ZonalQPolR(3, lambda = c(3,1), algorithm = "DK") ZonalQPolR(3, lambda = c(3,1), algorithm = "DK", exact = FALSE) ZonalQPolR(3, lambda = c(3,1), algorithm = "naive", basis = "MSF")
ZonalQPolR(3, lambda = c(3,1), algorithm = "naive") ZonalQPolR(3, lambda = c(3,1), algorithm = "DK") ZonalQPolR(3, lambda = c(3,1), algorithm = "DK", exact = FALSE) ZonalQPolR(3, lambda = c(3,1), algorithm = "naive", basis = "MSF")
Evaluates a quaternionic (or symplectic) zonal polynomial.
ZonalQR(x, lambda, algorithm = "DK")
ZonalQR(x, lambda, algorithm = "DK")
x |
numeric or complex vector or bigq vector |
lambda |
an integer partition, given as a vector of decreasing integers |
algorithm |
the algorithm used, either |
A numeric or complex scalar or a bigq
rational number.
F. Li, Y. Xue. Zonal polynomials and hypergeometric functions of quaternion matrix argument. Comm. Statist. Theory Methods, 38 (8), 1184-1206, 2009
lambda <- c(2,2) ZonalQR(c(3,1), lambda) ZonalQR(c(gmp::as.bigq(3),gmp::as.bigq(1)), lambda) ## x <- c(3,1) ZonalQR(x, c(1,1)) + ZonalQR(x, 2) # sum(x)^2 ZonalQR(x, 3) + ZonalQR(x, c(2,1)) + ZonalQR(x, c(1,1,1)) # sum(x)^3
lambda <- c(2,2) ZonalQR(c(3,1), lambda) ZonalQR(c(gmp::as.bigq(3),gmp::as.bigq(1)), lambda) ## x <- c(3,1) ZonalQR(x, c(1,1)) + ZonalQR(x, 2) # sum(x)^2 ZonalQR(x, 3) + ZonalQR(x, c(2,1)) + ZonalQR(x, c(1,1,1)) # sum(x)^3
Evaluates a zonal polynomial.
ZonalR(x, lambda, algorithm = "DK")
ZonalR(x, lambda, algorithm = "DK")
x |
numeric or complex vector or bigq vector |
lambda |
an integer partition, given as a vector of decreasing integers |
algorithm |
the algorithm used, either |
A numeric or complex scalar or a bigq
rational number.
Robb Muirhead. Aspects of multivariate statistical theory. Wiley series in probability and mathematical statistics. Probability and mathematical statistics. John Wiley & Sons, New York, 1982.
Akimichi Takemura. Zonal Polynomials, volume 4 of Institute of Mathematical Statistics Lecture Notes – Monograph Series. Institute of Mathematical Statistics, Hayward, CA, 1984.
Lin Jiu & Christoph Koutschan. Calculation and Properties of Zonal Polynomials. http://koutschan.de/data/zonal/
lambda <- c(2,2) ZonalR(c(1,1), lambda) ZonalR(c(gmp::as.bigq(1),gmp::as.bigq(1)), lambda) ## x <- c(3,1) ZonalR(x, c(1,1)) + ZonalR(x, 2) # sum(x)^2 ZonalR(x, 3) + ZonalR(x, c(2,1)) + ZonalR(x, c(1,1,1)) # sum(x)^3
lambda <- c(2,2) ZonalR(c(1,1), lambda) ZonalR(c(gmp::as.bigq(1),gmp::as.bigq(1)), lambda) ## x <- c(3,1) ZonalR(x, c(1,1)) + ZonalR(x, 2) # sum(x)^2 ZonalR(x, 3) + ZonalR(x, c(2,1)) + ZonalR(x, c(1,1,1)) # sum(x)^3