Skip to content

Commit 63b8d2c

Browse files
committed
Added constrained uniform sampling of angles
1 parent 1678fce commit 63b8d2c

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

spatialmath/base/quaternions.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ def _compute_cdf_sin_squared(theta: float):
861861
return (theta - np.sin(theta)) / np.pi
862862

863863
@lru_cache(maxsize=1)
864-
def _generate_inv_cdf_sin_squared_interp(num_interpolation_points) -> interpolate.interp1d:
864+
def _generate_inv_cdf_sin_squared_interp(num_interpolation_points: int = 256) -> interpolate.interp1d:
865865
"""
866866
Computes an interpolation function for the inverse CDF of the distribution of angular magnitude.
867867
@@ -878,7 +878,7 @@ def _generate_inv_cdf_sin_squared_interp(num_interpolation_points) -> interpolat
878878
cdf_sin_squared_interp_values = _compute_cdf_sin_squared(cdf_sin_squared_interp_angles)
879879
return interpolate.interp1d(cdf_sin_squared_interp_values, cdf_sin_squared_interp_angles)
880880

881-
def _compute_inv_cdf_sin_squared(x: ArrayLike, num_interpolation_points=256) -> ArrayLike:
881+
def _compute_inv_cdf_sin_squared(x: ArrayLike, num_interpolation_points: int = 256) -> ArrayLike:
882882
"""
883883
Computes the inverse CDF of the distribution of angular magnitude.
884884
@@ -896,7 +896,7 @@ def _compute_inv_cdf_sin_squared(x: ArrayLike, num_interpolation_points=256) ->
896896
inv_cdf_sin_squared_interp = _generate_inv_cdf_sin_squared_interp(num_interpolation_points)
897897
return inv_cdf_sin_squared_interp(x)
898898

899-
def qrand(theta_range:Optional[ArrayLike2] = None, unit: str = "rad", num_interpolation_points:int = 256) -> UnitQuaternionArray:
899+
def qrand(theta_range:Optional[ArrayLike2] = None, unit: str = "rad", num_interpolation_points: int = 256) -> UnitQuaternionArray:
900900
"""
901901
Random unit-quaternion
902902
@@ -906,6 +906,8 @@ def qrand(theta_range:Optional[ArrayLike2] = None, unit: str = "rad", num_interp
906906
:type unit: str
907907
:arg num_interpolation_points: number of points to use in the interpolation function
908908
:rtype: int
909+
:arg num_interpolation_points: number of points to use in the interpolation function
910+
:rtype: int
909911
:return: random unit-quaternion
910912
:rtype: ndarray(4)
911913

0 commit comments

Comments
 (0)