问题标签 [inner-product]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
222 浏览

vectorization - 两个 16 位整数向量与 C++ 中的 AVX2 的内积

我正在寻找最有效的方法来将两个对齐的 int16_t 数组相乘,其长度可以用 AVX2 除以 16。

在乘以一个向量后x,我从 开始,_mm256_extracti128_si256得到_mm256_castsi256_si128的低部分和高部分,x然后将它们与_mm_add_epi16.

我复制了结果寄存器并应用于_mm_move_epi64原始寄存器并再次添加了两者_mm_add_epi16。现在,我认为我有:
-, -, -, -, x15+x7+x11+x3, x14+x6+x10+x2, x13+x5+x9+x1, x12+x4+x8+x0 在 128 位寄存器内。但是现在我被卡住了,不知道如何有效地总结剩余的四个条目以及如何提取 16 位结果。

0 投票
1 回答
258 浏览

python - Gekko 数组与 Numpy 数组的内积

我正在尝试使用Gekko 方程中的 Gekkonp.inner维数数组来执行维数 (30,34) 的 numpy 数组的内积,(34,34)但它会抛出错误,即“没有等式 (=) 或不等式 (>,<) 的等式” . 不允许在 Gekko 方程中使用 numpy 函数吗?如果不是,那么执行诸如等操作的替代方法是np.inner什么np.diag

0 投票
2 回答
274 浏览

c++ - 在 C/C++ 中使用 AVX2 的两个无符号字节向量的内积

我想使用 SSE/AVX2 实现快速相关系数计算。操作数是两个unsigned char向量。该功能应与此大致等效:

参数length范围从 1 到小于 1000。

为了做到这一点,我研究了如何实现两个无符号字节数组的内积。但是,我想不出不涉及将所有无符号 8 位值转换为有符号 16 位值的解决方案。

内在_mm256_maddubs_epi16(a, b)期望b是一个有符号字节。在这种情况下,这不是问题,因为从 b 中减去某个常数(此处为:127)不会改变相关系数。不幸的是,我找不到允许我从产生有符号字节的无符号字节中减去 127 的内在函数(不依赖于一些二进制补码魔法)。

这里计算内积(最后是相关系数)的最佳方法是什么?

附录:

下面是我目前对纯内积的实现。我决定转换为 16 位整数以避免溢出错误。 更新:从一次读取 128 位更改为 256 位。

这大约需要简单 C++ 实现的 20% 时间(见下文)。考虑到 AVX 代码同时适用于 16 个 16 位整数这一事实,我预计会有更高的增益。- 这是合理的还是我错过了什么?

展开 AVX 代码中的最后一个循环不会减少计算时间。

0 投票
0 回答
61 浏览

c++ - C++ std::inner_product 有效但不应该

std::inner_product用来计算 2 中公共前缀的长度strings

我希望它的大小a小于b. 如果大小大于
大小,为什么它会起作用? 这是一个标准实现(无效,但仍然可以):ab
first2first1

这是未指明行为的情况吗?
std::inner_product

0 投票
1 回答
123 浏览

arrays - 内积如何推广到高维数组?

接受两个函数参数和两个数组的 APL 风格的内积运算符(高阶函数)如何推广到两个以上的维度?我看到结果数组的维数等于数组维数之和减去 2,并且第一个数组m的最后一个维的大小必须等于第二个数组n的第一个维的大小.

我将不失一般性假设函数是加法和乘法。然后,在一维中,向量的相应元素相乘并将这些乘积相加以产生向量点积(标量)。

同样,在二维中,结果矩阵的 [ m, n ] 元素是第一个矩阵的第m列和第二个矩阵的第n行的点积。

但是当我在内积函数的描述中达到这一点时,他们通常会说“具有对更多维度的明显概括”,或者根本不提及更高维度。这不是很有帮助。谁能解释它是如何计算的?

0 投票
2 回答
223 浏览

python - Python TypeError:列表索引必须是整数或切片,而不是浮点错误

我得到一个 TypeError: list indices must be integers or slices, not float on the Fourth line of code 当我运行它时。nums 和 nums2 只是要求用户提供一个数字列表,这些数字将用于计算我提供的代码中的内积。

我不确定为什么会发生此错误以及如何解决此问题,因此不胜感激。

0 投票
2 回答
49 浏览

python - Python 的内积是错误

我的代码在下面,但是我的内积代码得到了这个奇怪的输出,不知道为什么它没有计算正确的内积。nums 和 nums2 要求用户提供一个相等的数字列表,其中将计算内积。任何援助将不胜感激。

0 投票
2 回答
67 浏览

sas - sas中表和列之间的内积

我想计算表(矩阵)和列(向量)之间的内积。以下是示例数据集。

我想v1*0.1 + v2*0.2 + v3*0.3按每一行计算。最终结果将如下所示:

作为一列。

其中分别计算

谢谢。

我尝试proc transposetempdf数据集并合并数据集中的coef列,testcoef然后通过与列相乘对所有列进行数组处理coef,并最终将所有列相加。

但是如果数据集很大,这个过程会很慢,我想知道是否有更聪明或更快的方法来做到这一点。

final_out表将像: