BlasL3HeR2K

Выполняет эрмитово обновление ранга 2k.

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

CU = alpha * A**H * B + alpha * B**H * A + beta*C

Метод BlasL3HeR2K применяется к матрице общего вида A. Матрицы общего вида A и B имеют размер n на k, если параметр trans='N', иначе k на n.

BLAS-функция HER2K.

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

bool  matrix::BlasL3HeR2K(
   ENUM_BLAS_TRANS trans,         // задает операцию
   complex         alpha,         // скалярный множитель alpha
   matrixc&        B,             // вторая матрица B
   complex         beta,          // скалярный множитель beta
   matrixc&        C,             // эрмитова матрица C
   matrixc&        CU             // обновляемая матрица C
   );

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

bool  matrixf::BlasL3HeR2K(
   ENUM_BLAS_TRANS trans,         // задает операцию
   complexf        alpha,         // скалярный множитель alpha
   matrixcf&       B,             // вторая матрица B
   complexf        beta,          // скалярный множитель beta
   matrixcf&       C,             // эрмитова матрица C
   matrixcf&       CU             // обновляемая матрица C
   );

Параметры

trans

[in]  Значение перечисления ENUM_BLAS_TRANS, задающее операцию:

если trans= 'N', то CU = alpha * A * B**H + alpha * B * A**H + beta*C;

если trans= 'T', то CU = alpha * A**H * B + alpha * B**H * A + beta*C;

если trans= 'C', то CU = alpha * A**H * B + alpha * B**H * A + beta*C.

alpha

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

B

[in]  Матрица общего вида B того же размера, что и входная матрица A.

beta

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

C

[in]  Эрмитова матрица C размера n на n. Это может быть верхняя или нижняя треугольная матрица. Треугольные матрицы считаются эрмитовыми.

CU

[out]  Обновленная матрица C.

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

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

 

ENUM_BLAS_TRANS

Перечисление, определяющее операцию.

ID

Описание

BLASTRANS_N

'N': без транспонирования

BLASTRANS_T

'T': транспонирование

BLASTRANS_C

'C': сопряженное транспонирование