Subversion Repositories Kolibri OS

Rev

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);