about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2021-02-11 15:31:16 +0530
committerArun Isaac2021-02-11 15:31:16 +0530
commit6ebe3d0004ac8b19cf4a6fcfc3b2fba16bdc6b97 (patch)
tree9e4f3ad3ac7709634c9809b10e9b702f8c9c75bb
parent10d4a342fd02f79bdd848a87316c6f7dffc24019 (diff)
downloadnsmc-6ebe3d0004ac8b19cf4a6fcfc3b2fba16bdc6b97.tar.gz
nsmc-6ebe3d0004ac8b19cf4a6fcfc3b2fba16bdc6b97.tar.lz
nsmc-6ebe3d0004ac8b19cf4a6fcfc3b2fba16bdc6b97.zip
Pass extent-oracle-t as pointer.
* include/extent-sampling.h (volume, volume_window, integral,
volume_cone, volume_experiment): Pass extent_oracle_t as pointer.
* src/extent-sampling.sc: Likewise.
-rw-r--r--include/extent-sampling.h10
-rw-r--r--src/extent-sampling.sc12
2 files changed, 11 insertions, 11 deletions
diff --git a/include/extent-sampling.h b/include/extent-sampling.h
index fd11bc4..27314a3 100644
--- a/include/extent-sampling.h
+++ b/include/extent-sampling.h
@@ -15,27 +15,27 @@ typedef double (*integrand_t) (double, const gsl_vector*);
 void init_random (void);
 
 double volume
-(extent_oracle_t extent_oracle, double true_volume,
+(extent_oracle_t *extent_oracle, double true_volume,
  const gsl_rng* r, unsigned int dimension, double rtol,
  gsl_rstat_workspace* stats);
 
 double volume_window
-(extent_oracle_t extent_oracle, double true_volume,
+(extent_oracle_t *extent_oracle, double true_volume,
  const gsl_rng* r, unsigned int dimension, double rtol,
  unsigned int* number_of_samples);
 
 double integral
-(integrand_t integrand, extent_oracle_t extent_oracle, double true_integral,
+(integrand_t integrand, extent_oracle_t *extent_oracle, double true_integral,
  const gsl_rng* r, unsigned int dimension, double rtol,
  gsl_rstat_workspace* stats);
 
 double volume_cone
-(extent_oracle_t extent_oracle, const gsl_rng* r,
+(extent_oracle_t *extent_oracle, const gsl_rng* r,
  const gsl_vector* mean, double omega_min, double omega_max,
  unsigned int number_of_samples, double* variance);
 
 double volume_experiment
-(extent_oracle_t extent_oracle, const gsl_rng* r,
+(extent_oracle_t *extent_oracle, const gsl_rng* r,
  const gsl_vector* mean, unsigned int samples_per_cone,
  double solid_angle_factor, double solid_angle_threshold_exponent_factor,
  unsigned int* number_of_samples);
diff --git a/src/extent-sampling.sc b/src/extent-sampling.sc
index b54c44b..c91c46c 100644
--- a/src/extent-sampling.sc
+++ b/src/extent-sampling.sc
@@ -26,13 +26,13 @@
               body ...))
 
 (sc-define-syntax (invoke-extent-oracle extent-oracle r x)
-  ((struct-get extent-oracle oracle) r x (struct-get extent-oracle params)))
+  ((: extent-oracle oracle) r x (: extent-oracle params)))
 
 (pre-define CONFIDENCE-INTERVAL-FACTOR 1.96)
 
 (pre-let* (VOLUME-MINIMUM-SAMPLES 100)
   (define (volume extent-oracle true-volume r dimension rtol stats)
-    (double extent-oracle-t double (const gsl-rng*) (unsigned int) double gsl-rstat-workspace*)
+    (double extent-oracle-t* double (const gsl-rng*) (unsigned int) double gsl-rstat-workspace*)
     (declare volume double)
     (let* ((vn double (ln-volume-of-ball dimension)))
       (with-vector x dimension
@@ -49,7 +49,7 @@
     (return volume)))
 
 (define (volume-window extent-oracle true-volume r dimension rtol number-of-samples)
-  (double extent-oracle-t double (const gsl-rng*) (unsigned int) double (unsigned int*))
+  (double extent-oracle-t* double (const gsl-rng*) (unsigned int) double (unsigned int*))
   (declare volume double)
   (let* ((vn double (ln-volume-of-ball dimension))
          ;; This is the window length used in Volume.m of
@@ -97,7 +97,7 @@
 
 (pre-let* (INTEGRAL-MINIMUM-SAMPLES 100)
   (define (integral integrand extent-oracle true-integral r dimension rtol stats)
-    (double integrand-t extent-oracle-t double (const gsl-rng*) (unsigned int) double gsl-rstat-workspace*)
+    (double integrand-t extent-oracle-t* double (const gsl-rng*) (unsigned int) double gsl-rstat-workspace*)
     (declare integral double
              error double)
     (with-vector x dimension
@@ -119,7 +119,7 @@
     (return integral)))
 
 (define (volume-cone extent-oracle r mean omega-min omega-max number-of-samples variance)
-  (double extent-oracle-t (const gsl-rng*) (const gsl-vector*) double double (unsigned int) double*)
+  (double extent-oracle-t* (const gsl-rng*) (const gsl-vector*) double double (unsigned int) double*)
   (declare volume double)
   (let* ((dimension (unsigned int) (: mean size))
          (vn double (ln-volume-of-ball dimension))
@@ -139,7 +139,7 @@
 
 (define (volume-experiment extent-oracle r mean samples-per-cone solid-angle-factor
                            solid-angle-threshold-exponent-factor number-of-samples)
-  (double extent-oracle-t (const gsl-rng*) (const gsl-vector*)
+  (double extent-oracle-t* (const gsl-rng*) (const gsl-vector*)
           (unsigned int) double double (unsigned int*))
   (define
     volume double 0