equal
deleted
inserted
replaced
|
1 /*********************************************************************************** |
|
2 random_number.cpp |
|
3 |
|
4 * Copyright (c) 1997 |
|
5 * Mark of the Unicorn, Inc. |
|
6 * |
|
7 * Permission to use, copy, modify, distribute and sell this software |
|
8 * and its documentation for any purpose is hereby granted without fee, |
|
9 * provided that the above copyright notice appear in all copies and |
|
10 * that both that copyright notice and this permission notice appear |
|
11 * in supporting documentation. Mark of the Unicorn makes no |
|
12 * representations about the suitability of this software for any |
|
13 * purpose. It is provided "as is" without express or implied warranty. |
|
14 |
|
15 ***********************************************************************************/ |
|
16 #include "random_number.h" |
|
17 #include "Prefix.h" |
|
18 #if defined (EH_NEW_HEADERS) |
|
19 # include <functional> |
|
20 # include <cstdlib> |
|
21 #else |
|
22 # include <function.h> |
|
23 # include <stdlib.h> |
|
24 #endif |
|
25 |
|
26 unsigned random_number( size_t range ) |
|
27 { |
|
28 #if !defined( __SGI_STL ) |
|
29 if (range == 0) return 0; |
|
30 return (unsigned)(EH_STD::rand() + EH_STD::rand()) % range; |
|
31 #else |
|
32 static EH_STD::subtractive_rng rnd; |
|
33 if (range==0) return 0; |
|
34 return rnd(range); |
|
35 #endif |
|
36 } |
|
37 |
|
38 // default base for random container sizes |
|
39 unsigned random_base = 1000; |