**ACTION:**- Matrix inversion and solution of simultaneous equations
(double precision).
**CALL:**`CALL sla_DMAT (N, A, Y, D, JF, IW)`

**GIVEN:**-

*N***I**number of unknowns *A***D(N,N)**matrix *Y***D(N)**vector

**RETURNED:**-

*A***D(N,N)**matrix inverse *Y***D(N)**solution *D***D**determinant *JF***I**singularity flag: 0=OK *IW***I(N)**workspace

**NOTES:**- 1.
- For the set of
*n*simultaneous linear equations in*n*unknowns:

where:**A****y**=**x**-
**A**is a non-singular matrix, -
**y**is the vector of*n*unknowns, and -
**x**is the known vector,

- the inverse of matrix
**A**, - the determinant of matrix
**A**, and - the vector of
*n*unknowns**y**.

*n*, A (given) is the matrix**A**, Y (given) is the vector**x**and Y (returned) is the vector**y**. The argument A (returned) is the inverse matrix**A**^{-1}, and D is*det*(**A**). -
- 2.
- JF is the singularity flag. If the matrix is non-singular, JF=0 is returned. If the matrix is singular, JF=-1 and D=0D0 are returned. In the latter case, the contents of array A on return are undefined.
- 3.
- The algorithm is Gaussian elimination with partial pivoting. This method is very fast; some much slower algorithms can give better accuracy, but only by a small factor.
- 4.
- This routine replaces the obsolete sla_DMATRX.

Starlink User Note 67

P. T. Wallace

12 October 1999

E-mail:ptw@star.rl.ac.uk