delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/06/04/19:45:45

From: "John M. Aldrich" <fighteer AT cs DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Random functions
Date: Thu, 04 Jun 1998 19:30:16 -0400
Organization: Two pounds of chaos and a pinch of salt.
Lines: 29
Message-ID: <35772E08.E9E45409@cs.com>
References: <01bd9005$b3927cc0$575995c1 AT nicland>
NNTP-Posting-Host: ppp142.cs.net
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Nicholas Law wrote:
> 
> Hi all!
> 
> I've downloaded some C source code off the internet. It uses the
> (apparently) standard C functions srand48() and lrand48(). When I compile
> the program in djgpp the compiler complains about the functions. These are
> my include statements:

They aren't standard that I know of.  DJGPP includes two random number
generators as part of its libc:  rand() and random().  The only
ANSI-standard RNG is rand(); however, DJGPP's implementation of it lacks
randomness in the lower bits.  If portability is not an issue, we
recommend that random() be used; it contains a complex and apparently
rather good algorithm.

If portability is an issue, you still should not use rand() because its
quality varies greatly from system to system.  The best solution for any
program that depends on good pseudo-random numbers is to include a
custom-designed RNG.  For your program to work, you'll have to provide
your own versions of srand48() and lrand48(), or use a different RNG.

-- 
---------------------------------------------------------------------
|      John M. Aldrich       | "Always listen to experts.  They'll  |
|       aka Fighteer I       | tell you what can't be done, and why.|
|   mailto:fighteer AT cs DOT com   | Then do it."                         |
| http://www.cs.com/fighteer/|                - Lazarus Long        |
---------------------------------------------------------------------

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019