PDL::LinearAlgebra::Complex - PDL interface to the lapack linear algebra programming library (complex number)
use PDL; use PDL::LinearAlgebra::Complex; $a = random(cdouble, 100, 100); $s = zeroes(cdouble, 100); $u = zeroes(cdouble, 100, 100); $v = zeroes(cdouble, 100, 100); $info = 0; $job = 0; cgesdd($a, $job, $info, $s , $u, $v);
This module provides an interface to parts of the lapack library (complex numbers). These routines accept either float or double ndarrays. #line 69 "Complex.pm"
Signature: (complex [phys]DL(n);complex [phys]D(n);complex [phys]DU(n);complex [io,phys]B(n,nrhs); int [o,phys]info())
Solves the equation
A * X = B
where A is an n by n tridiagonal matrix, by Gaussian elimination with partial pivoting, and B is an n by nrhs matrix.
n
nrhs
Note that the equation A**T*X = B may be solved by interchanging the order of the arguments DU and DL.
A**T*X = B
NB This differs from the LINPACK function cgtsl in that DL starts from its first element, while the LINPACK equivalent starts from its second element.
cgtsl
DL
Arguments ========= DL: On entry, DL must contain the (n-1) sub-diagonal elements of A. On exit, DL is overwritten by the (n-2) elements of the second super-diagonal of the upper triangular matrix U from the LU factorization of A, in DL(1), ..., DL(n-2). D: On entry, D must contain the diagonal elements of A. On exit, D is overwritten by the n diagonal elements of U. DU: On entry, DU must contain the (n-1) super-diagonal elements of A. On exit, DU is overwritten by the (n-1) elements of the first super-diagonal of the U. B: On entry, the n by nrhs matrix of right hand side matrix B. On exit, if info = 0, the n by nrhs solution matrix X. info: = 0: successful exit < 0: if info = -i, the i-th argument had an illegal value > 0: if info = i, U(i,i) is exactly zero, and the solution has not been computed. The factorization has not been completed unless i = n.
$dl = random(float, 9) + random(float, 9) * i; $d = random(float, 10) + random(float, 10) * i; $du = random(float, 9) + random(float, 9) * i; $b = random(10,5) + random(10,5) * i; cgtsv($dl, $d, $du, $b, ($info=null)); print "X is:\n$b" unless $info;
Signature: (complex [io]A(m,n); int jobu(); int jobvt(); [o]s(minmn);complex [o]U(p,p);complex [o]VT(s,s); int [o]info(); [t]rwork(rworkn))
Complex version of "gesvd" in PDL::LinearAlgebra::Real.
The SVD is written
A = U * SIGMA * ConjugateTranspose(V)
Signature: (complex [io]A(m,n); int jobz(); [o]s(minmn);complex [o]U(p,p);complex [o]VT(s,s); int [o]info(); int [t]iwork(iworkn))
Complex version of "gesdd" in PDL::LinearAlgebra::Real.
Signature: (complex [io]A(m,n); int jobu(); int jobv(); int jobq();complex [io]B(p,n); int [o]k(); int [o]l();[o]alpha(n);[o]beta(n);complex [o]U(q,q);complex [o]V(r,r);complex [o]Q(s,s); int [o]iwork(n); int [o]info(); [t]rwork(rworkn))
Complex version of "ggsvd" in PDL::LinearAlgebra::Real
Signature: (complex A(n,n); int jobvl(); int jobvr();complex [o]w(n);complex [o]vl(m,m);complex [o]vr(p,p); int [o]info(); [t]rwork(rworkn))
Complex version of "geev" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(n,n); int jobvl(); int jobvr(); int balance(); int sense();complex [o]w(n);complex [o]vl(m,m);complex [o]vr(p,p); int [o]ilo(); int [o]ihi(); [o]scale(n); [o]abnrm(); [o]rconde(q); [o]rcondv(r); int [o]info(); [t]rwork(rworkn))
Complex version of "geevx" in PDL::LinearAlgebra::Real
Signature: (complex A(n,n); int [phys]jobvl();int [phys]jobvr();complex B(n,n);complex [o]alpha(n);complex [o]beta(n);complex [o]VL(m,m);complex [o]VR(p,p);int [o]info(); [t]rwork(rworkn))
Complex version of "ggev" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(n,n);int balanc();int jobvl();int jobvr();int sense();complex [io,phys]B(n,n);complex [o]alpha(n);complex [o]beta(n);complex [o]VL(m,m);complex [o]VR(p,p);int [o]ilo();int [o]ihi();[o]lscale(n);[o]rscale(n);[o]abnrm();[o]bbnrm();[o]rconde(r);[o]rcondv(s);int [o]info(); [t]rwork(rworkn); int [t]bwork(bworkn); int [t]iwork(iworkn))
Complex version of "ggevx" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(n,n); int jobvs(); int sort();complex [o]w(n);complex [o]vs(p,p); int [o]sdim(); int [o]info(); [t]rwork(n); int [t]bwork(bworkn);SV* select_func)
Complex version of "gees" in PDL::LinearAlgebra::Real
select_func: If sort = 1, select_func is used to select eigenvalues to sort to the top left of the Schur form. If sort = 0, select_func is not referenced. An complex eigenvalue w is selected if select_func(PDL::Complex(w)) is true; Note that a selected complex eigenvalue may no longer satisfy select_func(PDL::Complex(w)) = 1 after ordering, since ordering may change the value of complex eigenvalues (especially if the eigenvalue is ill-conditioned); in this case info is set to N+2.
Signature: (complex [io]A(n,n); int jobvs(); int sort(); int sense();complex [o]w(n);complex [o]vs(p,p); int [o]sdim(); [o]rconde();[o]rcondv(); int [o]info(); [t]rwork(n); int [t]bwork(bworkn);SV* select_func)
Complex version of "geesx" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(n,n); int jobvsl();int jobvsr();int sort();complex [io]B(n,n);complex [o]alpha(n);complex [o]beta(n);complex [o]VSL(m,m);complex [o]VSR(p,p);int [o]sdim();int [o]info(); [t]rwork(rworkn); int [t]bwork(bworkn);SV* select_func)
Complex version of "ggees" in PDL::LinearAlgebra::Real
select_func: If sort = 1, select_func is used to select eigenvalues to sort to the top left of the Schur form. If sort = 0, select_func is not referenced. An eigenvalue w = w/beta is selected if select_func(PDL::Complex(w), PDL::Complex(beta)) is true; Note that a selected complex eigenvalue may no longer satisfy select_func(PDL::Complex(w),PDL::Complex(beta)) = 1 after ordering, since ordering may change the value of complex eigenvalues (especially if the eigenvalue is ill-conditioned); in this case info is set to N+2.
Signature: (complex [io]A(n,n); int jobvsl();int jobvsr();int sort();int sense();complex [io]B(n,n);complex [o]alpha(n);complex [o]beta(n);complex [o]VSL(m,m);complex [o]VSR(p,p);int [o]sdim();[o]rconde(q=2);[o]rcondv(q=2);int [o]info(); [t]rwork(rworkn); int [t]bwork(bworkn); int [t]iwork(iworkn);SV* select_func)
Complex version of "ggeesx" in PDL::LinearAlgebra::Real
select_func: If sort = 1, select_func is used to select eigenvalues to sort to the top left of the Schur form. If sort = 0, select_func is not referenced. An eigenvalue w = w/beta is selected if select_func(PDL::Complex(w), PDL::Complex(beta)) is true; Note that a selected complex eigenvalue may no longer satisfy select_func(PDL::Complex(w),PDL::Complex(beta)) = 1 after ordering, since ordering may change the value of complex eigenvalues (especially if the eigenvalue is ill-conditioned); in this case info is set to N+3.
Signature: (complex [io]A(n,n); int jobz(); int uplo(); [o]w(n); int [o]info(); [t]rwork(rworkn))
Complex version of "syev" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io,phys]A(n,n); int jobz(); int uplo(); [o,phys]w(n); int [o,phys]info())
Complex version of "syevd" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex A(n,n); int jobz(); int range(); int uplo(); vl(); vu(); int il(); int iu(); abstol(); int [o]m(); [o]w(n);complex [o]z(p,p);int [o]ifail(n); int [o]info(); [t]rwork(rworkn); int [t]iwork(iworkn))
Complex version of "syevx" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [phys]A(n,n); int jobz(); int range(); int uplo(); [phys]vl(); [phys]vu(); int [phys]il(); int [phys]iu(); [phys]abstol(); int [o,phys]m(); [o,phys]w(n);complex [o,phys]z(p,q);int [o,phys]isuppz(r); int [o,phys]info())
Complex version of "syevr" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io]A(n,n);int itype();int jobz(); int uplo();complex [io]B(n,n);[o]w(n); int [o]info(); [t]rwork(rworkn))
Complex version of "sygv" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io,phys]A(n,n);int [phys]itype();int jobz(); int uplo();complex [io,phys]B(n,n);[o,phys]w(n); int [o,phys]info())
Complex version of "sygvd" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io]A(n,n);int itype();int jobz();int range(); int uplo();complex [io]B(n,n);vl();vu();int il(); int iu();abstol();int [o]m();[o]w(n);complex [o]Z(p,p);int [o]ifail(n);int [o]info(); [t]rwork(rworkn); int [t]iwork(iworkn); )
Complex version of "sygvx" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io,phys]A(n,n);complex [io,phys]B(n,m); int [o,phys]ipiv(n); int [o,phys]info())
Complex version of "gesv" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(n,n); int trans(); int fact();complex [io]B(n,m);complex [io]af(n,n); int [io]ipiv(n); int [io]equed(); [o]r(p); [o]c(q);complex [o]X(n,m); [o]rcond(); [o]ferr(m); [o]berr(m); [o]rpvgrw(); int [o]info(); [t]rwork(rworkn); [t]work(rworkn))
Complex version of "gesvx" in PDL::LinearAlgebra::Real.
trans: Specifies the form of the system of equations: = 0: A * X = B (No transpose) = 1: A' * X = B (Transpose) = 2: A**H * X = B (Conjugate transpose)
Signature: (complex [io,phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o]ipiv(n); int [o]info())
Complex version of "sysv" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(n,n); int uplo(); int fact();complex [phys]B(n,m);complex [io,phys]af(n,n); int [io,phys]ipiv(n);complex [o]X(n,m); [o]rcond(); [o]ferr(m); [o]berr(m); int [o]info(); [t]rwork(n))
Complex version of "sysvx" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o,phys]ipiv(n); int [o,phys]info())
Complex version of "sysv" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex A(n,n); int uplo(); int fact();complex B(n,m);complex [io]af(n,n); int [io]ipiv(n);complex [o]X(n,m); [o]rcond(); [o]ferr(m); [o]berr(m); int [o]info(); [t]rwork(n))
Complex version of "sysvx" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io,phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o,phys]info())
Complex version of "posv" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix
Signature: (complex [io]A(n,n); int uplo(); int fact();complex [io]B(n,m);complex [io]af(n,n); int [io]equed(); [o]s(p);complex [o]X(n,m); [o]rcond(); [o]ferr(m); [o]berr(m); int [o]info(); [t]rwork(rworkn); [t]work(workn))
Complex version of "posvx" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix
Signature: (complex [io,phys]A(m,n); int trans();complex [io,phys]B(p,q);int [o,phys]info())
Solves overdetermined or underdetermined complex linear systems involving an M-by-N matrix A, or its conjugate-transpose. Complex version of "gels" in PDL::LinearAlgebra::Real.
trans: = 0: the linear system involves A; = 1: the linear system involves A**H.
Signature: (complex [io]A(m,n);complex [io]B(p,q); rcond(); int [io]jpvt(n); int [o]rank();int [o]info(); [t]rwork(rworkn))
Complex version of "gelsy" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(m,n);complex [io]B(p,q); rcond(); [o]s(r); int [o]rank();int [o]info(); [t]rwork(rworkn))
Complex version of "gelss" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(m,n);complex [io]B(p,q); rcond(); [o]s(minmn); int [o]rank();int [o]info(); int [t]iwork(iworkn); [t]rwork(rworkn))
Complex version of "gelsd" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(m,n);complex [phys]B(p,n);complex [io,phys]c(m);complex [phys]d(p);complex [o,phys]x(n);int [o,phys]info())
Complex version of "gglse" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(n,m);complex [phys]B(n,p);complex [phys]d(n);complex [o,phys]x(m);complex [o,phys]y(p);int [o,phys]info())
Complex version of "ggglm" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(m,n); int [o]ipiv(p); int [o]info())
Complex version of "getrf" in PDL::LinearAlgebra::Real
Complex version of "getf2" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(n,n); int uplo(); int [o,phys]ipiv(n); int [o,phys]info())
Complex version of "sytrf" in PDL::LinearAlgebra::Real
Complex version of "sytf2" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(n,n); int uplo(); int [o]ipiv(n); int [o]info(); [t]work(workn))
Complex version of "sytrf" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io]A(n,n); int uplo(); int [o]ipiv(n); int [o]info())
Complex version of "sytf2" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [io,phys]A(n,n); int uplo(); int [o,phys]info())
Complex version of "potrf" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix
Complex version of "potf2" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix
Signature: (complex [io,phys]A(n,n); int [phys]ipiv(n); int [o,phys]info())
Complex version of "getri" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn))
Complex version of "sytri" in PDL::LinearAlgebra::Real
Complex version of "sytri" in PDL::LinearAlgebra::Real for Hermitian matrix
Complex version of "potri" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(n,n); int uplo(); int diag(); int [o,phys]info())
Complex version of "trtri" in PDL::LinearAlgebra::Real
Complex version of "trti2" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(n,n); int trans();complex [io,phys]B(n,m); int [phys]ipiv(n); int [o,phys]info())
Complex version of "getrs" in PDL::LinearAlgebra::Real
Arguments ========= trans: = 0: No transpose; = 1: Transpose; = 2: Conjugate transpose;
Signature: (complex [phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [phys]ipiv(n); int [o,phys]info())
Complex version of "sytrs" in PDL::LinearAlgebra::Real
Complex version of "sytrs" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex [phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o,phys]info())
Complex version of "potrs" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix
Signature: (complex [phys]A(n,n); int uplo(); int trans(); int diag();complex [io,phys]B(n,m); int [o,phys]info())
Complex version of "trtrs" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(n,n); int uplo(); int trans(); int diag(); int normin();complex [io,phys]x(n); [o,phys]scale();[io,phys]cnorm(n);int [o,phys]info())
Complex version of "latrs" in PDL::LinearAlgebra::Real
Signature: (complex A(n,n); int norm(); anorm(); [o]rcond();int [o]info(); [t]rwork(rworkn); [t]work(workn))
Complex version of "gecon" in PDL::LinearAlgebra::Real
Signature: (complex A(n,n); int uplo(); int ipiv(n); anorm(); [o]rcond();int [o]info(); [t]work(workn))
Complex version of "sycon" in PDL::LinearAlgebra::Real
Complex version of "sycon" in PDL::LinearAlgebra::Real for Hermitian matrix
Signature: (complex A(n,n); int uplo(); anorm(); [o]rcond();int [o]info(); [t]work(workn); [t]rwork(n))
Complex version of "pocon" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix
Signature: (complex A(n,n); int norm();int uplo();int diag(); [o]rcond();int [o]info(); [t]work(workn); [t]rwork(n))
Complex version of "trcon" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(m,n); int [io]jpvt(n);complex [o]tau(k); int [o]info(); [t]rwork(rworkn))
Complex version of "geqp3" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(m,n);complex [o,phys]tau(k); int [o,phys]info())
Complex version of "geqrf" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(m,n);complex [phys]tau(k); int [o,phys]info())
Complex version of "orgqr" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(p,k); int side(); int trans();complex [phys]tau(k);complex [io,phys]C(m,n);int [o,phys]info())
Complex version of "ormqr" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.
Complex version of "gelqf" in PDL::LinearAlgebra::Real
Complex version of "orglq" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(k,p); int side(); int trans();complex [phys]tau(k);complex [io,phys]C(m,n);int [o,phys]info())
Complex version of "ormlq" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.
Complex version of "geqlf" in PDL::LinearAlgebra::Real
Complex version of "ormql" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.
Complex version of "gerqf" in PDL::LinearAlgebra::Real
Complex version of "orgrq" in PDL::LinearAlgebra::Real.
Complex version of "ormrq" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.
Complex version of "tzrzf" in PDL::LinearAlgebra::Real
Complex version of "ormrz" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.
Signature: (complex [io,phys]A(n,n); int [phys]ilo();int [phys]ihi();complex [o,phys]tau(k); int [o,phys]info())
Complex version of "gehrd" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(n,n); int [phys]ilo();int [phys]ihi();complex [phys]tau(k); int [o,phys]info())
Complex version of "orghr" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]H(n,n); int job();int compz();int [phys]ilo();int [phys]ihi();complex [o,phys]w(n);complex [o,phys]Z(m,m); int [o,phys]info())
Complex version of "hseqr" in PDL::LinearAlgebra::Real
Signature: (complex [io]T(n,n); int side();int howmny();int select(q);complex [o]VL(m,m);complex [o]VR(p,p);int [o]m(); int [o]info(); [t]work(workn))
Complex version of "trevc" in PDL::LinearAlgebra::Real
Signature: (complex [io]A(n,n); int side();int howmny();complex [io]B(n,n);int select(q);complex [o]VL(m,m);complex [o]VR(p,p);int [o]m(); int [o]info(); [t]work(workn))
Complex version of "tgevc" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(n,n); int job(); int [o,phys]ilo();int [o,phys]ihi();[o,phys]scale(n); int [o,phys]info())
Complex version of "gebal" in PDL::LinearAlgebra::Real
Signature: (complex A(n,m); int norm(); [o]b(); [t]work(workn))
Complex version of "lange" in PDL::LinearAlgebra::Real
Signature: (complex A(n,n); int uplo(); int norm(); [o]b(); [t]work(workn))
Complex version of "lansy" in PDL::LinearAlgebra::Real
Signature: (complex A(m,n); int uplo(); int norm();int diag(); [o]b(); [t]work(workn))
Complex version of "lantr" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(m,n); int transa(); int transb();complex [phys]B(p,q);complex [phys]alpha();complex [phys]beta();complex [io,phys]C(r,s))
Complex version of "gemm" in PDL::LinearAlgebra::Real.
Arguments ========= transa: = 0: No transpose; = 1: Transpose; = 2: Conjugate transpose; transb: = 0: No transpose; = 1: Transpose; = 2: Conjugate transpose;
Signature: (complex [phys]A(m,n);complex [phys]B(p,m);complex [o,phys]C(p,n))
Complex version of "mmult" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(n,m);complex [phys]B(p,m);complex [o,phys]C(p,n))
Complex version of "crossprod" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(m,n); int uplo(); int trans();complex [phys]alpha();complex [phys]beta();complex [io,phys]C(p,p))
Complex version of "syrk" in PDL::LinearAlgebra::Real
Signature: (complex [phys]a(n);complex [phys]b(n);complex [o]c())
Complex version of "dot" in PDL::LinearAlgebra::Real
Signature: (complex [phys]a(n);complex [phys]b(n);complex [o,phys]c())
Forms the dot product of two vectors, conjugating the first vector.
Signature: (complex [phys]a(n);complex [phys] alpha();complex [io,phys]b(n))
Complex version of "axpy" in PDL::LinearAlgebra::Real
Signature: (complex [phys]a(n);[o]b())
Complex version of "nrm2" in PDL::LinearAlgebra::Real
Complex version of "asum" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]a(n);complex scale())
Complex version of "scal" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]a(n);scale())
Scales a complex vector by a real constant.
Signature: (complex [io,phys]a();complex [phys]b();[o,phys]c();complex [o,phys]s())
Complex version of "rotg" in PDL::LinearAlgebra::Real
Signature: (complex [phys]A(m,n); int uplo();complex [o,phys]B(p,n))
Complex version of "lacpy" in PDL::LinearAlgebra::Real
Signature: (complex [io,phys]A(m,n); int [phys]k1(); int [phys]k2(); int [phys]ipiv(p))
Complex version of "laswp" in PDL::LinearAlgebra::Real
Signature: (A(c=2,m,n);int uplo();[o] C(c=2,m,n))
Copy triangular part to another matrix. If uplo == 0 copy upper triangular part.
ctricpy does not process bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
Signature: (x(c,n,m);y(c,n,p);[o]out(c,n,q))
Combine two 3D ndarrays into a single ndarray. This routine does backward and forward dataflow automatically.
cmstack does not process bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
Signature: (A(c=2,n,n);[o]Y(c=2,n,n);[o]out(c=2,p); [t]rwork(rworkn))
Complex version of "charpol" in PDL::LinearAlgebra::Real
Copyright (C) Grégory Vanuxem 2005-2018.
This library is free software; you can redistribute it and/or modify it under the terms of the Perl Artistic License as in the file Artistic_2 in this distribution.
To install PDL::LinearAlgebra, copy and paste the appropriate command in to your terminal.
cpanm
cpanm PDL::LinearAlgebra
CPAN shell
perl -MCPAN -e shell install PDL::LinearAlgebra
For more information on module installation, please visit the detailed CPAN module installation guide.