gedmdq#
Functions
-
void sgedmdq(const char *jobs, const char *jobz, const char *jobr, const char *jobq, const char *jobt, const char *jobf, const INT whtsvd, const INT m, const INT n, f32 *restrict F, const INT ldf, f32 *restrict X, const INT ldx, f32 *restrict Y, const INT ldy, const INT nrnk, const f32 tol, INT *k, f32 *restrict reig, f32 *restrict imeig, f32 *restrict Z, const INT ldz, f32 *restrict res, f32 *restrict B, const INT ldb, f32 *restrict V, const INT ldv, f32 *restrict S, const INT lds, f32 *restrict work, const INT lwork, INT *restrict iwork, const INT liwork, INT *info)#
SGEDMDQ computes the Dynamic Mode Decomposition (DMD) for a pair of data snapshot matrices, using a QR factorization based compression of the data.
For the input matrix that contains a sequence of snapshots, SGEDMDQ computes a certain number of Ritz pairs using the standard Rayleigh-Ritz extraction from a subspace determined by the leading left singular vectors of the projected snapshots.
Parameters
injobsDetermines whether the initial data snapshots are scaled by a diagonal matrix (‘S’,’C’,’Y’,’N’).
injobzDetermines whether the eigenvectors (Koopman modes) will be computed. ‘V’ :: computed and returned in Z. ‘F’ :: returned in factored form as Z*V. ‘Q’ :: returned in factored form as Q*Z. ‘N’ :: not computed.
injobrDetermines whether to compute the residuals (‘R’,’N’).
injobqSpecifies whether to explicitly compute and return the orthogonal matrix from the QR factorization. ‘Q’ :: Q computed and stored in F. ‘N’ :: Q not explicitly computed.
injobtSpecifies whether to return the upper triangular factor from the QR factorization. ‘R’ :: R returned in Y. ‘N’ :: R not returned.
injobfSpecifies whether to store information needed for post-processing (‘R’,’E’,’N’).
inwhtsvdSelects the SVD algorithm from LAPACK, in {1,2,3,4}.
inmThe state space dimension (rows of F). m >= 0.
innThe number of data snapshots (columns of F). 0 <= n <= m.
inoutFSingle precision M-by-N array. On entry the data snapshots. On exit, if jobq==’Q’ the orthogonal factor of the QR factorization; otherwise the Householder vectors as returned by sgeqrf.
inldfThe leading dimension of F. ldf >= m.
outXMIN(M,N)-by-(N-1) array, workspace to hold the leading N-1 snapshots in the QR basis. On exit the leading K columns contain the leading K left singular vectors.
inldxThe leading dimension of X. ldx >= n.
outYMIN(M,N)-by-(N-1) array, workspace for the trailing N-1 snapshots in the QR basis. On exit, if jobt==’R’, Y contains the upper triangular factor R.
inldyThe leading dimension of Y. ldy >= n.
innrnkDetermines how to compute the numerical rank (-1, -2, or 0 < nrnk <= n-1).
intolTolerance for truncating small singular values, 0 <= tol < 1.
outk0 <= k <= n. The dimension of the SVD/POD basis and the number of computed Ritz pairs.
outreig(N-1)-by-1 array. Real parts of the eigenvalues.
outimeig(N-1)-by-1 array. Imaginary parts of the eigenvalues.
outZM-by-(N-1) array. Ritz vectors (see jobz).
inldzThe leading dimension of Z. ldz >= m.
outres(N-1)-by-1 array. Residuals for the K Ritz pairs.
outBMIN(M,N)-by-(N-1) array. Refinement / Exact DMD data (see jobf).
inldbThe leading dimension of B. ldb >= min(m,n).
outV(N-1)-by-(N-1) array. On exit V(1:K,1:K) contains the K eigenvectors of the Rayleigh quotient.
inldvThe leading dimension of V. ldv >= n-1.
outS(N-1)-by-(N-1) array. Used for the Rayleigh quotient, overwritten during the eigenvalue decomposition.
inldsThe leading dimension of S. lds >= n-1.
outworkWorkspace/output array. On exit work[0:MIN(M,N)] contains the scalar factors from sgeqrf, and work[MIN(M,N):MIN(M,N)+N-1] the singular values. On workspace query, work[0] and work[1] hold the minimal and optimal lengths.
inlworkThe length of work. If lwork = -1, a workspace query.
outiworkInteger workspace, required only if whtsvd in {2,3,4}.
inliworkThe length of iwork. If liwork = -1, a workspace query.
outinfo= -i < 0 : the i-th argument had an illegal value. = 0 : successful return. = 1 : void input (m=0 or n=0 or n=1), quick exit. = 2 : the SVD computation of X did not converge. = 3 : the computation of the eigenvalues did not converge. = 4 : data inconsistency warning (see sgedmd).
void sgedmdq(
const char* jobs,
const char* jobz,
const char* jobr,
const char* jobq,
const char* jobt,
const char* jobf,
const INT whtsvd,
const INT m,
const INT n,
f32* restrict F,
const INT ldf,
f32* restrict X,
const INT ldx,
f32* restrict Y,
const INT ldy,
const INT nrnk,
const f32 tol,
INT* k,
f32* restrict reig,
f32* restrict imeig,
f32* restrict Z,
const INT ldz,
f32* restrict res,
f32* restrict B,
const INT ldb,
f32* restrict V,
const INT ldv,
f32* restrict S,
const INT lds,
f32* restrict work,
const INT lwork,
INT* restrict iwork,
const INT liwork,
INT* info
);
Functions
-
void dgedmdq(const char *jobs, const char *jobz, const char *jobr, const char *jobq, const char *jobt, const char *jobf, const INT whtsvd, const INT m, const INT n, f64 *restrict F, const INT ldf, f64 *restrict X, const INT ldx, f64 *restrict Y, const INT ldy, const INT nrnk, const f64 tol, INT *k, f64 *restrict reig, f64 *restrict imeig, f64 *restrict Z, const INT ldz, f64 *restrict res, f64 *restrict B, const INT ldb, f64 *restrict V, const INT ldv, f64 *restrict S, const INT lds, f64 *restrict work, const INT lwork, INT *restrict iwork, const INT liwork, INT *info)#
DGEDMDQ computes the Dynamic Mode Decomposition (DMD) for a pair of data snapshot matrices, using a QR factorization based compression of the data.
For the input matrix that contains a sequence of snapshots, DGEDMDQ computes a certain number of Ritz pairs using the standard Rayleigh-Ritz extraction from a subspace determined by the leading left singular vectors of the projected snapshots.
Parameters
injobsDetermines whether the initial data snapshots are scaled by a diagonal matrix (‘S’,’C’,’Y’,’N’).
injobzDetermines whether the eigenvectors (Koopman modes) will be computed. ‘V’ :: computed and returned in Z. ‘F’ :: returned in factored form as Z*V. ‘Q’ :: returned in factored form as Q*Z. ‘N’ :: not computed.
injobrDetermines whether to compute the residuals (‘R’,’N’).
injobqSpecifies whether to explicitly compute and return the orthogonal matrix from the QR factorization. ‘Q’ :: Q computed and stored in F. ‘N’ :: Q not explicitly computed.
injobtSpecifies whether to return the upper triangular factor from the QR factorization. ‘R’ :: R returned in Y. ‘N’ :: R not returned.
injobfSpecifies whether to store information needed for post-processing (‘R’,’E’,’N’).
inwhtsvdSelects the SVD algorithm from LAPACK, in {1,2,3,4}.
inmThe state space dimension (rows of F). m >= 0.
innThe number of data snapshots (columns of F). 0 <= n <= m.
inoutFDouble precision M-by-N array. On entry the data snapshots. On exit, if jobq==’Q’ the orthogonal factor of the QR factorization; otherwise the Householder vectors as returned by dgeqrf.
inldfThe leading dimension of F. ldf >= m.
outXMIN(M,N)-by-(N-1) array, workspace to hold the leading N-1 snapshots in the QR basis. On exit the leading K columns contain the leading K left singular vectors.
inldxThe leading dimension of X. ldx >= n.
outYMIN(M,N)-by-(N-1) array, workspace for the trailing N-1 snapshots in the QR basis. On exit, if jobt==’R’, Y contains the upper triangular factor R.
inldyThe leading dimension of Y. ldy >= n.
innrnkDetermines how to compute the numerical rank (-1, -2, or 0 < nrnk <= n-1).
intolTolerance for truncating small singular values, 0 <= tol < 1.
outk0 <= k <= n. The dimension of the SVD/POD basis and the number of computed Ritz pairs.
outreig(N-1)-by-1 array. Real parts of the eigenvalues.
outimeig(N-1)-by-1 array. Imaginary parts of the eigenvalues.
outZM-by-(N-1) array. Ritz vectors (see jobz).
inldzThe leading dimension of Z. ldz >= m.
outres(N-1)-by-1 array. Residuals for the K Ritz pairs.
outBMIN(M,N)-by-(N-1) array. Refinement / Exact DMD data (see jobf).
inldbThe leading dimension of B. ldb >= min(m,n).
outV(N-1)-by-(N-1) array. On exit V(1:K,1:K) contains the K eigenvectors of the Rayleigh quotient.
inldvThe leading dimension of V. ldv >= n-1.
outS(N-1)-by-(N-1) array. Used for the Rayleigh quotient, overwritten during the eigenvalue decomposition.
inldsThe leading dimension of S. lds >= n-1.
outworkWorkspace/output array. On exit work[0:MIN(M,N)] contains the scalar factors from dgeqrf, and work[MIN(M,N):MIN(M,N)+N-1] the singular values. On workspace query, work[0] and work[1] hold the minimal and optimal lengths.
inlworkThe length of work. If lwork = -1, a workspace query.
outiworkInteger workspace, required only if whtsvd in {2,3,4}.
inliworkThe length of iwork. If liwork = -1, a workspace query.
outinfo= -i < 0 : the i-th argument had an illegal value. = 0 : successful return. = 1 : void input (m=0 or n=0 or n=1), quick exit. = 2 : the SVD computation of X did not converge. = 3 : the computation of the eigenvalues did not converge. = 4 : data inconsistency warning (see dgedmd).
void dgedmdq(
const char* jobs,
const char* jobz,
const char* jobr,
const char* jobq,
const char* jobt,
const char* jobf,
const INT whtsvd,
const INT m,
const INT n,
f64* restrict F,
const INT ldf,
f64* restrict X,
const INT ldx,
f64* restrict Y,
const INT ldy,
const INT nrnk,
const f64 tol,
INT* k,
f64* restrict reig,
f64* restrict imeig,
f64* restrict Z,
const INT ldz,
f64* restrict res,
f64* restrict B,
const INT ldb,
f64* restrict V,
const INT ldv,
f64* restrict S,
const INT lds,
f64* restrict work,
const INT lwork,
INT* restrict iwork,
const INT liwork,
INT* info
);
Functions
-
void cgedmdq(const char *jobs, const char *jobz, const char *jobr, const char *jobq, const char *jobt, const char *jobf, const INT whtsvd, const INT m, const INT n, c64 *restrict F, const INT ldf, c64 *restrict X, const INT ldx, c64 *restrict Y, const INT ldy, const INT nrnk, const f32 tol, INT *k, c64 *restrict eigs, c64 *restrict Z, const INT ldz, f32 *restrict res, c64 *restrict B, const INT ldb, c64 *restrict V, const INT ldv, c64 *restrict S, const INT lds, c64 *restrict zwork, const INT lzwork, f32 *restrict work, const INT lwork, INT *restrict iwork, const INT liwork, INT *info)#
CGEDMDQ computes the Dynamic Mode Decomposition (DMD) for a pair of data snapshot matrices, using a QR factorization based compression of the data.
For the input matrix that contains a sequence of snapshots, CGEDMDQ computes a certain number of Ritz pairs using the standard Rayleigh-Ritz extraction from a subspace determined by the leading left singular vectors of the projected snapshots.
Parameters
injobsDetermines whether the initial data snapshots are scaled by a diagonal matrix (‘S’,’C’,’Y’,’N’).
injobzDetermines whether the eigenvectors (Koopman modes) will be computed (‘V’,’F’,’Q’,’N’).
injobrDetermines whether to compute the residuals (‘R’,’N’).
injobqSpecifies whether to explicitly compute and return the unitary matrix from the QR factorization (‘Q’,’N’).
injobtSpecifies whether to return the upper triangular factor from the QR factorization (‘R’,’N’).
injobfSpecifies whether to store information needed for post-processing (‘R’,’E’,’N’).
inwhtsvdSelects the SVD algorithm from LAPACK, in {1,2,3,4}.
inmThe state space dimension (rows of F). m >= 0.
innThe number of data snapshots (columns of F). 0 <= n <= m.
inoutFComplex M-by-N array. On entry the data snapshots. On exit, if jobq==’Q’ the unitary factor of the QR factorization; otherwise the Householder vectors as returned by cgeqrf.
inldfThe leading dimension of F. ldf >= m.
outXMIN(M,N)-by-(N-1) array, workspace to hold the leading N-1 snapshots in the QR basis. On exit the leading K columns contain the leading K left singular vectors.
inldxThe leading dimension of X. ldx >= n.
outYMIN(M,N)-by-(N-1) array, workspace for the trailing N-1 snapshots in the QR basis. On exit, if jobt==’R’, Y contains the upper triangular factor R.
inldyThe leading dimension of Y. ldy >= n.
innrnkDetermines how to compute the numerical rank (-1, -2, or 0 < nrnk <= n-1).
intolTolerance for truncating small singular values, 0 <= tol < 1.
outk0 <= k <= n. The dimension of the SVD/POD basis and the number of computed Ritz pairs.
outeigs(N-1)-by-1 array. The computed eigenvalues.
outZM-by-(N-1) array. Ritz vectors (see jobz).
inldzThe leading dimension of Z. ldz >= m.
outres(N-1)-by-1 real array. Residuals for the K Ritz pairs.
outBMIN(M,N)-by-(N-1) array. Refinement / Exact DMD data (see jobf).
inldbThe leading dimension of B. ldb >= min(m,n).
outV(N-1)-by-(N-1) array. On exit V(1:K,1:K) contains the K eigenvectors of the Rayleigh quotient.
inldvThe leading dimension of V. ldv >= n-1.
outS(N-1)-by-(N-1) array. Used for the Rayleigh quotient, overwritten during the eigenvalue decomposition.
inldsThe leading dimension of S. lds >= n-1.
outzworkComplex workspace/output. On workspace query, zwork[0] and zwork[1] hold the minimal and optimal lengths.
inlzworkThe length of zwork. If lzwork = -1, a workspace query.
outworkReal workspace/output.
inlworkThe length of work. If lwork = -1, a workspace query.
outiworkInteger workspace, required only if whtsvd in {2,3,4}.
inliworkThe length of iwork. If liwork = -1, a workspace query.
outinfo= -i < 0 : the i-th argument had an illegal value. = 0 : successful return. = 1 : void input (m=0 or n=0 or n=1), quick exit. = 2 : the SVD computation of X did not converge. = 3 : the computation of the eigenvalues did not converge. = 4 : data inconsistency warning (see cgedmd).
void cgedmdq(
const char* jobs,
const char* jobz,
const char* jobr,
const char* jobq,
const char* jobt,
const char* jobf,
const INT whtsvd,
const INT m,
const INT n,
c64* restrict F,
const INT ldf,
c64* restrict X,
const INT ldx,
c64* restrict Y,
const INT ldy,
const INT nrnk,
const f32 tol,
INT* k,
c64* restrict eigs,
c64* restrict Z,
const INT ldz,
f32* restrict res,
c64* restrict B,
const INT ldb,
c64* restrict V,
const INT ldv,
c64* restrict S,
const INT lds,
c64* restrict zwork,
const INT lzwork,
f32* restrict work,
const INT lwork,
INT* restrict iwork,
const INT liwork,
INT* info
);
Functions
-
void zgedmdq(const char *jobs, const char *jobz, const char *jobr, const char *jobq, const char *jobt, const char *jobf, const INT whtsvd, const INT m, const INT n, c128 *restrict F, const INT ldf, c128 *restrict X, const INT ldx, c128 *restrict Y, const INT ldy, const INT nrnk, const f64 tol, INT *k, c128 *restrict eigs, c128 *restrict Z, const INT ldz, f64 *restrict res, c128 *restrict B, const INT ldb, c128 *restrict V, const INT ldv, c128 *restrict S, const INT lds, c128 *restrict zwork, const INT lzwork, f64 *restrict work, const INT lwork, INT *restrict iwork, const INT liwork, INT *info)#
ZGEDMDQ computes the Dynamic Mode Decomposition (DMD) for a pair of data snapshot matrices, using a QR factorization based compression of the data.
For the input matrix that contains a sequence of snapshots, ZGEDMDQ computes a certain number of Ritz pairs using the standard Rayleigh-Ritz extraction from a subspace determined by the leading left singular vectors of the projected snapshots.
Parameters
injobsDetermines whether the initial data snapshots are scaled by a diagonal matrix (‘S’,’C’,’Y’,’N’).
injobzDetermines whether the eigenvectors (Koopman modes) will be computed (‘V’,’F’,’Q’,’N’).
injobrDetermines whether to compute the residuals (‘R’,’N’).
injobqSpecifies whether to explicitly compute and return the unitary matrix from the QR factorization (‘Q’,’N’).
injobtSpecifies whether to return the upper triangular factor from the QR factorization (‘R’,’N’).
injobfSpecifies whether to store information needed for post-processing (‘R’,’E’,’N’).
inwhtsvdSelects the SVD algorithm from LAPACK, in {1,2,3,4}.
inmThe state space dimension (rows of F). m >= 0.
innThe number of data snapshots (columns of F). 0 <= n <= m.
inoutFComplex M-by-N array. On entry the data snapshots. On exit, if jobq==’Q’ the unitary factor of the QR factorization; otherwise the Householder vectors as returned by zgeqrf.
inldfThe leading dimension of F. ldf >= m.
outXMIN(M,N)-by-(N-1) array, workspace to hold the leading N-1 snapshots in the QR basis. On exit the leading K columns contain the leading K left singular vectors.
inldxThe leading dimension of X. ldx >= n.
outYMIN(M,N)-by-(N-1) array, workspace for the trailing N-1 snapshots in the QR basis. On exit, if jobt==’R’, Y contains the upper triangular factor R.
inldyThe leading dimension of Y. ldy >= n.
innrnkDetermines how to compute the numerical rank (-1, -2, or 0 < nrnk <= n-1).
intolTolerance for truncating small singular values, 0 <= tol < 1.
outk0 <= k <= n. The dimension of the SVD/POD basis and the number of computed Ritz pairs.
outeigs(N-1)-by-1 array. The computed eigenvalues.
outZM-by-(N-1) array. Ritz vectors (see jobz).
inldzThe leading dimension of Z. ldz >= m.
outres(N-1)-by-1 real array. Residuals for the K Ritz pairs.
outBMIN(M,N)-by-(N-1) array. Refinement / Exact DMD data (see jobf).
inldbThe leading dimension of B. ldb >= min(m,n).
outV(N-1)-by-(N-1) array. On exit V(1:K,1:K) contains the K eigenvectors of the Rayleigh quotient.
inldvThe leading dimension of V. ldv >= n-1.
outS(N-1)-by-(N-1) array. Used for the Rayleigh quotient, overwritten during the eigenvalue decomposition.
inldsThe leading dimension of S. lds >= n-1.
outzworkComplex workspace/output. On workspace query, zwork[0] and zwork[1] hold the minimal and optimal lengths.
inlzworkThe length of zwork. If lzwork = -1, a workspace query.
outworkReal workspace/output.
inlworkThe length of work. If lwork = -1, a workspace query.
outiworkInteger workspace, required only if whtsvd in {2,3,4}.
inliworkThe length of iwork. If liwork = -1, a workspace query.
outinfo= -i < 0 : the i-th argument had an illegal value. = 0 : successful return. = 1 : void input (m=0 or n=0 or n=1), quick exit. = 2 : the SVD computation of X did not converge. = 3 : the computation of the eigenvalues did not converge. = 4 : data inconsistency warning (see zgedmd).
void zgedmdq(
const char* jobs,
const char* jobz,
const char* jobr,
const char* jobq,
const char* jobt,
const char* jobf,
const INT whtsvd,
const INT m,
const INT n,
c128* restrict F,
const INT ldf,
c128* restrict X,
const INT ldx,
c128* restrict Y,
const INT ldy,
const INT nrnk,
const f64 tol,
INT* k,
c128* restrict eigs,
c128* restrict Z,
const INT ldz,
f64* restrict res,
c128* restrict B,
const INT ldb,
c128* restrict V,
const INT ldv,
c128* restrict S,
const INT lds,
c128* restrict zwork,
const INT lzwork,
f64* restrict work,
const INT lwork,
INT* restrict iwork,
const INT liwork,
INT* info
);