~ubuntu-branches/ubuntu/hardy/avr-libc/hardy

« back to all changes in this revision

Viewing changes to libc/stdlib/random.c

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2007-08-09 11:28:01 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070809112801-ps7wognnynio9kz7
Tags: 1:1.4.6-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 *
29
29
 * Posix rand_r function added May 1999 by Wes Peters <wes@softweyr.com>.
30
30
 *
31
 
 * $Id: random.c,v 1.1 2002/10/16 15:52:25 joerg_wunsch Exp $
 
31
 * $Id: random.c,v 1.1.8.1 2007/01/08 15:10:36 joerg_wunsch Exp $
32
32
 */
33
33
 
34
34
/*
51
51
         */
52
52
        long hi, lo, x;
53
53
 
54
 
        hi = *ctx / 127773L;
55
 
        lo = *ctx % 127773L;
 
54
        x = *ctx;
 
55
        /* Can't be initialized with 0, so use another value. */
 
56
        if (x == 0)
 
57
                x = 123459876L;
 
58
        hi = x / 127773L;
 
59
        lo = x % 127773L;
56
60
        x = 16807L * lo - 2836L * hi;
57
 
        if (x <= 0)
 
61
        if (x < 0)
58
62
                x += 0x7fffffffL;
59
63
        return ((*ctx = x) % ((unsigned long)RANDOM_MAX + 1));
60
64
}