home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stl453up.zip / stl453fx / test / eh / random_number.cpp < prev    next >
C/C++ Source or Header  |  2002-04-29  |  1KB  |  40 lines

  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( unsigned 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;
  40.