背景
更新1.3.0后发现之前能够运行的程序出现了问题,仔细检查后发现应该是矩阵乘法运算符 @ 出现了错误,列向量@行向量应该得到一个矩阵,但是结果变成了一个标量。
想问下这算是一个bug吗?更新1.3.0后应该怎么算向量相乘得矩阵呢?
代码
import taichi as ti
ti.init()
v1 = ti.math.vec3(1,2,3)
v2 = ti.math.vec3(4,0,7)
@ti.kernel
def foo():
r = v1 @ v2.transpose()
print("r =", r)
a = v1 @ v2.transpose()
print("a =", a)
foo()
1.2.2 下的运行结果:
[Taichi] version 1.2.2, llvm 10.0.0, commit 608e4b57, win, python 3.9.13
[Taichi] Starting on arch=x64
a = [[ 4. 0. 7.]
[ 8. 0. 14.]
[12. 0. 21.]]
r = [[4.000000, 0.000000, 7.000000], [8.000000, 0.000000, 14.000000], [12.000000, 0.000000, 21.000000]]
1.3.0 下的运行结果:
[Taichi] version 1.3.0, llvm 15.0.1, commit 0f25b95e, win, python 3.9.13
[Taichi] Starting on arch=x64
a = 25.0
r = 25.000000