Documentation for the Random Matrix Library Øyvind Ryan September 25, 2009 This is the official documentation for the Random Matrix Library. The library contains functionality for computing the asymptotic and exact moments for many types of random matrices, such as Gaussian, Vandermonde, Hankel, Toeplitz, and Wishart matrices. The library also contains functionality for summing or multiplying such matrices with deterministic matrices, or similarly combining the matrices with other matrices of the same type, independent from it. Second order results are also included where applicable, i.e. expressions for covariances of traces are supported. Also, channel capacity estimation involving the mentioned matrices is supported. In the following, many formulas span across several lines, containing many terms. In such cases, one term is written for each line in order to avoid overflow on each line. Authors should change the formulas manually so that the full page width is utilized. The functions described here can be naturally split into several classes: Functions which generate latex code for the formulas in question. All these functions have names starting with latex. Functions which perfom numeric computations of the moments. All these functions have names starting with numeric. Some of the numeric routines perform convolution, some perform deconvolution. Those performing deconvolution end with deconv. The library also contains many functions not described here, but necessary in executing the functions described here. Only the functions described in this document should be considered public. 1 Moments involving finite Gaussian matrices 1.1 Product of a deterministic matrix and a Wishart matrix 1
thisfile=fopen( exfinitemultwishart.tex, w ); latexfinitemultwishart(4,thisfile); Produces the moments M p = E [ tr (( D 1 N XXH) p)] from the moments Dp = tr (D p ), where X is n N complex, standard, Gaussian, and D is n n. The output is stored in the file exfinitemultwishart.tex, and looks like this: M 1 = D 1 M 2 = D 2 M 3 = M 4 = +cd1 2 ( 1 + 1 N 2 +3cD 2 D 1 +c 2 D1 3 ( 1 + 5 N ( 2 + 2c + + ) D 3 ) D 4 c ) N 2 ( 4c + 4c N 2 D 2 2 ) D 3 D 1 +6c 2 D 2 D 2 1 +c 3 D 4 1 Here, c = n N. The corresponding numeric function is moms=numericfinitemultwishart(dmoms,n,n) where dmoms are the moments D p, moms are the moments M p. The corresponding numeric function for performing deconvolution is dmoms=numericfinitemultwishartdeconv(moms,n,n) 1.2 Product of a deterministic matrix and many independent Wishart matrices The numeric function moms=numericfinitemultwishartn(dmoms,n,nvector) computes the moments [ M p = E tr (( D 1 N 1 X 1 X H 1 1 N 2 X 2 X H 2 ) p )] 1 X k X H k N k 2
from the moments D p = tr(d p ) when D is n n and determinsitic, and X 1, X 2, X 3,..., X k are independent complex standard Gaussian n N 1, n,..., n N k, and where Nvector= [N 1 N 2 N 3 ], and k is the length of Nvector. 1.3 Product of a square deterministic matrix and a selfadjoint Gaussian matrix thisfile=fopen( exfinitemultgaussiansa.tex, w ); latexfinitemultgaussiansa(4,thisfile); Produces the moments M p [ (( = E tr 1 N DX ) p )] from the moments D p = tr (D p ), where X is N N selfadjoint, standard, Gaussian, and D is N N. The output is stored in the file exfinitemultgaussiansa.tex, and looks like 3
this: M 2 = 1 2 D2 1 M 4 = 1 4 N 2 D 4 + 1 2 D 2D 2 1 M 6 = 1 8 N 2 D 2 3 + 3 8 N 2 D 4 D 2 + 3 4 N 2 D 5 D 1 + 3 8 D2 2D 2 1 + 1 4 D 3D 3 1 M 8 = 21 16 N 4 D 8 + 1 4 N 2 D 2 3D 2 + 3 8 N 2 D 4 D 2 2 +N 2 D 4 D 3 D 1 + 3 2 N 2 D 5 D 2 D 1 + 5 4 N 2 D 6 D 2 1 + 1 4 D3 2D 2 1 + 1 2 D 3D 2 D 3 1 + 1 8 D 4D 4 1 The corresponding numeric function is moms=numericfinitemultgaussiansa(dmoms,n) where dmoms are the moments D p, moms are the moments M p. Deconvolution is impossible in this case (unless it is assumed also that the odd moments of D vanish), so there is no corresponding function for it. 4
1.4 Product of a square deterministic matrix and many independent selfadjoint Gaussian matrices The numeric function moms=numericfinitemultgaussiansan(dmoms,n,k) computes the moments M p = E [ (( tr D 1 1 X 1 X 2 1 ) p )] N N N X k from the moments D p = tr(d p ) when D is N N and determinsitic, and X 1, X 2, X 3,..., X k are independent selfadjoint standard Gaussian N N matrices. 1.5 Sum of a deterministic matrix and a Gaussian matrix thisfile=fopen( exfiniteaddgaussian.tex, w ); latexfiniteaddgaussian(4,thisfile); Produces the moments M p = E [ tr (( 1 N (D + X)(D + X)H) p)] from the moments D p = tr (( 1 N DDH) p), where X is n N complex, standard, Gaussian, and D is n N The output is stored in the file exfiniteaddgaussian.tex, and 5
looks like this: M 1 = D 1 +1 M 2 = D 2 + (2 + 2c) D 1 + (1 + c) M 3 = D 3 + (3 + 3c) D 2 +3cD1 2 ( + 3 + 9c + 3c 2 + 3 ) N ( 2 + 1 + 3c + c 2 + 1 ) N 2 M 4 = D 4 + (4 + 4c) D 3 D 1 +8cD 2 D ( 1 + 6 + 16c + 6c 2 + 16 ) N 2 D 2 + ( 14c + 14c 2) D1 2 ( ) + 4 + 24c + 24c 2 + 4c 3 20 + 20c + N 2 D 1 ( + 1 + 6c + 6c 2 + c 3 + 5 + 5c ) N 2 Here, c = n N. The corresponding numeric function is moms=numericfiniteaddgaussian(dmoms,n,n,sigma) where dmoms are the moments D p, moms are the moments M p. The parameter sigma represents noise variance, and is optional. If present, the moments of M p = E [ tr (( 1 N (D + σx)(d + σx)h) p)] are computed. If sigma is not present, sigma=1 as above is assumed. The corresponding numeric function for performing deconvolution is dmoms=numericfiniteaddgaussiandeconv(moms,n,n,sigma) sigma is optional in the same way as for numeric convolution. Note that the noise variance is dropped in the latex expression above, since it can be applied outside the actual deconvolution step through an additional rescaling of the moments. 6
1.6 Sum of a square deterministic matrix and a selfadjoint Gaussian matrix thisfile=fopen( exfiniteaddgaussiansa.tex, w ); latexfiniteaddgaussiansa(4,thisfile); [ (( ) p )] 1 Produces the moments M p = E tr N (D + X) from the moments D p = (( ) p ) 1 tr N D, where X is N N selfadjoint, standard, Gaussian, and D is N N and deterministic. The output is stored in the file exfiniteaddgaussiansa.tex, and looks like this: M 1 = D 1 M 2 = D 2 + 1 2 M 3 = D 3 + 3 2 D 1 M 4 = D 4 +2D 2 +D 2 1 + ( 1 2 + 1 ) 4 N 2 The corresponding numeric function is moms=numericfiniteaddgaussiansa(dmoms,n) where dmoms are the moments D p, moms are the moments M p. The corresponding numeric function for performing deconvolution is dmoms=numericfiniteaddgaussiandeconvsa(moms,n) 1.7 The combination 1 N X 1 DX 2 + X of independent Gaussian matrices thisfile=fopen( exfiniteaddgaussian3.tex, w ); latexfiniteaddgaussian3(4,thisfile); 7
Produces the moments [ (( 1 M p = E tr M ( 1 X 1 DX 2 + X)( 1 ) p )] X 1 DX 2 + X) H N N from the moments D p = tr (( DD H) p), where X is N M complex, standard, Gaussian, X 1 is N K complex, standard, Gaussian, X 2 is K M complex, standard, Gaussian, X, X 1, X 2 are independent, and D is K K and deterministic. The output is stored in the file exfiniteaddgaussian3.tex, and looks like this: M 1 = N 1 KD 1 +1 M 2 = ( N 2 M 1 K + N 1 K ) D 2 + ( N 2 K 2 + N 1 M 1 K 2) D 2 1 + ( 2N 1 K + 2M 1 K ) D 1 + ( 1 + NM 1) M 3 = ( 3N 3 M 2 K + N 3 K + 6N 2 M 1 K + N 1 M 2 K + N 1 K ) D 3 + ( 6N 3 M 1 K 2 + 6N 2 M 2 K 2 + 3N 2 K 2 + 3N 1 M 1 K 2) D 2 D 1 + ( N 3 M 2 K 3 + N 3 K 3 + 3N 2 M 1 K 3 + N 1 M 2 K 3) D 3 1 + ( 6N 2 M 1 K + 6N 1 M 2 K + 3N 1 K + 3M 1 K ) D 2 + ( 3N 2 M 2 K 2 + 3N 2 K 2 + 9N 1 M 1 K 2 + 3M 2 K 2) D 2 1 + ( 3N 1 M 2 K + 3N 1 K + 9M 1 K + 3NM 2 K ) D 1 + ( M 2 + 1 + 3NM 1 + N 2 M 2) M 4 = ( 20N 4 M 3 K + 16N 4 M 1 K + 61N 3 M 2 K + 5N 3 K + 16N 2 M 3 K + 20N 2 M 1 K + 5N 1 + ( 17N 4 M 2 K 2 + N 4 K 2 + 17N 3 M 3 K 2 + 16N 3 M 1 K 2 + 16N 2 M 2 K 2 + 2N 2 K 2 + N 1 + ( 44N 4 M 2 K 2 + 4N 4 K 2 + 44N 3 M 3 K 2 + 44N 3 M 1 K 2 + 44N 2 M 2 K 2 + 4N 2 K 2 + 4N + ( 16N 4 M 3 K 3 + 20N 4 M 1 K 3 + 60N 3 M 2 K 3 + 6N 3 K 3 + 20N 2 M 3 K 3 + 16N 2 M 1 K 3 + ( 5N 4 M 2 K 4 + N 4 K 4 + 5N 3 M 3 K 4 + 6N 3 M 1 K 4 + 6N 2 M 2 K 4 + N 1 M 3 K 4) D 4 1 + ( 44N 3 M 2 K + 4N 3 K + 44N 2 M 3 K + 44N 2 M 1 K + 44N 1 M 2 K + 4N 1 K + 4M 3 K + + ( 32N 3 M 3 K 2 + 40N 3 M 1 K 2 + 120N 2 M 2 K 2 + 12N 2 K 2 + 40N 1 M 3 K 2 + 32N 1 M 1 K + ( 20N 3 M 2 K 3 + 4N 3 K 3 + 20N 2 M 3 K 3 + 24N 2 M 1 K 3 + 24N 1 M 2 K 3 + 4M 3 K 3) D 3 1 + ( 16N 2 M 3 K + 20N 2 M 1 K + 60N 1 M 2 K + 6N 1 K + 20M 3 K + 16M 1 K + 6NM 2 K ) D + ( 30N 2 M 2 K 2 + 6N 2 K 2 + 30N 1 M 3 K 2 + 36N 1 M 1 K 2 + 36M 2 K 2 + 6NM 3 K 2) D 2 1 + ( 20N 1 M 2 K + 4N 1 K + 20M 3 K + 24M 1 K + 24NM 2 K + 4N 2 M 3 K ) D 1 + ( 5M 2 + 1 + 5NM 3 + 6NM 1 + 6N 2 M 2 + N 3 M 3) The corresponding numeric function is moms=numericfiniteaddgaussian3(dmoms,k,m,n,sigma) 8
where dmoms are the moments D p, moms are the moments M p. The parameter sigma represents noise variance, and is optional. If present, the moments of [ (( 1 M p = E tr M ( 1 X 1 DX 2 + σx)( 1 ) p )] X 1 DX 2 + σx) H N N are computed. If sigma is not present, sigma=1 as above is assumed. The corresponding numeric function for performing deconvolution is dmoms=numericfiniteaddgaussian3deconv(moms,k,m,n,sigma) sigma is optional in the same way as for numeric convolution. Note that the noise variance is dropped in the latex expression above, since it can be applied outside the actual deconvolution step through an additional rescaling of the moments. 2 The moments of many types of random matrices thisfile=fopen( exmoments.tex, w ); latexmoments(4, V,thisfile); Produces the limit moments M p = c lim N tr (( V H V ) p) when V is an N L L Vandermonde matrix with uniform phase distribution and c = lim N N. The output is stored in the file exmoments.tex, and looks like this: The corresponding numeric routine is M 1 = 1 M 2 = 2 M 3 = 5 M 4 = 44 3 moms=numericmoments(nummoments, V ) where moms are the moments M p. This function can also compute the moments of many other types of random matrices. Simply replace V with H : Hankel matrices T : Toeplitz matrices VV : Product of two independent Vandermonde matrices with uniform phase distribution MP : The Mar chenko Pastur law. 9
3 The second order moments of random matrices thisfile=fopen( ex2moments.tex, w ); latex2moments(6, V,thisfile); ( Produces the second order limit moments M i,j = c lim N LC i,j V H V ) when V is an N L Vandermonde matrix with uniform phase distribution and c = L lim N N. The output is stored in the file ex2moments.tex, and looks like this: M 2,2 = 4 3 M 2,3 = 8 The corresponding numeric routine is M 2,4 = 1213 30 M 3,3 = 51 moms=numeric2moments(nummoments, V ) where moms are the moments M p. Currently, uniform Vandermonde is the only matrix type which supports second order moments. 4 Moments involving Vandermonde matrices 4.1 Product of a deterministic matrix and a Vandermonde matrix with uniform phase distribution thisfile=fopen( exmultvanduniform.tex, w ); latexmultvanduniform(4,thisfile); Prouces the limit moments M p = c lim N tr (( V H VD ) p) from the moments D p = ctr (D p ) when V is an N L Vandermonde matrix with uniform phase L distribution, D is L L and c = lim N N. The output is stored in the file 10
exmultvanduniform.tex, and looks like this: M 1 = D 1 M 2 = D 2 +D1 2 M 3 = D 3 +3D 2 D 1 +D 3 1 M 4 = D 4 The corresponding numeric routine is moms=numericmultvanduniform(dmoms) + 8 3 D2 2 +4D 3 D 1 +6D 2 D 2 1 +D 4 1 where dmoms are the moments D p, moms are the moments M p. The corresponding numeric function for performing deconvolution is dmoms=numericmultvanduniformdeconv(moms) 4.2 Sum of a deterministic matrix and a Vandermonde matrix with uniform phase distribution thisfile=fopen( exaddvanduniform.tex, w ); latexaddvanduniform(4,thisfile); Produces the limit moments M p = c lim N tr (( V H V + D ) p) from the moments D p = tr (( 1 N DDH) p) when V is an N L Vandermonde matrix with L uniform phase distribution, D is L L and c = lim N The output is N. 11
stored in the file exaddvanduniform.tex, and looks like this: The corresponding numeric routine is M 1 = D 1 +1 moms=numericaddvanduniform(dmoms) M 2 = D 2 +2D 1 +2 M 3 = D 3 +3D 2 +6D 1 +5 M 4 = D 4 +4D 3 +10D 2 +2D 2 1 +20D 1 where dmoms are the moments D p, moms are the moments M p. The corresponding numeric function for performing deconvolution is + 44 3 dmoms=numericaddvanduniformdeconv(moms) 4.3 Product of a deterministic matrix and a Vandermonde matrix with general phase distribution thisfile=fopen( exmultvand.tex, w ); latexmultvand(4,thisfile); Prouces the limit moments M p = c lim N tr (( V H VD ) p) from the moments D p = ctr (D p ) when V is an N L Vandermonde matrix with general phase L distribution, D is L L and c = lim N N. The output is stored in the file 12
exmultvand.tex, and looks like this: M 1 = D 1 M 2 = D 2 D1 2 +D1V 2 2 M 3 = D 3 3D 2 D 1 M 4 = D 4 +3D 2 D 1 V 2 +2D 3 1 3D 3 1V 2 +D 3 1V 3 8 3 D2 2 + 8 3 D2 2V 2 4D 3 D 1 +4D 3 D 1 V 2 +12D 2 D1 2 18D 2 D1V 2 2 +6D 2 D1V 2 3 19 3 D4 1 The corresponding numeric routine is moms=numericmultvand(vmoms,dmoms) + 34 3 D4 1V 2 6D 4 1V 3 +D 4 1V 4 where vmoms are the moments V p, dmoms are the moments D p, and moms are the moments M p. The corresponding numeric function for performing deconvolution is dmoms=numericmultvanddeconv(vmoms,moms) Note that this function performs deconvolution in terms of dmoms. It is possible to rewrite this function so that it instead performs deconvolution in terms of vmoms. 13
4.4 Sum of a deterministic matrix and a Vandermonde matrix with general phase distribution thisfile=fopen( exaddvand.tex, w ); latexaddvand(4,thisfile); Produces the limit moments M p = c lim N tr (( V H V + D ) p) from the moments D p = tr (( 1 N DDH) p) when V is an N L Vandermonde matrix with general phase distribution with limit moments V p, D is L L and c = lim N N. L The output is stored in the file exaddvand.tex, and looks like this: M 1 = D 1 +1 The corresponding numeric routine is moms=numericaddvand(vmoms,dmoms) M 2 = D 2 +2D 1 +V 2 M 3 = D 3 +3D 2 +3D 1 V 2 +V 3 M 4 = D 4 +4D 3 +2D 2 +4D 2 V 2 2D 2 1 +2D 2 1V 2 +4D 1 V 3 +V 4 where vmoms are the moments V p, dmoms are the moments D p, and moms are the moments M p. The corresponding numeric function for performing deconvolution is dmoms=numericaddvanddeconv(vmoms,moms) Note that this function performs deconvolution in terms of dmoms. It is possible to rewrite this function so that it instead performs deconvolution in terms of vmoms. 14
4.5 Product of two independent Vandermonde matrices with equal phase distribution thisfile=fopen( exindmom.tex, w ); latexindmom(4,thisfile); Produces the limit moments M p = c lim N tr (( ) V1 H V 2 V2 H p ) V 1 when V is an N L Vandermonde matrix with general phase distribution with limit moments L V p, and c = lim N N. The output is stored in the file exindmom.tex, and looks like this: M 1 = 1 +V 2 M 2 = 3 +6V 2 4V 3 +V 4 M 3 = 58 The corresponding numeric routine is moms=numericindmom(vmoms,dmoms) +123V 2 96V 3 +39V 4 9V 5 +V 6 M 4 = 21532 5 + 410726 V 2 45 321191 V 3 45 + 44516 15 V 4 772V 5 +136V 6 16V 7 +V 8 where vmoms are the moments V p. It is not possible to perform deconvolution in this case. 15
4.6 Product of two independent Vandermonde matrices with general phase distributions The command moms=numericmult2vand(vmoms1,vmoms2,c1,c2) produces the moments from the moments M p = lim N tr ( (V H 1 V 1 V H 2 V 2 ) p ) ( (V V p (1) = lim tr ) H p ) 1 V 1 N ( (V V p (2) = lim tr ) H p ) 2 V 2 N V 1 is assumed N 1 L with lim N lim N L N 1 (which are vmoms1), (which are vmoms2). = c 1, V 2 is assumed N 2 L with L N 2 = c 2. The lengths of vmoms1 and vmoms2 should be equal, and the number of output moments will be equal to this length. This method only exists as a numeric routine. The corresponding numeric function for performing deconvolution is vmoms2=numericmult2vanddeconv(vmoms1,moms) 4.7 Sum of two independent Vandermonde matrices with general phase distributions The command moms=numericadd2vand(vmoms1,vmoms2) produces the moments from the moments M p = lim N tr ( (V H 1 V 1 + V H 2 V 2 ) p ) ( (V V p (1) = lim tr ) H p ) 1 V 1 N ( (V V p (2) = lim tr ) H p ) 2 V 2 N V 1 is assumed N 1 L with lim N lim N L N 1 (which are vmoms1), (which are vmoms2). = c 1, V 2 is assumed N 2 L with L N 2 = c 2. The lengths of vmoms1 and vmoms2 should be equal, and the number of output moments will be equal to this length. This method only exists as a numeric routine. The corresponding numeric function for performing deconvolution is vmoms2=numericadd2vanddeconv(vmoms1,moms) 16
4.8 The second order moments of a product of a deterministic matrix and a Vandermonde matrix with uniform phase distribution thisfile=fopen( ex2multvanduniform.tex, w ); latex2multvanduniform(6,thisfile); ( Produces the second order limit moments M p = c lim N LC i,j D(N)V H V ) from the limit moments D p = c lim N tr (D p ) when V is an N L Vandermonde matrix with uniform phase distribution, D is L L and c = lim N N. L The output is stored in the file ex2multvanduniform.tex, and looks like this: M 2,2 = 4 3 D2 2 M 2,3 = 4D 3 D 2 +4D2D 2 1 M 2,4 = 113 30 D2 3 + 16 3 D 4D 2 The corresponding numeric routine is + 22 3 D3 2 +16D 3 D 2 D 1 +8D 2 2D 2 1 M 3,3 = 6D3 2 +6D 4 D 2 moms=numeric2multvanduniform(dmoms) +3D 3 2 +24D 3 D 2 D 1 +12D 2 2D 2 1 where dmoms are the moments D p, moms are the moments M p. 5 Moments involving free random variables Note that the following formulas can be obtained from the finite Gaussian/Wishart counterparts by dropping the trailing O(N 2 )-terms. When these terms are dropped, one has a numerically more efficient implementation used in the following. The following form for the latex output is therefore rarely used in computations. 17
5.1 Product of a deterministic matrix and the Mar chenko Pastur law thisfile=fopen( exmultmp.tex, w ); latexmultmp(4,thisfile); Produces the limit moments M p = c lim N E [ tr (( D 1 N XXH) p)] from the limit moments c lim N D p = tr (D p n ), where c = lim N N, D is n n and X is n N complex, standard, Gaussian. The output is stored in the file exmultmp.tex, and looks like this: M 1 = D 1 The corresponding numeric routine is moms=numericmultmp(dmoms) M 2 = D 2 +D1 2 M 3 = D 3 +3D 2 D 1 +D 3 1 M 4 = D 4 +2D2 2 +4D 3 D 1 +6D 2 D 2 1 +D 4 1 where dmoms are the moments D p, moms are the moments M p. The corresponding numeric function for performing deconvolution is dmoms=numericmultmpdeconv(moms) Note that this operation is nothing but the moment-cumulant formula. 5.2 Rectangular free convolution thisfile=fopen( exaddgaussian.tex, w ); latexaddgaussian(4,thisfile); Produces the limit moments [ tr M p = c lim N E (( 1 (D + X)(D + X)H N 18 ) p )]
from the limit moments c lim N D p = tr ( ( 1 N DD)p), where c = lim N n N, D is n N and X is n N complex, standard, Gaussian. The output is stored in the file exaddgaussian.tex, and looks like this: M 1 = D 1 +1 M 2 = D 2 + (2 + 2c) D 1 + (1 + c) M 3 = D 3 + (3 + 3c) D 2 +3cD 2 1 + ( 3 + 9c + 3c 2) D 1 + ( 1 + 3c + c 2) M 4 = D 4 + (4 + 4c) D 3 +8cD 2 D 1 + ( 6 + 16c + 6c 2) D 2 + ( 14c + 14c 2) D 2 1 + ( 4 + 24c + 24c 2 + 4c 3) D 1 + ( 1 + 6c + 6c 2 + c 3) Note that this operation actually uses a rewriting to a product of a deterministic matrix and the Mar chenko Pastur law. The corresponding numeric routine is moms=numericaddgaussian(dmoms,c,sigma) where dmoms are the moments D p, moms are the moments M p. The parameter sigma represents noise variance, and is optional. If present, the moments of [ (( ) p )] 1 M p = c lim E tr (D + σx)(d + σx)h N N are computed. If sigma is not present, sigma=1 as above is assumed. The corresponding numeric function for performing deconvolution is dmoms=numericaddgaussiandeconv(moms,c,sigma) sigma is optional in the same way as for numeric convolution. Note that the noise variance is dropped in the latex expression above, since it can be applied outside the actual deconvolution step through an additional rescaling of the moments. 19
Index latex2moments, 10 latex2multvanduniform, 17 latexaddgaussian, 18 latexaddvand, 14 latexaddvanduniform, 11 latexfiniteaddgaussian, 5 latexfiniteaddgaussian3, 7 latexfiniteaddgaussiansa, 7 latexfinitemultgaussiansa, 3 latexfinitemultwishart, 1 latexindmom, 15 latexmoments, 9 latexmultmp, 18 latexmultvand, 12 latexmultvanduniform, 10 numericmultvand, 13 numericmultvanddeconv, 13 numericmultvanduniform, 11 numericmultvanduniformdeconv, 11 numeric2moments, 10 numeric2multvanduniform, 17 numericadd2vand, 16 numericadd2vanddeconv, 16 numericaddgaussian, 19 numericaddgaussiandeconv, 19 numericaddvand, 14 numericaddvanddeconv, 14 numericaddvanduniform, 12 numericaddvanduniformdeconv, 12 numericfiniteaddgaussian, 6 numericfiniteaddgaussian3, 8 numericfiniteaddgaussian3deconv, 9 numericfiniteaddgaussiandeconv, 6 numericfiniteaddgaussiandeconvsa, 7 numericfiniteaddgaussiansa, 7 numericfinitemultgaussiansa, 4 numericfinitemultgaussiansan, 5 numericfinitemultwishart, 2 numericfinitemultwishartdeconv, 2 numericfinitemultwishartn, 2 numericindmom, 15 numericmoments, 9 numericmult2vand, 16 numericmult2vanddeconv, 16 numericmultmp, 18 numericmultmpdeconv, 18 20