code 34053; procedure INV(A, N, P); value N; integer N; array A; integer array P; begin integer J, K, K1; real R; array V[1:N]; for K:= N step - 1 until 1 do begin K1:= K + 1; for J:= N step - 1 until K1 do begin A[J,K1]:= V[J]; V[J]:= - MATMAT(K1, N, K, J, A, A) end; R:= A[K,K]; for J:= N step - 1 until K1 do begin A[K,J]:= V[J]; V[J]:= - MATMAT(K1, N, J, K, A, A) / R end; V[K]:= (1 - MATMAT(K1, N, K, K, A, A)) / R end; DUPCOLVEC(1, N, 1, A, V); for K:= N - 1 step - 1 until 1 do begin K1:= P[K]; if K1 ^= K then ICHCOL(1, N, K, K1, A) end end INV; eop