blas_3.cxx

来自「Multivac 的Level set包」· CXX 代码 · 共 1,880 行 · 第 1/5 页

CXX
1,880 行
字号
		alpha, A.GetData(), A.GetM(), B.GetData(), B.GetM(),		beta, C.GetData(), C.GetM());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<float> alpha,	      const Matrix<complex<float>, Prop0, ColSym, Allocator0>& A,	      const Matrix<complex<float>, Prop1, ColMajor, Allocator1>& B,	      const complex<float> beta,	      const Matrix<complex<float>, Prop2, ColMajor, Allocator2>& C)  {    cblas_csymm(CblasColMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetM());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<double> alpha,	      const Matrix<complex<double>, Prop0, ColSym, Allocator0>& A,	      const Matrix<complex<double>, Prop1, ColMajor, Allocator1>& B,	      const complex<double> beta,	      const Matrix<complex<double>, Prop2, ColMajor, Allocator2>& C)  {    cblas_zsymm(CblasColMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetM());  }  /*** ColSym and UpLo ***/  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const float alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<float, Prop0, ColSym, Allocator0>& A,	      const Matrix<float, Prop1, ColMajor, Allocator1>& B,	      const float beta,	      const Matrix<float, Prop2, ColMajor, Allocator2>& C)  {    cblas_ssymm(CblasColMajor, Side, Uplo,		C.GetM(), C.GetN(),		alpha, A.GetData(), A.GetM(), B.GetData(), B.GetM(),		beta, C.GetData(), C.GetM());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const double alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<double, Prop0, ColSym, Allocator0>& A,	      const Matrix<double, Prop1, ColMajor, Allocator1>& B,	      const double beta,	      const Matrix<double, Prop2, ColMajor, Allocator2>& C)  {    cblas_dsymm(CblasColMajor, Side, Uplo,		C.GetM(), C.GetN(),		alpha, A.GetData(), A.GetM(), B.GetData(), B.GetM(),		beta, C.GetData(), C.GetM());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<float> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<float>, Prop0, ColSym, Allocator0>& A,	      const Matrix<complex<float>, Prop1, ColMajor, Allocator1>& B,	      const complex<float> beta,	      const Matrix<complex<float>, Prop2, ColMajor, Allocator2>& C)  {    cblas_csymm(CblasColMajor, Side, Uplo,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetM());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<double> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<double>, Prop0, ColSym, Allocator0>& A,	      const Matrix<complex<double>, Prop1, ColMajor, Allocator1>& B,	      const complex<double> beta,	      const Matrix<complex<double>, Prop2, ColMajor, Allocator2>& C)  {    cblas_zsymm(CblasColMajor, Side, Uplo,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetM());  }  /*** RowSym and Upper ***/  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const float alpha,	      const Matrix<float, Prop0, RowSym, Allocator0>& A,	      const Matrix<float, Prop1, RowMajor, Allocator1>& B,	      const float beta,	      const Matrix<float, Prop2, RowMajor, Allocator2>& C)  {    cblas_ssymm(CblasRowMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		alpha, A.GetData(), A.GetM(), B.GetData(), B.GetN(),		beta, C.GetData(), C.GetN());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const double alpha,	      const Matrix<double, Prop0, RowSym, Allocator0>& A,	      const Matrix<double, Prop1, RowMajor, Allocator1>& B,	      const double beta,	      const Matrix<double, Prop2, RowMajor, Allocator2>& C)  {    cblas_dsymm(CblasRowMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		alpha, A.GetData(), A.GetM(), B.GetData(), B.GetN(),		beta, C.GetData(), C.GetN());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<float> alpha,	      const Matrix<complex<float>, Prop0, RowSym, Allocator0>& A,	      const Matrix<complex<float>, Prop1, RowMajor, Allocator1>& B,	      const complex<float> beta,	      const Matrix<complex<float>, Prop2, RowMajor, Allocator2>& C)  {    cblas_csymm(CblasRowMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetN(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetN());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<double> alpha,	      const Matrix<complex<double>, Prop0, RowSym, Allocator0>& A,	      const Matrix<complex<double>, Prop1, RowMajor, Allocator1>& B,	      const complex<double> beta,	      const Matrix<complex<double>, Prop2, RowMajor, Allocator2>& C)  {    cblas_zsymm(CblasRowMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetN(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetN());  }  /*** RowSym and UpLo ***/  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const float alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<float, Prop0, RowSym, Allocator0>& A,	      const Matrix<float, Prop1, RowMajor, Allocator1>& B,	      const float beta,	      const Matrix<float, Prop2, RowMajor, Allocator2>& C)  {    cblas_ssymm(CblasRowMajor, Side, Uplo,		C.GetM(), C.GetN(),		alpha, A.GetData(), A.GetM(), B.GetData(), B.GetN(),		beta, C.GetData(), C.GetN());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const double alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<double, Prop0, RowSym, Allocator0>& A,	      const Matrix<double, Prop1, RowMajor, Allocator1>& B,	      const double beta,	      const Matrix<double, Prop2, RowMajor, Allocator2>& C)  {    cblas_dsymm(CblasRowMajor, Side, Uplo,		C.GetM(), C.GetN(),		alpha, A.GetData(), A.GetM(), B.GetData(), B.GetN(),		beta, C.GetData(), C.GetN());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<float> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<float>, Prop0, RowSym, Allocator0>& A,	      const Matrix<complex<float>, Prop1, RowMajor, Allocator1>& B,	      const complex<float> beta,	      const Matrix<complex<float>, Prop2, RowMajor, Allocator2>& C)  {    cblas_csymm(CblasRowMajor, Side, Uplo,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetN(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetN());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<double> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<double>, Prop0, RowSym, Allocator0>& A,	      const Matrix<complex<double>, Prop1, RowMajor, Allocator1>& B,	      const complex<double> beta,	      const Matrix<complex<double>, Prop2, RowMajor, Allocator2>& C)  {    cblas_zsymm(CblasRowMajor, Side, Uplo,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetN(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetN());  }  // MltAdd //  ////////////  ////////////  // MltAdd //  /*** ColHerm and Upper ***/  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<float> alpha,	      const Matrix<complex<float>, Prop0, ColHerm, Allocator0>& A,	      const Matrix<complex<float>, Prop1, ColMajor, Allocator1>& B,	      const complex<float> beta,	      const Matrix<complex<float>, Prop2, ColMajor, Allocator2>& C)  {    cblas_chemm(CblasColMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetM());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<double> alpha,	      const Matrix<complex<double>, Prop0, ColHerm, Allocator0>& A,	      const Matrix<complex<double>, Prop1, ColMajor, Allocator1>& B,	      const complex<double> beta,	      const Matrix<complex<double>, Prop2, ColMajor, Allocator2>& C)  {    cblas_zhemm(CblasColMajor, Side, CblasUpper,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetM());  }  /*** ColHerm and UpLo ***/  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<float> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<float>, Prop0, ColHerm, Allocator0>& A,	      const Matrix<complex<float>, Prop1, ColMajor, Allocator1>& B,	      const complex<float> beta,	      const Matrix<complex<float>, Prop2, ColMajor, Allocator2>& C)  {    cblas_chemm(CblasColMajor, Side, Uplo,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),		reinterpret_cast<const void*>(&beta),		reinterpret_cast<void*>(C.GetData()), C.GetM());  }  template <class Prop0, class Allocator0,	    class Prop1, class Allocator1,	    class Prop2, class Allocator2>  void MltAdd(const enum CBLAS_SIDE Side,	      const complex<double> alpha,	      const enum CBLAS_UPLO Uplo,	      const Matrix<complex<double>, Prop0, ColHerm, Allocator0>& A,	      const Matrix<complex<double>, Prop1, ColMajor, Allocator1>& B,	      const complex<double> beta,	      const Matrix<complex<double>, Prop2, ColMajor, Allocator2>& C)  {    cblas_zhemm(CblasColMajor, Side, Uplo,		C.GetM(), C.GetN(),		reinterpret_cast<const void*>(&alpha),		reinterpret_cast<const void*>(A.GetData()), A.GetM(),		reinterpret_cast<const void*>(B.GetData()), B.GetM(),

⌨️ 快捷键说明

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