⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blas.hpp

📁 矩阵运算源码最新版本
💻 HPP
字号:
// Software License for MTL// // Copyright (c) 2007 The Trustees of Indiana University. All rights reserved.// Authors: Peter Gottschling and Andrew Lumsdaine// // This file is part of the Matrix Template Library// // See also license.mtl.txt in the distribution.#ifndef MTL_BLAS_INCLUDE#define MTL_BLAS_INCLUDE#ifdef MTL_HAS_BLAS// #include "mtl/mtl_config.h"#if 0#include "mtl/mtl_complex.h"using std::complex;#endif/*--------------------------------------------------------   Basic Linear Algebra Subprograms for C/C++   Version 1.0   Matthew E. Gaston   May 6, 1998----------------------------------------------------------*/#define MTL_BLAS_NAME(name) name##_#ifdef __cplusplusextern "C" {#endif/*---------------------------------------------------------    Level 1 BLAS-----------------------------------------------------------*//*//  Dot product functions*/float MTL_BLAS_NAME(sdot)(int*, float*, int*, float*, int*);double MTL_BLAS_NAME(dsdot)(int*, float*, int*, float*, int*);float MTL_BLAS_NAME(sdsdot)(int*, float*, float*, int*, float*, int*);double MTL_BLAS_NAME(ddot)(int*, double*, int*, double*, int*);/*    AXPY*/void MTL_BLAS_NAME(saxpy)(int*, float*, float*, int*, float*, int*);void MTL_BLAS_NAME(daxpy)(int*, double*, double*, int*, double*, int*);/*    Copy*/void MTL_BLAS_NAME(scopy)(int*, float*, int*, float*, int*);void MTL_BLAS_NAME(dcopy)(int*, double*, int*, double*, int*);/*    Swap*/void MTL_BLAS_NAME(sswap)(int*, float*, int*, float*, int*);void MTL_BLAS_NAME(dswap)(int*, double*, int*, double*, int*);/*    2 Norm*/float MTL_BLAS_NAME(snrm2)(int *, float*, int*);double MTL_BLAS_NAME(dnrm2)(int *, double*, int*);/*    Sum of Absolute Values*/float MTL_BLAS_NAME(sasum)(int *, float*, int*);double MTL_BLAS_NAME(dasum)(int *, double*, int*);/*    Scale*/void MTL_BLAS_NAME(sscal)(int*, float*, float*, int*);void MTL_BLAS_NAME(dscal)(int*, double*, double*, int*);/*    Maximum absolute value*/int MTL_BLAS_NAME(isamax)(int *, float*, int*);int MTL_BLAS_NAME(idamax)(int *, double*, int*);/*    Givens Plane Rotation*/void MTL_BLAS_NAME(srotg)(float*, float*, float*, float*);void MTL_BLAS_NAME(drotg)(double*, double*, double*, double*);#if 0void MTL_BLAS_NAME(crotg)(complex<float>*,complex<float>*,float*,complex<float>*);void MTL_BLAS_NAME(zrotg)(complex<double>*,complex<double>*,double*,complex<double>*);#endifvoid MTL_BLAS_NAME(srot)(int*, float*, int*, float*, int*, float*, float*);void MTL_BLAS_NAME(drot)(int*, double*, int*, double*, int*, double*, double*);#if 0/* MTL implements ccrot and zzrot */void MTL_BLAS_NAME(csrot)(int*, complex<float>*, int*, complex<float>*, int*, 	    complex<float>*, complex<float>*);void MTL_BLAS_NAME(zdrot)(int*, complex<double>*, int*, complex<double>*, int*,	    double*, double*);#endif/*---------------------------------------------------------    Level 2 BLAS-----------------------------------------------------------*/void MTL_BLAS_NAME(dgemv)(char*, int*, int*, double*, double*, int*,	    double*, int*, double*, double*, int*);void MTL_BLAS_NAME(dger)(int*, int*, double*, double*, int*, double*,	   int*, double*, int*);void MTL_BLAS_NAME(dgbmv)(char*, int*, int*, int*, int*, double*, double*, int*,	    double*, int*, double*, double*, int*);void MTL_BLAS_NAME(dtrsv)(char* uplo, char* trans, char* diag, int* n, double *da, 	    int* lda, double *dx, int* incx);/*---------------------------------------------------------    Level 3 BLAS-----------------------------------------------------------*/void MTL_BLAS_NAME(sgemm)(const char* transa, const char* transb, 	    const int* m, const int* n, const int* k,	    const float* alpha,  const float *da,  const int* lda,	    const float *db, const int* ldb, const float* dbeta,	    float *dc, const int* ldc);void MTL_BLAS_NAME(dgemm)(const char* transa, const char* transb, 	    const int* m, const int* n, const int* k,	    const double* alpha,  const double *da,  const int* lda,	    const double *db, const int* ldb, const double* dbeta,	    double *dc, const int* ldc);void MTL_BLAS_NAME(cgemm)(const char* transa, const char* transb, 	    const int* m, const int* n, const int* k,	    const std::complex<float>* alpha,  const std::complex<float> *da,  const int* lda,	    const std::complex<float> *db, const int* ldb, const std::complex<float>* dbeta,	    std::complex<float> *dc, const int* ldc);void MTL_BLAS_NAME(zgemm)(const char* transa, const char* transb, 	    const int* m, const int* n, const int* k,	    const std::complex<double>* alpha,  const std::complex<double> *da,  const int* lda,	    const std::complex<double> *db, const int* ldb, const std::complex<double>* dbeta,	    std::complex<double> *dc, const int* ldc);#ifdef __cplusplus} // extern "C"#endif#endif // MTL_HAS_BLAS#endif // MTL_BLAS_INCLUDE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -