Skip to main content

A library for low-discrepancy sequences

Project description

codecov Documentation Status

⚽ sphere-n

Generator of Low discrepancy Sequence on S_n

This library implements a generator for the generation of low-discrepancy sequences on n-dimensional spheres. Low-discrepancy sequences are utilized for the generation of points that are distributed uniformly across a given space. This technique is of significant value in a number of fields, including computer graphics, numerical integration, and Monte Carlo simulations.

The principal objective of this library is to facilitate the generation of points on the surface of spheres of varying dimensions, including three-dimensional and higher-dimensional spheres. The input required is the dimension of the sphere (n) and a set of base numbers to be used for the underlying sequence generation. The output is a series of vectors, with each vector representing a point on the surface of the n-dimensional sphere.

The library achieves this through a combination of mathematical calculations and recursive structures. The library utilizes a number of fundamental components, including:

  1. The VdCorput sequence generator produces a sequence of numbers that are evenly distributed between 0 and 1.
  2. Subsequently, the aforementioned numerical data is mapped onto the surface of a sphere through the use of interpolation functions.
  3. The SphereGen module represents an abstract base class that defines the common interface for all sphere generators.
  4. The recursive structures, namely Sphere3 and NSphere, facilitate the construction of higher-dimensional spheres from their lower-dimensional counterparts.

The primary logic flow begins with the construction of a SphereN object, which utilizes either a Sphere3 (for 3D) or a recursive process to generate lower-dimensional spheres for higher dimensions. In the generation of points, the VdCorput sequence is employed to obtain a base number, which is then subjected to a series of transformations involving sine, cosine, and interpolation in order to map it onto the surface of the sphere.

A noteworthy aspect of the library is its incorporation of caching (through the @cache decorator) to optimize performance by storing and reusing calculated values. Moreover, the library provides traits and structures that facilitate the adaptable deployment of the sphere generators. The SphereGen abstract base class serves to define a common interface for a variety of sphere generators, whereas the NSphere and SphereN structures are responsible for implementing the actual generation logic.

In conclusion, this library provides a sophisticated yet flexible method for generating evenly distributed points on high-dimensional spheres, which can be advantageous in numerous scientific and computational applications.

Dependencies

👀 See also

👉 Note

This project has been set up using PyScaffold 3.2.1. For details and usage information on PyScaffold see https://pyscaffold.org/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphere_n-0.3.tar.gz (36.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphere_n-0.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file sphere_n-0.3.tar.gz.

File metadata

  • Download URL: sphere_n-0.3.tar.gz
  • Upload date:
  • Size: 36.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sphere_n-0.3.tar.gz
Algorithm Hash digest
SHA256 4321fef16f11900231d3260561f480afe4b5a706d967e2ae42f41b0736077a71
MD5 3f789b6dc7acc293e45961ab38b4652b
BLAKE2b-256 0574ca1dd4a080cbdec3898cddff7e87ce31d20932506eec5a58a3d150fa37b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphere_n-0.3.tar.gz:

Publisher: python-publish.yml on luk036/sphere-n

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sphere_n-0.3-py3-none-any.whl.

File metadata

  • Download URL: sphere_n-0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sphere_n-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4885461ebf0ade844a4bd239e18493006e9c2922a53b0c45fcad257eb07d8bbf
MD5 0490821326acec564bd6f9f2e833f26b
BLAKE2b-256 9e3700f1ca91533ce94c84d5a399ba46a2756e12ea37710c3a97a25f64a17c0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphere_n-0.3-py3-none-any.whl:

Publisher: python-publish.yml on luk036/sphere-n

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page