Changeset: 25fc42cc1c58 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=25fc42cc1c58
Modified Files:
gdk/gdk_sample.c
Branch: stratified_sampling
Log Message:
Change sample to use Marsenne Twister
diffs (37 lines):
diff --git a/gdk/gdk_sample.c b/gdk/gdk_sample.c
--- a/gdk/gdk_sample.c
+++ b/gdk/gdk_sample.c
@@ -116,6 +116,8 @@ BATsample(BAT *b, BUN n)
BUN cnt, slen;
BUN rescnt;
struct oidtreenode *tree = NULL;
+ mtwist *mt_rng;
+ unsigned int range;
BATcheck(b, "BATsample", NULL);
assert(BAThdense(b));
@@ -164,16 +166,20 @@ BATsample(BAT *b, BUN n)
/* while we do not have enough sample OIDs yet */
/* create and seed Mersenne Twister */
- mtwist *mt_rng = NULL;
mt_rng = mtwist_new();
+
mtwist_seed(mt_rng, rand());
+ range = maxoid - minoid;
+
for (rescnt = 0; rescnt < n; rescnt++) {
oid candoid;
do {
- /* generate a new random OID */
- candoid = (oid) (minoid + DRAND * (maxoid -
minoid));
- candoid = (oid) (minoid + ())
+ //candoid = (oid) (minoid + DRAND * (maxoid -
minoid));
+
+ /* generate a new random OID in [minoid, maxoid[
+ * that is including minoid, excluding maxoid*/
+ candoid = (oid) ( minoid + (mtwist_u32rand(mt_rng)%range) );
/* if that candidate OID was already
* generated, try again */
} while (!OIDTreeMaybeInsert(tree, candoid, rescnt));
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list