Provided by: libpdl-linearalgebra-perl_0.12-3build1_amd64

**NAME**

PDL::LinearAlgebra::Special - Special matrices for PDL

**SYNOPSIS**

use PDL::LinearAlgebra::Mtype; $a = mhilb(5,5);

**DESCRIPTION**

This module provides some constructors of well known matrices.

**FUNCTIONS**

mhilbConstruct Hilbert matrix from specifications list or template piddle PDL(Hilbert) = mpart(PDL(template) | ARRAY(specification)) my $hilb = mhilb(float,5,5);mtriReturn zeroed matrix with upper or lower triangular part from another matrix. Return trapezoid matrix if entry matrix is not square. Supports threading. Uses tricpy or tricpy. PDL = mtri(PDL, SCALAR) SCALAR : UPPER = 0 | LOWER = 1, default = 0 my $a = random(10,10); my $b = mtri($a, 0);mvanderReturn (primal) Vandermonde matrix from vector. mvander(M,P) is a rectangular version of mvander(P) with M Columns.mpartReturn antisymmetric and symmetric part of a real or complex square matrix. ( PDL(antisymmetric), PDL(symmetric) ) = mpart(PDL, SCALAR(conj)) conj : if true Return AntiHermitian, Hermitian part. my $a = random(10,10); my ( $antisymmetric, $symmetric ) = mpart($a);mhankelReturn Hankel matrix also known as persymmetric matrix. For complex, needs object of type PDL::Complex. mhankel(c,r), where c and r are vectors, returns matrix whose first column is c and whose last row is r. The last element of c prevails. mhankel(c) returns matrix with element below skew diagonal (anti-diagonal) equals to zero. If c is a scalar number, make it from sequence beginning at one. The elements are: H (i,j) = c (i+j), i+j+1 <= m; H (i,j) = r (i+j-m+1), otherwise where m is the size of the vector. If c is a scalar number, it's determinant can be computed by: floor(n/2) n Det(H(n)) = (-1) * nmtoeplitzReturn toeplitz matrix. For complex need object of type PDL::Complex. mtoeplitz(c,r), where c and r are vectors, returns matrix whose first column is c and whose last row is r. The last element of c prevails. mtoeplitz(c) returns symmetric matrix.mpascalReturn Pascal matrix (from Pascal's triangle) of order N. mpascal(N,uplo). uplo: 0 => upper triangular (Cholesky factor), 1 => lower triangular (Cholesky factor), 2 => symmetric. This matrix is obtained by writing Pascal's triangle (whose elements are binomial coefficients from index and/or index sum) as a matrix and truncating appropriately. The symmetric Pascal is positive definite, it's inverse has integer entries. Their determinants are all equal to one and: S = L * U where S, L, U are symmetric, lower and upper pascal matrix respectively.mcompanionReturn a matrix with characteristic polynomial equal to p if p is monic. If p is not monic the characteristic polynomial of A is equal to p/c where c is the coefficient of largest degree in p (here p is in descending order). mcompanion(PDL(p),SCALAR(charpol)). charpol: 0 => first row is -P(1:n-1)/P(0), 1 => last column is -P(1:n-1)/P(0),

**AUTHOR**

Copyright (C) GrĂ©gory Vanuxem 2005-2007. This library is free software; you can redistribute it and/or modify it under the terms of the artistic license as specified in the Artistic file.