File STDEV.SB (8k SABR macro assembler source file)

Directory of image this file is from
This file as a plain text file

/	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



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search