This subroutine solves either of the following systems:
where A is a sparse matrix, AT is the transpose of sparse matrix A, and x and b are vectors. DGSS uses the results of the factorization of matrix A, produced by a preceding call to DGSF.
Fortran | CALL DGSS (jopt, n, a, ia, ja, lna, bx, aux, naux) |
C and C++ | dgss (jopt, n, a, ia, ja, lna, bx, aux, naux); |
PL/I | CALL DGSS (jopt, n, a, ia, ja, lna, bx, aux, naux); |
If jopt = 0, Ax = b is solved, where the right-hand side is not sparse.
If jopt = 1, ATx = b is solved, where the right-hand side is not sparse.
If jopt = 10, Ax = b is solved, where the right-hand side is sparse.
If jopt = 11, ATx = b is solved, where the right-hand side is sparse.
Specified as: a fullword integer; jopt = 0, 1, 10, or 11.
The system Ax = b is solved for x, where A is a sparse matrix and x and b are vectors. Depending on the value specified for the jopt argument, DGSS can also solve the system ATx = b, where AT is the transpose of sparse matrix A.
If the value specified for the jopt argument is 0 or 10, the following equation is solved:
If the value specified for the jopt argument is 1 or 11, the following equation is solved:
DGSS uses the results of the factorization of matrix A, produced by a preceding call to DGSF. The transformed matrix A consists of the upper triangular matrix U and the lower triangular matrix L.
See references [10], [47], and [93].
None
This example shows how to solve the system Ax = b, where matrix A is a 5 by 5 sparse matrix. The right-hand side is not sparse.
* * | 2.0 0.0 4.0 0.0 0.0 | | 1.0 1.0 0.0 0.0 3.0 | | 0.0 0.0 3.0 4.0 0.0 | | 2.0 2.0 0.0 1.0 5.0 | | 0.0 0.0 1.0 1.0 0.0 | * *
JOPT N A IA JA LNA BX AUX NAUX | | | | | | | | | CALL DGSS( 0 , 5 , A , IA , JA , 27 , BX , AUX , 150 )
A = (0.5, . , 0.3, 1.0, . , 1.0, . , 3.0, . , . , . , 1.0, 1.0, . , . , . , . , . , . , . , -1.7, -0.5, -1.0, -1.0, 4.0, -3.0, -4.0) IA = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, . , . , . , . , . , . , . , 2, 1, 1, 3, 3, 5, 5) JA = (1, 0, 5, 2, 0, 4, 0, 2, 0, 0, 0, 3, 4, . , . , . , . , . , . , . , 4, 2, 4, 4, 1, 3, 1) BX = (1.0, 1.0, 1.0, 1.0, 1.0)
IA = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, . , . , . , . , . , . , . , 2, 1, 1, 3, 3, 5, 5) BX = (-5.500000, 9.500000, 3.000000, -2.000000, -1.000000)
This example shows how to solve the system ATx = b, using the same matrix A used in Example 1. The input is also the same as in Example 1, except for the jopt argument. The right-hand side is not sparse.
JOPT N A IA JA LNA BX AUX NAUX | | | | | | | | | CALL DGSS( 1 , 5 , A , IA , JA , 27 , BX , AUX , 150 ) BX = (1.0, 1.0, 1.0, 1.0, 1.0)
IA = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, . , . , . , . , . , . , . , 2, 1, 1, 3, 3, 5, 5) BX = (0.000000, -3.000000, -2.000000, 2.000000, 7.000000)
This example shows how to solve the system Ax = b, using the same matrix A as in Examples 1 and 2. The input is also the same as in Examples 1 and 2, except for the jopt and bx arguments. The right-hand side is sparse.
JOPT N A IA JA LNA BX AUX NAUX | | | | | | | | | CALL DGSS( 10 , 5 , A , IA , JA , 27 , BX , AUX , 150 ) BX = (0.0, 0.0, 0.0, 1.0, 0.0)
IA = (1, 4, 2, 5, 3, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 3, 3, 5, 5) BX = (0.000000, 3.000000, 0.000000, 0.000000, -1.000000)
This example shows how to solve the system ATx = b, using the same matrix A as in Examples 1, 2, and 3. The input is also the same as in Examples 1, 2, and 3, except for the jopt argument. The right-hand side is sparse.
JOPT N A IA JA LNA BX AUX NAUX | | | | | | | | | CALL DGSS( 11 , 5 , A , IA , JA , 27 , BX , AUX , 150 ) BX = (0.0, 0.0, 0.0, 1.0, 0.0)
IA = (1, 4, 2, 5, 3, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 3, 3, 5, 5) BX = (0.000000, 0.000000, 1.000000, 0.000000, -3.000000 )