📄 blas_3.cxx
字号:
{ cblas_dtrmm(CblasRowMajor, Side, CblasUpper, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetN(), B.GetData(), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<float> alpha, const Matrix<complex<float>, Prop0, RowUpTriang, Allocator0>& A, Matrix<complex<float>, Prop1, RowMajor, Allocator1>& B) { cblas_ctrmm(CblasRowMajor, Side, CblasUpper, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<double> alpha, const Matrix<complex<double>, Prop0, RowUpTriang, Allocator0>& A, Matrix<complex<double>, Prop1, RowMajor, Allocator1>& B) { cblas_ztrmm(CblasRowMajor, Side, CblasUpper, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } /*** RowUpTriang ***/ template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const float alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<float, Prop0, RowUpTriang, Allocator0>& A, Matrix<float, Prop1, RowMajor, Allocator1>& B) { cblas_strmm(CblasRowMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetN(), B.GetData(), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const double alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<double, Prop0, RowUpTriang, Allocator0>& A, Matrix<double, Prop1, RowMajor, Allocator1>& B) { cblas_dtrmm(CblasRowMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetN(), B.GetData(), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<float> alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<complex<float>, Prop0, RowUpTriang, Allocator0>& A, Matrix<complex<float>, Prop1, RowMajor, Allocator1>& B) { cblas_ctrmm(CblasRowMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<double> alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<complex<double>, Prop0, RowUpTriang, Allocator0>& A, Matrix<complex<double>, Prop1, RowMajor, Allocator1>& B) { cblas_ztrmm(CblasRowMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } /*** RowLoTriang, NoTrans and NonUnit ***/ template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const float alpha, const Matrix<float, Prop0, RowLoTriang, Allocator0>& A, Matrix<float, Prop1, RowMajor, Allocator1>& B) { cblas_strmm(CblasRowMajor, Side, CblasLower, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetN(), B.GetData(), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const double alpha, const Matrix<double, Prop0, RowLoTriang, Allocator0>& A, Matrix<double, Prop1, RowMajor, Allocator1>& B) { cblas_dtrmm(CblasRowMajor, Side, CblasLower, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetN(), B.GetData(), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<float> alpha, const Matrix<complex<float>, Prop0, RowLoTriang, Allocator0>& A, Matrix<complex<float>, Prop1, RowMajor, Allocator1>& B) { cblas_ctrmm(CblasRowMajor, Side, CblasLower, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<double> alpha, const Matrix<complex<double>, Prop0, RowLoTriang, Allocator0>& A, Matrix<complex<double>, Prop1, RowMajor, Allocator1>& B) { cblas_ztrmm(CblasRowMajor, Side, CblasLower, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } /*** RowLoTriang ***/ template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const float alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<float, Prop0, RowLoTriang, Allocator0>& A, Matrix<float, Prop1, RowMajor, Allocator1>& B) { cblas_strmm(CblasRowMajor, Side, CblasLower, TransA, DiagA, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetN(), B.GetData(), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const double alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<double, Prop0, RowLoTriang, Allocator0>& A, Matrix<double, Prop1, RowMajor, Allocator1>& B) { cblas_dtrmm(CblasRowMajor, Side, CblasLower, TransA, DiagA, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetN(), B.GetData(), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<float> alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<complex<float>, Prop0, RowLoTriang, Allocator0>& A, Matrix<complex<float>, Prop1, RowMajor, Allocator1>& B) { cblas_ctrmm(CblasRowMajor, Side, CblasLower, TransA, DiagA, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Mlt(const enum CBLAS_SIDE Side, const complex<double> alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<complex<double>, Prop0, RowLoTriang, Allocator0>& A, Matrix<complex<double>, Prop1, RowMajor, Allocator1>& B) { cblas_ztrmm(CblasRowMajor, Side, CblasLower, TransA, DiagA, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetN(), reinterpret_cast<void*>(B.GetData()), B.GetN()); } // Mlt // ///////// /////////// // Solve // /*** ColUpTriang, NoTrans and NonUnit ***/ template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const float alpha, const Matrix<float, Prop0, ColUpTriang, Allocator0>& A, Matrix<float, Prop1, ColMajor, Allocator1>& B) { cblas_strsm(CblasColMajor, Side, CblasUpper, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetM(), B.GetData(), B.GetM()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const double alpha, const Matrix<double, Prop0, ColUpTriang, Allocator0>& A, Matrix<double, Prop1, ColMajor, Allocator1>& B) { cblas_dtrsm(CblasColMajor, Side, CblasUpper, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetM(), B.GetData(), B.GetM()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const complex<float> alpha, const Matrix<complex<float>, Prop0, ColUpTriang, Allocator0>& A, Matrix<complex<float>, Prop1, ColMajor, Allocator1>& B) { cblas_ctrsm(CblasColMajor, Side, CblasUpper, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetM(), reinterpret_cast<void*>(B.GetData()), B.GetM()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const complex<double> alpha, const Matrix<complex<double>, Prop0, ColUpTriang, Allocator0>& A, Matrix<complex<double>, Prop1, ColMajor, Allocator1>& B) { cblas_ztrsm(CblasColMajor, Side, CblasUpper, CblasNoTrans, CblasNonUnit, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetM(), reinterpret_cast<void*>(B.GetData()), B.GetM()); } /*** ColUpTriang ***/ template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const float alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<float, Prop0, ColUpTriang, Allocator0>& A, Matrix<float, Prop1, ColMajor, Allocator1>& B) { cblas_strsm(CblasColMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetM(), B.GetData(), B.GetM()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const double alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<double, Prop0, ColUpTriang, Allocator0>& A, Matrix<double, Prop1, ColMajor, Allocator1>& B) { cblas_dtrsm(CblasColMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), alpha, A.GetData(), A.GetM(), B.GetData(), B.GetM()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const complex<float> alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<complex<float>, Prop0, ColUpTriang, Allocator0>& A, Matrix<complex<float>, Prop1, ColMajor, Allocator1>& B) { cblas_ctrsm(CblasColMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetM(), reinterpret_cast<void*>(B.GetData()), B.GetM()); } template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const complex<double> alpha, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG DiagA, const Matrix<complex<double>, Prop0, ColUpTriang, Allocator0>& A, Matrix<complex<double>, Prop1, ColMajor, Allocator1>& B) { cblas_ztrsm(CblasColMajor, Side, CblasUpper, TransA, DiagA, B.GetM(), B.GetN(), reinterpret_cast<const void*>(&alpha), reinterpret_cast<const void*>(A.GetData()), A.GetM(), reinterpret_cast<void*>(B.GetData()), B.GetM()); } /*** ColLoTriang, NoTrans and NonUnit ***/ template <class Prop0, class Allocator0, class Prop1, class Allocator1> void Solve(const enum CBLAS_SIDE Side, const float alpha, const Matrix<float, Prop0, ColLoTriang, Allocator0>& A, Matrix<float, Prop1, ColMajor, Allocator1>& B) { cblas_strsm(CblasColMajor, Side, CblasLower, CblasNoTrans, CblasNonUnit,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -