File: cgbtrf

package info (click to toggle)
ruby-lapack 1.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 28,572 kB
  • sloc: ansic: 191,612; ruby: 3,937; makefile: 6
file content (109 lines) | stat: -rw-r--r-- 3,851 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
--- 
:name: cgbtrf
:md5sum: cb767c902d74f024a5a58dad38d41372
:category: :subroutine
:arguments: 
- m: 
    :type: integer
    :intent: input
- n: 
    :type: integer
    :intent: input
- kl: 
    :type: integer
    :intent: input
- ku: 
    :type: integer
    :intent: input
- ab: 
    :type: complex
    :intent: input/output
    :dims: 
    - ldab
    - n
- ldab: 
    :type: integer
    :intent: input
- ipiv: 
    :type: integer
    :intent: output
    :dims: 
    - MIN(m,n)
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE CGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  CGBTRF computes an LU factorization of a complex m-by-n band matrix A\n\
  *  using partial pivoting with row interchanges.\n\
  *\n\
  *  This is the blocked version of the algorithm, calling Level 3 BLAS.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  M       (input) INTEGER\n\
  *          The number of rows of the matrix A.  M >= 0.\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          The number of columns of the matrix A.  N >= 0.\n\
  *\n\
  *  KL      (input) INTEGER\n\
  *          The number of subdiagonals within the band of A.  KL >= 0.\n\
  *\n\
  *  KU      (input) INTEGER\n\
  *          The number of superdiagonals within the band of A.  KU >= 0.\n\
  *\n\
  *  AB      (input/output) COMPLEX array, dimension (LDAB,N)\n\
  *          On entry, the matrix A in band storage, in rows KL+1 to\n\
  *          2*KL+KU+1; rows 1 to KL of the array need not be set.\n\
  *          The j-th column of A is stored in the j-th column of the\n\
  *          array AB as follows:\n\
  *          AB(kl+ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl)\n\
  *\n\
  *          On exit, details of the factorization: U is stored as an\n\
  *          upper triangular band matrix with KL+KU superdiagonals in\n\
  *          rows 1 to KL+KU+1, and the multipliers used during the\n\
  *          factorization are stored in rows KL+KU+2 to 2*KL+KU+1.\n\
  *          See below for further details.\n\
  *\n\
  *  LDAB    (input) INTEGER\n\
  *          The leading dimension of the array AB.  LDAB >= 2*KL+KU+1.\n\
  *\n\
  *  IPIV    (output) INTEGER array, dimension (min(M,N))\n\
  *          The pivot indices; for 1 <= i <= min(M,N), row i of the\n\
  *          matrix was interchanged with row IPIV(i).\n\
  *\n\
  *  INFO    (output) INTEGER\n\
  *          = 0: successful exit\n\
  *          < 0: if INFO = -i, the i-th argument had an illegal value\n\
  *          > 0: if INFO = +i, U(i,i) is exactly zero. The factorization\n\
  *               has been completed, but the factor U is exactly\n\
  *               singular, and division by zero will occur if it is used\n\
  *               to solve a system of equations.\n\
  *\n\n\
  *  Further Details\n\
  *  ===============\n\
  *\n\
  *  The band storage scheme is illustrated by the following example, when\n\
  *  M = N = 6, KL = 2, KU = 1:\n\
  *\n\
  *  On entry:                       On exit:\n\
  *\n\
  *      *    *    *    +    +    +       *    *    *   u14  u25  u36\n\
  *      *    *    +    +    +    +       *    *   u13  u24  u35  u46\n\
  *      *   a12  a23  a34  a45  a56      *   u12  u23  u34  u45  u56\n\
  *     a11  a22  a33  a44  a55  a66     u11  u22  u33  u44  u55  u66\n\
  *     a21  a32  a43  a54  a65   *      m21  m32  m43  m54  m65   *\n\
  *     a31  a42  a53  a64   *    *      m31  m42  m53  m64   *    *\n\
  *\n\
  *  Array elements marked * are not used by the routine; elements marked\n\
  *  + need not be set on entry, but are required by the routine to store\n\
  *  elements of U because of fill-in resulting from the row interchanges.\n\
  *\n\
  *  =====================================================================\n\
  *\n"