diff options
author | Arun Isaac | 2021-02-11 14:44:34 +0530 |
---|---|---|
committer | Arun Isaac | 2021-02-11 14:44:34 +0530 |
commit | 10d4a342fd02f79bdd848a87316c6f7dffc24019 (patch) | |
tree | 8dcc44f5d22870b5e275e11f59b3a6b3e7d46d03 /include/extent-sampling.h | |
parent | 6faadaad7c59896591a5a1a20b11cc00715eda19 (diff) | |
download | nsmc-10d4a342fd02f79bdd848a87316c6f7dffc24019.tar.gz nsmc-10d4a342fd02f79bdd848a87316c6f7dffc24019.tar.lz nsmc-10d4a342fd02f79bdd848a87316c6f7dffc24019.zip |
Change extent oracle and true volume prototypes.
This change will make it easier for the scheme wrapper to curry extent
oracles.
* include/extent-sampling.h (extent_oracle_t): Define as a struct that
bundles the parameters required by the actual extent oracle.
* include/oracles.h (bernoulli_params, uniform_params, beta_params,
cube_params, ellipsoid_params, spheroid_params): New types.
(bernoulli_extent_generator, uniform_extent_generator,
beta_extent_generator): Rename to bernoulli_extent_oracle,
uniform_extent_oracle, beta_extent_oracle respectively and change to
the new extent oracle prototype.
(bernoulli_true_volume, uniform_true_volume, beta_true_volume,
cube_extent_oracle, cube_extent_oracle_with_center, cube_true_volume,
ellipsoid_extent_oracle, ellipsoid_true_volume,
spheroid_extent_oracle, spheroid_true_volume): Change to new extent
oracle and true volume prototypes.
* src/oracles.sc: Likewise.
* src/extent-sampling.sc (invoke-extent-oracle): New macro.
(volume, volume-window, integral, volume-cone): Call using new extent
oracle prototype.
Diffstat (limited to 'include/extent-sampling.h')
-rw-r--r-- | include/extent-sampling.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/extent-sampling.h b/include/extent-sampling.h index 8ed3fb2..fd11bc4 100644 --- a/include/extent-sampling.h +++ b/include/extent-sampling.h @@ -5,7 +5,11 @@ #include <gsl/gsl_rstat.h> #include <gsl/gsl_vector.h> -typedef double (*extent_oracle_t) (const gsl_vector*); +typedef struct { + double (*oracle) (const gsl_rng*, const gsl_vector*, void*); + void *params; +} extent_oracle_t; + typedef double (*integrand_t) (double, const gsl_vector*); void init_random (void); |