library(HypergeoMat)
Let \((a_1, \ldots, a_p)\) and \((b_1, \ldots, b_q)\) be two vectors of real or complex numbers, possibly empty, \(\alpha > 0\) and \(X\) a real symmetric or a complex Hermitian matrix. The corresponding hypergeometric function of a matrix argument is defined by \[ {}_pF_q^{(\alpha)} \left(\begin{matrix} a_1, \ldots, a_p \\ b_1, \ldots, b_q\end{matrix}; X\right) = \sum_{k=0}^\infty\sum_{\kappa \vdash k} \frac{{(a_1)}_\kappa^{(\alpha)} \cdots {(a_p)}_\kappa^{(\alpha)}} {{(b_1)}_\kappa^{(\alpha)} \cdots {(b_q)}_\kappa^{(\alpha)}} \frac{C_\kappa^{(\alpha)}(X)}{k!}. \] The inner sum is over the integer partitions \(\kappa\) of \(k\) (which we also denote by \(|\kappa| = k\)). The symbol \({(\cdot)}_\kappa^{(\alpha)}\) is the generalized Pochhammer symbol, defined by \[ {(c)}_\kappa^{(\alpha)} = \prod_{i=1}^\ell\prod_{j=1}^{\kappa_i} \left(c - \frac{i-1}{\alpha} + j-1\right) \] when \(\kappa = (\kappa_1, \ldots, \kappa_\ell)\). Finally, \(C_\kappa^{(\alpha)}\) is a Jack function. Given an integer partition \(\kappa\) and \(\alpha > 0\), and a real symmetric or complex Hermitian matrix \(X\) of order \(n\), the Jack function \[ C_\kappa^{(\alpha)}(X) = C_\kappa^{(\alpha)}(x_1, \ldots, x_n) \] is a symmetric homogeneous polynomial of degree \(|\kappa|\) in the eigenvalues \(x_1\), \(\ldots\), \(x_n\) of \(X\).
The series defining the hypergeometric function does not always converge. See the references for a discussion about the convergence.
The inner sum in the definition of the hypergeometric function is over all partitions \(\kappa \vdash k\) but actually \(C_\kappa^{(\alpha)}(X) = 0\) when \(\ell(\kappa)\), the number of non-zero entries of \(\kappa\), is strictly greater than \(n\).
For \(\alpha=1\), \(C_\kappa^{(\alpha)}\) is a Schur
polynomial and it is a zonal polynomial for \(\alpha = 2\). In random matrix theory, the
hypergeometric function appears for \(\alpha=2\) and \(\alpha\) is omitted from the notation,
implicitely assumed to be \(2\). This
is the default value of \(\alpha\) in
the HypergeoMat
package.
Koev and Eldeman (2006) provided an efficient algorithm for the evaluation of the truncated series \[ {{}_{p\!\!\!\!\!}}^m\! F_q^{(\alpha)} \left(\begin{matrix} a_1, \ldots, a_p \\ b_1, \ldots, b_q\end{matrix}; X\right) = \sum_{k=0}^m\sum_{\kappa \vdash k} \frac{{(a_1)}_\kappa^{(\alpha)} \cdots {(a_p)}_\kappa^{(\alpha)}} {{(b_1)}_\kappa^{(\alpha)} \cdots {(b_q)}_\kappa^{(\alpha)}} \frac{C_\kappa^{(\alpha)}(X)}{k!}. \]
In the HypergeoMat
package, \(m\) is called the truncation weight of
the summation (because \(|\kappa|\) is called the weight of \(\kappa\)), the vector \((a_1, \ldots, a_p)\) is called the vector
of upper parameters while the vector \((b_1, \ldots, b_q)\) is called the vector
of lower parameters. The user can enter either the matrix \(X\) or the vector \((x_1, \ldots, x_n)\) of the eigenvalues of
\(X\).
For example, to compute \[ {{}_{2\!\!\!\!\!}}^{15}\! F_3^{(2)} \left(\begin{matrix} 3, 4 \\ 5, 6, 7\end{matrix}; \begin{pmatrix} 0.1 && 0.4 \\ 0.4 && 0.1 \end{pmatrix}\right) \] you have to enter (recall that \(\alpha=2\) is the default value)
hypergeomPFQ(m = 15, a = c(3,4), b = c(5,6,7), x = cbind(c(0.1,0.4),c(0.4,0.1)))
#> [1] 1.011526
We said that the hypergeometric function is defined for a real
symmetric matrix or a complex Hermitian matrix \(X\). However we do not impose this
restriction in the HypergeoMat
package. The user can enter
any real or complex square matrix, or a real or complex vector of
eigenvalues.
Plamen Koev and Alan Edelman. The Efficient Evaluation of the Hypergeometric Function of a Matrix Argument. Mathematics of Computation, 75, 833-846, 2006.
Robb Muirhead. Aspects of multivariate statistical theory. Wiley series in probability and mathematical statistics. Probability and mathematical statistics. John Wiley & Sons, New York, 1982.
A. K. Gupta and D. K. Nagar. Matrix variate distributions. Chapman and Hall, 1999.