Cumulative standard deviation: Difference between revisions

Add 360 Assembly section
(Add TI-83 Basic section)
(Add 360 Assembly section)
Line 8:
* [[Moving Average]]
* [[Random numbers]]
 
=={{header|360 Assembly}}==
For maximum compatibility, this program uses only the basic instruction set.
<lang 360asm>
******** Standard deviation of a population
STDDEV CSECT
USING STDDEV,R13
SAVEAREA B STM-SAVEAREA(R15)
DC 17F'0'
DC CL8'STDDEV'
STM STM R14,R12,12(R13)
ST R13,4(R15)
ST R15,8(R13)
LR R13,R15
SR R8,R8 s=0
SR R9,R9 ss=0
SR R4,R4 i=0
LA R6,1
LH R7,N
LOOPI BXH R4,R6,ENDLOOPI
LR R1,R4 i
BCTR R1,0
SLA R1,1
LH R5,T(R1)
ST R5,WW ww=t(i)
MH R5,=H'1000' w=ww*1000
AR R8,R5 s=s+w
LR R15,R5
MR R14,R5 w*w
AR R9,R15 ss=ss+w*w
LR R14,R8 s
SRDA R14,32
DR R14,R4 /i
ST R15,AVG avg=s/i
LR R14,R9 ss
SRDA R14,32
DR R14,R4 ss/i
LR R2,R15 ss/i
LR R15,R8 s
MR R14,R8 s*s
LR R3,R15
LR R15,R4 i
MR R14,R4 i*i
LR R1,R15
LA R14,0
LR R15,R3
DR R14,R1 (s*s)/(i*i)
SR R2,R15
LR R10,R2 std=ss/i-(s*s)/(i*i)
LR R11,R10 std
SRA R11,1 x=std/2
LR R12,R10 px=std
LOOPWHIL EQU *
CR R12,R11 while px<>=x
BE ENDWHILE
LR R12,R11 px=x
LR R15,R10 std
LA R14,0
DR R14,R12 /px
LR R1,R12 px
AR R1,R15 px+std/px
SRA R1,1 /2
LR R11,R1 x=(px+std/px)/2
B LOOPWHIL
ENDWHILE EQU *
LR R10,R11
CVD R4,P8 i
MVC C17,MASK17
ED C17,P8
MVC BUF+2(1),C17+15
L R1,WW
CVD R1,P8
MVC C17,MASK17
ED C17,P8
MVC BUF+10(1),C17+15
L R1,AVG
CVD R1,P8
MVC C18,MASK18
ED C18,P8
MVC BUF+17(5),C18+12
CVD R10,P8 std
MVC C18,MASK18
ED C18,P8
MVC BUF+31(5),C18+12
WTO MF=(E,WTOMSG)
B LOOPI
ENDLOOPI EQU *
RETURN EQU *
CNOP 0,4
L R13,4(0,R13)
LM R14,R12,12(R13)
XR R15,R15
BR R14
DS 0D
N DC H'8'
T DC H'2',H'4',H'4',H'4',H'5',H'5',H'7',H'9'
WW DS F
AVG DS F
P8 DS PL8
MASK17 DC C' ',13X'20',X'2120',C'-'
MASK18 DC C' ',10X'20',X'2120',C'.',3X'20',C'-'
C17 DS CL17
C18 DS CL18
WTOMSG DS 0F
DC H'80',XL2'0000'
BUF DC CL80'N=1 ITEM=1 AVG=1.234 STDDEV=1.234 '
YREGS
END STDDEV
</lang>
{{out}}
<pre>
N=1 ITEM=2 AVG=2.000 STDDEV=0.000
N=2 ITEM=4 AVG=3.000 STDDEV=1.000
N=3 ITEM=4 AVG=3.333 STDDEV=0.942
N=4 ITEM=4 AVG=3.500 STDDEV=0.866
N=5 ITEM=5 AVG=3.800 STDDEV=0.979
N=6 ITEM=5 AVG=4.000 STDDEV=1.000
N=7 ITEM=7 AVG=4.428 STDDEV=1.399
N=8 ITEM=9 AVG=5.000 STDDEV=2.000
</pre>
 
 
=={{header|Ada}}==
1,392

edits