TITLE SETRAN SET RANDOM NUMBER SEED SUBTTL V.001 R.S.TOMLINSON 19 AUG 68 ENTRY SETRAN INTERN SETRAN EXTERN RAND,RND,RND1 ; SET RANDOM NUMBER SEED ; THIS ROUTINE SETS THE ORIGIN OF THE RANDOM NUMBER SEQUENCE AND ; IS USED IN CONJUNCTION WITH GETRAN TO ALLOW A "RANDOM" NUMBER ; SEQUENCE TO BE REPEATED. ; THE FIRST RANDOM NUMBER GENERATED AFTER A CALL TO GETRAN WILL BE ; THE SAME AS THE FIRST RANDOM NUMBER GENERATED AFTER A CALL TO SETRAN ; WITH THE SAME ARGUMENTS. THUS IN THE FOLLOWING PROGRAM: ; CALL GETRAN(I,J) ; X=RANDOM(1.0,2.0) ; CALL SETRAN(I,J) ; Y=RANDOM(1.0,2.0) ; X AND Y WILL BE SET TO THE SAME NUMBER. ; CALL: JSA 16,SETRAN ; ARG 00, ; ARG 00, ; . . . ; Modified to PUSHJ/POPJ calling convention 11 Oct 1980 ; by Paul T. Robinson, Wesleyan Univ. for DECUS conversion to DEC-20 ; call: movei 16,[exp ; exp ] ; pushj 17,setran SETRAN: MOVE 0,@0(16) ; GET HIGH ORDER PART MOVEM 0,RND ; PUT IT IN RANDOM # SEED MOVE 0,@1(16) ; GET LOW ORDER PART IORI 0,1 ; FORCE NUMBER TO BE ODD MOVEM 0,RND1 ; PUT IT IN RANDOM # SEED popj 17, END