EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

?herk

复数矩阵乘矩阵秩k更新,矩阵C为复数埃尔米特矩阵。

即:

alpha,beta为实乘法系数,C为n*n的埃尔米特矩阵;第一种情况矩阵A为n*k,第二种情况矩阵A为k*n。

接口定义

C interface:

void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const BLASINT N, const BLASINT K, const float alpha, const void *A, const BLASINT lda, const float beta, void *C, const BLASINT ldc);

void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const BLASINT N, const BLASINT K, const double alpha, const void *A, const BLASINT lda, const double beta, void *C, const BLASINT ldc);

Fortran interface:

CALL CHERK(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)

CALL ZHERK(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)

参数

参数名

类型

描述

输入/输出

order

枚举类型CBLAS_ORDER

表示矩阵是行主序或列主序。

输入

Uplo

枚举类型CBLAS_UPLO

矩阵C存储方式。

输入

Trans

枚举类型CBLAS_TRANSPOSE

矩阵A为常规矩阵或共轭矩阵。

  • 当Trans = CblasNoTrans,

  • 当Trans = CblasConjTrans,

输入

N

整型数

矩阵C的阶数。

输入

K

整型数

  • 当Trans = CblasNoTrans,矩阵A列。
  • 当Trans = CblasConjTrans,矩阵A行。

输入

alpha

  • 在cherk中是单精度实数类型。
  • 在zherk中是双精度实数类型。

乘法系数。

输入

A

  • 在cherk中是单精度复数类型。
  • 在zherk中是双精度复数类型。

矩阵A(lda, ka)。

如果Trans = CblasNoTrans,ka = k,否则ka = n。

输入

lda

整型数

  • 矩阵为列存,Trans = CblasNoTrans,lda至少max(1, n),否则至少max(1, k)。
  • 矩阵为行存,Trans = CblasNoTrans,lda至少max(1, k),否则至少max(1, n)。

输入

beta

  • 在cherk中是单精度实数类型。
  • 在zherk中是双精度类型。

乘法系数。

输入

C

  • 在cherk中是单精度复数类型。
  • 在zherk中是双精度复数类型。

矩阵C(ldc, n)。

输入/输出

ldc

整型数

ldc至少max(1, n)。

输入

依赖

#include "kblas.h"

示例

C interface:

    int n = 2, lda = 2, k = 2, ldc = 2; 
    float alpha = 2.0, beta = 2.0; 
    /** 
     *                    | 4.0 1.0   1.0 2.0 | 
     *     A(2 * 2)    =  | 3.0 2.0   4.0 1.0 | 
     *  
     *                    |  3.0 1.0  2.0  1.0 | 
     *     C(2 * 2)    =  | -1.0 1.0  -6.0 2.0 | 
     */ 
    float a[8] = {4.0, 1.0, 3.0, 2.0, 1.0, 2.0, 4.0, 1.0}; 
    float c[8] = {3.0, 1.0, -1.0, 1.0, 2.0, 1.0, -6.0, 2.0}; 
 
    cblas_cherk(CblasColMajor, CblasUpper, CblasConjTrans, n, k, alpha, a, lda, beta, c, ldc); 
    /** 
     * Output C 
     *                   | (66.0, 0.0)  (44.0, 6.0) | 
     *    C(2 * 2)    =  | (-1.0, 1.0)  (32.0, 0.0) | 
     * 
     */

Fortran interface:

      INTEGER :: N=2, K=2 
      INTEGER :: LDA=2, LDC=2 
      REAL(4) :: ALPHA=2.0 
      REAL(4) :: BETA=2.0 
      COMPLEX(4) :: A(2, 2), C(2, 2) 
      DATA A/(4.0, 1.0), (3.0, 2.0), (1.0, 2.0), (4.0, 1.0)/ 
      DATA B/(2.0, 1.0), (11.0, 2.0), (3.0, 2.0), (-2.0, 1.0)/ 
      DATA C/(3.0, 1.0), (-1.0, 1.0), (2.0, 1.0), (-6.0, 2.0)/ 
      EXTERNAL CHERK 
      CALL CHERK('U', 'C', N, K, ALPHA, A, LDA, BETA, C, LDC) 
 
*     Output C 
*                    | (66.0, 0.0)  (44.0, 6.0) | 
*     C(2 * 2)    =  | (-1.0, 1.0)  (32.0, 0.0) | 
*    
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词