[GRASS-SVN] r63217 - in grass/branches/releasebranch_7_0: . raster/simwe/r.sim.sediment raster/simwe/r.sim.water raster/simwe/simlib

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Nov 27 19:40:11 PST 2014


Author: annakrat
Date: 2014-11-27 19:40:11 -0800 (Thu, 27 Nov 2014)
New Revision: 63217

Modified:
   grass/branches/releasebranch_7_0/
   grass/branches/releasebranch_7_0/raster/simwe/r.sim.sediment/main.c
   grass/branches/releasebranch_7_0/raster/simwe/r.sim.water/main.c
   grass/branches/releasebranch_7_0/raster/simwe/simlib/hydro.c
   grass/branches/releasebranch_7_0/raster/simwe/simlib/random.c
   grass/branches/releasebranch_7_0/raster/simwe/simlib/waterglobs.h
Log:
simwe: change random number generator to the standard one, #2272 (merge from trunk, r63216)


Property changes on: grass/branches/releasebranch_7_0
___________________________________________________________________
Modified: svn:mergeinfo
   - /grass/trunk:60817,61096,61141,61994,62105,62179-62180,62182,62403,62422,62424,62437,62466,62469,62487,62491,62494,62501,62506,62508-62509,62515,62518-62519,62521,62526,62533,62539,62541,62555,62562,62566,62570,62573,62575,62585,62588,62597,62603,62606,62608-62609,62614,62618,62628,62632,62638,62642,62648-62649,62652,62654-62657,62666,62691,62705,62709,62723,62730,62739,62741,62743,62746,62750,62752,62757,62762,62785,62798,62800-62801,62803,62805,62812,62822,62824,62831,62838,62847,62850,62856,62879,62881,62886,62907-62908,62910,62912,62914,62916,62918,62920,62925,62933,62935,62940,62942,62944-62946,62949,62958,62960,62962,62964,62966-62968,62970,62973,62975,62977,62981,62983,62985,62987,62989,62991,62993,62995,62997,62999-63000,63003,63005,63007,63009,63011,63013,63015,63017,63020,63022,63024,63026,63028-63031,63033,63035,63037,63040,63043-63044,63047,63049,63051,63053,63055,63057,63060,63062-63064,63066,63068,63070-63071,63074,63076,63079,63081,63083,63085,63087,63089,
 63091,63093,63095,63098,63100,63102,63105,63107,63109,63111,63113-63114,63116,63119,63121,63123,63125,63130,63132-63133,63135,63137,63140,63143,63145,63147,63149,63151,63153-63154,63157,63165,63170,63173,63175,63187,63192-63193,63196,63199-63200,63202,63209
   + /grass/trunk:60817,61096,61141,61994,62105,62179-62180,62182,62403,62422,62424,62437,62466,62469,62487,62491,62494,62501,62506,62508-62509,62515,62518-62519,62521,62526,62533,62539,62541,62555,62562,62566,62570,62573,62575,62585,62588,62597,62603,62606,62608-62609,62614,62618,62628,62632,62638,62642,62648-62649,62652,62654-62657,62666,62691,62705,62709,62723,62730,62739,62741,62743,62746,62750,62752,62757,62762,62785,62798,62800-62801,62803,62805,62812,62822,62824,62831,62838,62847,62850,62856,62879,62881,62886,62907-62908,62910,62912,62914,62916,62918,62920,62925,62933,62935,62940,62942,62944-62946,62949,62958,62960,62962,62964,62966-62968,62970,62973,62975,62977,62981,62983,62985,62987,62989,62991,62993,62995,62997,62999-63000,63003,63005,63007,63009,63011,63013,63015,63017,63020,63022,63024,63026,63028-63031,63033,63035,63037,63040,63043-63044,63047,63049,63051,63053,63055,63057,63060,63062-63064,63066,63068,63070-63071,63074,63076,63079,63081,63083,63085,63087,63089,
 63091,63093,63095,63098,63100,63102,63105,63107,63109,63111,63113-63114,63116,63119,63121,63123,63125,63130,63132-63133,63135,63137,63140,63143,63145,63147,63149,63151,63153-63154,63157,63165,63170,63173,63175,63187,63192-63193,63196,63199-63200,63202,63209,63216

Modified: grass/branches/releasebranch_7_0/raster/simwe/r.sim.sediment/main.c
===================================================================
--- grass/branches/releasebranch_7_0/raster/simwe/r.sim.sediment/main.c	2014-11-28 03:39:00 UTC (rev 63216)
+++ grass/branches/releasebranch_7_0/raster/simwe/r.sim.sediment/main.c	2014-11-28 03:40:11 UTC (rev 63217)
@@ -103,7 +103,6 @@
     int ret_val;
     double x_orig, y_orig;
     static int rand1 = 12345;
-    static int rand2 = 67891;
 
     G_gisinit(argv[0]);
 
@@ -370,7 +369,7 @@
     if (erdep != NULL || et != NULL)
 	er = G_alloc_fmatrix(my, mx);
 
-    seeds(rand1, rand2);
+    G_srand48(rand1);
     grad_check();
 
     if (et != NULL)

Modified: grass/branches/releasebranch_7_0/raster/simwe/r.sim.water/main.c
===================================================================
--- grass/branches/releasebranch_7_0/raster/simwe/r.sim.water/main.c	2014-11-28 03:39:00 UTC (rev 63216)
+++ grass/branches/releasebranch_7_0/raster/simwe/r.sim.water/main.c	2014-11-28 03:40:11 UTC (rev 63217)
@@ -101,7 +101,6 @@
     int ret_val;
     double x_orig, y_orig;
     static int rand1 = 12345;
-    static int rand2 = 67891;
     struct GModule *module;
 
     G_gisinit(argv[0]);
@@ -464,7 +463,7 @@
     dif = G_alloc_fmatrix(my, mx);
 
     G_debug(1, "seeding randoms");
-    seeds(rand1, rand2);
+    G_srand48(rand1);
     grad_check();
     main_loop();
 

Modified: grass/branches/releasebranch_7_0/raster/simwe/simlib/hydro.c
===================================================================
--- grass/branches/releasebranch_7_0/raster/simwe/simlib/hydro.c	2014-11-28 03:39:00 UTC (rev 63216)
+++ grass/branches/releasebranch_7_0/raster/simwe/simlib/hydro.c	2014-11-28 03:40:11 UTC (rev 63217)
@@ -204,8 +204,8 @@
 			if (lw >= MAXW)  /* max valid value is MAXW - 1, not MAXW */
 			    G_fatal_error(_("nwalk (%d) > maxw (%d)!"), lw, MAXW);
 
-			w[lw][0] = x + stepx * (ulec() - 0.5);
-			w[lw][1] = y + stepy * (ulec() - 0.5);
+			w[lw][0] = x + stepx * (simwe_rand() - 0.5);
+			w[lw][1] = y + stepy * (simwe_rand() - 0.5);
 			w[lw][2] = wei;
 
 			walkwe += w[lw][2];
@@ -323,7 +323,7 @@
 
 			if (traps != NULL && trap[k][l] != 0.) {	/* traps */
 
-			    eff = ulec();	/* random generator */
+			    eff = simwe_rand();	/* random generator */
 
 			    if (eff <= trap[k][l]) {
 				velx = -0.1 * v1[k][l];	/* move it slightly back */

Modified: grass/branches/releasebranch_7_0/raster/simwe/simlib/random.c
===================================================================
--- grass/branches/releasebranch_7_0/raster/simwe/simlib/random.c	2014-11-28 03:39:00 UTC (rev 63216)
+++ grass/branches/releasebranch_7_0/raster/simwe/simlib/random.c	2014-11-28 03:40:11 UTC (rev 63217)
@@ -9,59 +9,9 @@
 
 #include <grass/waterglobs.h>
 
-int seeds(long int irand1, long int irand2)
+double simwe_rand(void)
 {
-    seed.is1 = irand1;
-    seed.is2 = irand2;
-    return 0;
-}
-
-
-int seedg(long int irand1, long int irand2)
-{
-    irand1 = seed.is1;
-    irand2 = seed.is2;
-    return 0;
-}
-
-
-double ulec(void)
-{
-    /* System generated locals */
-    double ret_val;
-
-    /* Local variables */
-    long int k, iz;
-
-
-    /*      uniform random number generator (combined type) */
-    /*      P. L'Ecuyer, Commun. ACM, 31(1988)742 */
-    /*      portable (32 bits arithmetics) */
-
-
-    k = seed.is1 / 53668;
-    seed.is1 -= k * 53668;
-    seed.is1 = seed.is1 * 40014 - k * 12211;
-    /*      is1=40014*(is1-k*53668)-k*12211 */
-    if (seed.is1 < 0) {
-	seed.is1 += 2147483563;
-    }
-
-    k = seed.is2 / 52774;
-    seed.is2 -= k * 52774;
-    seed.is2 = seed.is2 * 40692 - k * 3791;
-    /*      is2=40692*(is2-k*52774)-k*3791 */
-    if (seed.is2 < 0) {
-	seed.is2 += 2147483399;
-    }
-
-    iz = seed.is1 - seed.is2;
-    if (iz < 0) {
-	iz += 2147483562;
-    }
-    ret_val = (double)iz *4.656613e-10;
-
-    return ret_val;
+    return G_drand48();
 }				/* ulec */
 
 
@@ -80,8 +30,8 @@
 
     if (iset == 0) {
 	while (r >= 1. || r == 0.) {
-	    vv1 = ulec() * 2. - 1.;
-	    vv2 = ulec() * 2. - 1.;
+	    vv1 = simwe_rand() * 2. - 1.;
+	    vv2 = simwe_rand() * 2. - 1.;
 	    r = vv1 * vv1 + vv2 * vv2;
 	}
 	fac = sqrt(log(r) * -2. / r);

Modified: grass/branches/releasebranch_7_0/raster/simwe/simlib/waterglobs.h
===================================================================
--- grass/branches/releasebranch_7_0/raster/simwe/simlib/waterglobs.h	2014-11-28 03:39:00 UTC (rev 63216)
+++ grass/branches/releasebranch_7_0/raster/simwe/simlib/waterglobs.h	2014-11-28 03:40:11 UTC (rev 63217)
@@ -78,14 +78,12 @@
 
 extern struct _points points;
 extern int input_data(void);
-extern int seeds(long int, long int);
-extern int seedg(long int, long int);
 extern int grad_check(void);
 extern void erod(double **);
 extern void main_loop(void);
 extern int output_data(int, double);
 extern int output_et(void);
-extern double ulec(void);
+extern double simwe_rand(void);
 extern double gasdev(void);
 extern double amax1(double, double);
 extern double amin1(double, double);



More information about the grass-commit mailing list