mul_gemm.hpp (armadillo-10.8.2.tar.xz) | : | mul_gemm.hpp (armadillo-11.0.0.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 228 | skipping to change at line 228 | |||
const Mat<eT>& AA = (do_trans_A == false) ? A : tmp_A; | const Mat<eT>& AA = (do_trans_A == false) ? A : tmp_A; | |||
const Mat<eT>& BB = (do_trans_B == false) ? B : tmp_B; | const Mat<eT>& BB = (do_trans_B == false) ? B : tmp_B; | |||
gemm_emul_large<false, false, use_alpha, use_beta>::apply(C, AA, BB, alpha, beta); | gemm_emul_large<false, false, use_alpha, use_beta>::apply(C, AA, BB, alpha, beta); | |||
} | } | |||
}; | }; | |||
//! \brief | //! \brief | |||
//! Wrapper for ATLAS/BLAS dgemm function, using template arguments to control t he arguments passed to dgemm. | //! Wrapper for BLAS dgemm function, using template arguments to control the arg uments passed to dgemm. | |||
//! Matrix 'C' is assumed to have been set to the correct size (ie. taking into account transposes) | //! Matrix 'C' is assumed to have been set to the correct size (ie. taking into account transposes) | |||
template<const bool do_trans_A=false, const bool do_trans_B=false, const bool us e_alpha=false, const bool use_beta=false> | template<const bool do_trans_A=false, const bool do_trans_B=false, const bool us e_alpha=false, const bool use_beta=false> | |||
class gemm | class gemm | |||
{ | { | |||
public: | public: | |||
template<typename eT, typename TA, typename TB> | template<typename eT, typename TA, typename TB> | |||
inline | inline | |||
static | static | |||
skipping to change at line 269 | skipping to change at line 269 | |||
else | else | |||
{ | { | |||
#if defined(ARMA_USE_ATLAS) | #if defined(ARMA_USE_ATLAS) | |||
{ | { | |||
arma_extra_debug_print("atlas::cblas_gemm()"); | arma_extra_debug_print("atlas::cblas_gemm()"); | |||
arma_debug_assert_atlas_size(A,B); | arma_debug_assert_atlas_size(A,B); | |||
atlas::cblas_gemm<eT> | atlas::cblas_gemm<eT> | |||
( | ( | |||
atlas::CblasColMajor, | atlas_CblasColMajor, | |||
(do_trans_A) ? ( is_cx<eT>::yes ? CblasConjTrans : atlas::CblasTrans ) | (do_trans_A) ? ( is_cx<eT>::yes ? atlas_CblasConjTrans : atlas_CblasTr | |||
: atlas::CblasNoTrans, | ans ) : atlas_CblasNoTrans, | |||
(do_trans_B) ? ( is_cx<eT>::yes ? CblasConjTrans : atlas::CblasTrans ) | (do_trans_B) ? ( is_cx<eT>::yes ? atlas_CblasConjTrans : atlas_CblasTr | |||
: atlas::CblasNoTrans, | ans ) : atlas_CblasNoTrans, | |||
C.n_rows, | C.n_rows, | |||
C.n_cols, | C.n_cols, | |||
(do_trans_A) ? A.n_rows : A.n_cols, | (do_trans_A) ? A.n_rows : A.n_cols, | |||
(use_alpha) ? alpha : eT(1), | (use_alpha) ? alpha : eT(1), | |||
A.mem, | A.mem, | |||
(do_trans_A) ? A.n_rows : C.n_rows, | (do_trans_A) ? A.n_rows : C.n_rows, | |||
B.mem, | B.mem, | |||
(do_trans_B) ? C.n_cols : ( (do_trans_A) ? A.n_rows : A.n_cols ), | (do_trans_B) ? C.n_cols : ( (do_trans_A) ? A.n_rows : A.n_cols ), | |||
(use_beta) ? beta : eT(0), | (use_beta) ? beta : eT(0), | |||
C.memptr(), | C.memptr(), | |||
End of changes. 2 change blocks. | ||||
6 lines changed or deleted | 6 lines changed or added |