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

📄 blas_2.cxx

📁 Multivac 的Level set包
💻 CXX
📖 第 1 页 / 共 5 页
字号:
    cblas_ctpmv(CblasRowMajor, CblasLower, TransA, DiagA,		A.GetN(), reinterpret_cast<const void*>(A.GetData()),		reinterpret_cast<void*>(X.GetData()), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1>  void  Mlt(const enum CBLAS_TRANSPOSE TransA,      const enum CBLAS_DIAG DiagA,      const Matrix<complex<double>, Prop0, RowLoTriangPacked, Allocator0>& A,      Vector<complex<double>, Vect_Full, Allocator1>& X)  {    cblas_ztpmv(CblasRowMajor, CblasLower, TransA, DiagA,		A.GetN(), reinterpret_cast<const void*>(A.GetData()),		reinterpret_cast<void*>(X.GetData()), 1);  }  // MLT //  /////////  ////////////  // MLTADD //  // General //  /*** ColMajor and NoTrans ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const float alpha,	      const Matrix<float, Prop0, ColMajor, Allocator0>& A,	      const Vector<float, Vect_Full, Allocator1>& X,	      const float beta,	      Vector<float, Vect_Full, Allocator2>& Y)  {    cblas_sgemv(CblasColMajor, CblasNoTrans,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const double alpha,	      const Matrix<double, Prop0, ColMajor, Allocator0>& A,	      const Vector<double, Vect_Full, Allocator1>& X,	      const double beta,	      Vector<double, Vect_Full, Allocator2>& Y)  {    cblas_dgemv(CblasColMajor, CblasNoTrans,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const Matrix<complex<float>, Prop0, ColMajor, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,	      Vector<complex<float>, Vect_Full, Allocator2>& Y)  {    cblas_cgemv(CblasColMajor, CblasNoTrans,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<double> alpha,	      const Matrix<complex<double>, Prop0, ColMajor, Allocator0>& A,	      const Vector<complex<double>, Vect_Full, Allocator1>& X,	      const complex<double> beta,	      Vector<complex<double>, Vect_Full, Allocator2>& Y)  {    cblas_zgemv(CblasColMajor, CblasNoTrans,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  /*** ColMajor and TransA ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const float alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<float, Prop0, ColMajor, Allocator0>& A,	      const Vector<float, Vect_Full, Allocator1>& X,	      const float beta,	      Vector<float, Vect_Full, Allocator2>& Y)  {    cblas_sgemv(CblasColMajor, TransA,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const double alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<double, Prop0, ColMajor, Allocator0>& A,	      const Vector<double, Vect_Full, Allocator1>& X,	      const double beta,	      Vector<double, Vect_Full, Allocator2>& Y)  {    cblas_dgemv(CblasColMajor, TransA,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<complex<float>, Prop0, ColMajor, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,	      Vector<complex<float>, Vect_Full, Allocator2>& Y)  {    cblas_cgemv(CblasColMajor, TransA,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<double> alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<complex<double>, Prop0, ColMajor, Allocator0>& A,	      const Vector<complex<double>, Vect_Full, Allocator1>& X,	      const complex<double> beta,	      Vector<complex<double>, Vect_Full, Allocator2>& Y)  {    cblas_zgemv(CblasColMajor, TransA,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  /*** RowMajor and NoTrans ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const float alpha,	      const Matrix<float, Prop0, RowMajor, Allocator0>& A,	      const Vector<float, Vect_Full, Allocator1>& X,	      const float beta,	      Vector<float, Vect_Full, Allocator2>& Y)  {    cblas_sgemv(CblasRowMajor, CblasNoTrans,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const double alpha,	      const Matrix<double, Prop0, RowMajor, Allocator0>& A,	      const Vector<double, Vect_Full, Allocator1>& X,	      const double beta,	      Vector<double, Vect_Full, Allocator2>& Y)  {    cblas_dgemv(CblasRowMajor, CblasNoTrans,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const Matrix<complex<float>, Prop0, RowMajor, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,	      Vector<complex<float>, Vect_Full, Allocator2>& Y)  {    cblas_cgemv(CblasRowMajor, CblasNoTrans,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<double> alpha,	      const Matrix<complex<double>, Prop0, RowMajor, Allocator0>& A,	      const Vector<complex<double>, Vect_Full, Allocator1>& X,	      const complex<double> beta,	      Vector<complex<double>, Vect_Full, Allocator2>& Y)  {    cblas_zgemv(CblasRowMajor, CblasNoTrans,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  /*** RowMajor and TransA ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const float alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<float, Prop0, RowMajor, Allocator0>& A,	      const Vector<float, Vect_Full, Allocator1>& X,	      const float beta,	      Vector<float, Vect_Full, Allocator2>& Y)  {    cblas_sgemv(CblasRowMajor, TransA,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const double alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<double, Prop0, RowMajor, Allocator0>& A,	      const Vector<double, Vect_Full, Allocator1>& X,	      const double beta,	      Vector<double, Vect_Full, Allocator2>& Y)  {    cblas_dgemv(CblasRowMajor, TransA,		A.GetM(), A.GetN(), alpha, A.GetData(), A.GetM(),		X.GetData(), 1, beta, Y.GetData(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<complex<float>, Prop0, RowMajor, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,	      Vector<complex<float>, Vect_Full, Allocator2>& Y)  {    cblas_cgemv(CblasRowMajor, TransA,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<double> alpha,	      const enum CBLAS_TRANSPOSE TransA,	      const Matrix<complex<double>, Prop0, RowMajor, Allocator0>& A,	      const Vector<complex<double>, Vect_Full, Allocator1>& X,	      const complex<double> beta,	      Vector<complex<double>, Vect_Full, Allocator2>& Y)  {    cblas_zgemv(CblasRowMajor, TransA,		A.GetM(), A.GetN(), reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(X.GetData()), 1,		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(Y.GetData()), 1);  }  // Hermitian //  /*** ColHerm and Upper ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const Matrix<complex<float>, Prop0, ColHerm, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,	      Vector<complex<float>, Vect_Full, Allocator2>& Y)  {    cblas_chemv(CblasColMajor, CblasUpper,		A.GetM(), reinterpret_cast<const void*>(alpha),		A.GetDataConstVoid(), A.GetM(), 		X.GetDataConstVoid(), 1, reinterpret_cast<const void*>(beta),		Y.GetDataVoid(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<double> alpha,	      const Matrix<complex<double>, Prop0, ColHerm, Allocator0>& A,	      const Vector<complex<double>, Vect_Full, Allocator1>& X,	      const complex<double> beta,	      Vector<complex<double>, Vect_Full, Allocator2>& Y)  {    cblas_zhemv(CblasColMajor, CblasUpper,		A.GetM(), reinterpret_cast<const void*>(alpha),		A.GetDataConstVoid(), A.GetM(),		X.GetDataConstVoid(), 1, reinterpret_cast<const void*>(beta),		Y.GetDataVoid(), 1);  }  /*** ColHerm and Uplo ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<float>, Prop0, ColHerm, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,	      Vector<complex<float>, Vect_Full, Allocator2>& Y)  {    cblas_chemv(CblasColMajor, Uplo,		A.GetM(), reinterpret_cast<const void*>(alpha),		A.GetDataConstVoid(), A.GetM(),		X.GetDataConstVoid(), 1, reinterpret_cast<const void*>(beta),		Y.GetDataVoid(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<double> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<double>, Prop0, ColHerm, Allocator0>& A,	      const Vector<complex<double>, Vect_Full, Allocator1>& X,	      const complex<double> beta,	      Vector<complex<double>, Vect_Full, Allocator2>& Y)  {    cblas_zhemv(CblasColMajor, Uplo,		A.GetM(), reinterpret_cast<const void*>(alpha),		A.GetDataConstVoid(), A.GetM(),		X.GetDataConstVoid(), 1, reinterpret_cast<const void*>(beta),		Y.GetDataVoid(), 1);  }  /*** RowHerm and Upper ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const Matrix<complex<float>, Prop0, RowHerm, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,	      Vector<complex<float>, Vect_Full, Allocator2>& Y)  {    cblas_chemv(CblasRowMajor, CblasUpper,		A.GetM(), reinterpret_cast<const void*>(alpha),		A.GetDataConstVoid(), A.GetM(),		X.GetDataConstVoid(), 1, reinterpret_cast<const void*>(beta),		Y.GetDataVoid(), 1);  }  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<double> alpha,	      const Matrix<complex<double>, Prop0, RowHerm, Allocator0>& A,	      const Vector<complex<double>, Vect_Full, Allocator1>& X,	      const complex<double> beta,	      Vector<complex<double>, Vect_Full, Allocator2>& Y)  {    cblas_zhemv(CblasRowMajor, CblasUpper,		A.GetM(), reinterpret_cast<const void*>(alpha),		A.GetDataConstVoid(), A.GetM(),		X.GetDataConstVoid(), 1, reinterpret_cast<const void*>(beta),		Y.GetDataVoid(), 1);  }  /*** RowHerm and Uplo ***/  template <class Prop0, class Allocator0,	    class Allocator1, class Allocator2>  void MltAdd(const complex<float> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<float>, Prop0, RowHerm, Allocator0>& A,	      const Vector<complex<float>, Vect_Full, Allocator1>& X,	      const complex<float> beta,

⌨️ 快捷键说明

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