\ creates avaraging
\ hs 02.05.97

\ avarage structure
\ 0 mask of elements
\ 1 log2 of elements
\ 2 element to be replaced
\ 3 sum of elements
\ array of data
needs log2 lib.arm.log2
: avaraging	\ ( -- )
	create 20 cells allot ;
: set-avaraging		\ ( avaraging n -- )
	4 min 0 max locals| n avar |
	avar 20 cells erase
	1 n lshift 1- avar !  n avar cell+ ! ;
code avarage	\ ( n1 avarager -- n2 )
	r4	sp		pop	\ r4 new val
	r0 r1 r2 r3 4	top ia!	ldm
	r5	top r2 2 #asl	add
	r6	r5 )		ldr
	r4	r5 )		str
	r3	r3	r6	sub
	r3	r3	r4	add
	r3	top -1 cells d)	str
	r2	1		incr
	r2	r2	r0	and
	r2	top -2 cells d)	str
	top	r3	r1 asr	mov c;

