BlasL3TrMM

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

C = alpha*op(A)  или

C = alpha*B*op(A),

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

BLAS-функция TRMM.

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

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

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

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

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

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

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

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

Параметры

side

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

если side= 'L', то C = alpha*op(A)*B;

если side= 'R', то C = alpha*B*op(A).

transa

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

если transa= 'N', то op(A) = A;

если transa= 'T', то op(A) =  A**T;

если transa= 'C', то op(A) = A**H.

B

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

C

[out]  Результирующая матрица C размера m на n.

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

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

Примечание

Входной матрицей может быть верхняя или нижняя треугольная матрица.

ENUM_BLAS_SIDE

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

ID

Описание

BLASSIDE_L

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

BLASSIDE_R

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

ENUM_BLAS_TRANS

Перечисление, определяющее вариант op(A).

ID

Описание

BLASTRANS_N

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

BLASTRANS_T

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

BLASTRANS_C

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