File: dlasq2

package info (click to toggle)
ruby-lapack 1.8.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 28,552 kB
  • sloc: ansic: 191,612; ruby: 3,934; makefile: 8
file content (73 lines) | stat: -rwxr-xr-x 2,959 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
--- 
:name: dlasq2
:md5sum: dc76333ff510f8712b38bba549479bf4
:category: :subroutine
:arguments: 
- n: 
    :type: integer
    :intent: input
- z: 
    :type: doublereal
    :intent: input/output
    :dims: 
    - 4*n
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE DLASQ2( N, Z, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  DLASQ2 computes all the eigenvalues of the symmetric positive \n\
  *  definite tridiagonal matrix associated with the qd array Z to high\n\
  *  relative accuracy are computed to high relative accuracy, in the\n\
  *  absence of denormalization, underflow and overflow.\n\
  *\n\
  *  To see the relation of Z to the tridiagonal matrix, let L be a\n\
  *  unit lower bidiagonal matrix with subdiagonals Z(2,4,6,,..) and\n\
  *  let U be an upper bidiagonal matrix with 1's above and diagonal\n\
  *  Z(1,3,5,,..). The tridiagonal is L*U or, if you prefer, the\n\
  *  symmetric tridiagonal to which it is similar.\n\
  *\n\
  *  Note : DLASQ2 defines a logical variable, IEEE, which is true\n\
  *  on machines which follow ieee-754 floating-point standard in their\n\
  *  handling of infinities and NaNs, and false otherwise. This variable\n\
  *  is passed to DLASQ3.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  N     (input) INTEGER\n\
  *        The number of rows and columns in the matrix. N >= 0.\n\
  *\n\
  *  Z     (input/output) DOUBLE PRECISION array, dimension ( 4*N )\n\
  *        On entry Z holds the qd array. On exit, entries 1 to N hold\n\
  *        the eigenvalues in decreasing order, Z( 2*N+1 ) holds the\n\
  *        trace, and Z( 2*N+2 ) holds the sum of the eigenvalues. If\n\
  *        N > 2, then Z( 2*N+3 ) holds the iteration count, Z( 2*N+4 )\n\
  *        holds NDIVS/NIN^2, and Z( 2*N+5 ) holds the percentage of\n\
  *        shifts that failed.\n\
  *\n\
  *  INFO  (output) INTEGER\n\
  *        = 0: successful exit\n\
  *        < 0: if the i-th argument is a scalar and had an illegal\n\
  *             value, then INFO = -i, if the i-th argument is an\n\
  *             array and the j-entry had an illegal value, then\n\
  *             INFO = -(i*100+j)\n\
  *        > 0: the algorithm failed\n\
  *              = 1, a split was marked by a positive value in E\n\
  *              = 2, current block of Z not diagonalized after 30*N\n\
  *                   iterations (in inner while loop)\n\
  *              = 3, termination criterion of outer while loop not met \n\
  *                   (program created more than N unreduced blocks)\n\
  *\n\n\
  *  Further Details\n\
  *  ===============\n\
  *  Local Variables: I0:N0 defines a current unreduced segment of Z.\n\
  *  The shifts are accumulated in SIGMA. Iteration count is in ITER.\n\
  *  Ping-pong is controlled by PP (alternates between 0 and 1).\n\
  *\n\
  *  =====================================================================\n\
  *\n"