| /*********************************************************************************** |
| random_number.cpp |
| |
| * Copyright (c) 1997 |
| * Mark of the Unicorn, Inc. |
| * |
| * Permission to use, copy, modify, distribute and sell this software |
| * and its documentation for any purpose is hereby granted without fee, |
| * provided that the above copyright notice appear in all copies and |
| * that both that copyright notice and this permission notice appear |
| * in supporting documentation. Mark of the Unicorn makes no |
| * representations about the suitability of this software for any |
| * purpose. It is provided "as is" without express or implied warranty. |
| |
| ***********************************************************************************/ |
| #include "random_number.h" |
| #include "Prefix.h" |
| #if defined (EH_NEW_HEADERS) |
| # include <functional> |
| # include <cstdlib> |
| #else |
| # include <function.h> |
| # include <stdlib.h> |
| #endif |
| |
| unsigned random_number( size_t range ) |
| { |
| #if !defined( __SGI_STL ) |
| if (range == 0) return 0; |
| return (unsigned)(EH_STD::rand() + EH_STD::rand()) % range; |
| #else |
| static EH_STD::subtractive_rng rnd; |
| if (range==0) return 0; |
| return rnd(range); |
| #endif |
| } |
| |
| // default base for random container sizes |
| unsigned random_base = 1000; |