Averages/Simple moving average: Difference between revisions

Line 34:
 
See also: [[Standard Deviation]]
 
=={{header|360 Assembly}}==
<lang 360asm>
* Averages/Simple moving average 26/08/2015
AVGSMA CSECT
USING AVGSMA,R12
LR R12,R15
ST R14,SAVER14
ZAP II,=P'0' ii=0
LA R7,1
LH R3,NA
SRA R3,1 na/2
LOOPA CR R7,R3 do i=1 to na/2
BH ELOOPA
AP II,=P'1000' ii=ii+1000
LR R1,R7 i
MH R1,=H'6'
LA R4,A-6(R1)
MVC 0(6,R4),II a(i)=ii
LH R1,NA na
SR R1,R7 -i
MH R1,=H'6'
LA R4,A(R1)
MVC 0(6,R4),II a(na+1-i)=ii
LA R7,1(R7)
B LOOPA
ELOOPA XPRNT =CL30' n sma3 sma5 ',30
XPRNT =CL30' ----- ----------- -----------',30
LA R7,1 i=1
LOOP CH R7,NA do i=1 to na
BH RETURN
STH R7,N n=i
XDECO R7,C i
MVC MVC+1(5),C+7
MVC P,=H'3' p=3
BAL R14,SMA
MVC C(13),EDMASK
ED C(13),SS sma(3,i)
MVC MVC+7(11),C+2
MVC P,=H'5' p=5
BAL R14,SMA
MVC C(13),EDMASK
ED C(13),SS sma(5,i)
MVC MVC+19(11),C+2
XPRNT MVC,30 output i,sma3,sma5
LA R7,1(R7)
B LOOP
* ***** sub sma(p,n) returns(PL6)
SMA LH R5,N
SH R5,P
A R5,=F'1' ia=n-p+1
C R5,=F'1'
BH OKIA
LA R5,1 ia=1
OKIA LH R6,NA ib=na
CH R6,N
BL OKIB
LH R6,N ib=n
OKIB ZAP II,=P'0' ii=0
ZAP SS,=P'0' ss=0
LR R3,R5 k=ia
LOOPK CR R3,R6 do k=ia to ib
BH ELOOPK
AP II,=P'1' ii=ii+1
LR R1,R3
MH R1,=H'6'
LA R4,A-6(R1)
MVC C(6),0(R4) ss=ss+a(k)
AP SS,C(6)
LA R3,1(R3)
B LOOPK
ELOOPK ZAP C,SS
DP C,II
ZAP SS,C(10) ss=ss/ii
BR R14
RETURN L R14,SAVER14 restore caller address
XR R15,R15
BR R14
SAVER14 DS F
NN EQU 10
NA DC AL2(NN)
A DS (NN)PL6
II DS PL6
SS DS PL6
P DS H
N DS H
C DS CL16
MVC DC CL30' '
EDMASK DC X'4020202020202021204B202020' CL13
YREGS
END AVGSMA
</lang>
{{out}}
<pre>
n sma3 sma5
----- ----------- -----------
1 1.000 1.000
2 1.500 1.500
3 2.000 2.000
4 3.000 2.500
5 4.000 3.000
6 4.666 3.800
7 4.666 4.200
8 4.000 4.200
9 3.000 3.800
10 2.000 3.000
</pre>
 
 
=={{header|Ada}}==
1,392

edits