Age | Commit message (Collapse) | Author |
|
* src/nd-random.sc (rotate-from-nth-canonical): Do nothing when
vectors around the nth canonical axis are required.
|
|
* src/nd-random.sc (hollow-cone-random-vector): Implement simplified
algorithm that directly samples the surface of the sphere instead of
sampling a disk and projecting it onto the surface.
|
|
* contrib/cone-vector.py: Call sample_code when run as a script.
(sample_code): New function.
|
|
* contrib/cone-vector.py: Don't import zeros from numpy and gamma from
scipy.special.
|
|
* contrib/cone-vector.py (random_vector_on_sphere,
planar_angle2solid_angle_fraction, solid_angle_fraction2planar_angle,
rotate_from_nth_canonical, random_vector_on_spherical_cap): Add
docstrings.
|
|
* contrib/cone-vector.py (random_vector_on_sphere,
planar_angle2solid_angle_fraction, solid_angle_fraction2planar_angle,
rotate_from_nth_canonical, random_vector_on_spherical_cap): Remove
space between function name and bracket.
|
|
* contrib/cone-vector.py: Don't import tan.
(random_vector_on_spherical_cap): Implement simplified algorithm that
directly samples the surface of the sphere instead of sampling a disk
and projecting it onto the surface.
|
|
* contrib/cone-vector.py: Import where.
(planar_angle2solid_angle_fraction,
solid_angle_fraction2planar_angle): Vectorize functions.
|
|
* contrib/cone-vector.py (solid_angle_fraction2planar_angle): Fix for
solid_angle_fraction > 1/2.
|
|
* contrib/cone-vector.py: Import empty. Don't import concatenate.
(random_vector_on_spherical_cap): Build random vector without
concatenation.
|
|
Now that we are computing solid angle fractions, there is no need to
compute the total surface area of the sphere.
* contrib/cone-vector.py (surface_area_of_ball): Delete function.
(solid_angle_fraction2planar_angle): Remove surface area computation.
|
|
* contrib/cone-vector.py: New file.
|
|
* scm/nsmc/load-libs.scm.in, scm/nsmc/wrap.scm: Add copyright and
license headers.
|
|
* README.org: List papers as a bulleted list.
|
|
* guix.scm: Add guix environment instructions.
|
|
* include/extent-sampling.h, include/gaussian-nd-random.h,
include/integrands.h, include/nd-random.h, include/oracles.h,
include/utils.h, src/extent-sampling.sc, src/gaussian-nd-random.sc,
src/integrands.sc, src/macros/macros.sc, src/nd-random.sc,
src/oracles.sc, src/utils.sc, CMakeLists.txt, pre-inst-env.in: Add
copyright and license headers.
|
|
* COPYING: New file.
|
|
* README.org (Citing): New section.
|
|
* README.org: Refer to papers at the opening.
|
|
* README.org (TITLE): Set to "n-sphere Monte Carlo Method".
|
|
* README.org (Usage): New section.
|
|
* examples/generate-hollow-cone-vector.c: New file.
|
|
* examples/generate-cone-vector.c: New file.
|
|
This is so that someone compiling and running C programs against
libnsmc can do so easily.
* pre-inst-env.in: Set CPATH and LIBRARY_PATH.
|
|
* scm/nsmc/wrap.scm: (subsampling-random-vector): Rename to
cone-random-vector.
* src/nd-random.sc (subsampling-random-vector): Rename to
cone-random-vector.
* include/nd-random.h (subsampling_random_vector): Rename to
cone_random_vector.
|
|
|
|
* README.org (Build): Advertise guix environment.
|
|
* README.org (Build): Link to dependencies.
|
|
* README.org (Build): Specify GSL as a dependency.
|
|
* guix.scm (extent-sampling): Add indent to native-inputs.
|
|
* guix.scm (extent-sampling): Fix home-page.
|
|
* README.org: New file.
|
|
* CMakeLists.txt: Comment about building and installing shared
library.
|
|
* CMakeLists.txt: Include GNUInstallDirs earlier.
|
|
* scm/extent-sampling/wrap.scm (volume-window): New function.
|
|
* src/extent-sampling.sc (integral-per-direction): Remove neval from
function arguments.
(integral): Adjust integral-per-direction function call.
|
|
The bug has been fixed upstream.
* src/integrands.sc (gaussian-integrand): Remove workaround for sph-sc
negation bug.
|
|
* scm/extent-sampling/wrap.scm (maybe-procedure->integrand, integral):
New functions.
|
|
* scm/extent-sampling/wrap.scm (maybe-procedure->extent-oracle,
maybe-procedure->integrand): New functions.
|
|
* scm/extent-sampling/wrap.scm (make-integrand,
make-polynomial-integrand, gaussian-integrand,
x-coordinate-integrand): New functions.
|
|
* scm/extent-sampling/wrap.scm (make-extent-oracle,
make-bernoulli-params, make-bernoulli-oracle, true-volume-procedure,
bernoulli-true-volume, make-uniform-params, make-uniform-oracle,
uniform-true-volume, make-beta-params, make-beta-oracle,
beta-true-volume, make-cube-params, make-cube-oracle,
cube-true-volume, make-spheroid-params, make-spheroid-oracle,
spheroid-true-volume): New functions.
|
|
With this change, the wrapper around the gsl lower incomplete gamma
function is directly in scheme. Earlier, there was one layer of
wrapping in C which needed to be wrapped again in scheme.
* include/utils.h (lower_incomplete_gamma): Delete function.
* src/utils.sc (lower-incomplete-gamma): Delete function.
* scm/extent-sampling/wrap.scm (lower-incomplete-gamma): New function.
|
|
* include/integrands.h, src/integrands.sc: New files.
|
|
This change will make it easier for the scheme wrapper to curry
integrands.
* include/extent-sampling.h (integrand_t): Redefine type as struct.
(integral): Pass pointer to integrand_t.
* src/extent-sampling.sc (integral-per-direction, integral): Handle
new integrand-t type.
(invoke-integrand): New sc macro.
|
|
Logarithmic functions trip up when their parameter is 0.
* src/oracles.sc (uniform-true-volume): Implement without log.
|
|
* src/oracles.sc (bernoulli-extent-oracle, bernoulli-true-volume,
uniform-extent-oracle, uniform-true-volume, beta-extent-oracle,
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): Rename params argument
to -params.
|
|
* scm/extent-sampling/wrap.scm (polyval): New function.
|
|
* scm/extent-sampling/wrap.scm (rstat-alloc, rstat-n): New functions.
|
|
* include/extent-sampling.h (volume, volume_window, integral,
volume_cone, volume_experiment): Pass extent_oracle_t as pointer.
* src/extent-sampling.sc: Likewise.
|
|
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.
|