SUBROUTINE DGESV( N, NRHS, A, LDA, IPIVOT, B, LDB, INFO) INTEGER N, NRHS, LDA, LDB, INFO INTEGER IPIVOT(*) DOUBLE PRECISION A(LDA,*), B(LDB,*) SUBROUTINE DGESV_64( N, NRHS, A, LDA, IPIVOT, B, LDB, INFO) INTEGER*8 N, NRHS, LDA, LDB, INFO INTEGER*8 IPIVOT(*) DOUBLE PRECISION A(LDA,*), B(LDB,*)
SUBROUTINE GESV( [N], [NRHS], A, [LDA], IPIVOT, B, [LDB], [INFO]) INTEGER :: N, NRHS, LDA, LDB, INFO INTEGER, DIMENSION(:) :: IPIVOT REAL(8), DIMENSION(:,:) :: A, B SUBROUTINE GESV_64( [N], [NRHS], A, [LDA], IPIVOT, B, [LDB], [INFO]) INTEGER(8) :: N, NRHS, LDA, LDB, INFO INTEGER(8), DIMENSION(:) :: IPIVOT REAL(8), DIMENSION(:,:) :: A, B
void dgesv(int n, int nrhs, double *a, int lda, int *ipivot, double *b, int ldb, int *info);
void dgesv_64(long n, long nrhs, double *a, long lda, long *ipivot, double *b, long ldb, long *info);
The LU decomposition with partial pivoting and row interchanges is used to factor A as
A = P * L * U,
where P is a permutation matrix, L is unit lower triangular, and U is upper triangular. The factored form of A is then used to solve the system of equations A * X = B.