about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorArun Isaac2021-05-07 16:45:28 +0530
committerArun Isaac2021-05-07 17:05:07 +0530
commit4224e183522b696e60556c8ea88dec5409d8a746 (patch)
tree732799e61eb3032fabdcfb9960f22d63097ea966 /src
parent80949873b409a54f7cb7e8defe9fe640670a1ae1 (diff)
downloadnsmc-4224e183522b696e60556c8ea88dec5409d8a746.tar.gz
nsmc-4224e183522b696e60556c8ea88dec5409d8a746.tar.lz
nsmc-4224e183522b696e60556c8ea88dec5409d8a746.zip
Move with-rstats and define with-rstats* sc macros.
* src/extent-sampling.sc (with-rstats): Move to ...
* src/macros/macros.sc (with-rstats): ... to here.
(with-rstats*): New macro.
Diffstat (limited to 'src')
-rw-r--r--src/extent-sampling.sc5
-rw-r--r--src/macros/macros.sc14
2 files changed, 14 insertions, 5 deletions
diff --git a/src/extent-sampling.sc b/src/extent-sampling.sc
index 8d3693d..fb502a0 100644
--- a/src/extent-sampling.sc
+++ b/src/extent-sampling.sc
@@ -27,11 +27,6 @@
 (pre-include "utils.h")
 (pre-include "extent-sampling.h")
 
-(sc-define-syntax (with-rstats var body ...)
-  (with-alloc var gsl-rstat-workspace*
-              (gsl-rstat-alloc) gsl-rstat-free
-              body ...))
-
 (sc-define-syntax (with-integration-workspace var intervals body ...)
   (with-alloc var gsl-integration-workspace*
               (gsl-integration-workspace-alloc intervals)
diff --git a/src/macros/macros.sc b/src/macros/macros.sc
index cf6be15..8ff799b 100644
--- a/src/macros/macros.sc
+++ b/src/macros/macros.sc
@@ -53,3 +53,17 @@
   (with-alloc var gsl-rng*
               (gsl-rng-alloc gsl-rng-default) gsl-rng-free
               body ...))
+
+(sc-define-syntax (with-rstats var body ...)
+  (with-alloc var gsl-rstat-workspace*
+              (gsl-rstat-alloc) gsl-rstat-free
+              body ...))
+
+(sc-define-syntax (with-rstats* var n body ...)
+  (begin
+    (declare var (array gsl-rstat-workspace* 3))
+    (for-i i n
+      (array-set var i (gsl-rstat-alloc)))
+    body ...
+    (for-i i n
+      (gsl-rstat-free (array-get var i)))))