 
 
DBSTRF factors a real symmetric indefinite matrix A. The matrix A, stored in upper- or lower-packed storage mode, is factored using the Bunch-Kaufman diagonal pivoting method, where A is expressed as:
where:
To solve a system of equations with one or more right-hand sides, follow
the call to this subroutine with one or more calls to DBSTRS.
| A | ipvt | Subroutine | 
| Long-precision real | Integer | DBSTRF | 
| Fortran | CALL DBSTRF (uplo, n, ap, ipvt, nsinfo) | 
| C and C++ | dbstrf (uplo, n, ap, ipvt, nsinfo); | 
| PL/I | CALL DBSTRF (uplo, n, ap, ipvt, nsinfo); | 
If uplo = 'U', A is stored in upper-packed storage mode.
If uplo = 'L', A is stored in lower-packed storage mode.
Specified as: a single character. It must be 'U' or 'L'.
Specified as: a fullword integer; n >= 0.
Specified as: a one-dimensional array of length nsinfo, containing numbers of the data type indicated in Table 98. See Notes.
If n <= nco, nsinfo = n(n + 1) / 2
Where:

#include <sys/systemcfg.h>
int ics;
     .
     .
     .
ics=_system_configuration.dcache_size/8;
Otherwise, to determine a sufficient amount of storage, use the following processor-independent formula:
To determine the minimal amount of storage see Notes.
Specified as: a fullword integer; nsinfo > 0.
If nsinfo >= 0 and n > nco, additional information that can be used to obtain a minimum nsinfo is stored in AP(1). See Notes and Function.
Returned as: a one-dimensional array, containing numbers of the data type indicated in Table 98.
Returned as: a one-dimensional array of (at least) length n, containing numbers of the data type indicated in Table 98.
Specified as: a fullword integer.
REAL*8	AP(NSINFO)
INTEGER	API(2)
EQUIVALENCE(API, AP)
          .
          .
          .
NSINFOMIN = API(2)
A real symmetric indefinite matrix A, stored in upper- or lower-packed storage mode, is factored using the Bunch-Kaufman diagonal pivoting method, where A is expressed as:
where:
If n is 0, no computation is performed and the subroutine returns after doing some parameter checking.
None.
Matrix A is singular.
This example shows a factorization of a symmetric indefinite matrix A of order 8, stored in lower-packed storage mode, where on input matrix A is:
             *                                                *
             |  3.0   5.0  -2.0   2.0   3.0  -5.0  -2.0  -3.0 |
             |  5.0   3.0   2.0  -2.0   5.0  -3.0   2.0  -5.0 |
             | -2.0   2.0   0.0   0.0  -2.0   2.0   0.0   6.0 |
             |  2.0  -2.0   0.0   8.0  -6.0 -10.0  -8.0 -14.0 |
             |  3.0   5.0  -2.0  -6.0  12.0   6.0   8.0   6.0 |
             | -5.0  -3.0   2.0 -10.0   6.0  16.0   8.0  20.0 |
             | -2.0   2.0   0.0  -8.0   8.0   8.0   6.0  18.0 |
             | -3.0  -5.0   6.0 -14.0   6.0  20.0  18.0  34.0 |
             *                                                *
              UPLO  N   AP  IPVT  NSINFO
               |    |    |   |       |
CALL DBSTRF ( 'L',  8,  AP, IPVT,   36  )
AP = ( 3.0,  5.0, -2.0,  2.0,  3.0, -5.0, -2.0, -3.0,
       3.0,  2.0, -2.0,  5.0, -3.0,  2.0, -5.0,
       0.0,  0.0, -2.0,  2.0,  0.0,  6.0,
       8.0, -6.0,-10.0, -8.0,-14.0,
      12.0,  6.0,  8.0,  6.0,
      16.0,  8.0, 20.0,
       6.0, 18.0,
      34.0 )
NSINFO = 0
This example shows a factorization of a symmetric indefinite matrix A of order 8, stored in upper-packed storage mode, where on input matrix A is:
             *                                                *
             | 34.0  18.0  17.0   6.0 -14.0   6.0  -5.0  -3.0 |
             | 18.0   6.0   6.0   8.0  -8.0   0.0   2.0  -2.0 |
             | 17.0   6.0   9.0   9.0  -8.0   0.0   2.0  -2.0 |
             |  6.0   8.0   9.0  12.0  -6.0  -2.0   5.0   3.0 |
             |-14.0  -8.0  -8.0  -6.0   8.0   0.0  -2.0   2.0 |
             |  6.0   0.0   0.0  -2.0   0.0   0.0   2.0  -2.0 |
             | -5.0   2.0   2.0   5.0  -2.0   2.0   3.0   5.0 |
             | -3.0  -2.0  -2.0   3.0   2.0  -2.0   5.0   3.0 |
             *                                                *
              UPLO  N   AP  IPVT  NSINFO
               |    |    |   |       |
CALL DBSTRF ( 'U',  8,  AP, IPVT,   36  )
AP = ( 34.0,
       18.0,  6.0,
       17.0,  6.0,  9.0,
        6.0,  8.0,  9.0, 12.0,
      -14.0, -8.0, -8.0, -6.0,  8.0,
        6.0,  0.0,  0.0, -2.0,  0.0,  0.0,
       -5.0,  2.0,  2.0,  5.0, -2.0,  2.0,  3.0,
       -3.0, -2.0, -2.0,  3.0,  2.0, -2.0,  5.0,  3.0 )
NSINFO = 0