DGESL Type

***PURPOSE Solve the real system A*X=B or TRANS(A)*X=B using the factors computed by DGECO or DGEFA. ***CATEGORY D2A1 ***TYPE DOUBLE PRECISION (SGESL-S, DGESL-D, CGESL-C) ***KEYWORDS LINEAR ALGEBRA, LINPACK, MATRIX, SOLVE ***AUTHOR Moler, C. B., (U. of New Mexico) ***DESCRIPTION DGESL solves the double precision system A * X = B or TRANS(A) * X = B using the factors computed by DGECO or DGEFA. On Entry A DOUBLE PRECISION(LDA, N) the output from DGECO or DGEFA. LDA INTEGER the leading dimension of the array A . N INTEGER the order of the matrix A . IPVT INTEGER(N) the pivot vector from DGECO or DGEFA. B DOUBLE PRECISION(N) the right hand side vector. JOB INTEGER = 0 to solve A*X = B , = nonzero to solve TRANS(A)*X = B where TRANS(A) is the transpose. On Return B the solution vector X . Error Condition A division by zero will occur if the input factor contains a zero on the diagonal. Technically this indicates singularity but it is often caused by improper arguments or improper setting of LDA . It will not occur if the subroutines are called correctly and if DGECO has set RCOND .GT. 0.0 or DGEFA has set INFO .EQ. 0 . To compute INVERSE(A) * C where C is a matrix with P columns CALL DGECO(A,LDA,N,IPVT,RCOND,Z) IF (RCOND is too small) GO TO ... DO 10 J = 1, P CALL DGESL(A,LDA,N,IPVT,C(1,J),0) 10 CONTINUE ***REFERENCES J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart, LINPACK Users' Guide, SIAM, 1979. ***ROUTINES CALLED DAXPY, DDOT ***REVISION HISTORY (YYMMDD) 780814 DATE WRITTEN 890831 Modified array declarations. (WRB) 890831 REVISION DATE from Version 3.2 891214 Prologue converted to Version 4.0 format. (BAB) 900326 Removed duplicate information from DESCRIPTION section. (WRB) 920501 Reformatted the REFERENCES section. (WRB) ***END PROLOGUE DGESL ***FIRST EXECUTABLE STATEMENT DGESL

Constructors

Constructor Description

DGESL(ddot, daxpy)

Full Usage: DGESL(ddot, daxpy)

Parameters:

ddot : DDOT
daxpy : DAXPY

DGESL()

Full Usage: DGESL()

Instance members

Instance member Description

this.Run

Full Usage: this.Run

Parameters:
    A : float[] - DOUBLE PRECISION(LDA, N) the output from DGECO or DGEFA.
    offset_a : int -
    LDA : int - INTEGER the leading dimension of the array A .
    N : int - INTEGER the order of the matrix A .
    IPVT : int[] - INTEGER(N) the pivot vector from DGECO or DGEFA.
    offset_ipvt : int -
    B : byref<float[]> - DOUBLE PRECISION(N) the right hand side vector.
    offset_b : int -
    JOB : int - INTEGER = 0 to solve A*X = B , = nonzero to solve TRANS(A)*X = B where TRANS(A) is the transpose.

***PURPOSE Solve the real system A*X=B or TRANS(A)*X=B using the factors computed by DGECO or DGEFA. ***CATEGORY D2A1 ***TYPE DOUBLE PRECISION (SGESL-S, DGESL-D, CGESL-C) ***KEYWORDS LINEAR ALGEBRA, LINPACK, MATRIX, SOLVE ***AUTHOR Moler, C. B., (U. of New Mexico) ***DESCRIPTION DGESL solves the double precision system A * X = B or TRANS(A) * X = B using the factors computed by DGECO or DGEFA. On Entry A DOUBLE PRECISION(LDA, N) the output from DGECO or DGEFA. LDA INTEGER the leading dimension of the array A . N INTEGER the order of the matrix A . IPVT INTEGER(N) the pivot vector from DGECO or DGEFA. B DOUBLE PRECISION(N) the right hand side vector. JOB INTEGER = 0 to solve A*X = B , = nonzero to solve TRANS(A)*X = B where TRANS(A) is the transpose. On Return B the solution vector X . Error Condition A division by zero will occur if the input factor contains a zero on the diagonal. Technically this indicates singularity but it is often caused by improper arguments or improper setting of LDA . It will not occur if the subroutines are called correctly and if DGECO has set RCOND .GT. 0.0 or DGEFA has set INFO .EQ. 0 . To compute INVERSE(A) * C where C is a matrix with P columns CALL DGECO(A,LDA,N,IPVT,RCOND,Z) IF (RCOND is too small) GO TO ... DO 10 J = 1, P CALL DGESL(A,LDA,N,IPVT,C(1,J),0) 10 CONTINUE ***REFERENCES J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart, LINPACK Users' Guide, SIAM, 1979. ***ROUTINES CALLED DAXPY, DDOT ***REVISION HISTORY (YYMMDD) 780814 DATE WRITTEN 890831 Modified array declarations. (WRB) 890831 REVISION DATE from Version 3.2 891214 Prologue converted to Version 4.0 format. (BAB) 900326 Removed duplicate information from DESCRIPTION section. (WRB) 920501 Reformatted the REFERENCES section. (WRB) ***END PROLOGUE DGESL ***FIRST EXECUTABLE STATEMENT DGESL

A : float[]

DOUBLE PRECISION(LDA, N) the output from DGECO or DGEFA.

offset_a : int

LDA : int

INTEGER the leading dimension of the array A .

N : int

INTEGER the order of the matrix A .

IPVT : int[]

INTEGER(N) the pivot vector from DGECO or DGEFA.

offset_ipvt : int

B : byref<float[]>

DOUBLE PRECISION(N) the right hand side vector.

offset_b : int

JOB : int

INTEGER = 0 to solve A*X = B , = nonzero to solve TRANS(A)*X = B where TRANS(A) is the transpose.