os/ossrv/genericopenlibs/cppstdlib/stl/test/eh/random_number.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     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;