diff options
| author | Myrice <[email protected]> | 2015-04-07 14:43:05 -0700 |
|---|---|---|
| committer | Myrice <[email protected]> | 2015-04-07 14:43:05 -0700 |
| commit | 6b9eb92bd0b03d69a2f2e9c075a8af99d860d4d1 (patch) | |
| tree | c741ac460cb86219446070765be97536143def55 /src/intersim2/.svn/pristine/13 | |
| parent | 4dc9d53085b568aea0cefe75d599f87bb5e0841f (diff) | |
Booksim2 abandoned svn and moved to github (https://github.com/booksim/booksim2). This .svn folder is useless now and should be deleted.
For further integration, a git submodule/git subtree may be used. Since I modified their source code, we cannot use git submodule/git subtree easily.
Signed-off-by: Myrice <[email protected]>
Diffstat (limited to 'src/intersim2/.svn/pristine/13')
| -rw-r--r-- | src/intersim2/.svn/pristine/13/135d8312fc0bb109518f6bfc62cbbf814c7d587c.svn-base | 112 | ||||
| -rw-r--r-- | src/intersim2/.svn/pristine/13/13e96ce60fa5bdc9726f48b5186ae562fcd4bbeb.svn-base | 53 |
2 files changed, 0 insertions, 165 deletions
diff --git a/src/intersim2/.svn/pristine/13/135d8312fc0bb109518f6bfc62cbbf814c7d587c.svn-base b/src/intersim2/.svn/pristine/13/135d8312fc0bb109518f6bfc62cbbf814c7d587c.svn-base deleted file mode 100644 index 27428d9..0000000 --- a/src/intersim2/.svn/pristine/13/135d8312fc0bb109518f6bfc62cbbf814c7d587c.svn-base +++ /dev/null @@ -1,112 +0,0 @@ -/* This program by D E Knuth is in the public domain and freely copyable. - * It is explained in Seminumerical Algorithms, 3rd edition, Section 3.6 - * (or in the errata to the 2nd edition --- see - * http://www-cs-faculty.stanford.edu/~knuth/taocp.html - * in the changes to Volume 2 on pages 171 and following). */ - -/* N.B. The MODIFICATIONS introduced in the 9th printing (2002) are - included here; there's no backwards compatibility with the original. */ - -/* This version also adopts Brendan McKay's suggestion to - accommodate naive users who forget to call ranf_start(seed). */ - -/* If you find any bugs, please report them immediately to - * (and you will be rewarded if the bug is genuine). Thanks! */ - -/************ see the book for explanations and caveats! *******************/ -/************ in particular, you need two's complement arithmetic **********/ - -#define KK 100 /* the long lag */ -#define LL 37 /* the short lag */ -#define mod_sum(x,y) (((x)+(y))-(int)((x)+(y))) /* (x+y) mod 1.0 */ - -double ran_u[KK]; /* the generator state */ - -#ifdef __STDC__ -void ranf_array(double aa[], int n) -#else -void ranf_array(aa,n) /* put n new random fractions in aa */ - double *aa; /* destination */ - int n; /* array length (must be at least KK) */ -#endif -{ - register int i,j; - for (j=0;j<KK;j++) aa[j]=ran_u[j]; - for (;j<n;j++) aa[j]=mod_sum(aa[j-KK],aa[j-LL]); - for (i=0;i<LL;i++,j++) ran_u[i]=mod_sum(aa[j-KK],aa[j-LL]); - for (;i<KK;i++,j++) ran_u[i]=mod_sum(aa[j-KK],ran_u[i-LL]); -} - -/* the following routines are adapted from exercise 3.6--15 */ -/* after calling ranf_start, get new randoms by, e.g., "x=ranf_arr_next()" */ - -#define QUALITY 1009 /* recommended quality level for high-res use */ -double ranf_arr_buf[QUALITY]; -double ranf_arr_dummy=-1.0, ranf_arr_started=-1.0; -double *ranf_arr_ptr=&ranf_arr_dummy; /* the next random fraction, or -1 */ - -#define TT 70 /* guaranteed separation between streams */ -#define is_odd(s) ((s)&1) - -#ifdef __STDC__ -void ranf_start(long seed) -#else -void ranf_start(seed) /* do this before using ranf_array */ - long seed; /* selector for different streams */ -#endif -{ - register int t,s,j; - double u[KK+KK-1]; - double ulp=(1.0/(1L<<30))/(1L<<22); /* 2 to the -52 */ - double ss=2.0*ulp*((seed&0x3fffffff)+2); - - for (j=0;j<KK;j++) { - u[j]=ss; /* bootstrap the buffer */ - ss+=ss; if (ss>=1.0) ss-=1.0-2*ulp; /* cyclic shift of 51 bits */ - } - u[1]+=ulp; /* make u[1] (and only u[1]) "odd" */ - for (s=seed&0x3fffffff,t=TT-1; t; ) { - for (j=KK-1;j>0;j--) - u[j+j]=u[j],u[j+j-1]=0.0; /* "square" */ - for (j=KK+KK-2;j>=KK;j--) { - u[j-(KK-LL)]=mod_sum(u[j-(KK-LL)],u[j]); - u[j-KK]=mod_sum(u[j-KK],u[j]); - } - if (is_odd(s)) { /* "multiply by z" */ - for (j=KK;j>0;j--) u[j]=u[j-1]; - u[0]=u[KK]; /* shift the buffer cyclically */ - u[LL]=mod_sum(u[LL],u[KK]); - } - if (s) s>>=1; else t--; - } - for (j=0;j<LL;j++) ran_u[j+KK-LL]=u[j]; - for (;j<KK;j++) ran_u[j-LL]=u[j]; - for (j=0;j<10;j++) ranf_array(u,KK+KK-1); /* warm things up */ - ranf_arr_ptr=&ranf_arr_started; -} - -#define ranf_arr_next() (*ranf_arr_ptr>=0? *ranf_arr_ptr++: ranf_arr_cycle()) -double ranf_arr_cycle() -{ - if (ranf_arr_ptr==&ranf_arr_dummy) - ranf_start(314159L); /* the user forgot to initialize */ - ranf_array(ranf_arr_buf,QUALITY); - ranf_arr_buf[KK]=-1; - ranf_arr_ptr=ranf_arr_buf+1; - return ranf_arr_buf[0]; -} - -#include <stdio.h> -int main() -{ - register int m; double a[2009]; /* a rudimentary test */ - ranf_start(310952); - for (m=0;m<2009;m++) ranf_array(a,1009); - printf("%.20f\n", ran_u[0]); /* 0.36410514377569680455 */ - /* beware of buggy printf routines that do not give full accuracy here! */ - ranf_start(310952); - for (m=0;m<1009;m++) ranf_array(a,2009); - printf("%.20f\n", ran_u[0]); /* 0.36410514377569680455 */ - return 0; -} diff --git a/src/intersim2/.svn/pristine/13/13e96ce60fa5bdc9726f48b5186ae562fcd4bbeb.svn-base b/src/intersim2/.svn/pristine/13/13e96ce60fa5bdc9726f48b5186ae562fcd4bbeb.svn-base deleted file mode 100644 index 42bee23..0000000 --- a/src/intersim2/.svn/pristine/13/13e96ce60fa5bdc9726f48b5186ae562fcd4bbeb.svn-base +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ - -/* - Copyright (c) 2007-2012, Trustees of The Leland Stanford Junior University - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _BOOKSIM_CONFIG_HPP_ -#define _BOOKSIM_CONFIG_HPP_ - -#include "config_utils.hpp" - -class BookSimConfig : public Configuration { -protected: - -public: - BookSimConfig( ); -}; - -#endif - -#ifndef _POWER_CONFIG_HPP_ -#define _POWER_CONFIG_HPP_ - -#include "config_utils.hpp" - -class PowerConfig : public Configuration { -public: - PowerConfig( ); - -}; - -#endif |
