Вычисляет произведение матриц, где входная матрица 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(
|
Вычисления для типа matrix<float>
bool matrixf::BlasL3SyMM(
|
Параметры
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': правая сторона |