.\" Automatically generated by Pod::Man 4.14 (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 .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . 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 "2023-04-02" "perl v5.36.0" "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. #line 68 \*(L"Complex.pm\*(R" .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 \s-1DU\s0 and \s-1DL.\s0 .PP \&\fB\s-1NB\s0\fR This differs from the \s-1LINPACK\s0 function \f(CW\*(C`cgtsl\*(C'\fR in that \f(CW\*(C`DL\*(C'\fR starts from its first element, while the \s-1LINPACK\s0 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 \*(L"gesvd\*(R" in PDL::LinearAlgebra::Real. .PP The \s-1SVD\s0 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 \*(L"gesdd\*(R" in PDL::LinearAlgebra::Real. .PP The \s-1SVD\s0 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 \*(L"ggsvd\*(R" 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 \*(L"geev\*(R" 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 \*(L"geevx\*(R" 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 \*(L"ggev\*(R" 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 \*(L"ggevx\*(R" 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 \*(L"gees\*(R" 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 \*(L"geesx\*(R" 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 \*(L"ggees\*(R" 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 \*(L"ggeesx\*(R" 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 \*(L"syev\*(R" 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 \*(L"syevd\*(R" 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 \*(L"syevx\*(R" 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 \*(L"syevr\*(R" 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 \*(L"sygv\*(R" 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 \*(L"sygvd\*(R" 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 \*(L"sygvx\*(R" 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 \*(L"gesv\*(R" 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 \*(L"gesvx\*(R" 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 \*(L"sysv\*(R" 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 \*(L"sysvx\*(R" 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 \*(L"sysv\*(R" 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 \*(L"sysvx\*(R" 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 \*(L"posv\*(R" 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 \*(L"posvx\*(R" 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 \*(L"gels\*(R" 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 \*(L"gelsy\*(R" 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 \*(L"gelss\*(R" 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 \*(L"gelsd\*(R" 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 \*(L"gglse\*(R" 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 \*(L"ggglm\*(R" 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 \*(L"getrf\*(R" 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 \*(L"getf2\*(R" 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 \*(L"sytrf\*(R" 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 \*(L"sytf2\*(R" 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 \*(L"sytrf\*(R" 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 \*(L"sytf2\*(R" 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 \*(L"potrf\*(R" 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 \*(L"potf2\*(R" 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 \*(L"getri\*(R" 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 \*(L"sytri\*(R" 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 \*(L"sytri\*(R" 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 \*(L"potri\*(R" 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 \*(L"trtri\*(R" 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 \*(L"trti2\*(R" 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 \*(L"getrs\*(R" 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 \*(L"sytrs\*(R" 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 \*(L"sytrs\*(R" 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 \*(L"potrs\*(R" 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 \*(L"trtrs\*(R" 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 \*(L"latrs\*(R" 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 \*(L"gecon\*(R" 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 \*(L"sycon\*(R" 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 \*(L"sycon\*(R" 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 \*(L"pocon\*(R" 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 \*(L"trcon\*(R" 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 \*(L"geqp3\*(R" 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 \*(L"geqrf\*(R" 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 \*(L"orgqr\*(R" 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 \*(L"ormqr\*(R" 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 \*(L"gelqf\*(R" 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 \*(L"orglq\*(R" 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 \*(L"ormlq\*(R" 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 \*(L"geqlf\*(R" 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 \*(L"ormql\*(R" 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 \*(L"gerqf\*(R" 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 \*(L"orgrq\*(R" 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 \*(L"ormrq\*(R" 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 \*(L"tzrzf\*(R" 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 \*(L"ormrz\*(R" 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 \*(L"gehrd\*(R" 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 \*(L"orghr\*(R" 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 \*(L"hseqr\*(R" 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 \*(L"trevc\*(R" 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 \*(L"tgevc\*(R" 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 \*(L"gebal\*(R" 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 \*(L"lange\*(R" 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 \*(L"lansy\*(R" 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 \*(L"lantr\*(R" 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 \*(L"gemm\*(R" 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 \*(L"mmult\*(R" 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 \*(L"crossprod\*(R" 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 \*(L"syrk\*(R" 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 \*(L"dot\*(R" 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 \*(L"axpy\*(R" in PDL::LinearAlgebra::Real .SS "cnrm2" .IX Subsection "cnrm2" .Vb 1 \& Signature: (complex [phys]a(n);[o]b()) .Ve .PP Complex version of \*(L"nrm2\*(R" in PDL::LinearAlgebra::Real .SS "casum" .IX Subsection "casum" .Vb 1 \& Signature: (complex [phys]a(n);[o]b()) .Ve .PP Complex version of \*(L"asum\*(R" in PDL::LinearAlgebra::Real .SS "cscal" .IX Subsection "cscal" .Vb 1 \& Signature: (complex [io,phys]a(n);complex scale()) .Ve .PP Complex version of \*(L"scal\*(R" 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 \*(L"rotg\*(R" 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 \*(L"lacpy\*(R" 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 \*(L"laswp\*(R" in PDL::LinearAlgebra::Real .SS "ctricpy" .IX Subsection "ctricpy" .Vb 1 \& Signature: (A(c=2,m,n);int uplo();[o] C(c=2,m,n)) .Ve .PP Copy triangular part to another matrix. If uplo == 0 copy upper triangular part. .PP 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. .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 \*(L"charpol\*(R" 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.