SGETRS and DGETRS solve one of the following systems of equations for multiple right-hand sides:
CGETRS and ZGETRS solve one of the following systems of equations for multiple right-hand sides:
In the formulas above:
These subroutines use the results of the factorization of matrix
A, produced by a preceding call to SGETRF, DGETRF, CGETRF, or
ZGETRF, respectively.
| A, B | Subroutine |
| Short-precision real | SGETRS |
| Long-precision real | DGETRS |
| Short-precision complex | CGETRS |
| Long-precision complex | ZGETRS |
| Fortran | CALL SGETRS | DGETRS | CGETRS | ZGETRS (transa, n, nrhs, a, lda, ipvt, bx, ldb, info) |
| C and C++ | sgetrs | dgetrs | cgetrs | zgetrs (transa, n, nrhs, a, lda, ipvt, bx, ldb, info); |
| PL/I | CALL SGETRS | DGETRS | CGETRS | ZGETRS (transa, n, nrhs, a, lda, ipvt, bx, ldb, info); |
If transa = 'N', A is used in the computation, resulting in solution 1.
If transa = 'T', AT is used in the computation, resulting in solution 2.
If transa = 'C', AH is used in the computation, resulting in solution 3.
Specified as: a single character; transa = 'N', 'T', or 'C'.
If info = 0, the solve of general matrix A completed successfully.
If, however, you do not plan to call _GETRS after calling _GETRF, then input arguments m and n in _GETRF do not need to be equal.
One of the following systems of equations is solved for multiple right-hand sides:
where A, B, and X are general matrices. These subroutines uses the results of the factorization of matrix A, produced by a preceding call to SGETRF, DGETRF, CGETRF or ZGETRF, respectively. For details on the factorization, see SGETRF, DGETRF, CGETRF and ZGETRF--General Matrix Factorization.
If n = 0 or nrhs = 0, no computation is performed and the subroutine returns after doing some parameter checking. See references [|8, [36], and [62].
None
This example shows how to solve the system AX = B, where matrix A is the same matrix factored in the Example 1 for DGETRF.
TRANSA N NRHS A LDA IPIV BX LDB INFO
| | | | | | | | |
CALL DGETRS('N' , 9 , 5 , A , 9 , IPIV, B , 9 , INFO)
* *
| 93.0 186.0 279.0 372.0 465.0 |
| 84.4 168.8 253.2 337.6 422.0 |
| 76.6 153.2 229.8 306.4 383.0 |
| 70.0 140.0 210.0 280.0 350.0 |
B = | 65.0 130.0 195.0 260.0 325.0 |
| 62.0 124.0 186.0 248.0 310.0 |
| 61.4 122.8 184.2 245.6 307.0 |
| 63.6 127.2 190.8 254.4 318.0 |
| 69.0 138.0 207.0 276.0 345.0 |
* *
* *
| 1.0 2.0 3.0 4.0 5.0 |
| 2.0 4.0 6.0 8.0 10.0 |
| 3.0 6.0 9.0 12.0 15.0 |
| 4.0 8.0 12.0 16.0 20.0 |
B = | 5.0 10.0 15.0 20.0 25.0 |
| 6.0 12.0 18.0 24.0 30.0 |
| 7.0 14.0 21.0 28.0 35.0 |
| 8.0 16.0 24.0 32.0 40.0 |
| 9.0 18.0 27.0 36.0 45.0 |
* *
INFO = 0
This example shows how to solve the system AX = b, where matrix A is the same matrix factored in the Example 2 for ZGETRF.
TRANS N NRHS A LDA IPIV B LDB INFO
| | | | | | | | |
CALL ZGETRS('N' , 9 , 5 , A , 9 , IPIV, B , 9 , INFO)
* *
| (193.0,-10.6) (200.0, 21.8) (207.0, 54.2) (214.0, 86.6) (221.0,119.0) |
| (173.8, -9.4) (178.8, 20.2) (183.8, 49.8) (188.8, 79.4) (193.8,109.0) |
| (156.2, -5.4) (159.2, 22.2) (162.2, 49.8) (165.2, 77.4) (168.2,105.0) |
| (141.0, 1.4) (142.0, 27.8) (143.0, 54.2) (144.0, 80.6) (145.0,107.0) |
B = | (129.0, 11.0) (128.0, 37.0) (127.0, 63.0) (126.0, 89.0) (125.0,115.0) |
| (121.0, 23.4) (118.0, 49.8) (115.0, 76.2) (112.0,102.6) (109.0,129.0) |
| (117.8, 38.6) (112.8, 66.2) (107.8, 93.8) (102.8,121.4) (97.8,149.0) |
| (120.2, 56.6) (113.2, 86.2) (106.2,115.8) (99.2,145.4) (92.2,175.0) |
| (129.0, 77.4) (120.0,109.8) (111.0,142.2). (102.0,174.6) (93.0,207.0) |
* *
* *
| (1.0,1.0) (1.0,2.0) (1.0,3.0) (1.0,4.0) (1.0,5.0) |
| (2.0,1.0) (2.0,2.0) (2.0,3.0) (2.0,4.0) (2.0,5.0) |
| (3.0,1.0) (3.0,2.0) (3.0,3.0) (3.0,4.0) (3.0,5.0) |
| (4.0,1.0) (4.0,2.0) (4.0,3.0) (4.0,4.0) (4.0,5.0) |
B = | (5.0,1.0) (5.0,2.0) (5.0,3.0) (5.0,4.0) (5.0,5.0) |
| (6.0,1.0) (6.0,2.0) (6.0,3.0) (6.0,4.0) (6.0,5.0) |
| (7.0,1.0) (7.0,2.0) (7.0,3.0) (7.0,4.0) (7.0,5.0) |
| (8.0,1.0) (8.0,2.0) (8.0,3.0) (8.0,4.0) (8.0,5.0) |
| (9.0,1.0) (9.0,2.0) (9.0,3.0) (9.0,4.0) (9.0,5.0) |
* *
INFO = 0