]> git.kaiwu.me - klib.git/commitdiff
free krand_t in the example
authorHeng Li <lh3@live.co.uk>
Mon, 16 Jan 2012 01:56:31 +0000 (20:56 -0500)
committerHeng Li <lh3@live.co.uk>
Mon, 16 Jan 2012 01:56:31 +0000 (20:56 -0500)
krand.c
krand.h

diff --git a/krand.c b/krand.c
index b46f8c3167a4bb3ee30d2a2784d2027f008bdd20..687b7db5755f72e935f2b0d638ab1d6eb0f24332 100644 (file)
--- a/krand.c
+++ b/krand.c
@@ -70,6 +70,8 @@ int main(int argc, char *argv[])
        if (argc > 1) N = atol(argv[1]);
        kr = kr_srand(11);
        for (i = 0; i < N; ++i) kr_rand(kr);
+//     for (i = 0; i < N; ++i) lrand48();
+       free(kr);
        return 0;
 }
 #endif
diff --git a/krand.h b/krand.h
index 68df4bcadd9e3617b987e0721fdf840435d0f44a..968331c9d641078113fbab27169b0663fc33339f 100644 (file)
--- a/krand.h
+++ b/krand.h
@@ -9,6 +9,7 @@ struct _krand_t;
 typedef struct _krand_t krand_t;
 
 #define kr_drand(_kr) ((kr_rand(_kr) >> 11) * (1.0/9007199254740992.0))
+#define kr_sample(_kr, _k, _cnt) ((*(_cnt))++ < (_k)? *(_cnt) - 1 : kr_rand(_kr) % *(_cnt))
 
 #ifdef __cplusplus
 extern "C" {