.TH "gsvj0" 3 "Wed Feb 7 2024 11:30:40" "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME gsvj0 \- gsvj0: step in gesvj .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBcgsvj0\fP (jobv, m, n, a, lda, d, sva, mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)" .br .RI "\fBCGSVJ0\fP pre-processor for the routine cgesvj\&. " .ti -1c .RI "subroutine \fBdgsvj0\fP (jobv, m, n, a, lda, d, sva, mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)" .br .RI "\fBDGSVJ0\fP pre-processor for the routine dgesvj\&. " .ti -1c .RI "subroutine \fBsgsvj0\fP (jobv, m, n, a, lda, d, sva, mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)" .br .RI "\fBSGSVJ0\fP pre-processor for the routine sgesvj\&. " .ti -1c .RI "subroutine \fBzgsvj0\fP (jobv, m, n, a, lda, d, sva, mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)" .br .RI "\fB ZGSVJ0 pre-processor for the routine zgesvj\&. \fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine cgsvj0 (character*1 jobv, integer m, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( n ) d, real, dimension( n ) sva, integer mv, complex, dimension( ldv, * ) v, integer ldv, real eps, real sfmin, real tol, integer nsweep, complex, dimension( lwork ) work, integer lwork, integer info)" .PP \fBCGSVJ0\fP pre-processor for the routine cgesvj\&. .PP \fBPurpose:\fP .RS 4 .PP .nf CGSVJ0 is called from CGESVJ as a pre-processor and that is its main purpose\&. It applies Jacobi rotations in the same way as CGESVJ does, but it does not check convergence (stopping criterion)\&. Few tuning parameters (marked by [TP]) are available for the implementer\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBV\fP .PP .nf JOBV is CHARACTER*1 Specifies whether the output from this procedure is used to compute the matrix V: = 'V': the product of the Jacobi rotations is accumulated by postmultiplying the N-by-N array V\&. (See the description of V\&.) = 'A': the product of the Jacobi rotations is accumulated by postmultiplying the MV-by-N array V\&. (See the descriptions of MV and V\&.) = 'N': the Jacobi rotations are not accumulated\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the input matrix A\&. M >= 0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the input matrix A\&. M >= N >= 0\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX array, dimension (LDA,N) On entry, M-by-N matrix A, such that A*diag(D) represents the input matrix\&. On exit, A_onexit * diag(D_onexit) represents the input matrix A*diag(D) post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of D, TOL and NSWEEP\&.) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,M)\&. .fi .PP .br \fID\fP .PP .nf D is COMPLEX array, dimension (N) The array D accumulates the scaling factors from the complex scaled Jacobi rotations\&. On entry, A*diag(D) represents the input matrix\&. On exit, A_onexit*diag(D_onexit) represents the input matrix post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of A, TOL and NSWEEP\&.) .fi .PP .br \fISVA\fP .PP .nf SVA is REAL array, dimension (N) On entry, SVA contains the Euclidean norms of the columns of the matrix A*diag(D)\&. On exit, SVA contains the Euclidean norms of the columns of the matrix A_onexit*diag(D_onexit)\&. .fi .PP .br \fIMV\fP .PP .nf MV is INTEGER If JOBV = 'A', then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then MV is not referenced\&. .fi .PP .br \fIV\fP .PP .nf V is COMPLEX array, dimension (LDV,N) If JOBV = 'V' then N rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'A' then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then V is not referenced\&. .fi .PP .br \fILDV\fP .PP .nf LDV is INTEGER The leading dimension of the array V, LDV >= 1\&. If JOBV = 'V', LDV >= N\&. If JOBV = 'A', LDV >= MV\&. .fi .PP .br \fIEPS\fP .PP .nf EPS is REAL EPS = SLAMCH('Epsilon') .fi .PP .br \fISFMIN\fP .PP .nf SFMIN is REAL SFMIN = SLAMCH('Safe Minimum') .fi .PP .br \fITOL\fP .PP .nf TOL is REAL TOL is the threshold for Jacobi rotations\&. For a pair A(:,p), A(:,q) of pivot columns, the Jacobi rotation is applied only if ABS(COS(angle(A(:,p),A(:,q)))) > TOL\&. .fi .PP .br \fINSWEEP\fP .PP .nf NSWEEP is INTEGER NSWEEP is the number of sweeps of Jacobi rotations to be performed\&. .fi .PP .br \fIWORK\fP .PP .nf WORK is COMPLEX array, dimension (LWORK) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER LWORK is the dimension of WORK\&. LWORK >= M\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit\&. < 0: if INFO = -i, then the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 CGSVJ0 is used just to enable CGESVJ to call a simplified version of itself to work on a submatrix of the original matrix\&. .RE .PP \fBContributor:\fP .RS 4 Zlatko Drmac (Zagreb, Croatia) .RE .PP \fBBugs, Examples and Comments:\fP .RS 4 Please report all bugs and send interesting test examples and comments to drmac@math.hr\&. Thank you\&. .RE .PP .SS "subroutine dgsvj0 (character*1 jobv, integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( n ) d, double precision, dimension( n ) sva, integer mv, double precision, dimension( ldv, * ) v, integer ldv, double precision eps, double precision sfmin, double precision tol, integer nsweep, double precision, dimension( lwork ) work, integer lwork, integer info)" .PP \fBDGSVJ0\fP pre-processor for the routine dgesvj\&. .PP \fBPurpose:\fP .RS 4 .PP .nf DGSVJ0 is called from DGESVJ as a pre-processor and that is its main purpose\&. It applies Jacobi rotations in the same way as DGESVJ does, but it does not check convergence (stopping criterion)\&. Few tuning parameters (marked by [TP]) are available for the implementer\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBV\fP .PP .nf JOBV is CHARACTER*1 Specifies whether the output from this procedure is used to compute the matrix V: = 'V': the product of the Jacobi rotations is accumulated by postmultiplying the N-by-N array V\&. (See the description of V\&.) = 'A': the product of the Jacobi rotations is accumulated by postmultiplying the MV-by-N array V\&. (See the descriptions of MV and V\&.) = 'N': the Jacobi rotations are not accumulated\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the input matrix A\&. M >= 0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the input matrix A\&. M >= N >= 0\&. .fi .PP .br \fIA\fP .PP .nf A is DOUBLE PRECISION array, dimension (LDA,N) On entry, M-by-N matrix A, such that A*diag(D) represents the input matrix\&. On exit, A_onexit * D_onexit represents the input matrix A*diag(D) post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of D, TOL and NSWEEP\&.) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,M)\&. .fi .PP .br \fID\fP .PP .nf D is DOUBLE PRECISION array, dimension (N) The array D accumulates the scaling factors from the fast scaled Jacobi rotations\&. On entry, A*diag(D) represents the input matrix\&. On exit, A_onexit*diag(D_onexit) represents the input matrix post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of A, TOL and NSWEEP\&.) .fi .PP .br \fISVA\fP .PP .nf SVA is DOUBLE PRECISION array, dimension (N) On entry, SVA contains the Euclidean norms of the columns of the matrix A*diag(D)\&. On exit, SVA contains the Euclidean norms of the columns of the matrix onexit*diag(D_onexit)\&. .fi .PP .br \fIMV\fP .PP .nf MV is INTEGER If JOBV = 'A', then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then MV is not referenced\&. .fi .PP .br \fIV\fP .PP .nf V is DOUBLE PRECISION array, dimension (LDV,N) If JOBV = 'V' then N rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'A' then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then V is not referenced\&. .fi .PP .br \fILDV\fP .PP .nf LDV is INTEGER The leading dimension of the array V, LDV >= 1\&. If JOBV = 'V', LDV >= N\&. If JOBV = 'A', LDV >= MV\&. .fi .PP .br \fIEPS\fP .PP .nf EPS is DOUBLE PRECISION EPS = DLAMCH('Epsilon') .fi .PP .br \fISFMIN\fP .PP .nf SFMIN is DOUBLE PRECISION SFMIN = DLAMCH('Safe Minimum') .fi .PP .br \fITOL\fP .PP .nf TOL is DOUBLE PRECISION TOL is the threshold for Jacobi rotations\&. For a pair A(:,p), A(:,q) of pivot columns, the Jacobi rotation is applied only if DABS(COS(angle(A(:,p),A(:,q)))) > TOL\&. .fi .PP .br \fINSWEEP\fP .PP .nf NSWEEP is INTEGER NSWEEP is the number of sweeps of Jacobi rotations to be performed\&. .fi .PP .br \fIWORK\fP .PP .nf WORK is DOUBLE PRECISION array, dimension (LWORK) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER LWORK is the dimension of WORK\&. LWORK >= M\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit\&. < 0: if INFO = -i, then the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 DGSVJ0 is used just to enable DGESVJ to call a simplified version of itself to work on a submatrix of the original matrix\&. .RE .PP \fBContributors:\fP .RS 4 Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany) .RE .PP \fBBugs, Examples and Comments:\fP .RS 4 Please report all bugs and send interesting test examples and comments to drmac@math.hr\&. Thank you\&. .RE .PP .SS "subroutine sgsvj0 (character*1 jobv, integer m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( n ) d, real, dimension( n ) sva, integer mv, real, dimension( ldv, * ) v, integer ldv, real eps, real sfmin, real tol, integer nsweep, real, dimension( lwork ) work, integer lwork, integer info)" .PP \fBSGSVJ0\fP pre-processor for the routine sgesvj\&. .PP \fBPurpose:\fP .RS 4 .PP .nf SGSVJ0 is called from SGESVJ as a pre-processor and that is its main purpose\&. It applies Jacobi rotations in the same way as SGESVJ does, but it does not check convergence (stopping criterion)\&. Few tuning parameters (marked by [TP]) are available for the implementer\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBV\fP .PP .nf JOBV is CHARACTER*1 Specifies whether the output from this procedure is used to compute the matrix V: = 'V': the product of the Jacobi rotations is accumulated by postmultiplying the N-by-N array V\&. (See the description of V\&.) = 'A': the product of the Jacobi rotations is accumulated by postmultiplying the MV-by-N array V\&. (See the descriptions of MV and V\&.) = 'N': the Jacobi rotations are not accumulated\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the input matrix A\&. M >= 0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the input matrix A\&. M >= N >= 0\&. .fi .PP .br \fIA\fP .PP .nf A is REAL array, dimension (LDA,N) On entry, M-by-N matrix A, such that A*diag(D) represents the input matrix\&. On exit, A_onexit * D_onexit represents the input matrix A*diag(D) post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of D, TOL and NSWEEP\&.) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,M)\&. .fi .PP .br \fID\fP .PP .nf D is REAL array, dimension (N) The array D accumulates the scaling factors from the fast scaled Jacobi rotations\&. On entry, A*diag(D) represents the input matrix\&. On exit, A_onexit*diag(D_onexit) represents the input matrix post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of A, TOL and NSWEEP\&.) .fi .PP .br \fISVA\fP .PP .nf SVA is REAL array, dimension (N) On entry, SVA contains the Euclidean norms of the columns of the matrix A*diag(D)\&. On exit, SVA contains the Euclidean norms of the columns of the matrix onexit*diag(D_onexit)\&. .fi .PP .br \fIMV\fP .PP .nf MV is INTEGER If JOBV = 'A', then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then MV is not referenced\&. .fi .PP .br \fIV\fP .PP .nf V is REAL array, dimension (LDV,N) If JOBV = 'V' then N rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'A' then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then V is not referenced\&. .fi .PP .br \fILDV\fP .PP .nf LDV is INTEGER The leading dimension of the array V, LDV >= 1\&. If JOBV = 'V', LDV >= N\&. If JOBV = 'A', LDV >= MV\&. .fi .PP .br \fIEPS\fP .PP .nf EPS is REAL EPS = SLAMCH('Epsilon') .fi .PP .br \fISFMIN\fP .PP .nf SFMIN is REAL SFMIN = SLAMCH('Safe Minimum') .fi .PP .br \fITOL\fP .PP .nf TOL is REAL TOL is the threshold for Jacobi rotations\&. For a pair A(:,p), A(:,q) of pivot columns, the Jacobi rotation is applied only if ABS(COS(angle(A(:,p),A(:,q)))) > TOL\&. .fi .PP .br \fINSWEEP\fP .PP .nf NSWEEP is INTEGER NSWEEP is the number of sweeps of Jacobi rotations to be performed\&. .fi .PP .br \fIWORK\fP .PP .nf WORK is REAL array, dimension (LWORK) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER LWORK is the dimension of WORK\&. LWORK >= M\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit\&. < 0: if INFO = -i, then the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 SGSVJ0 is used just to enable SGESVJ to call a simplified version of itself to work on a submatrix of the original matrix\&. .RE .PP \fBContributors:\fP .RS 4 Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany) .RE .PP \fBBugs, Examples and Comments:\fP .RS 4 Please report all bugs and send interesting test examples and comments to drmac@math.hr\&. Thank you\&. .RE .PP .SS "subroutine zgsvj0 (character*1 jobv, integer m, integer n, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( n ) d, double precision, dimension( n ) sva, integer mv, complex*16, dimension( ldv, * ) v, integer ldv, double precision eps, double precision sfmin, double precision tol, integer nsweep, complex*16, dimension( lwork ) work, integer lwork, integer info)" .PP \fB ZGSVJ0 pre-processor for the routine zgesvj\&. \fP .PP \fBPurpose:\fP .RS 4 .PP .nf ZGSVJ0 is called from ZGESVJ as a pre-processor and that is its main purpose\&. It applies Jacobi rotations in the same way as ZGESVJ does, but it does not check convergence (stopping criterion)\&. Few tuning parameters (marked by [TP]) are available for the implementer\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIJOBV\fP .PP .nf JOBV is CHARACTER*1 Specifies whether the output from this procedure is used to compute the matrix V: = 'V': the product of the Jacobi rotations is accumulated by postmultiplying the N-by-N array V\&. (See the description of V\&.) = 'A': the product of the Jacobi rotations is accumulated by postmultiplying the MV-by-N array V\&. (See the descriptions of MV and V\&.) = 'N': the Jacobi rotations are not accumulated\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the input matrix A\&. M >= 0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the input matrix A\&. M >= N >= 0\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX*16 array, dimension (LDA,N) On entry, M-by-N matrix A, such that A*diag(D) represents the input matrix\&. On exit, A_onexit * diag(D_onexit) represents the input matrix A*diag(D) post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of D, TOL and NSWEEP\&.) .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,M)\&. .fi .PP .br \fID\fP .PP .nf D is COMPLEX*16 array, dimension (N) The array D accumulates the scaling factors from the complex scaled Jacobi rotations\&. On entry, A*diag(D) represents the input matrix\&. On exit, A_onexit*diag(D_onexit) represents the input matrix post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively\&. (See the descriptions of A, TOL and NSWEEP\&.) .fi .PP .br \fISVA\fP .PP .nf SVA is DOUBLE PRECISION array, dimension (N) On entry, SVA contains the Euclidean norms of the columns of the matrix A*diag(D)\&. On exit, SVA contains the Euclidean norms of the columns of the matrix A_onexit*diag(D_onexit)\&. .fi .PP .br \fIMV\fP .PP .nf MV is INTEGER If JOBV = 'A', then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then MV is not referenced\&. .fi .PP .br \fIV\fP .PP .nf V is COMPLEX*16 array, dimension (LDV,N) If JOBV = 'V' then N rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'A' then MV rows of V are post-multiplied by a sequence of Jacobi rotations\&. If JOBV = 'N', then V is not referenced\&. .fi .PP .br \fILDV\fP .PP .nf LDV is INTEGER The leading dimension of the array V, LDV >= 1\&. If JOBV = 'V', LDV >= N\&. If JOBV = 'A', LDV >= MV\&. .fi .PP .br \fIEPS\fP .PP .nf EPS is DOUBLE PRECISION EPS = DLAMCH('Epsilon') .fi .PP .br \fISFMIN\fP .PP .nf SFMIN is DOUBLE PRECISION SFMIN = DLAMCH('Safe Minimum') .fi .PP .br \fITOL\fP .PP .nf TOL is DOUBLE PRECISION TOL is the threshold for Jacobi rotations\&. For a pair A(:,p), A(:,q) of pivot columns, the Jacobi rotation is applied only if ABS(COS(angle(A(:,p),A(:,q)))) > TOL\&. .fi .PP .br \fINSWEEP\fP .PP .nf NSWEEP is INTEGER NSWEEP is the number of sweeps of Jacobi rotations to be performed\&. .fi .PP .br \fIWORK\fP .PP .nf WORK is COMPLEX*16 array, dimension (LWORK) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER LWORK is the dimension of WORK\&. LWORK >= M\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit\&. < 0: if INFO = -i, then the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 ZGSVJ0 is used just to enable ZGESVJ to call a simplified version of itself to work on a submatrix of the original matrix\&. .RE .PP Contributor: Zlatko Drmac (Zagreb, Croatia) .PP \fBBugs, Examples and Comments:\fP .RS 4 Please report all bugs and send interesting test examples and comments to drmac@math.hr\&. Thank you\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.