/ STDV = STDEV(IVARS,SUM,SQRS) / / STD DEV = SQRT((VARS*SQRS-SUM*SUM)/(VARS*(VARS-1.))) / / 'IVARS' = NUMBER OF VARIABLES (ELEMENTS) / ( 0 <= IVARS <= 4095 ) / 'SUM ' = SUM OF ALL ELEMENTS. / 'SQRS ' = SUM OF SQUARES OF ALL ELEMENTS. / / IF 'IVARS' IS 0 OR 1, A STD DEV OF 0.0 IS RETURNED. / / 04OCT75 JOHN VAN ESSEN ENTRY STDEV DUMMY ^VARS STDEV, BLOCK 2 CALL 0,CLEAR JMS GETARG ^VARS JMS GETARG ^SUM JMS GETARG ^SQRS TAD I ^VARS CLL RAR SNA CLA /2 OR GREATER? JMP XIT /NO. IS 0 OR 1. CALL 1,F4096 ^VARS, ARG ^VARS CALL 1,STO ARG VARS CMA CALL 0,FLOT /-1. CALL 1,FAD /VARS-1. ARG VARS CALL 1,FMP /VARS*(VARS-1.) ARG VARS CALL 1,STO /TEMP1=VARS*(VARS-1.) ARG TEMP1 CALL 1,IFAD /SUM ARG ^SUM CALL 1,FMP /SUM*SUM ^SUM, ARG ^SUM CALL 1,STO /TEMP2=SUM*SUM ARG TEMP2 CALL 1,FAD /SQRS ^SQRS, ARG ^SQRS CALL 1,FMP /SQRS*VARS ARG VARS CALL 1,FSB /SQRS*VARS-SUM*SUM ARG TEMP2 CALL 1,FDV /(SQRS*VARS-SUM*SUM)/(VARS(VARS-1.)) ARG TEMP1 CALL 1,STO ARG TEMP1 CALL 1,SQRT / SQRT( ^ ^ ^ ) ARG TEMP1 XIT, RETRN STDEV GETARG, 0 TAD I GETARG /ARGUMENT ADDRESS. DCA TEMP1 INC GETARG TAD I STDEV INC STDEV# DCA I TEMP1 /CDF OF ARG INTO (TEMP1) INC TEMP1 TAD I STDEV INC STDEV# DCA I TEMP1 /ADDR OF ARG INTO (TEMP1) JMP I GETARG TEMP1, BLOCK 3 TEMP2, BLOCK 3 VARS, BLOCK 3 END