.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Complex 3pm" .TH Complex 3pm 2024-02-21 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME PDL::LinearAlgebra::Complex \- PDL interface to the lapack linear algebra programming library (complex number) .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 9 \& 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); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" This module provides an interface to parts of the lapack library (complex numbers). These routines accept either float or double ndarrays. .SH FUNCTIONS .IX Header "FUNCTIONS" .SS cgtsv .IX Subsection "cgtsv" .Vb 1 \& Signature: (complex [phys]DL(n);complex [phys]D(n);complex [phys]DU(n);complex [io,phys]B(n,nrhs); int [o,phys]info()) .Ve .PP Solves the equation .PP .Vb 1 \& A * X = B .Ve .PP where A is an \f(CW\*(C`n\*(C'\fR by \f(CW\*(C`n\*(C'\fR tridiagonal matrix, by Gaussian elimination with partial pivoting, and B is an \f(CW\*(C`n\*(C'\fR by \f(CW\*(C`nrhs\*(C'\fR matrix. .PP Note that the equation \f(CW\*(C`A**T*X = B\*(C'\fR may be solved by interchanging the order of the arguments DU and DL. .PP \&\fBNB\fR This differs from the LINPACK function \f(CW\*(C`cgtsl\*(C'\fR in that \f(CW\*(C`DL\*(C'\fR starts from its first element, while the LINPACK equivalent starts from its second element. .PP .Vb 2 \& 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. .Ve .PP .Vb 6 \& $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:\en$b" unless $info; .Ve .SS cgesvd .IX Subsection "cgesvd" .Vb 1 \& 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)) .Ve .PP Complex version of "gesvd" in PDL::LinearAlgebra::Real. .PP The SVD is written .PP .Vb 1 \& A = U * SIGMA * ConjugateTranspose(V) .Ve .SS cgesdd .IX Subsection "cgesdd" .Vb 1 \& 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)) .Ve .PP Complex version of "gesdd" in PDL::LinearAlgebra::Real. .PP The SVD is written .PP .Vb 1 \& A = U * SIGMA * ConjugateTranspose(V) .Ve .SS cggsvd .IX Subsection "cggsvd" .Vb 1 \& 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)) .Ve .PP Complex version of "ggsvd" in PDL::LinearAlgebra::Real .SS cgeev .IX Subsection "cgeev" .Vb 1 \& 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)) .Ve .PP Complex version of "geev" in PDL::LinearAlgebra::Real .SS cgeevx .IX Subsection "cgeevx" .Vb 1 \& 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)) .Ve .PP Complex version of "geevx" in PDL::LinearAlgebra::Real .SS cggev .IX Subsection "cggev" .Vb 1 \& 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)) .Ve .PP Complex version of "ggev" in PDL::LinearAlgebra::Real .SS cggevx .IX Subsection "cggevx" .Vb 1 \& 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)) .Ve .PP Complex version of "ggevx" in PDL::LinearAlgebra::Real .SS cgees .IX Subsection "cgees" .Vb 1 \& 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) .Ve .PP Complex version of "gees" in PDL::LinearAlgebra::Real .PP .Vb 11 \& 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. .Ve .SS cgeesx .IX Subsection "cgeesx" .Vb 1 \& 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) .Ve .PP Complex version of "geesx" in PDL::LinearAlgebra::Real .PP .Vb 11 \& 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. .Ve .SS cgges .IX Subsection "cgges" .Vb 1 \& 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) .Ve .PP Complex version of "ggees" in PDL::LinearAlgebra::Real .PP .Vb 11 \& 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. .Ve .SS cggesx .IX Subsection "cggesx" .Vb 1 \& 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) .Ve .PP Complex version of "ggeesx" in PDL::LinearAlgebra::Real .PP .Vb 11 \& 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. .Ve .SS cheev .IX Subsection "cheev" .Vb 1 \& Signature: (complex [io]A(n,n); int jobz(); int uplo(); [o]w(n); int [o]info(); [t]rwork(rworkn)) .Ve .PP Complex version of "syev" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cheevd .IX Subsection "cheevd" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int jobz(); int uplo(); [o,phys]w(n); int [o,phys]info()) .Ve .PP Complex version of "syevd" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cheevx .IX Subsection "cheevx" .Vb 1 \& 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)) .Ve .PP Complex version of "syevx" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cheevr .IX Subsection "cheevr" .Vb 1 \& 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()) .Ve .PP Complex version of "syevr" in PDL::LinearAlgebra::Real for Hermitian matrix .SS chegv .IX Subsection "chegv" .Vb 1 \& 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)) .Ve .PP Complex version of "sygv" in PDL::LinearAlgebra::Real for Hermitian matrix .SS chegvd .IX Subsection "chegvd" .Vb 1 \& 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()) .Ve .PP Complex version of "sygvd" in PDL::LinearAlgebra::Real for Hermitian matrix .SS chegvx .IX Subsection "chegvx" .Vb 5 \& 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); \& ) .Ve .PP Complex version of "sygvx" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cgesv .IX Subsection "cgesv" .Vb 1 \& Signature: (complex [io,phys]A(n,n);complex [io,phys]B(n,m); int [o,phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "gesv" in PDL::LinearAlgebra::Real .SS cgesvx .IX Subsection "cgesvx" .Vb 1 \& 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)) .Ve .PP Complex version of "gesvx" in PDL::LinearAlgebra::Real. .PP .Vb 4 \& trans: Specifies the form of the system of equations: \& = 0: A * X = B (No transpose) \& = 1: A\*(Aq * X = B (Transpose) \& = 2: A**H * X = B (Conjugate transpose) .Ve .SS csysv .IX Subsection "csysv" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o]ipiv(n); int [o]info()) .Ve .PP Complex version of "sysv" in PDL::LinearAlgebra::Real .SS csysvx .IX Subsection "csysvx" .Vb 1 \& 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)) .Ve .PP Complex version of "sysvx" in PDL::LinearAlgebra::Real .SS chesv .IX Subsection "chesv" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o,phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "sysv" in PDL::LinearAlgebra::Real for Hermitian matrix .SS chesvx .IX Subsection "chesvx" .Vb 1 \& 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)) .Ve .PP Complex version of "sysvx" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cposv .IX Subsection "cposv" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o,phys]info()) .Ve .PP Complex version of "posv" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix .SS cposvx .IX Subsection "cposvx" .Vb 1 \& 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)) .Ve .PP Complex version of "posvx" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix .SS cgels .IX Subsection "cgels" .Vb 1 \& Signature: (complex [io,phys]A(m,n); int trans();complex [io,phys]B(p,q);int [o,phys]info()) .Ve .PP 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. .PP .Vb 2 \& trans: = 0: the linear system involves A; \& = 1: the linear system involves A**H. .Ve .SS cgelsy .IX Subsection "cgelsy" .Vb 1 \& 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)) .Ve .PP Complex version of "gelsy" in PDL::LinearAlgebra::Real .SS cgelss .IX Subsection "cgelss" .Vb 1 \& Signature: (complex [io]A(m,n);complex [io]B(p,q); rcond(); [o]s(r); int [o]rank();int [o]info(); [t]rwork(rworkn)) .Ve .PP Complex version of "gelss" in PDL::LinearAlgebra::Real .SS cgelsd .IX Subsection "cgelsd" .Vb 1 \& 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)) .Ve .PP Complex version of "gelsd" in PDL::LinearAlgebra::Real .SS cgglse .IX Subsection "cgglse" .Vb 1 \& 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()) .Ve .PP Complex version of "gglse" in PDL::LinearAlgebra::Real .SS cggglm .IX Subsection "cggglm" .Vb 1 \& 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()) .Ve .PP Complex version of "ggglm" in PDL::LinearAlgebra::Real .SS cgetrf .IX Subsection "cgetrf" .Vb 1 \& Signature: (complex [io]A(m,n); int [o]ipiv(p); int [o]info()) .Ve .PP Complex version of "getrf" in PDL::LinearAlgebra::Real .SS cgetf2 .IX Subsection "cgetf2" .Vb 1 \& Signature: (complex [io]A(m,n); int [o]ipiv(p); int [o]info()) .Ve .PP Complex version of "getf2" in PDL::LinearAlgebra::Real .SS csytrf .IX Subsection "csytrf" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo(); int [o,phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "sytrf" in PDL::LinearAlgebra::Real .SS csytf2 .IX Subsection "csytf2" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo(); int [o,phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "sytf2" in PDL::LinearAlgebra::Real .SS cchetrf .IX Subsection "cchetrf" .Vb 1 \& Signature: (complex [io]A(n,n); int uplo(); int [o]ipiv(n); int [o]info(); [t]work(workn)) .Ve .PP Complex version of "sytrf" in PDL::LinearAlgebra::Real for Hermitian matrix .SS chetf2 .IX Subsection "chetf2" .Vb 1 \& Signature: (complex [io]A(n,n); int uplo(); int [o]ipiv(n); int [o]info()) .Ve .PP Complex version of "sytf2" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cpotrf .IX Subsection "cpotrf" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo(); int [o,phys]info()) .Ve .PP Complex version of "potrf" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix .SS cpotf2 .IX Subsection "cpotf2" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo(); int [o,phys]info()) .Ve .PP Complex version of "potf2" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix .SS cgetri .IX Subsection "cgetri" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int [phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "getri" in PDL::LinearAlgebra::Real .SS csytri .IX Subsection "csytri" .Vb 1 \& Signature: (complex [io]A(n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn)) .Ve .PP Complex version of "sytri" in PDL::LinearAlgebra::Real .SS chetri .IX Subsection "chetri" .Vb 1 \& Signature: (complex [io]A(n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn)) .Ve .PP Complex version of "sytri" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cpotri .IX Subsection "cpotri" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo(); int [o,phys]info()) .Ve .PP Complex version of "potri" in PDL::LinearAlgebra::Real .SS ctrtri .IX Subsection "ctrtri" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo(); int diag(); int [o,phys]info()) .Ve .PP Complex version of "trtri" in PDL::LinearAlgebra::Real .SS ctrti2 .IX Subsection "ctrti2" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int uplo(); int diag(); int [o,phys]info()) .Ve .PP Complex version of "trti2" in PDL::LinearAlgebra::Real .SS cgetrs .IX Subsection "cgetrs" .Vb 1 \& Signature: (complex [phys]A(n,n); int trans();complex [io,phys]B(n,m); int [phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "getrs" in PDL::LinearAlgebra::Real .PP .Vb 5 \& Arguments \& ========= \& trans: = 0: No transpose; \& = 1: Transpose; \& = 2: Conjugate transpose; .Ve .SS csytrs .IX Subsection "csytrs" .Vb 1 \& Signature: (complex [phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "sytrs" in PDL::LinearAlgebra::Real .SS chetrs .IX Subsection "chetrs" .Vb 1 \& Signature: (complex [phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [phys]ipiv(n); int [o,phys]info()) .Ve .PP Complex version of "sytrs" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cpotrs .IX Subsection "cpotrs" .Vb 1 \& Signature: (complex [phys]A(n,n); int uplo();complex [io,phys]B(n,m); int [o,phys]info()) .Ve .PP Complex version of "potrs" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix .SS ctrtrs .IX Subsection "ctrtrs" .Vb 1 \& Signature: (complex [phys]A(n,n); int uplo(); int trans(); int diag();complex [io,phys]B(n,m); int [o,phys]info()) .Ve .PP Complex version of "trtrs" in PDL::LinearAlgebra::Real .PP .Vb 5 \& Arguments \& ========= \& trans: = 0: No transpose; \& = 1: Transpose; \& = 2: Conjugate transpose; .Ve .SS clatrs .IX Subsection "clatrs" .Vb 1 \& 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()) .Ve .PP Complex version of "latrs" in PDL::LinearAlgebra::Real .PP .Vb 5 \& Arguments \& ========= \& trans: = 0: No transpose; \& = 1: Transpose; \& = 2: Conjugate transpose; .Ve .SS cgecon .IX Subsection "cgecon" .Vb 1 \& Signature: (complex A(n,n); int norm(); anorm(); [o]rcond();int [o]info(); [t]rwork(rworkn); [t]work(workn)) .Ve .PP Complex version of "gecon" in PDL::LinearAlgebra::Real .SS csycon .IX Subsection "csycon" .Vb 1 \& Signature: (complex A(n,n); int uplo(); int ipiv(n); anorm(); [o]rcond();int [o]info(); [t]work(workn)) .Ve .PP Complex version of "sycon" in PDL::LinearAlgebra::Real .SS checon .IX Subsection "checon" .Vb 1 \& Signature: (complex A(n,n); int uplo(); int ipiv(n); anorm(); [o]rcond();int [o]info(); [t]work(workn)) .Ve .PP Complex version of "sycon" in PDL::LinearAlgebra::Real for Hermitian matrix .SS cpocon .IX Subsection "cpocon" .Vb 1 \& Signature: (complex A(n,n); int uplo(); anorm(); [o]rcond();int [o]info(); [t]work(workn); [t]rwork(n)) .Ve .PP Complex version of "pocon" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix .SS ctrcon .IX Subsection "ctrcon" .Vb 1 \& Signature: (complex A(n,n); int norm();int uplo();int diag(); [o]rcond();int [o]info(); [t]work(workn); [t]rwork(n)) .Ve .PP Complex version of "trcon" in PDL::LinearAlgebra::Real .SS cgeqp3 .IX Subsection "cgeqp3" .Vb 1 \& Signature: (complex [io]A(m,n); int [io]jpvt(n);complex [o]tau(k); int [o]info(); [t]rwork(rworkn)) .Ve .PP Complex version of "geqp3" in PDL::LinearAlgebra::Real .SS cgeqrf .IX Subsection "cgeqrf" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [o,phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "geqrf" in PDL::LinearAlgebra::Real .SS cungqr .IX Subsection "cungqr" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "orgqr" in PDL::LinearAlgebra::Real .SS cunmqr .IX Subsection "cunmqr" .Vb 1 \& Signature: (complex [phys]A(p,k); int side(); int trans();complex [phys]tau(k);complex [io,phys]C(m,n);int [o,phys]info()) .Ve .PP Complex version of "ormqr" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose. .SS cgelqf .IX Subsection "cgelqf" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [o,phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "gelqf" in PDL::LinearAlgebra::Real .SS cunglq .IX Subsection "cunglq" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "orglq" in PDL::LinearAlgebra::Real .SS cunmlq .IX Subsection "cunmlq" .Vb 1 \& Signature: (complex [phys]A(k,p); int side(); int trans();complex [phys]tau(k);complex [io,phys]C(m,n);int [o,phys]info()) .Ve .PP Complex version of "ormlq" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose. .SS cgeqlf .IX Subsection "cgeqlf" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [o,phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "geqlf" in PDL::LinearAlgebra::Real .SS cungql .IX Subsection "cungql" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [phys]tau(k); int [o,phys]info()) .Ve .SS cunmql .IX Subsection "cunmql" .Vb 1 \& Signature: (complex [phys]A(p,k); int side(); int trans();complex [phys]tau(k);complex [io,phys]C(m,n);int [o,phys]info()) .Ve .PP Complex version of "ormql" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose. .SS cgerqf .IX Subsection "cgerqf" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [o,phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "gerqf" in PDL::LinearAlgebra::Real .SS cungrq .IX Subsection "cungrq" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "orgrq" in PDL::LinearAlgebra::Real. .SS cunmrq .IX Subsection "cunmrq" .Vb 1 \& Signature: (complex [phys]A(k,p); int side(); int trans();complex [phys]tau(k);complex [io,phys]C(m,n);int [o,phys]info()) .Ve .PP Complex version of "ormrq" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose. .SS ctzrzf .IX Subsection "ctzrzf" .Vb 1 \& Signature: (complex [io,phys]A(m,n);complex [o,phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "tzrzf" in PDL::LinearAlgebra::Real .SS cunmrz .IX Subsection "cunmrz" .Vb 1 \& Signature: (complex [phys]A(k,p); int side(); int trans();complex [phys]tau(k);complex [io,phys]C(m,n);int [o,phys]info()) .Ve .PP Complex version of "ormrz" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose. .SS cgehrd .IX Subsection "cgehrd" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int [phys]ilo();int [phys]ihi();complex [o,phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "gehrd" in PDL::LinearAlgebra::Real .SS cunghr .IX Subsection "cunghr" .Vb 1 \& Signature: (complex [io,phys]A(n,n); int [phys]ilo();int [phys]ihi();complex [phys]tau(k); int [o,phys]info()) .Ve .PP Complex version of "orghr" in PDL::LinearAlgebra::Real .SS chseqr .IX Subsection "chseqr" .Vb 1 \& 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()) .Ve .PP Complex version of "hseqr" in PDL::LinearAlgebra::Real .SS ctrevc .IX Subsection "ctrevc" .Vb 1 \& 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)) .Ve .PP Complex version of "trevc" in PDL::LinearAlgebra::Real .SS ctgevc .IX Subsection "ctgevc" .Vb 1 \& 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)) .Ve .PP Complex version of "tgevc" in PDL::LinearAlgebra::Real .SS cgebal .IX Subsection "cgebal" .Vb 1 \& 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()) .Ve .PP Complex version of "gebal" in PDL::LinearAlgebra::Real .SS clange .IX Subsection "clange" .Vb 1 \& Signature: (complex A(n,m); int norm(); [o]b(); [t]work(workn)) .Ve .PP Complex version of "lange" in PDL::LinearAlgebra::Real .SS clansy .IX Subsection "clansy" .Vb 1 \& Signature: (complex A(n,n); int uplo(); int norm(); [o]b(); [t]work(workn)) .Ve .PP Complex version of "lansy" in PDL::LinearAlgebra::Real .SS clantr .IX Subsection "clantr" .Vb 1 \& Signature: (complex A(m,n); int uplo(); int norm();int diag(); [o]b(); [t]work(workn)) .Ve .PP Complex version of "lantr" in PDL::LinearAlgebra::Real .SS cgemm .IX Subsection "cgemm" .Vb 1 \& 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)) .Ve .PP Complex version of "gemm" in PDL::LinearAlgebra::Real. .PP .Vb 5 \& Arguments \& ========= \& transa: = 0: No transpose; \& = 1: Transpose; \& = 2: Conjugate transpose; \& \& transb: = 0: No transpose; \& = 1: Transpose; \& = 2: Conjugate transpose; .Ve .SS cmmult .IX Subsection "cmmult" .Vb 1 \& Signature: (complex [phys]A(m,n);complex [phys]B(p,m);complex [o,phys]C(p,n)) .Ve .PP Complex version of "mmult" in PDL::LinearAlgebra::Real .SS ccrossprod .IX Subsection "ccrossprod" .Vb 1 \& Signature: (complex [phys]A(n,m);complex [phys]B(p,m);complex [o,phys]C(p,n)) .Ve .PP Complex version of "crossprod" in PDL::LinearAlgebra::Real .SS csyrk .IX Subsection "csyrk" .Vb 1 \& Signature: (complex [phys]A(m,n); int uplo(); int trans();complex [phys]alpha();complex [phys]beta();complex [io,phys]C(p,p)) .Ve .PP Complex version of "syrk" in PDL::LinearAlgebra::Real .SS cdot .IX Subsection "cdot" .Vb 1 \& Signature: (complex [phys]a(n);complex [phys]b(n);complex [o]c()) .Ve .PP Complex version of "dot" in PDL::LinearAlgebra::Real .SS cdotc .IX Subsection "cdotc" .Vb 1 \& Signature: (complex [phys]a(n);complex [phys]b(n);complex [o,phys]c()) .Ve .PP Forms the dot product of two vectors, conjugating the first vector. .SS caxpy .IX Subsection "caxpy" .Vb 1 \& Signature: (complex [phys]a(n);complex [phys] alpha();complex [io,phys]b(n)) .Ve .PP Complex version of "axpy" in PDL::LinearAlgebra::Real .SS cnrm2 .IX Subsection "cnrm2" .Vb 1 \& Signature: (complex [phys]a(n);[o]b()) .Ve .PP Complex version of "nrm2" in PDL::LinearAlgebra::Real .SS casum .IX Subsection "casum" .Vb 1 \& Signature: (complex [phys]a(n);[o]b()) .Ve .PP Complex version of "asum" in PDL::LinearAlgebra::Real .SS cscal .IX Subsection "cscal" .Vb 1 \& Signature: (complex [io,phys]a(n);complex scale()) .Ve .PP Complex version of "scal" in PDL::LinearAlgebra::Real .SS csscal .IX Subsection "csscal" .Vb 1 \& Signature: (complex [io,phys]a(n);scale()) .Ve .PP Scales a complex vector by a real constant. .SS crotg .IX Subsection "crotg" .Vb 1 \& Signature: (complex [io,phys]a();complex [phys]b();[o,phys]c();complex [o,phys]s()) .Ve .PP Complex version of "rotg" in PDL::LinearAlgebra::Real .SS clacpy .IX Subsection "clacpy" .Vb 1 \& Signature: (complex [phys]A(m,n); int uplo();complex [o,phys]B(p,n)) .Ve .PP Complex version of "lacpy" in PDL::LinearAlgebra::Real .SS claswp .IX Subsection "claswp" .Vb 1 \& Signature: (complex [io,phys]A(m,n); int [phys]k1(); int [phys]k2(); int [phys]ipiv(p)) .Ve .PP Complex version of "laswp" in PDL::LinearAlgebra::Real .SS cmstack .IX Subsection "cmstack" .Vb 1 \& Signature: (x(c,n,m);y(c,n,p);[o]out(c,n,q)) .Ve .PP Combine two 3D ndarrays into a single ndarray. This routine does backward and forward dataflow automatically. .PP 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. .SS ccharpol .IX Subsection "ccharpol" .Vb 1 \& Signature: (A(c=2,n,n);[o]Y(c=2,n,n);[o]out(c=2,p); [t]rwork(rworkn)) .Ve .PP Complex version of "charpol" in PDL::LinearAlgebra::Real .SH AUTHOR .IX Header "AUTHOR" Copyright (C) Grégory Vanuxem 2005\-2018. .PP 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.