mindsponge.common.quat_multiply_by_vec
- mindsponge.common.quat_multiply_by_vec(quat, vec)[源代码]
计算四元数与纯向量四元数的乘积。
\[\begin{split}\begin{split} &temp = QUAT\_MULTIPLY\_BY\_VEC * quat[..., :, None, None] * vec[..., None, :, None] \\ &result = sum(temp,axis=(-3, -2)) \\ \end{split}\end{split}\]- 参数:
quat (Tensor) - 输入的四元数,shape为 \((..., 4)\) 的 Tensor。
vec (Tensor) - 纯向量四元数, \((b, c, d)\) 的未归一化四元数,其中归一化四元数能被表示成 \((1, b, c, d)\)。
- 返回:
Tensor,计算后的结果,shape 为 \((..., 4)\) 。
- 支持平台:
Ascend
GPU
样例:
>>> import numpy as np >>> from mindsponge.common.geometry import quat_multiply_by_vec >>> from mindspore.common import Tensor >>> from mindspore import dtype as mstype >>> np.random.seed(1) >>> quat = Tensor(np.random.rand(4),dtype=mstype.float32) >>> vec = Tensor(np.random.rand(3),dtype=mstype.float32) >>> out = quat_multiply_by_vec(quat, vec) >>> print(out) [-0.16203496, 0.03330477, -0.05129148, 0.14417158]