INVERT

The INVERT function uses LU decomposition (via LA_INVERT) to compute the inverse of a square array. Errors from singular or near-singular arrays are accumulated in the optional Status argument.

Examples

; Create an array A:
A = [[ 5.0, -1.0, 3.0], $

   [ 2.0, 0.0, 1.0], $

   [ 3.0, 2.0, 1.0]]

result = INVERT(A)

; We can check the accuracy of the inversion by multiplying the

; inverted array by the original array. The result should be a 3 x

; 3 identity array.

PRINT, result # A

IDL prints:

1.00000 0.00000 0.00000

0.00000 1.00000 0.00000

0.00000 9.53674e-07 1.00000

Syntax

Result = INVERT( Array [, Status] [, /DOUBLE] )

Return Value

The result is a single- or double-precision array of floating-point or complex values. If Array is of type integer or type float then the result will be type float (unless the DOUBLE keyword is set). If Array is complex then the result will be complex (either single or double precision depending upon the input type and the DOUBLE keyword).

Arguments

Array

The array to be inverted. Array must have two dimensions of equal size (i.e., a square array) and can be of any type except string.

Status

A named variable to receive the status of the operation. Possible status values are:

Keywords

DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

Version History

Original

Introduced

8.8.1

Changed algorithm to use LA_INVERT

See Also

COND, DETERM, LA_INVERT, REVERSE, ROTATE, TRANSPOSE