Averages/Simple moving average: Difference between revisions
Content added Content deleted
PatGarrett (talk | contribs) (→{{header|360 Assembly}}: Section added) |
|||
Line 34: | Line 34: | ||
See also: [[Standard Deviation]] |
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}}== |
=={{header|Ada}}== |