! Illustration of the @INVERSE() function.(InvertExmpl.lng)
If we need the solution to the matrix equation A*X = RHS
for several different RHS, then it is
efficient to first compute the inverse of A, AINV and then 
use the result that X = AINV*RHS;
!Keywords: Matix inverse, Inverse of matrix,
   Equation solving, Matrix multiply, Simultaneous equations;

SETS:
 DIM;
 DXD( DIM, DIM): A, AINV, RESULT1;
 CASE;
 DXC( DIM, CASE): RHS, RESULT2;
ENDSETS
DATA: DIM = 1..4; !Example 1; ! A= 5 7 3 -1 1 -2 3 4 1 2 4 5 9 3 -4 7; !Example 2; ! A permutation matrix. A(i,j) = 1 means move element in position i to position j; A= 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1; CASE = 1..3; ! Different RHS cases; RHS = 14 1 2 6 2 4 12 3 6 15 4 8; ENDDATA CALC: @SET( 'TERSEO',2); ! Output level (0:verb, 1:terse, 2:only errors, 3:none); AINV, err = @INVERSE( A); ! Compute inverse of matrix A; @WRITE(' The error code is: ', err, @NEWLINE(1)); @WRITE(' The inverse is: ', @NEWLINE(1)); @TABLE( AINV); @WRITE( @NEWLINE(1),' AINV * A =',@NEWLINE(1)); RESULT1 = @MTXMUL( AINV, A); !Matrix multiply; @TABLE( RESULT1); @WRITE( @NEWLINE(1)); @WRITE( @NEWLINE(1),' AINV * RHS =',@NEWLINE(1)); RESULT2 = @MTXMUL( AINV, RHS); !Matrix multiply; @TABLE( RESULT2); @WRITE( @NEWLINE(1)); ENDCALC