1SGSVJ0(1)LAPACK routine (version 3.2)                                 SGSVJ0(1)
2
3
4

NAME

6       SGSVJ0  - is called from SGESVJ as a pre-processor and that is its main
7       purpose
8

SYNOPSIS

10       SUBROUTINE SGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
11
12           +              SFMIN, TOL, NSWEEP, WORK, LWORK, INFO )
13
14           IMPLICIT       NONE
15
16           INTEGER        INFO, LDA, LDV, LWORK, M, MV, N, NSWEEP
17
18           REAL           EPS, SFMIN, TOL
19
20           CHARACTER*1    JOBV
21
22           REAL           A( LDA, * ), SVA( N ), D( N ), V( LDV, * ),
23
24           +              WORK( LWORK )
25

PURPOSE

27       SGSVJ0 is called from SGESVJ as a pre-processor and that  is  its  main
28       purpose.  It  applies  Jacobi rotations in the same way as SGESVJ does,
29       but it does not check  convergence  (stopping  criterion).  Few  tuning
30       parameters (marked by [TP]) are available for the implementer.  Further
31       Details
32       SGSVJ0 is used just to enable SGESVJ to call a  simplified  version  of
33       itself to work on a submatrix of the original matrix.
34       Contributors
35       ~~~~~~~~~~~~
36       Zlatko  Drmac  (Zagreb,  Croatia) and Kresimir Veselic (Hagen, Germany)
37       Bugs, Examples and Comments
38       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
39       Please report all bugs and send interesting test examples and  comments
40       to drmac@math.hr. Thank you.
41

ARGUMENTS

43       JOBV    (input) CHARACTER*1
44               Specifies  whether  the  output  from this procedure is used to
45               compute the matrix V:
46               = 'V': the product of the Jacobi rotations  is  accumulated  by
47               postmulyiplying  the  N-by-N  array V.  (See the description of
48               V.)  = 'A': the product of the Jacobi rotations is  accumulated
49               by  postmulyiplying the MV-by-N array V.  (See the descriptions
50               of MV and V.)  = 'N': the Jacobi rotations are not accumulated.
51
52       M       (input) INTEGER
53               The number of rows of the input matrix A.  M >= 0.
54
55       N       (input) INTEGER
56               The number of columns of the input matrix A.  M >= N >= 0.
57
58       A       (input/output) REAL array, dimension (LDA,N)
59               On entry, M-by-N matrix A, such that A*diag(D)  represents  the
60               input  matrix.   On  exit,  A_onexit  * D_onexit represents the
61               input matrix A*diag(D) post-multiplied by a sequence of  Jacobi
62               rotations, where the rotation threshold and the total number of
63               sweeps are given in TOL and  NSWEEP,  respectively.   (See  the
64               descriptions of D, TOL and NSWEEP.)
65
66       LDA     (input) INTEGER
67               The leading dimension of the array A.  LDA >= max(1,M).
68
69       D       (input/workspace/output) REAL array, dimension (N)
70               The  array  D  accumulates  the  scaling  factors from the fast
71               scaled Jacobi rotations.  On entry,  A*diag(D)  represents  the
72               input  matrix.  On exit, A_onexit*diag(D_onexit) represents the
73               input matrix post-multiplied by a sequence of Jacobi rotations,
74               where the rotation threshold and the total number of sweeps are
75               given in TOL and NSWEEP, respectively.  (See  the  descriptions
76               of A, TOL and NSWEEP.)
77
78       SVA     (input/workspace/output) REAL array, dimension (N)
79               On  entry,  SVA  contains the Euclidean norms of the columns of
80               the matrix A*diag(D).  On  exit,  SVA  contains  the  Euclidean
81               norms of the columns of the matrix onexit*diag(D_onexit).
82
83       MV      (input) INTEGER
84               If  JOBV  .EQ.  'A',  then MV rows of V are post-multipled by a
85               sequence of Jacobi rotations.  If JOBV = 'N',   then MV is  not
86               referenced.
87
88       V       (input/output) REAL array, dimension (LDV,N)
89               If  JOBV  .EQ.  'V'  then  N  rows of V are post-multipled by a
90               sequence of Jacobi rotations.  If JOBV .EQ. 'A' then MV rows of
91               V  are  post-multipled  by  a sequence of Jacobi rotations.  If
92               JOBV = 'N',   then V is not referenced.
93
94       LDV     (input) INTEGER
95               The leading dimension of the array V,  LDV >=  1.   If  JOBV  =
96               'V', LDV .GE. N.  If JOBV = 'A', LDV .GE. MV.
97
98       EPS     (input) INTEGER
99               EPS = SLAMCH('Epsilon')
100
101       SFMIN   (input) INTEGER
102               SFMIN = SLAMCH('Safe Minimum')
103
104       TOL     (input) REAL
105               TOL  is  the threshold for Jacobi rotations. For a pair A(:,p),
106               A(:,q) of pivot columns, the Jacobi rotation is
107               applied only if ABS(COS(angle(A(:,p),A(:,q)))) .GT. TOL.
108
109       NSWEEP  (input) INTEGER
110               NSWEEP is the number of sweeps of Jacobi rotations to  be  per‐
111               formed.
112
113       WORK    (workspace) REAL array, dimension LWORK.
114
115       LWORK   (input) INTEGER
116               LWORK is the dimension of WORK. LWORK .GE. M.
117
118       INFO    (output) INTEGER
119               = 0 : successful exit.
120               < 0 : if INFO = -i, then the i-th argument had an illegal value
121
122
123
124 LAPACK routine (version 3.2)    November 2008                       SGSVJ0(1)
Impressum