PLplot 5.9.6
|
00001 /* 00002 * A C-program for MT19937, with initialization improved 2002/1/26. 00003 * Coded by Takuji Nishimura and Makoto Matsumoto. 00004 * 00005 * Before using, initialize the state by using init_genrand(seed) 00006 * or init_by_array(init_key, key_length). 00007 * 00008 * Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, 00009 * All rights reserved. 00010 * Copyright (C) 2005, Mutsuo Saito 00011 * All rights reserved. 00012 * 00013 * Redistribution and use in source and binary forms, with or without 00014 * modification, are permitted provided that the following conditions 00015 * are met: 00016 * 00017 * 1. Redistributions of source code must retain the above copyright 00018 * notice, this list of conditions and the following disclaimer. 00019 * 00020 * 2. Redistributions in binary form must reproduce the above copyright 00021 * notice, this list of conditions and the following disclaimer in the 00022 * documentation and/or other materials provided with the distribution. 00023 * 00024 * 3. The names of its contributors may not be used to endorse or promote 00025 * products derived from this software without specific prior written 00026 * permission. 00027 * 00028 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00029 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00030 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00031 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00032 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00033 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00034 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00035 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00036 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00037 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00038 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00039 * 00040 * 00041 * Any feedback is very welcome. 00042 * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html 00043 * email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space) 00044 */ 00045 00046 /* initializes mt[N] with a seed */ 00047 void init_genrand( unsigned long s ); 00048 00049 /* initialize by an array with array-length */ 00050 /* init_key is the array for initializing keys */ 00051 /* key_length is its length */ 00052 /* slight change for C++, 2004/2/26 */ 00053 void init_by_array( unsigned long init_key[], int key_length ); 00054 00055 /* generates a random number on [0,0xffffffff]-interval */ 00056 unsigned long genrand_int32( void ); 00057 00058 /* generates a random number on [0,0x7fffffff]-interval */ 00059 long genrand_int31( void ); 00060 00061 /* These real versions are due to Isaku Wada, 2002/01/09 added */ 00062 /* generates a random number on [0,1]-real-interval */ 00063 double genrand_real1( void ); 00064 00065 /* generates a random number on [0,1)-real-interval */ 00066 double genrand_real2( void ); 00067 00068 /* generates a random number on (0,1)-real-interval */ 00069 double genrand_real3( void ); 00070 00071 /* generates a random number on [0,1) with 53-bit resolution*/ 00072 double genrand_res53( void );