BlasL3HeMM

Вычисляет произведение матриц, где входная матрица A эрмитова.

C = alpha*A*B + beta*C  или

C = alpha*B*A + beta*C,

где A — эрмитова матрица размера m на m при side='L' или размера n на n в противном случае; B и C — матрицы размера m на n.

BLAS-функция HEMM.

Вычисления для типа matrix<complex>

bool  matrix::BlasL3HeMM(
   ENUM_BLAS_SIDE  side,          // задает сторону матрицы A в произведении
   complex         alpha,         // скалярный множитель alpha
   matrixc&        B,             // матрица B
   complex         beta,          // скалярный множитель beta
   matrixc&        C              // результирующая матрица C
   );

Вычисления для типа matrix<complexf>

bool  matrixf::BlasL3HeMM(
   ENUM_BLAS_SIDE  side,          // задает сторону матрицы A в произведении
   complexf        alpha,         // скалярный множитель alpha
   matrixcf&       B,             // матрица B
   complexf        beta,          // скалярный множитель beta
   matrixcf&       C              // результирующая матрица C
   );

Параметры

side

[in]  Значение перечисления ENUM_BLAS_SIDE, задающее сторону входной матрицы A в произведении:

если side= 'L', то C = alpha*A*B + beta*C;

если side= 'R', то C = alpha*B*A + beta*C.

alpha

[in]  Скалярный множитель alpha.

B

[in]  Матрица B размера m на n.

beta

[in]  Скалярный множитель beta.

C

[in, out]  Результирующая матрица C размера m на n. Если beta не равен нулю, то перед вызовом матрица C должна содержать актуальные данные. Если размер матрицы отличается от m на n, матрица C будет изменена до нужного размера и обнулена.

Возвращаемое значение

Возвращает true при успешном выполнении, иначе false в случае ошибки.

Примечание

Входной матрицей может быть эрмитово-сопряженная, верхняя треугольная или нижняя треугольная матрица. Треугольные матрицы считаются эрмитовыми.

ENUM_BLAS_SIDE

Перечисление, определяющее сторону входной матрицы A в произведении.

ID

Описание

BLASSIDE_L

'L': левая сторона

BLASSIDE_R

'R': правая сторона