103 lines
3.0 KiB
Plaintext
103 lines
3.0 KiB
Plaintext
******** 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 *
|
|
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
|