Как вычислить сумму одномерного массива с BLAS? - PullRequest
3 голосов
/ 25 октября 2010

На уровне BLAS 1 есть * ASUM и * NRM2, которые вычисляют нормы векторов L1 и L2, но как вычислить (векторную) сумму вектора?Должно быть что-то лучше, чем заполнить другой вектор, полный единиц, и сделать * DOT ...

Ответы [ 4 ]

3 голосов
/ 18 февраля 2011

BLAS не обеспечивает операцию горизонтальной суммы, как вы ищете, потому что это не операция, которая часто требуется библиотекам линейной алгебры.

Многие библиотеки DSP делают обеспечивают эту операцию; например, в OS X и iOS вы должны использовать функцию vDSP_sve( ), предоставляемую платформой Accelerate. К сожалению, доступные библиотеки DSP, как правило, сильно различаются от платформы к платформе, поэтому нам нужно знать больше о том, на какую платформу вы ориентируетесь.

1 голос
/ 02 февраля 2018

Вы можете создать точечное произведение, в котором второй вектор имеет приращение нуля.С использованием C это будет выглядеть так:

int n;
int ix = 1;
int iy = 0;
double y = 1.0;

ddot_(&n, x, &ix, &y, &iy);
1 голос
/ 18 октября 2014

Одним из способов является использование точечного произведения с вектором единиц, более конкретно, использование функции cblas_caxpy.

0 голосов
/ 16 апреля 2019

Как видно из http://www.netlib.org/blas/blasqr.pdf, xAXPY поддерживает векторное суммирование.

enter image description here

...