SpMat_meat.hpp | SpMat_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 603 | skipping to change at line 603 | |||
typedef typename T1::elem_type T; | typedef typename T1::elem_type T; | |||
// Make sure eT is complex and T is not (compile-time check). | // Make sure eT is complex and T is not (compile-time check). | |||
arma_type_check(( is_complex<eT>::value == false )); | arma_type_check(( is_complex<eT>::value == false )); | |||
arma_type_check(( is_complex< T>::value == true )); | arma_type_check(( is_complex< T>::value == true )); | |||
// Compile-time abort if types are not compatible. | // Compile-time abort if types are not compatible. | |||
arma_type_check(( is_same_type< std::complex<T>, eT >::value == false )); | arma_type_check(( is_same_type< std::complex<T>, eT >::value == false )); | |||
// Hack until Proxy supports sparse matrices: assume get_ref() is SpMat<> | const unwrap_spmat<T1> tmp1(A.get_ref()); | |||
(at | const unwrap_spmat<T2> tmp2(B.get_ref()); | |||
// the moment it must be). | ||||
const SpMat<T>& X = A.get_ref(); | const SpMat<T>& X = tmp1.M; | |||
const SpMat<T>& Y = B.get_ref(); | const SpMat<T>& Y = tmp2.M; | |||
arma_assert_same_size(X.n_rows, X.n_cols, Y.n_rows, Y.n_cols, "SpMat()"); | arma_assert_same_size(X.n_rows, X.n_cols, Y.n_rows, Y.n_cols, "SpMat()"); | |||
const uword l_n_rows = X.n_rows; | const uword l_n_rows = X.n_rows; | |||
const uword l_n_cols = X.n_cols; | const uword l_n_cols = X.n_cols; | |||
// Set size of matrix correctly. | // Set size of matrix correctly. | |||
init(l_n_rows, l_n_cols); | init(l_n_rows, l_n_cols); | |||
mem_resize(n_unique(X, Y, op_n_unique_count())); | mem_resize(n_unique(X, Y, op_n_unique_count())); | |||
End of changes. 1 change blocks. | ||||
5 lines changed or deleted | 5 lines changed or added | |||
arma_version.hpp | arma_version.hpp | |||
---|---|---|---|---|
skipping to change at line 13 | skipping to change at line 13 | |||
// | // | |||
// This Source Code Form is subject to the terms of the Mozilla Public | // This Source Code Form is subject to the terms of the Mozilla Public | |||
// License, v. 2.0. If a copy of the MPL was not distributed with this | // License, v. 2.0. If a copy of the MPL was not distributed with this | |||
// file, You can obtain one at http://mozilla.org/MPL/2.0/. | // file, You can obtain one at http://mozilla.org/MPL/2.0/. | |||
//! \addtogroup arma_version | //! \addtogroup arma_version | |||
//! @{ | //! @{ | |||
#define ARMA_VERSION_MAJOR 3 | #define ARMA_VERSION_MAJOR 3 | |||
#define ARMA_VERSION_MINOR 810 | #define ARMA_VERSION_MINOR 810 | |||
#define ARMA_VERSION_PATCH 2 | #define ARMA_VERSION_PATCH 3 | |||
#define ARMA_VERSION_NAME "Newell Highway" | #define ARMA_VERSION_NAME "Newell Highway" | |||
struct arma_version | struct arma_version | |||
{ | { | |||
static const unsigned int major = ARMA_VERSION_MAJOR; | static const unsigned int major = ARMA_VERSION_MAJOR; | |||
static const unsigned int minor = ARMA_VERSION_MINOR; | static const unsigned int minor = ARMA_VERSION_MINOR; | |||
static const unsigned int patch = ARMA_VERSION_PATCH; | static const unsigned int patch = ARMA_VERSION_PATCH; | |||
static | static | |||
inline | inline | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
op_dot_meat.hpp | op_dot_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 225 | skipping to change at line 225 | |||
inline | inline | |||
typename arma_not_cx<typename T1::elem_type>::result | typename arma_not_cx<typename T1::elem_type>::result | |||
op_dot::apply_proxy(const T1& X, const T2& Y) | op_dot::apply_proxy(const T1& X, const T2& Y) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
typedef typename T1::elem_type eT; | typedef typename T1::elem_type eT; | |||
typedef typename Proxy<T1>::ea_type ea_type1; | typedef typename Proxy<T1>::ea_type ea_type1; | |||
typedef typename Proxy<T2>::ea_type ea_type2; | typedef typename Proxy<T2>::ea_type ea_type2; | |||
const bool prefer_at_accessor = (Proxy<T1>::prefer_at_accessor) && (Proxy <T2>::prefer_at_accessor); | const bool prefer_at_accessor = (Proxy<T1>::prefer_at_accessor) || (Proxy <T2>::prefer_at_accessor); | |||
if(prefer_at_accessor == false) | if(prefer_at_accessor == false) | |||
{ | { | |||
const Proxy<T1> PA(X); | const Proxy<T1> PA(X); | |||
const Proxy<T2> PB(Y); | const Proxy<T2> PB(Y); | |||
const uword N = PA.get_n_elem(); | const uword N = PA.get_n_elem(); | |||
arma_debug_check( (N != PB.get_n_elem()), "dot(): objects must have the same number of elements" ); | arma_debug_check( (N != PB.get_n_elem()), "dot(): objects must have the same number of elements" ); | |||
skipping to change at line 277 | skipping to change at line 277 | |||
op_dot::apply_proxy(const T1& X, const T2& Y) | op_dot::apply_proxy(const T1& X, const T2& Y) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(); | |||
typedef typename T1::elem_type eT; | typedef typename T1::elem_type eT; | |||
typedef typename get_pod_type<eT>::result T; | typedef typename get_pod_type<eT>::result T; | |||
typedef typename Proxy<T1>::ea_type ea_type1; | typedef typename Proxy<T1>::ea_type ea_type1; | |||
typedef typename Proxy<T2>::ea_type ea_type2; | typedef typename Proxy<T2>::ea_type ea_type2; | |||
const bool prefer_at_accessor = (Proxy<T1>::prefer_at_accessor) && (Proxy <T2>::prefer_at_accessor); | const bool prefer_at_accessor = (Proxy<T1>::prefer_at_accessor) || (Proxy <T2>::prefer_at_accessor); | |||
if(prefer_at_accessor == false) | if(prefer_at_accessor == false) | |||
{ | { | |||
const Proxy<T1> PA(X); | const Proxy<T1> PA(X); | |||
const Proxy<T2> PB(Y); | const Proxy<T2> PB(Y); | |||
const uword N = PA.get_n_elem(); | const uword N = PA.get_n_elem(); | |||
arma_debug_check( (N != PB.get_n_elem()), "dot(): objects must have the same number of elements" ); | arma_debug_check( (N != PB.get_n_elem()), "dot(): objects must have the same number of elements" ); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||