Age | Commit message (Expand) | Author |
2022-01-08 | Ignore python generated files.•••* .gitignore: Add python/__pycache__ and python/*.png.
| Arun Isaac |
2022-01-08 | Port integral experiments to python.•••* python/distribution-integrals.py: New file.
| Arun Isaac |
2022-01-08 | Port volume experiments to python.•••* python/distribution-volumes.py: New file.
| Arun Isaac |
2022-01-08 | Port to python.•••* python/nsmc.py: New file.
| Arun Isaac |
2022-01-07 | Move to `guix shell' friendly manifest.scm.•••* guix.scm: Rename to manifest.scm. Replace `guix environment -l
guix.scm' with `guix shell'.
* README.org (Build): Replace `guix environment -l guix.scm' with
`guix shell'.
| Arun Isaac |
2022-01-07 | Add python dependencies to manifest.•••* guix.scm: Import (guix build-system python), (guix download), (gnu
packages check), (gnu packages python), (gnu packages python-science)
and (gnu packages python-xyz).
(python-sambal): New variable.
Add python, python-matplotlib, python-numpy, python-sambal and
python-scipy to manifest.
| Arun Isaac |
2022-01-07 | Switch to a Guix manifest.•••* guix.scm (nsmc): Delete package.
Return a manifest.
| Arun Isaac |
2021-12-31 | Use git-predicate in guix.scm.•••* guix.scm: Do not import (ice-9 match), (ice-9 popen), (ice-9
rdelim), (srfi srfi-1), (srfi srfi-26) and (guix build utils).
(git-file?): Delete function.
(nsmc): Use git-predicate instead of git-file?
| Arun Isaac |
2021-06-30 | Expose rstats in scheme wrapper.•••* scm/nsmc/wrap.scm (rstat-alloc): Export it.
(volume, integral): Accept and return rstats object.
| Arun Isaac |
2021-06-30 | Implement offcenter volume experiments.•••* src/volume-bodies.sc: Implement offcenter volume experiments.
| Arun Isaac |
2021-06-30 | Add offcenter ellipsoid extent oracle.•••* src/oracles.sc: Include gsl/gsl_poly.h.
(ellipsoid-extent-oracle-with-center): New function.
* include/oracles.h (ellipsoid_params): Add center member.
(ellipsoid_extent_oracle_with_center): Declare it.
| Arun Isaac |
2021-06-30 | Implement window stopping criterion for integrals.•••* src/extent-sampling.sc (integral): Implement window stopping
criterion.
| Arun Isaac |
2021-06-30 | Support sampling in sphere.•••* src/nd-random.sc (random-vector-in-sphere): New function.
* include/nd-random.h (random_vector_in_sphere): Declare it.
| Arun Isaac |
2021-05-07 | Implement spheroid importance sampling experiments.•••* src/spheroid.sc: New file.
* CMakeLists.txt: Add spheroid executable.
| Arun Isaac |
2021-05-07 | Implement volume of bodies experiments.•••* src/volume-bodies.sc: New file.
* CMakeLists.txt: Add volume-bodies executable.
| Arun Isaac |
2021-05-07 | Implement integral experiments.•••* src/integral.sc: New file.
* CMakeLists.txt: Explicitly specify sources for nsmc library. Add
integral executable.
| Arun Isaac |
2021-05-07 | Use window stopping criterion for volume.•••* src/extent-sampling.sc (volume): Use window stopping criterion.
| Arun Isaac |
2021-05-07 | Treat extent oracles and integrands as const arguments.•••* include/extent-sampling.h (volume, volume_cone, volume_importance,
integral): Pass extent oracle and integrand as const arguments.
* src/extent-sampling.sc (volume, volume_cone, volume_importance,
integral, integral-per-direction): Likewise.
| Arun Isaac |
2021-05-07 | Do not pass rng to integral-per-direction.•••integral-per-direction should be purely deterministic.
* src/extent-sampling.sc (integral-per-direction): Do not accept rng
as argument.
(integral): Do not pass rng to integral-per-direction.
| Arun Isaac |
2021-05-07 | Define with-file and with-data-file sc macros.•••* src/macros/macros.sc (with-file, with-data-file): New macros.
| Arun Isaac |
2021-05-07 | 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.
| Arun Isaac |
2021-05-07 | Define with-rng sc macro.•••* src/macros/macros.sc (with-rng): New macro.
| Arun Isaac |
2021-05-07 | Move with-vector to macros.sc.•••* src/extent-sampling.sc (with-vector): Move to ...
* src/macros/macros.sc (with-vector): ... here.
| Arun Isaac |
2021-05-07 | Define for-i-step sc macro.•••* src/macros/macros.sc (for-i-step): New macro.
| Arun Isaac |
2021-05-07 | Define when and unless sc macros.•••* src/macros/macros.sc (when, unless): New macros.
| Arun Isaac |
2021-05-07 | Add rtol? predicate.•••* src/utils.sc (rtol?): New function.
* include/utils.h (rtol_p): Declare it.
| Arun Isaac |
2021-05-07 | Declare polynomial_integrand_params member as const.•••* include/integrands.h (polynomial_integrand_params): Declare
coefficients member as const.
| Arun Isaac |
2021-04-20 | Wrap ellipsoid functions.•••* scm/nsmc/wrap.scm (make-ellipsoid-params, make-ellipsoid-oracle,
ellipsoid-true-volume): New functions.
| Arun Isaac |
2021-04-20 | Return rstat object from volume and integral wrappers.•••We return the rstat object so it can be passed on into another
invocation to continue the estimation and refine the estimate to a
closer tolerance.
* scm/nsmc/wrap.scm (volume, integral): Return rsat object.
| Arun Isaac |
2021-04-20 | Do not return volume or integral estimate.•••We are already passing in the true volume or integral, and checking
that the estimate is within the required tolerance. What is the point
in returning the estimate to the caller.
* include/extent-sampling.h (volume, integral): Return nothing.
* src/extent-sampling.sc (volume, integral): Return nothing.
* scm/nsmc/wrap.scm (volume, integral): Accept no return value from C
function.
| Arun Isaac |
2021-04-20 | Return the first accurate estimate.•••* include/extent-sampling.h (volume_window): Delete function.
* src/extent-sampling.sc (integral, volume): Return the first accurate
estimate.
(volume-window): Delete function.
* scm/nsmc/wrap.scm (volume-window): Delete function.
| Arun Isaac |
2021-04-08 | Wrap volume-importance.•••* scm/nsmc/wrap.scm (volume-importance): New function.
| Arun Isaac |
2021-04-08 | Rename volume-experiment to volume-importance.•••* src/extent-sampling.sc,
include/extent-sampling.h (volume-experiment): Rename to
volume-importance.
| Arun Isaac |
2021-04-08 | Wrap gsl_sf_lngamma.•••* scm/nsmc/wrap.scm (log-gamma): New function.
| Arun Isaac |
2021-03-19 | Demonstrate cone sampling with rejection sampling too.•••* contrib/cone-vector.py (sample_code): Demonstrate cone sampling with
rejection sampling too.
| Arun Isaac |
2021-03-19 | Implement rejection sampling based cone sampling.•••* contrib/cone-vector.py: Import log.
(random_planar_angle_pdf, random_vector_on_spherical_cap_pdf): New
functions.
| Arun Isaac |
2021-03-19 | Factor out random planar angle generation.•••* contrib/cone-vector.py (random_planar_angle_cdf,
random_vector_on_disk): New functions.
(random_vector_on_spherical_cap): Rename to
random_vector_on_spherical_cap_cdf. Call random_planar_angle_cdf and
random_vector_on_disk.
(sample_code): Call random_vector_on_spherical_cap_cdf instead of
random_vector_on_spherical_cap.
| Arun Isaac |
2021-03-16 | Deal in solid angle fractions, not absolute solid angles.•••* src/extent-sampling.sc (volume-cone): Use
solid-angle-fraction->planar-angle instead of
solid-angle->planar-angle.
* src/nd-random.sc (planar-angle->solid-angle): Rename to
planar-angle->solid-angle-fraction and return a solid angle fraction.
(solid-angle->planar-angle): Rename to
solid-angle-fraction->planar-angle and accept a solid angle fraction.
(hollow-cone-random-vector): Use planar-angle->solid-angle-fraction
instead of planar-angle->solid-angle.
(beta-inc-unnormalized, incomplete-wallis-integral): Delete functions.
* include/nd-random.h (planar_angle_to_solid_angle): Rename to
planar_angle_to_solid_angle_fraction.
(solid_angle_to_planar_angle): Rename to
solid_angle_fraction_to_planar_angle.
* scm/nsmc/wrap.scm (planar-angle->solid-angle): Rename to
planar-angle->solid-angle-fraction.
| Arun Isaac |
2021-03-16 | Fix edge case when vectors around the nth canonical axis are required.•••* src/nd-random.sc (rotate-from-nth-canonical): Do nothing when
vectors around the nth canonical axis are required.
| Arun Isaac |
2021-03-16 | Implement simplified cone sampling algorithm.•••* 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.
| Arun Isaac |
2021-03-15 | Put sample code in separate function.•••* contrib/cone-vector.py: Call sample_code when run as a script.
(sample_code): New function.
| Arun Isaac |
2021-03-15 | Remove unused imports.•••* contrib/cone-vector.py: Don't import zeros from numpy and gamma from
scipy.special.
| Arun Isaac |
2021-03-15 | Add function 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): Add
docstrings.
| Arun Isaac |
2021-03-15 | Remove space between function name and bracket.•••* 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.
| Arun Isaac |
2021-03-15 | Implement simplified cone sampling algorithm.•••* 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.
| Arun Isaac |
2021-03-15 | Vectorize functions.•••* contrib/cone-vector.py: Import where.
(planar_angle2solid_angle_fraction,
solid_angle_fraction2planar_angle): Vectorize functions.
| Arun Isaac |
2021-03-15 | Fix solid_angle_fraction2planar_angle for solid_angle_fraction > 1/2.•••* contrib/cone-vector.py (solid_angle_fraction2planar_angle): Fix for
solid_angle_fraction > 1/2.
| Arun Isaac |
2021-03-10 | Do not concatenate numpy arrays.•••* contrib/cone-vector.py: Import empty. Don't import concatenate.
(random_vector_on_spherical_cap): Build random vector without
concatenation.
| Arun Isaac |
2021-03-10 | Remove surface area computation.•••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.
| Arun Isaac |
2021-03-10 | Add Python implementation of cone sampling.•••* contrib/cone-vector.py: New file.
| Arun Isaac |