tfg.math.interpolation.slerp.quaternion_weights

View source on GitHub

Calculates slerp weights for two normalized quaternions.

Given a percent and two normalized quaternions, this function returns the slerp weights. It can also produce extrapolation weights when percent is outside of the [0, 1] range. It reduces to lerp when input quaternions are almost parallel or anti-parallel. Input quaternions are assumed to be normalized. The tf.graphics debug flag TFG_ADD_ASSERTS_TO_GRAPH defined in tfg_flags.py can be set to add assertions to the graph that check whether the inputs are normalized, and whether Inf or Nan values are produced.

Note:

In the following, A1 to An are optional batch dimensions.

quaternion1 A tensor of shape [A1, ... , An, 4] storing normalized quaternions in its last dimension.
quaternion2 A tensor of shape [A1, ... , An, 4] storing normalized quaternions in its last dimension.
percent A float or a tensor with a shape broadcastable to the shape [A1, ... , An].
eps A float used to make operations safe. When left as None, the function automatically picks the best epsilon based on the dtype and the operation.
name A name for this op. Defaults to "quaternion_weights".

ValueError If the shapes of quaternions do not match, if the last dimensions of quaternions are not 4, or if percent is neither a float, nor a tensor with last dimension 1.

Two tensors of shape [A1, ... , An, 1] each, which are the two slerp weights for each quaternion.