1

我想在 Microsoft Accelerator 中执行一个相当简单的除法操作:

X = P / (1 + K * O')

其中 P、K 和 O 是向量,K * O' 执行点积运算。

我试过PA.Divide(P, 1 + PA.Sum(PA.Multiply(K, O)))了,但这不起作用,因为它给出了一个错误,指出提供给除法命令的矩阵具有不同的维度,这是有道理的,因为第二个参数应该只是一个标量。

我通过将第二个参数转换为数组然后使用它的第一个元素来解决这个问题,但这会显着减慢计算速度。

如何在不先转换为数组的情况下执行此操作?

4

1 回答 1

1

我不知道 Accelerator 中的乘法反转有多昂贵,但是如果您以这种方式重写表达式,则可以使用标量乘法:

X = P * (1 / (1 + K * O'))

1 / (1 + K + O')您已经在计算的标量的乘法倒数在哪里。

这是假设您可以使用标量乘法(应该是 - 这是一个基本操作)。但是我当然不熟悉加速器。我只是从矢量数学的角度讲。

于 2010-03-16T12:08:09.530 回答