BlasL3SyMM

Вычисляет произведение матриц, где входная матрица 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-функция SYMM.

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

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

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

bool  matrixf::BlasL3SyMM(
   ENUM_BLAS_SIDE  side,          // задает сторону матрицы A в произведении
   float           alpha,         // скалярный множитель alpha
   matrixf&        B,             // матрица B
   float           beta,          // скалярный множитель beta
   matrix&         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': правая сторона