incr-set prlevel 1
if #0=4 START
incr-set prlevel -1
;;; Usage:
;;; 	<prepend_matrix_to_array w w1 w2 m
;;;
;;; Adds a matrix to the beginning of an
;;; array of matrices.
;;;
incr-set prlevel 1
jump END
;;; Parameters: (w,w1,w2) an array of matrices
;;;		m a matrix
;;;
;;; Output values: (w,w1,w2) is returned with
;;;		m now being the first matrix,
;;;		and all others shifted over.
;;;
;;; Caveats:
;;;
; created ... 7/29/92
START:
mat @dummy_matrix
0
1
mat @dummy2
1
0

nrows #4 @rows_to_add
ncols #4 @cols_to_add

setcoldegs @dummy_matrix
-@cols_to_add
transpose #2 #2
concat @dummy2 @dummy_matrix #2
transpose @dummy2 #2

mat @dummy2
1
0

setcoldegs @dummy_matrix
-@rows_to_add
transpose #3 #3
concat @dummy2 @dummy_matrix #3
transpose @dummy2 #3

<direct_sum #4 #1 @Mtemp
copy @Mtemp #1

kill @Mtemp @dummy_matrix @dummy2
kill @rows_to_add @cols_to_add

END:
incr-set prlevel -1

$;;;;;;;; EXAMPLE SECTION ;;;;;;;;;;;;;;;;;;;;;;;;;

<ring 3 x-z R
mat m
3
3
-y
x
0
-z
0
x
0
-z
y

type m

; -y -z  0
;  x  0 -z
;  0  x  y

nres m mres
<comp_to_array mres k k1 k2

<ideal I x y z

<prepend_matrix_to_array k k1 k2 I

<pres k k1 k2

; x y z
;-----------------------------------
; -y -z  0
;  x  0 -z
;  0  x  y
;-----------------------------------
;  z
; -y
;  x
;-----------------------------------
