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

?gbmv

向量与带状矩阵乘积。

即:

对于Fortran接口另有:

alpha和beta是乘法系数,x和y是向量,A是m*n的带状矩阵。

接口定义

C interface:

void cblas_sgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const BLASINT M, const BLASINT N, const BLASINT KL, const BLASINT KU, const float alpha, const float *A, const BLASINT lda, const float *X, const BLASINT incX, const float beta, float *Y, const BLASINT incY);

void cblas_dgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const BLASINT M, const BLASINT N, const BLASINT KL, const BLASINT KU, const double alpha, const double *A, const BLASINT lda, const double *X, const BLASINT incX, const double beta, double *Y, const BLASINT incY);

void cblas_cgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const BLASINT M, const BLASINT N, const BLASINT KL, const BLASINT KU, const void *alpha, const void *A, const BLASINT lda, const void *X, const BLASINT incX, const void *beta, void *Y, const BLASINT incY);

void cblas_zgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const BLASINT M, const BLASINT N, const BLASINT KL, const BLASINT KU, const void *alpha, const void *A, const BLASINT lda, const void *X, const BLASINT incX, const void *beta, void *Y, const BLASINT incY);

Fortran interface:

CALL SGBMV(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)

CALL DGBMV(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)

CALL CGBMV(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)

CALL ZGBMV(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)

参数

参数名

类型

描述

输入/输出

order

枚举类型CBLAS_ORDER

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

输入

TransA

枚举类型CBLAS_TRANSPOSE

矩阵A为常规矩阵,转置矩阵或共轭矩阵。

  • 如果TransA=CblasNoTrans,则
  • 如果TransA=CblasTrans,则
  • 如果TransA=CblasConjTrans,则

对于Fortran接口另有:

  • 如果TransA = R,则:

  • 如果TransA = S,则:

  • 如果TransA = D,则:

输入

M

整型数

表示矩阵A的行数,要求M大于或等于零。

输入

N

整型数

表示矩阵A的列数,要求N大于或等于零。

输入

KL

整型数

表示A的次对角阶数,要求KL大于或等于零。

输入

KU

整型数

表示A的超对角阶数,要求KU大于或等于零。

输入

alpha

  • 在sgbmv中是单精度浮点类型。
  • 在dgbmv中是双精度浮点类型。
  • 在cgbmv中是单精度复数类型。
  • 在zgbmv中是双精度复数类型。

表示乘法系数。

输入

A

  • 在sgbmv中是单精度浮点类型。
  • 在dgbmv中是双精度浮点类型。
  • 在cgbmv中是单精度复数类型。
  • 在zgbmv中是双精度复数类型。

带状矩阵,矩阵规模是lda*N。

输入

lda

整型数

矩阵A中主维度长度,要求lda大于或等于(KL+KU+1)。

输入

X

  • 在sgbmv中是单精度浮点类型。
  • 在dgbmv中是双精度浮点类型。
  • 在cgbmv中是单精度复数类型。
  • 在zgbmv中是双精度复数类型。

向量X。

如果TransA=CblasNoTrans,则向量规模至少是(1+(N-1)*abs(incX))。

否则,向量规模至少是(1+(M-1)*abs(incX))。

输入

incX

整型数

表示X中向量增长步长,不能为零。

输入

beta

  • 在sgbmv中是单精度浮点类型。
  • 在dgbmv中是双精度浮点类型。
  • 在cgbmv中是单精度复数类型。
  • 在zgbmv中是双精度复数类型。

乘法系数。

输入

Y

  • 在sgbmv中是单精度浮点类型。
  • 在dgbmv中是双精度浮点类型。
  • 在cgbmv中是单精度复数类型。
  • 在zgbmv中是双精度复数类型。

向量Y。

如果TransA=CblasNoTrans,则向量规模至少是(1+(M-1)*abs(incY))。

否则,向量规模至少是(1+(N-1)*abs(incY))。

输入/输出

incY

整型数

表示Y中向量增长步长,不能为零。

输入

依赖

#include "kblas.h"

示例

C interface:

   int m = 5, n = 4; 
    float alpha = 2.0; 
    /** 
     *        |  .    .   2.0  2.0 | 
     *        |  .   1.0  2.0  3.0 | 
     *        | 1.0  2.0  2.0  4.0 | 
     *  A  =  | 1.0  3.0  2.0  5.0 | 
     *        | 1.0  4.0  2.0   .  | 
     *        | 1.0  5.0   .    .  | 
     *        |  .    .    .    .  | 
     *        |  .    .    .    .  | 
     */ 
    float a[32] = {0, 0, 1.0, 1.0, 1.0, 1.0, 0, 0, 
                   0, 1.0, 2.0, 3.0, 4.0, 5.0, 0, 0, 
                   2.0, 2.0, 2.0, 2.0, 2.0, 0, 0, 0, 
                   2.0, 3.0, 4.0, 5.0, 0, 0, 0, 0}; 
    float x[4] = {2.0, 2.0, 3.0, 4.0}; 
    float y[5] = {1.0, 1.0, 13.0, 4.0, 5.0}; 
 
    cblas_sgbmv(CblasColMajor,CblasNoTrans, m, n, 3, 2, alpha, a, 8, x, 1, 10.0, y, 1); 
    /** 
     *  Ouput y: 30.0, 50.0, 182.0, 104.0, 122.0 
     */

Fortran interface:

      INTEGER :: M=5 
      INTEGER :: N=4 
      REAL(4) :: ALPHA=2.0 
      REAL(4) A(8, 4) 
      DATA A /0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 2, 3, 4, 5, 0, 0, 
              2, 2, 2, 2, 2, 0, 0, 0, 2, 3, 4, 5, 0, 0, 0, 0/ 
      REAL(4) X(4) 
      DATA X /2, 2, 3, 4/ 
      REAL(4) Y(5) 
      DATA Y /1, 1, 13, 4, 5/ 
      CALL SGBMV('N', M, N, 3, 2, ALPHA, A, 8, X, 1, 10, Y, 1) 
 
*     Ouput y: 20.0       40.0       52.0       64.0       72.0
搜索结果
找到“0”个结果

当前产品无相关内容

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