SciPy

scipy.spatial.transform.Rotation.reduce

Rotation.reduce(self, left=None, right=None, return_indices=False)[source]

Reduce this rotation with the provided rotation groups.

Reduction of a rotation p is a transformation of the form q = l * p * r, where l and r are chosen from left and right respectively, such that rotation q has the smallest magnitude.

If left and right are rotation groups representing symmetries of two objects rotated by p, then q is the rotation of the smallest magnitude to align these objects considering their symmetries.

Parameters
leftRotation instance, optional

Object containing the left rotation(s). Default value (None) corresponds to the identity rotation.

rightRotation instance, optional

Object containing the right rotation(s). Default value (None) corresponds to the identity rotation.

return_indicesbool, optional

Whether to return the indices of the rotations from left and right used for reduction.

Returns
reducedRotation instance

Object containing reduced rotations.

left_best, right_best: integer ndarray

Indices of elements from left and right used for reduction.