From b34084640b6d4760a2c53dc714f82547985b7622 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 7 Oct 2019 20:08:41 -0600 Subject: [PATCH] `pseudo-random-generator-seed!` should allow 0 original commit: 1802cca10ec6abfe4bc177a4d4d9fa0d9a201517 --- csug/numeric.stex | 2 +- mats/5_3.ms | 1 - mats/root-experr-compile-0-f-f-f | 5 ++--- s/5_3.ss | 4 ++-- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/csug/numeric.stex b/csug/numeric.stex index a49531824d..a468ce0461 100644 --- a/csug/numeric.stex +++ b/csug/numeric.stex @@ -1473,7 +1473,7 @@ and \scheme{below-int} (exclusive). \noindent \var{prgen} must be a psuedo-random generator state, and \var{seed-int} must -be a positive, exact integer. +be a nonnegative, exact integer. Sets the state of a pseduo-random generator using only 31 or so bits of \var{seed-int}. This procedure is useful for initializing the state diff --git a/mats/5_3.ms b/mats/5_3.ms index f01c883559..096715ccb7 100644 --- a/mats/5_3.ms +++ b/mats/5_3.ms @@ -2584,7 +2584,6 @@ (error? (pseudo-random-generator-seed! 10 10)) (error? (pseudo-random-generator-seed! (vector 1 2 3) 10)) (error? (pseudo-random-generator-seed! (make-pseudo-random-generator) 10.0)) - (error? (pseudo-random-generator-seed! (make-pseudo-random-generator) 0)) (error? (pseudo-random-generator-seed! (make-pseudo-random-generator) -1)) (error? (pseudo-random-generator->vector 0)) diff --git a/mats/root-experr-compile-0-f-f-f b/mats/root-experr-compile-0-f-f-f index 867d500c89..b38e4e7243 100644 --- a/mats/root-experr-compile-0-f-f-f +++ b/mats/root-experr-compile-0-f-f-f @@ -1317,9 +1317,8 @@ primvars.mo:Expected error in mat trace-output-port: "trace-output-port: #vector: not a pseudo-random generator 0". 5_3.mo:Expected error in mat pseudo-random-generator: "vector->pseudo-random-generator: not a valid pseudo-random generator state vector 0". 5_3.mo:Expected error in mat pseudo-random-generator: "vector->pseudo-random-generator: not a valid pseudo-random generator state vector #(1 2 3 4 5)". diff --git a/s/5_3.ss b/s/5_3.ss index df8109b3aa..0473addb0d 100644 --- a/s/5_3.ss +++ b/s/5_3.ss @@ -2623,9 +2623,9 @@ (set-who! pseudo-random-generator-seed! (lambda (s n) (unless (is-pseudo-random-generator? s) ($oops who "not a pseudo-random generator ~s" s)) - (unless (or (and (fixnum? n) (fxpositive? n)) + (unless (or (and (fixnum? n) (fx>= n 0)) (and (bignum? n) ($bigpositive? n))) - ($oops who "not a positive exact integer ~s" n)) + ($oops who "not a nonnegative exact integer ~s" n)) (init! s (bitwise-and n #xFFFFFFFF))))) (set-who! pseudo-random-generator-next!