Skip to content

cmarples/ESS

Repository files navigation

ESS : Ellipsoid Surface Sampling

Overview

ESS is a set of C++ classes and routines for:

  • Randomly generating uniform random points on the surface of an ellipsoid,
  • Calculating surface areas on the ellipsoid, including patch areas.

The random sampling is done using many different algorithms, with the purpose of comparison for speed, uniformity and computational complexity. Also included is a set of samplers for the unit sphere, since some of the ellipsoid samplers require a random point on the sphere as a starting point.

Random numbers are generated using the TRNG library, which is included in the lib/ directory.

Reproduction of Data

To reproduce the data dicussed in the accompanying paper (in a Linux environment),

  • Ensure that CMake Version 3.16 or later is installed.

  • Execute the RunSampling.sh shell script. This compiles and runs the C++ program to generate the raw data, using the input_*.txt files. Note that this step will take some time to complete.

  • Run the Python script, distribution_analysis.py, in the /analysis directory. This computes relative standard deviations and chi-squared statistics.

  • The Python script, table_generation.py was used to generate LaTeX code for the Tables used in the paper.

  • The Python scripts, figure_*.py were used to generate the Figures. (the patch definition Figure was cropped after generation)

The raw data was generated by running the shell script in the Windows Subsystem for Linux. Analysis of this data and figure/table generation was performed by running the Python scripts in the Spyder IDE.

The Python script, area_maximum_symbolic.py, was used to perform the symbolic calculation mentioned in Appendix A of the paper.

Author

About

Ellipsoid Surface Sampling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages