Rev 4874 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4874 | Rev 4921 | ||
---|---|---|---|
Line 70... | Line 70... | ||
70 | #include |
70 | #include |
Line 71... | Line 71... | ||
71 | 71 | ||
72 | void |
72 | void |
73 | _DEFUN (srand, (seed), unsigned int seed) |
73 | _DEFUN (srand, (seed), unsigned int seed) |
- | 74 | { |
|
- | 75 | struct _reent *reent = _REENT; |
|
74 | { |
76 | |
75 | _REENT_CHECK_RAND48(_REENT); |
77 | _REENT_CHECK_RAND48(reent); |
76 | _REENT_RAND_NEXT(_REENT) = seed; |
78 | _REENT_RAND_NEXT(reent) = seed; |
Line 77... | Line 79... | ||
77 | } |
79 | } |
78 | 80 | ||
79 | int |
81 | int |
- | 82 | _DEFUN_VOID (rand) |
|
- | 83 | { |
|
80 | _DEFUN_VOID (rand) |
84 | struct _reent *reent = _REENT; |
81 | { |
85 | |
82 | /* This multiplier was obtained from Knuth, D.E., "The Art of |
86 | /* This multiplier was obtained from Knuth, D.E., "The Art of |
83 | Computer Programming," Vol 2, Seminumerical Algorithms, Third |
87 | Computer Programming," Vol 2, Seminumerical Algorithms, Third |
84 | Edition, Addison-Wesley, 1998, p. 106 (line 26) & p. 108 */ |
88 | Edition, Addison-Wesley, 1998, p. 106 (line 26) & p. 108 */ |
85 | _REENT_CHECK_RAND48(_REENT); |
89 | _REENT_CHECK_RAND48(reent); |
86 | _REENT_RAND_NEXT(_REENT) = |
90 | _REENT_RAND_NEXT(reent) = |
87 | _REENT_RAND_NEXT(_REENT) * __extension__ 6364136223846793005LL + 1; |
91 | _REENT_RAND_NEXT(reent) * __extension__ 6364136223846793005LL + 1; |
Line 88... | Line 92... | ||
88 | return (int)((_REENT_RAND_NEXT(_REENT) >> 32) & RAND_MAX); |
92 | return (int)((_REENT_RAND_NEXT(reent) >> 32) & RAND_MAX); |