Col_meat.hpp | Col_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 253 | skipping to change at line 253 | |||
access::rw(X.mem) = 0; | access::rw(X.mem) = 0; | |||
} | } | |||
} | } | |||
} | } | |||
template<typename eT> | template<typename eT> | |||
inline | inline | |||
const Col<eT>& | const Col<eT>& | |||
Col<eT>::operator=(Col<eT>&& X) | Col<eT>::operator=(Col<eT>&& X) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(arma_boost::format("this = %x X = %x") % th is % &X); | |||
(*this).steal_mem(X); | (*this).steal_mem(X); | |||
if( (X.mem_state == 0) && (X.n_elem <= arma_config::mat_prealloc) ) | if( (X.mem_state == 0) && (X.n_elem <= arma_config::mat_prealloc) && (t his != &X) ) | |||
{ | { | |||
access::rw(X.n_rows) = 0; | access::rw(X.n_rows) = 0; | |||
access::rw(X.n_cols) = 1; | access::rw(X.n_cols) = 1; | |||
access::rw(X.n_elem) = 0; | access::rw(X.n_elem) = 0; | |||
access::rw(X.mem) = 0; | access::rw(X.mem) = 0; | |||
} | } | |||
return *this; | return *this; | |||
} | } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
Cube_meat.hpp | Cube_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 144 | skipping to change at line 144 | |||
{ | { | |||
arma_extra_debug_sigprint( arma_boost::format("n_rows = %d, n_cols = %d, n_slices = %d") % n_rows % n_cols % n_slices ); | arma_extra_debug_sigprint( arma_boost::format("n_rows = %d, n_cols = %d, n_slices = %d") % n_rows % n_cols % n_slices ); | |||
arma_debug_check | arma_debug_check | |||
( | ( | |||
( | ( | |||
( (n_rows > 0x0FFF) || (n_cols > 0x0FFF) || (n_slices > 0xFF) ) | ( (n_rows > 0x0FFF) || (n_cols > 0x0FFF) || (n_slices > 0xFF) ) | |||
? ( (float(n_rows) * float(n_cols) * float(n_slices)) > float(ARMA_ MAX_UWORD) ) | ? ( (float(n_rows) * float(n_cols) * float(n_slices)) > float(ARMA_ MAX_UWORD) ) | |||
: false | : false | |||
), | ), | |||
"Cube::init(): requested size is too large" | "Cube::init(): requested size is too large; suggest to enable ARMA_64BI T_WORD" | |||
); | ); | |||
if(n_elem <= Cube_prealloc::mem_n_elem) | if(n_elem <= Cube_prealloc::mem_n_elem) | |||
{ | { | |||
arma_extra_debug_print("Cube::init(): using local memory"); | arma_extra_debug_print("Cube::init(): using local memory"); | |||
access::rw(mem) = mem_local; | access::rw(mem) = mem_local; | |||
} | } | |||
else | else | |||
{ | { | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
Mat_meat.hpp | Mat_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 142 | skipping to change at line 142 | |||
// ensure that n_elem can hold the result of (n_rows * n_cols) | // ensure that n_elem can hold the result of (n_rows * n_cols) | |||
arma_debug_check | arma_debug_check | |||
( | ( | |||
( | ( | |||
( (n_rows > ARMA_MAX_UHWORD) || (n_cols > ARMA_MAX_UHWORD) ) | ( (n_rows > ARMA_MAX_UHWORD) || (n_cols > ARMA_MAX_UHWORD) ) | |||
? ( (float(n_rows) * float(n_cols)) > float(ARMA_MAX_UWORD) ) | ? ( (float(n_rows) * float(n_cols)) > float(ARMA_MAX_UWORD) ) | |||
: false | : false | |||
), | ), | |||
"Mat::init(): requested size is too large" | "Mat::init(): requested size is too large; suggest to enable ARMA_64BIT _WORD" | |||
); | ); | |||
if(n_elem <= arma_config::mat_prealloc) | if(n_elem <= arma_config::mat_prealloc) | |||
{ | { | |||
arma_extra_debug_print("Mat::init(): using local memory"); | arma_extra_debug_print("Mat::init(): using local memory"); | |||
access::rw(mem) = mem_local; | access::rw(mem) = mem_local; | |||
} | } | |||
else | else | |||
{ | { | |||
skipping to change at line 576 | skipping to change at line 576 | |||
template<typename eT> | template<typename eT> | |||
inline | inline | |||
const Mat<eT>& | const Mat<eT>& | |||
Mat<eT>::operator=(Mat<eT>&& X) | Mat<eT>::operator=(Mat<eT>&& X) | |||
{ | { | |||
arma_extra_debug_sigprint(arma_boost::format("this = %x X = %x") % th is % &X); | arma_extra_debug_sigprint(arma_boost::format("this = %x X = %x") % th is % &X); | |||
(*this).steal_mem(X); | (*this).steal_mem(X); | |||
if( (X.mem_state == 0) && (X.n_elem <= arma_config::mat_prealloc) ) | if( (X.mem_state == 0) && (X.n_elem <= arma_config::mat_prealloc) && (t his != &X) ) | |||
{ | { | |||
access::rw(X.n_rows) = 0; | access::rw(X.n_rows) = 0; | |||
access::rw(X.n_cols) = 0; | access::rw(X.n_cols) = 0; | |||
access::rw(X.n_elem) = 0; | access::rw(X.n_elem) = 0; | |||
access::rw(X.mem) = 0; | access::rw(X.mem) = 0; | |||
} | } | |||
return *this; | return *this; | |||
} | } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
Row_meat.hpp | Row_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 219 | skipping to change at line 219 | |||
access::rw(X.mem) = 0; | access::rw(X.mem) = 0; | |||
} | } | |||
} | } | |||
} | } | |||
template<typename eT> | template<typename eT> | |||
inline | inline | |||
const Row<eT>& | const Row<eT>& | |||
Row<eT>::operator=(Row<eT>&& X) | Row<eT>::operator=(Row<eT>&& X) | |||
{ | { | |||
arma_extra_debug_sigprint(); | arma_extra_debug_sigprint(arma_boost::format("this = %x X = %x") % th is % &X); | |||
(*this).steal_mem(X); | (*this).steal_mem(X); | |||
if( (X.mem_state == 0) && (X.n_elem <= arma_config::mat_prealloc) ) | if( (X.mem_state == 0) && (X.n_elem <= arma_config::mat_prealloc) && (t his != &X) ) | |||
{ | { | |||
access::rw(X.n_rows) = 1; | access::rw(X.n_rows) = 1; | |||
access::rw(X.n_cols) = 0; | access::rw(X.n_cols) = 0; | |||
access::rw(X.n_elem) = 0; | access::rw(X.n_elem) = 0; | |||
access::rw(X.mem) = 0; | access::rw(X.mem) = 0; | |||
} | } | |||
return *this; | return *this; | |||
} | } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
SpMat_meat.hpp | SpMat_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 3782 | skipping to change at line 3782 | |||
} | } | |||
// Ensure that n_elem can hold the result of (n_rows * n_cols) | // Ensure that n_elem can hold the result of (n_rows * n_cols) | |||
arma_debug_check | arma_debug_check | |||
( | ( | |||
( | ( | |||
( (in_rows > ARMA_MAX_UHWORD) || (in_cols > ARMA_MAX_UHWORD) ) | ( (in_rows > ARMA_MAX_UHWORD) || (in_cols > ARMA_MAX_UHWORD) ) | |||
? ( (float(in_rows) * float(in_cols)) > float(ARMA_MAX_UWORD) ) | ? ( (float(in_rows) * float(in_cols)) > float(ARMA_MAX_UWORD) ) | |||
: false | : false | |||
), | ), | |||
"SpMat::init(): requested size is too large" | "SpMat::init(): requested size is too large; suggest to enable ARMA_6 4BIT_WORD" | |||
); | ); | |||
// Clean out the existing memory. | // Clean out the existing memory. | |||
if (values) | if (values) | |||
{ | { | |||
memory::release(values); | memory::release(values); | |||
memory::release(row_indices); | memory::release(row_indices); | |||
} | } | |||
access::rw(values) = memory::acquire_chunked<eT> (1); | access::rw(values) = memory::acquire_chunked<eT> (1); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
arma_rng_cxx98.hpp | arma_rng_cxx98.hpp | |||
---|---|---|---|---|
// Copyright (C) 2013 Conrad Sanderson | // Copyright (C) 2013-2014 Conrad Sanderson | |||
// Copyright (C) 2013 NICTA (www.nicta.com.au) | // Copyright (C) 2013-2014 NICTA (www.nicta.com.au) | |||
// | // | |||
// 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_rng_cxx98 | //! \addtogroup arma_rng_cxx98 | |||
//! @{ | //! @{ | |||
class arma_rng_cxx98 | class arma_rng_cxx98 | |||
{ | { | |||
skipping to change at line 124 | skipping to change at line 124 | |||
} | } | |||
} | } | |||
else | else | |||
{ | { | |||
const uword length = b - a + 1; | const uword length = b - a + 1; | |||
const double scale = double(length) / double(RAND_MAX); | const double scale = double(length) / double(RAND_MAX); | |||
for(uword i=0; i<N; ++i) | for(uword i=0; i<N; ++i) | |||
{ | { | |||
mem[i] = int( double(std::rand()) * scale ) + a; | mem[i] = (std::min)( b, (int( double(std::rand()) * scale ) + a) ); | |||
} | } | |||
} | } | |||
} | } | |||
inline | inline | |||
int | int | |||
arma_rng_cxx98::randi_max_val() | arma_rng_cxx98::randi_max_val() | |||
{ | { | |||
return RAND_MAX; | return RAND_MAX; | |||
} | } | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 3 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 4 | #define ARMA_VERSION_MAJOR 4 | |||
#define ARMA_VERSION_MINOR 000 | #define ARMA_VERSION_MINOR 000 | |||
#define ARMA_VERSION_PATCH 0 | #define ARMA_VERSION_PATCH 1 | |||
#define ARMA_VERSION_NAME "Feral Steamroller" | #define ARMA_VERSION_NAME "Feral Steamroller" | |||
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 | |||
compiler_setup.hpp | compiler_setup.hpp | |||
---|---|---|---|---|
skipping to change at line 117 | skipping to change at line 117 | |||
#endif | #endif | |||
#if defined(__GNUG__) | #if defined(__GNUG__) | |||
#define ARMA_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNU C_PATCHLEVEL__) | #define ARMA_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNU C_PATCHLEVEL__) | |||
#if (ARMA_GCC_VERSION < 40200) | #if (ARMA_GCC_VERSION < 40200) | |||
#error "*** Need a newer compiler ***" | #error "*** Need a newer compiler ***" | |||
#endif | #endif | |||
#if ( (ARMA_GCC_VERSION >= 40700) && (ARMA_GCC_VERSION <= 40701) ) | #if ( (ARMA_GCC_VERSION >= 40700) && (ARMA_GCC_VERSION <= 40701) ) && !de fined(__INTEL_COMPILER) | |||
#error "gcc versions 4.7.0 and 4.7.1 are unsupported; use 4.7.2 or late r" | #error "gcc versions 4.7.0 and 4.7.1 are unsupported; use 4.7.2 or late r" | |||
// due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53549 | // due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53549 | |||
#endif | #endif | |||
#define ARMA_GOOD_COMPILER | #define ARMA_GOOD_COMPILER | |||
#undef ARMA_HAVE_TR1 | #undef ARMA_HAVE_TR1 | |||
#undef arma_pure | #undef arma_pure | |||
#undef arma_const | #undef arma_const | |||
#undef arma_aligned | #undef arma_aligned | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
field_meat.hpp | field_meat.hpp | |||
---|---|---|---|---|
skipping to change at line 988 | skipping to change at line 988 | |||
{ | { | |||
arma_extra_debug_sigprint( arma_boost::format("n_rows_in = %d, n_cols_in = %d") % n_rows_in % n_cols_in ); | arma_extra_debug_sigprint( arma_boost::format("n_rows_in = %d, n_cols_in = %d") % n_rows_in % n_cols_in ); | |||
arma_debug_check | arma_debug_check | |||
( | ( | |||
( | ( | |||
( (n_rows_in > ARMA_MAX_UHWORD) || (n_cols_in > ARMA_MAX_UHWORD) ) | ( (n_rows_in > ARMA_MAX_UHWORD) || (n_cols_in > ARMA_MAX_UHWORD) ) | |||
? ( (float(n_rows_in) * float(n_cols_in)) > float(ARMA_MAX_UWORD) ) | ? ( (float(n_rows_in) * float(n_cols_in)) > float(ARMA_MAX_UWORD) ) | |||
: false | : false | |||
), | ), | |||
"field::init(): requested size is too large" | "field::init(): requested size is too large; suggest to enable ARMA_64B IT_WORD" | |||
); | ); | |||
const uword n_elem_new = n_rows_in * n_cols_in; | const uword n_elem_new = n_rows_in * n_cols_in; | |||
if(n_elem == n_elem_new) | if(n_elem == n_elem_new) | |||
{ | { | |||
// delete_objects(); | // delete_objects(); | |||
// create_objects(); | // create_objects(); | |||
access::rw(n_rows) = n_rows_in; | access::rw(n_rows) = n_rows_in; | |||
access::rw(n_cols) = n_cols_in; | access::rw(n_cols) = n_cols_in; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||