Complex(3pm)

πŸ“¦
version 0.38 Β· 3 versions
, in ubuntu noble

πŸ’– NAME πŸ’–

PDL::LinearAlgebra::Complex β€” it's the PDL interface to the lapack linear algebra programming library, but make it complex numbers πŸ’… (yep, this is the Complex(3pm) page, bestie, and it's a whole series so buckle up).


✨ SYNOPSIS ✨

 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);

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so, this module is an interface to parts of the lapack library β€” specifically the complex-number side of things. 🌸

These routines will happily accept either float or double ndarrays. No gatekeeping. πŸ‘‘


πŸ‘‘ FUNCTIONS πŸ‘‘

🌈 cgtsv 🌈

  Signature: (complex [phys]DL(n);complex  [phys]D(n);complex  [phys]DU(n);complex  [io,phys]B(n,nrhs); int [o,phys]info())

It solves the equation

        A * X = B

where A is an "n" by "n" tridiagonal matrix, using Gaussian elimination with partial pivoting, and B is an "n" by "nrhs" matrix. 🧚

Lowkey important: the equation A**T*X = B can also be solved β€” you just swap the order of the arguments DU and DL. iykyk. πŸ™ˆ

NB This differs from the LINPACK function cgtsl because here DL starts from its first element, while the LINPACK equivalent starts from its second element. Not me warning you twice. πŸ’€

🫢 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;

🌸 cgesvd 🌸

  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))

It's the complex version of gesvd in PDL::LinearAlgebra::Real. πŸŽ€

The SVD is written

 A = U * SIGMA * ConjugateTranspose(V)

⭐ cgesdd ⭐

  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. πŸ’…

The SVD is written

 A = U * SIGMA * ConjugateTranspose(V)

πŸ“ cggsvd πŸ“

  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


🧚 cgeev 🧚

  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


πŸ’œ cgeevx πŸ’œ

  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


πŸ”₯ cggev πŸ”₯

  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


πŸ’– cggevx πŸ’–

  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


🌈 cgees 🌈

  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.
Heads up bestie: 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. 😭

⭐ cgeesx ⭐

  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

πŸŽ€ 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.
Heads up bestie: 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. 😭

πŸ¦‹ cgges πŸ¦‹

  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.
Heads up bestie: 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. 😭

πŸ‘‘ cggesx πŸ‘‘

  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.
Heads up bestie: 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. 😭 (yeah, N+3 this time, not N+2, don't @ me)

πŸ’… cheev πŸ’…

  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


🌸 cheevd 🌸

  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


✨ cheevx ✨

  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


πŸ’œ cheevr πŸ’œ

  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


🧚 chegv 🧚

  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


πŸŽ€ chegvd πŸŽ€

  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


πŸ”₯ chegvx πŸ”₯

  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


⭐ cgesv ⭐

  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


πŸ’– cgesvx πŸ’–

  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)

csysv 🫢

(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 ✨

csysvx πŸ’–

(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

chesv 🌸

(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 πŸ’…

chesvx πŸŽ€

(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

cposv πŸ¦‹

(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 ⭐

cposvx πŸ‘‘

(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

cgels πŸ”₯

(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.

cgelsy πŸ’œ

(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

cgelss 🌈

(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

cgelsd ✨

(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

cgglse πŸ“

(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

cggglm 🧚

(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

cgetrf πŸ’–

(complex [io]A(m,n); int [o]ipiv(p); int [o]info())

Complex version of "getrf" in PDL::LinearAlgebra::Real

cgetf2 πŸŽ€

(complex [io]A(m,n); int [o]ipiv(p); int [o]info())

Complex version of "getf2" in PDL::LinearAlgebra::Real

csytrf 🌸

(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

csytf2 πŸ¦‹

(complex [io,phys]A(n,n); int uplo(); int [o,phys]ipiv(n); int [o,phys]info())

Complex version of "sytf2" in PDL::LinearAlgebra::Real

cchetrf πŸ’…

(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

chetf2 ⭐

(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

cpotrf πŸ‘‘

(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

cpotf2 πŸ”₯

(complex [io,phys]A(n,n); int uplo(); int [o,phys]info())

Complex version of "potf2" in PDL::LinearAlgebra::Real for Hermitian positive definite matrix

cgetri πŸ’œ

(complex [io,phys]A(n,n); int [phys]ipiv(n); int [o,phys]info())

Complex version of "getri" in PDL::LinearAlgebra::Real

csytri 🌈

(complex [io]A(n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn))

Complex version of "sytri" in PDL::LinearAlgebra::Real

chetri ✨

(complex [io]A(n,n); int uplo(); int ipiv(n); int [o]info(); [t]work(workn))

Complex version of "sytri" in PDL::LinearAlgebra::Real for Hermitian matrix

cpotri πŸ“

(complex [io,phys]A(n,n); int uplo(); int [o,phys]info())

Complex version of "potri" in PDL::LinearAlgebra::Real

ctrtri 🧚

(complex [io,phys]A(n,n); int uplo(); int diag(); int [o,phys]info())

Complex version of "trtri" in PDL::LinearAlgebra::Real

ctrti2 πŸ’–

(complex [io,phys]A(n,n); int uplo(); int diag(); int [o,phys]info())

Complex version of "trti2" in PDL::LinearAlgebra::Real

cgetrs πŸŽ€

(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;

csytrs 🌸

(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

chetrs πŸ¦‹

(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 for Hermitian matrix

cpotrs πŸ’…

(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

ctrtrs ⭐

(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

Arguments

trans:   = 0:  No transpose;
         = 1:  Transpose;
         = 2:  Conjugate transpose;

clatrs πŸ‘‘

(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

Arguments

trans:   = 0:  No transpose;
         = 1:  Transpose;
         = 2:  Conjugate transpose;

cgecon πŸ”₯

(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

csycon πŸ’œ

(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

checon 🌈

(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 for Hermitian matrix

cpocon ✨

(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

ctrcon πŸ“

(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

cgeqp3 🧚

(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

cgeqrf πŸ’–

(complex [io,phys]A(m,n);complex  [o,phys]tau(k); int [o,phys]info())

Complex version of "geqrf" in PDL::LinearAlgebra::Real

cungqr πŸŽ€

(complex [io,phys]A(m,n);complex  [phys]tau(k); int [o,phys]info())

Complex version of "orgqr" in PDL::LinearAlgebra::Real

cunmqr 🌸

(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.

cgelqf πŸ¦‹

(complex [io,phys]A(m,n);complex  [o,phys]tau(k); int [o,phys]info())

Complex version of "gelqf" in PDL::LinearAlgebra::Real

cunglq πŸ’…

(complex [io,phys]A(m,n);complex  [phys]tau(k); int [o,phys]info())

Complex version of "orglq" in PDL::LinearAlgebra::Real

cunmlq ⭐

(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.

cgeqlf πŸ‘‘

(complex [io,phys]A(m,n);complex  [o,phys]tau(k); int [o,phys]info())

Complex version of "geqlf" in PDL::LinearAlgebra::Real

cungql πŸ”₯

(complex [io,phys]A(m,n);complex  [phys]tau(k); int [o,phys]info())

cunmql πŸ’œ

(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 "ormql" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.

cgerqf 🌈

(complex [io,phys]A(m,n);complex  [o,phys]tau(k); int [o,phys]info())

Complex version of "gerqf" in PDL::LinearAlgebra::Real

cungrq ✨

(complex [io,phys]A(m,n);complex  [phys]tau(k); int [o,phys]info())

Complex version of "orgrq" in PDL::LinearAlgebra::Real.

cunmrq πŸ“

(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 "ormrq" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.

ctzrzf 🧚

(complex [io,phys]A(m,n);complex  [o,phys]tau(k); int [o,phys]info())

Complex version of "tzrzf" in PDL::LinearAlgebra::Real

cunmrz πŸ’–

(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 "ormrz" in PDL::LinearAlgebra::Real. Here trans = 1 means conjugate transpose.

cgehrd πŸŽ€

(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

cunghr 🌸

(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

chseqr πŸ¦‹

(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

ctrevc

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))

bestie this is the complex-coded version of trevc from PDL::LinearAlgebra::Real ✨ same energy, extra imaginary sparkle.


ctgevc

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))

and this one? complex version of tgevc in PDL::LinearAlgebra::Real πŸ’… two matrices, one glow-up.


cgebal

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 πŸ¦‹ balancing but make it imaginary.


clange

Signature: (complex A(n,m); int norm(); [o]b(); [t]work(workn))

complex version of lange in PDL::LinearAlgebra::Real β€” norm time, but complex 🌸


clansy

Signature: (complex A(n,n); int uplo(); int norm(); [o]b(); [t]work(workn))

complex version of lansy in PDL::LinearAlgebra::Real πŸŽ€


clantr

Signature: (complex A(m,n); int uplo(); int norm();int diag(); [o]b(); [t]work(workn))

complex version of lantr in PDL::LinearAlgebra::Real β€” triangular edition, obviously πŸ’œ


cgemm

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

cmmult

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 ✨ matrix multiply but it's got feelings now.


ccrossprod

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 🌈


csyrk

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 β€” symmetric rank-k, serving looks πŸ‘‘


cdot

Signature: (complex [phys]a(n);complex [phys]b(n);complex [o]c())

complex version of dot in PDL::LinearAlgebra::Real πŸ’– two vectors, one lil scalar, no cap.


cdotc

Signature: (complex [phys]a(n);complex [phys]b(n);complex [o,phys]c())

Forms the dot product of two vectors, conjugating the first vector. 🌸 yes bestie, the first one gets conjugated β€” that's the whole plot twist.


caxpy

Signature: (complex [phys]a(n);complex [phys] alpha();complex [io,phys]b(n))

complex version of axpy in PDL::LinearAlgebra::Real πŸ¦‹


cnrm2

Signature: (complex [phys]a(n);[o]b())

complex version of nrm2 in PDL::LinearAlgebra::Real β€” the norm, but fancy ✨


casum

Signature: (complex [phys]a(n);[o]b())

complex version of asum in PDL::LinearAlgebra::Real πŸ’…


cscal

Signature: (complex [io,phys]a(n);complex scale())

complex version of scal in PDL::LinearAlgebra::Real β€” scaling things up, main character energy πŸŽ€


csscal

Signature: (complex [io,phys]a(n);scale())

Scales a complex vector by a real constant. 🫢 note that: complex vector, real constant. lowkey important.


crotg

Signature: (complex [io,phys]a();complex [phys]b();[o,phys]c();complex  [o,phys]s())

complex version of rotg in PDL::LinearAlgebra::Real 🌸


clacpy

Signature: (complex [phys]A(m,n); int uplo();complex  [o,phys]B(p,n))

complex version of lacpy in PDL::LinearAlgebra::Real β€” copy that, periodt πŸ’œ


claswp

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 πŸ”₯ swapping rows like it's nothing.


cmstack

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. ✨

heads up bestie: 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. πŸ’€ so like, the bad-value flag is contagious and it spreads to every output.

ccharpol

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 πŸ‘‘ characteristic polynomial but complex.


AUTHOR πŸ’–

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.


and that's a wrap on the whole page, bestie πŸŽ€ this was Complex(3pm) from perl v5.38.2, dated 2024-03-31 β€” go forth and conjugate responsibly πŸŒˆπŸ’œ

πŸ“¦ where this page comes from