Probability functions
Module Documentation: probability_functions.py#
Overview#
The probability_functions.py module provides tools for handling probability distributions, particularly for "top-hat" shaped subspaces within a larger spatial environment. The module includes functions for generating random points based on a probability distribution and a class for managing multiple top-hat probability functions.
Functions#
generate_points#
def generate_points(
pdf: callable,
total_points: int,
min_x: float,
max_x: float,
center: np.ndarray,
radius: float,
bias_subspace_x: float,
space_prob: float,
density_dif: float,
) -> np.ndarray:
Description#
Generates random (x, y) points using the accept/reject method based on a given probability density function (pdf).
Parameters#
pdf(callable): The probability density function to sample from.total_points(int): The number of points to generate.min_x(float): The minimum x value for sampling.max_x(float): The maximum x value for sampling.center(np.ndarray): The coordinates of the center of the top-hat distribution.radius(float): The radius of the top-hat region.bias_subspace_x(float): The probability at the top of the top-hat.space_prob(float): The probability outside the top-hat region.density_dif(float): The scaling factor for density differences.
Returns#
np.ndarray: An array of generated (x, y) points.
generate_points_from_cls#
def generate_points_from_cls(
pdf: callable,
total_points: int,
min_x: float,
max_x: float,
min_y: float,
max_y: float,
min_z: float,
max_z: float,
density_dif: float,
) -> np.ndarray:
Description#
Generates random (x, y, z) points using the accept/reject method based on a given probability density function (pdf).
Parameters#
pdf(callable): The probability density function to sample from.total_points(int): The number of points to generate.min_x(float): The minimum x value for sampling.max_x(float): The maximum x value for sampling.min_y(float): The minimum y value for sampling.max_y(float): The maximum y value for sampling.min_z(float): The minimum z value for sampling.max_z(float): The maximum z value for sampling.density_dif(float): The scaling factor for density differences.
Returns#
np.ndarray: An array of generated (x, y, z) points.
Class: multiple_top_hat_probability#
Description#
A class for handling the probability function of multiple top-hat-shaped subspaces within a larger spatial environment. The class calculates and retrieves probability values based on input positions.
Methods#
__init__#
def __init__(
self,
num_subspace: int,
subspace_centers: np.ndarray,
subspace_radius: np.ndarray,
density_dif: float,
cell: CellType,
) -> None:
Parameters#
num_subspace(int): The number of subspaces.subspace_centers(np.ndarray): The centers of each subspace.subspace_radius(np.ndarray): The radius of each subspace.density_dif(float): The difference in density between subspaces and non-subspaces.cell(CellType): The cell object defining the boundary.
__call__#
def __call__(self, position: np.ndarray, **kwargs) -> float:
Description#
Returns the probability at a given position.
Parameters#
position(np.ndarray): The coordinates of the position.
Returns#
float: The probability at the given position.
update_parameters#
def update_parameters(
self,
num_subspace: int | None = None,
subspace_centers: np.ndarray | None = None,
subspace_radius: np.ndarray | None = None,
density_dif: float | None = None,
cell: CellType | None = None,
) -> None:
Description#
Updates the parameters of the probability function.
Parameters#
num_subspace(int | None): The number of subspaces.subspace_centers(np.ndarray | None): The centers of each subspace.subspace_radius(np.ndarray | None): The radius of each subspace.density_dif(float | None): The difference in density between subspaces and non-subspaces.cell(CellType | None): The cell object defining the boundary.