📄 cblas.texi
字号:
@end deftypefun@deftypefun void cblas_ssymm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const int @var{M}, const int @var{N}, const float @var{alpha}, const float *@var{A}, const int @var{lda}, const float *@var{B}, const int @var{ldb}, const float @var{beta}, float *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_ssyrk (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const float @var{alpha}, const float *@var{A}, const int @var{lda}, const float @var{beta}, float *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_ssyr2k (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const float @var{alpha}, const float *@var{A}, const int @var{lda}, const float *@var{B}, const int @var{ldb}, const float @var{beta}, float *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_strmm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const float @var{alpha}, const float *@var{A}, const int @var{lda}, float *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_strsm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const float @var{alpha}, const float *@var{A}, const int @var{lda}, float *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_dgemm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_TRANSPOSE @var{TransB}, const int @var{M}, const int @var{N}, const int @var{K}, const double @var{alpha}, const double *@var{A}, const int @var{lda}, const double *@var{B}, const int @var{ldb}, const double @var{beta}, double *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_dsymm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const int @var{M}, const int @var{N}, const double @var{alpha}, const double *@var{A}, const int @var{lda}, const double *@var{B}, const int @var{ldb}, const double @var{beta}, double *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_dsyrk (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const double @var{alpha}, const double *@var{A}, const int @var{lda}, const double @var{beta}, double *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_dsyr2k (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const double @var{alpha}, const double *@var{A}, const int @var{lda}, const double *@var{B}, const int @var{ldb}, const double @var{beta}, double *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_dtrmm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const double @var{alpha}, const double *@var{A}, const int @var{lda}, double *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_dtrsm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const double @var{alpha}, const double *@var{A}, const int @var{lda}, double *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_cgemm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_TRANSPOSE @var{TransB}, const int @var{M}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_csymm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_csyrk (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_csyr2k (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_ctrmm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, void *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_ctrsm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, void *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_zgemm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_TRANSPOSE @var{TransB}, const int @var{M}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_zsymm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_zsyrk (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_zsyr2k (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_ztrmm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, void *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_ztrsm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{TransA}, const enum CBLAS_DIAG @var{Diag}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, void *@var{B}, const int @var{ldb})@end deftypefun@deftypefun void cblas_chemm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_cherk (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const float @var{alpha}, const void *@var{A}, const int @var{lda}, const float @var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_cher2k (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const float @var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_zhemm (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_SIDE @var{Side}, const enum CBLAS_UPLO @var{Uplo}, const int @var{M}, const int @var{N}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const void *@var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_zherk (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const double @var{alpha}, const void *@var{A}, const int @var{lda}, const double @var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_zher2k (const enum CBLAS_ORDER @var{Order}, const enum CBLAS_UPLO @var{Uplo}, const enum CBLAS_TRANSPOSE @var{Trans}, const int @var{N}, const int @var{K}, const void *@var{alpha}, const void *@var{A}, const int @var{lda}, const void *@var{B}, const int @var{ldb}, const double @var{beta}, void *@var{C}, const int @var{ldc})@end deftypefun@deftypefun void cblas_xerbla (int @var{p}, const char *@var{rout}, const char *@var{form}, ...)@end deftypefun@node GSL CBLAS Examples@section ExamplesThe following program computes the product of two matrices using theLevel-3 @sc{blas} function @sc{sgemm},@tex\beforedisplay$$\left(\matrix{0.11&0.12&0.13\cr0.21&0.22&0.23\cr}\right)\left(\matrix{1011&1012\cr1021&1022\cr1031&1031\cr}\right)=\left(\matrix{367.76&368.12\cr674.06&674.72\cr}\right)$$\afterdisplay@end tex@ifinfo@example[ 0.11 0.12 0.13 ] [ 1011 1012 ] [ 367.76 368.12 ][ 0.21 0.22 0.23 ] [ 1021 1022 ] = [ 674.06 674.72 ] [ 1031 1032 ]@end example@end ifinfo@noindentThe matrices are stored in row major order but could be stored in columnmajor order if the first argument of the call to @code{cblas_sgemm} waschanged to @code{CblasColMajor}.@example#include <stdio.h>#include <gsl/gsl_cblas.h>intmain (void)@{ int lda = 3; float A[] = @{ 0.11, 0.12, 0.13, 0.21, 0.22, 0.23 @}; int ldb = 2; float B[] = @{ 1011, 1012, 1021, 1022, 1031, 1032 @}; int ldc = 2; float C[] = @{ 0.00, 0.00, 0.00, 0.00 @}; /* Compute C = A B */ cblas_sgemm (CblasRowMajor, CblasNoTrans, CblasNoTrans, 2, 2, 3, 1.0, A, lda, B, ldb, 0.0, C, ldc); printf("[ %g, %g\n", C[0], C[1]); printf(" %g, %g ]\n", C[2], C[3]); return 0; @}@end example@noindentTo compile the program use the following command line,@examplegcc demo.c -lgslcblas@end example@noindentThere is no need to link with the main library @code{-lgsl} in thiscase as the @sc{cblas} library is an independent unit. Here is the outputfrom the program,@example$ ./a.out[ 367.76, 368.12 674.06, 674.72 ]@end example
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -