PowerLawProfile#

class braintools.init.PowerLawProfile(exponent, min_distance=None, max_distance=None)#

Power-law distance profile.

Connection probability follows a power-law decay: p(d) = d^(-exponent).

Parameters:
  • exponent (float) – Power-law exponent (positive values cause decay with distance).

  • min_distance (Array | ndarray | bool | number | bool | int | float | complex | Quantity | None) – Minimum distance to avoid division by zero (default: 1e-6).

  • max_distance (Array | ndarray | bool | number | bool | int | float | complex | Quantity | None) – Maximum connection distance (connections beyond this are set to 0).

Examples

>>> import numpy as np
>>> import brainunit as u
>>> from braintools.init import PowerLawProfile
>>>
>>> profile = PowerLawProfile(
...     exponent=2.0,
...     min_distance=1.0 * u.um,
...     max_distance=1000.0 * u.um
... )
>>> distances = np.array([1, 10, 100, 1000]) * u.um
>>> probs = profile.probability(distances)
probability(distances)[source]#

Calculate connection probability based on distance.

Parameters:

distances (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Array of distances between neuron pairs.

Returns:

probability – Connection probabilities (values between 0 and 1).

Return type:

ndarray