genericopenlibs/cppstdlib/stl/test/eh/random_number.cpp
changeset 31 ce057bb09d0b
parent 0 e4d67989cc36
equal deleted inserted replaced
30:e20de85af2ee 31:ce057bb09d0b
       
     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;