Proxy.hpp   Proxy.hpp 
skipping to change at line 1405 skipping to change at line 1405
arma_inline uword get_n_elem() const { return Q.n_elem; } arma_inline uword get_n_elem() const { return Q.n_elem; }
arma_inline elem_type operator[] (const uword i) const { return Q[i]; } arma_inline elem_type operator[] (const uword i) const { return Q[i]; }
arma_inline elem_type at (const uword row, const uword col) const { return Q.at(row,col); } arma_inline elem_type at (const uword row, const uword col) const { return Q.at(row,col); }
arma_inline elem_type at_alt (const uword i) const { return Q.at_alt(i); } arma_inline elem_type at_alt (const uword i) const { return Q.at_alt(i); }
arma_inline ea_type get_ea() const { return Q.memptr(); } arma_inline ea_type get_ea() const { return Q.memptr(); }
arma_inline aligned_ea_type get_aligned_ea() const { return Q; } arma_inline aligned_ea_type get_aligned_ea() const { return Q; }
template<typename eT2> template<typename eT2>
arma_inline bool is_alias(const Mat<eT2>& X) const { return false; } arma_inline bool is_alias(const Mat<eT2>&) const { return false; }
arma_inline bool is_aligned() const { return memory::is_aligned(Q.memptr( )); } arma_inline bool is_aligned() const { return memory::is_aligned(Q.memptr( )); }
}; };
template<typename eT> template<typename eT>
class Proxy< xvec_htrans<eT> > class Proxy< xvec_htrans<eT> >
{ {
public: public:
typedef eT elem_type; typedef eT elem_type;
skipping to change at line 1448 skipping to change at line 1448
arma_inline uword get_n_elem() const { return Q.n_elem; } arma_inline uword get_n_elem() const { return Q.n_elem; }
arma_inline elem_type operator[] (const uword i) const { return Q[i]; } arma_inline elem_type operator[] (const uword i) const { return Q[i]; }
arma_inline elem_type at (const uword row, const uword col) const { return Q.at(row,col); } arma_inline elem_type at (const uword row, const uword col) const { return Q.at(row,col); }
arma_inline elem_type at_alt (const uword i) const { return Q.at_alt(i); } arma_inline elem_type at_alt (const uword i) const { return Q.at_alt(i); }
arma_inline ea_type get_ea() const { return Q.memptr(); } arma_inline ea_type get_ea() const { return Q.memptr(); }
arma_inline aligned_ea_type get_aligned_ea() const { return Q; } arma_inline aligned_ea_type get_aligned_ea() const { return Q; }
template<typename eT2> template<typename eT2>
arma_inline bool is_alias(const Mat<eT2>& X) const { return false; } arma_inline bool is_alias(const Mat<eT2>&) const { return false; }
arma_inline bool is_aligned() const { return memory::is_aligned(Q.memptr( )); } arma_inline bool is_aligned() const { return memory::is_aligned(Q.memptr( )); }
}; };
template<typename eT, typename T1> template<typename eT, typename T1>
class Proxy< subview_elem1<eT,T1> > class Proxy< subview_elem1<eT,T1> >
{ {
public: public:
typedef eT elem_type; typedef eT elem_type;
 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 3117 skipping to change at line 3117
case arma_binary: case arma_binary:
save_okay = diskio::save_arma_binary(*this, name); save_okay = diskio::save_arma_binary(*this, name);
break; break;
case coord_ascii: case coord_ascii:
save_okay = diskio::save_coord_ascii(*this, name); save_okay = diskio::save_coord_ascii(*this, name);
break; break;
default: default:
arma_warn(true, "SpMat::save(): unsupported file type"); arma_warn(print_status, "SpMat::save(): unsupported file type");
save_okay = false; save_okay = false;
} }
arma_warn( (save_okay == false), "SpMat::save(): couldn't write to ", nam e); arma_warn( print_status && (save_okay == false), "SpMat::save(): couldn't write to ", name);
return save_okay; return save_okay;
} }
//! save the matrix to a stream //! save the matrix to a stream
template<typename eT> template<typename eT>
inline inline
bool bool
SpMat<eT>::save(std::ostream& os, const file_type type, const bool print_st atus) const SpMat<eT>::save(std::ostream& os, const file_type type, const bool print_st atus) const
{ {
skipping to change at line 3155 skipping to change at line 3155
case arma_binary: case arma_binary:
save_okay = diskio::save_arma_binary(*this, os); save_okay = diskio::save_arma_binary(*this, os);
break; break;
case coord_ascii: case coord_ascii:
save_okay = diskio::save_coord_ascii(*this, os); save_okay = diskio::save_coord_ascii(*this, os);
break; break;
default: default:
arma_warn(true, "SpMat::save(): unsupported file type"); arma_warn(print_status, "SpMat::save(): unsupported file type");
save_okay = false; save_okay = false;
} }
arma_warn( (save_okay == false), "SpMat::save(): couldn't write to the gi ven stream"); arma_warn( print_status && (save_okay == false), "SpMat::save(): couldn't write to the given stream");
return save_okay; return save_okay;
} }
//! load a matrix from a file //! load a matrix from a file
template<typename eT> template<typename eT>
inline inline
bool bool
SpMat<eT>::load(const std::string name, const file_type type, const bool pr int_status) SpMat<eT>::load(const std::string name, const file_type type, const bool pr int_status)
{ {
skipping to change at line 3198 skipping to change at line 3198
case arma_binary: case arma_binary:
load_okay = diskio::load_arma_binary(*this, name, err_msg); load_okay = diskio::load_arma_binary(*this, name, err_msg);
break; break;
case coord_ascii: case coord_ascii:
load_okay = diskio::load_coord_ascii(*this, name, err_msg); load_okay = diskio::load_coord_ascii(*this, name, err_msg);
break; break;
default: default:
arma_warn(true, "SpMat::load(): unsupported file type"); arma_warn(print_status, "SpMat::load(): unsupported file type");
load_okay = false; load_okay = false;
} }
if(load_okay == false) if(load_okay == false)
{ {
if(err_msg.length() > 0) if(err_msg.length() > 0)
{ {
arma_warn(true, "SpMat::load(): ", err_msg, name); arma_warn(print_status, "SpMat::load(): ", err_msg, name);
} }
else else
{ {
arma_warn(true, "SpMat::load(): couldn't read ", name); arma_warn(print_status, "SpMat::load(): couldn't read ", name);
} }
} }
if(load_okay == false) if(load_okay == false)
{ {
(*this).reset(); (*this).reset();
} }
return load_okay; return load_okay;
} }
skipping to change at line 3256 skipping to change at line 3256
case arma_binary: case arma_binary:
load_okay = diskio::load_arma_binary(*this, is, err_msg); load_okay = diskio::load_arma_binary(*this, is, err_msg);
break; break;
case coord_ascii: case coord_ascii:
load_okay = diskio::load_coord_ascii(*this, is, err_msg); load_okay = diskio::load_coord_ascii(*this, is, err_msg);
break; break;
default: default:
arma_warn(true, "SpMat::load(): unsupported file type"); arma_warn(print_status, "SpMat::load(): unsupported file type");
load_okay = false; load_okay = false;
} }
if(load_okay == false) if(load_okay == false)
{ {
if(err_msg.length() > 0) if(err_msg.length() > 0)
{ {
arma_warn(true, "SpMat::load(): ", err_msg, "the given stream"); arma_warn(print_status, "SpMat::load(): ", err_msg, "the given stream ");
} }
else else
{ {
arma_warn(true, "SpMat::load(): couldn't load from the given stream") ; arma_warn(print_status, "SpMat::load(): couldn't load from the given stream");
} }
} }
if(load_okay == false) if(load_okay == false)
{ {
(*this).reset(); (*this).reset();
} }
return load_okay; return load_okay;
} }
 End of changes. 10 change blocks. 
10 lines changed or deleted 10 lines changed or added


 SpProxy.hpp   SpProxy.hpp 
skipping to change at line 100 skipping to change at line 100
arma_inline uword get_n_nonzero() const { return Q.n_nonzero; } arma_inline uword get_n_nonzero() const { return Q.n_nonzero; }
arma_inline elem_type operator[](const uword i) const { return Q[i]; } arma_inline elem_type operator[](const uword i) const { return Q[i]; }
arma_inline elem_type at (const uword row, const uword col) const { return Q.at(row, col); } arma_inline elem_type at (const uword row, const uword col) const { return Q.at(row, col); }
arma_inline const eT* get_values() const { return Q.values; } arma_inline const eT* get_values() const { return Q.values; }
arma_inline const uword* get_row_indices() const { return Q.row_indices; } arma_inline const uword* get_row_indices() const { return Q.row_indices; }
arma_inline const uword* get_col_ptrs() const { return Q.col_ptrs; } arma_inline const uword* get_col_ptrs() const { return Q.col_ptrs; }
arma_inline const_iterator_type begin() co nst { return Q.begin(); } arma_inline const_iterator_type begin() co nst { return Q.begin(); }
arma_inline const_iterator_type begin_col(const uword col_num) co nst { return Q.begin(); } arma_inline const_iterator_type begin_col(const uword) co nst { return Q.begin(); }
arma_inline const_row_iterator_type begin_row(const uword row_num = 0) co nst { return Q.begin_row(row_num); } arma_inline const_row_iterator_type begin_row(const uword row_num = 0) co nst { return Q.begin_row(row_num); }
arma_inline const_iterator_type end() const { return Q.end(); } arma_inline const_iterator_type end() const { return Q.end(); }
arma_inline const_row_iterator_type end_row() const { return Q.end_row(); } arma_inline const_row_iterator_type end_row() const { return Q.end_row(); }
arma_inline const_row_iterator_type end_row(const uword row_num) const { return Q.end_row(row_num); } arma_inline const_row_iterator_type end_row(const uword row_num) const { return Q.end_row(row_num); }
template<typename eT2> template<typename eT2>
arma_inline bool is_alias(const SpMat<eT2>& X) const { return (void_ptr(& Q) == void_ptr(&X)); } arma_inline bool is_alias(const SpMat<eT2>& X) const { return (void_ptr(& Q) == void_ptr(&X)); }
}; };
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 arma_cmath.hpp   arma_cmath.hpp 
skipping to change at line 328 skipping to change at line 328
#if defined(ARMA_USE_CXX11) #if defined(ARMA_USE_CXX11)
{ {
return std::acos(x); return std::acos(x);
} }
#elif defined(ARMA_HAVE_TR1) #elif defined(ARMA_HAVE_TR1)
{ {
return std::tr1::acos(x); return std::tr1::acos(x);
} }
#else #else
{ {
arma_ignore(x);
arma_stop("acos(): need C++11 compiler"); arma_stop("acos(): need C++11 compiler");
return std::complex<T>(0); return std::complex<T>(0);
} }
#endif #endif
} }
template<typename T> template<typename T>
arma_inline arma_inline
std::complex<T> std::complex<T>
skipping to change at line 350 skipping to change at line 351
#if defined(ARMA_USE_CXX11) #if defined(ARMA_USE_CXX11)
{ {
return std::asin(x); return std::asin(x);
} }
#elif defined(ARMA_HAVE_TR1) #elif defined(ARMA_HAVE_TR1)
{ {
return std::tr1::asin(x); return std::tr1::asin(x);
} }
#else #else
{ {
arma_ignore(x);
arma_stop("asin(): need C++11 compiler"); arma_stop("asin(): need C++11 compiler");
return std::complex<T>(0); return std::complex<T>(0);
} }
#endif #endif
} }
template<typename T> template<typename T>
arma_inline arma_inline
std::complex<T> std::complex<T>
skipping to change at line 372 skipping to change at line 374
#if defined(ARMA_USE_CXX11) #if defined(ARMA_USE_CXX11)
{ {
return std::atan(x); return std::atan(x);
} }
#elif defined(ARMA_HAVE_TR1) #elif defined(ARMA_HAVE_TR1)
{ {
return std::tr1::atan(x); return std::tr1::atan(x);
} }
#else #else
{ {
arma_ignore(x);
arma_stop("atan(): need C++11 compiler"); arma_stop("atan(): need C++11 compiler");
return std::complex<T>(0); return std::complex<T>(0);
} }
#endif #endif
} }
template<typename eT> template<typename eT>
arma_inline arma_inline
eT eT
skipping to change at line 485 skipping to change at line 488
#if defined(ARMA_USE_CXX11) #if defined(ARMA_USE_CXX11)
{ {
return std::acosh(x); return std::acosh(x);
} }
#elif defined(ARMA_HAVE_TR1) #elif defined(ARMA_HAVE_TR1)
{ {
return std::tr1::acosh(x); return std::tr1::acosh(x);
} }
#else #else
{ {
arma_ignore(x);
arma_stop("acosh(): need C++11 compiler"); arma_stop("acosh(): need C++11 compiler");
return std::complex<T>(0); return std::complex<T>(0);
} }
#endif #endif
} }
template<typename T> template<typename T>
arma_inline arma_inline
std::complex<T> std::complex<T>
skipping to change at line 507 skipping to change at line 511
#if defined(ARMA_USE_CXX11) #if defined(ARMA_USE_CXX11)
{ {
return std::asinh(x); return std::asinh(x);
} }
#elif defined(ARMA_HAVE_TR1) #elif defined(ARMA_HAVE_TR1)
{ {
return std::tr1::asinh(x); return std::tr1::asinh(x);
} }
#else #else
{ {
arma_ignore(x);
arma_stop("asinh(): need C++11 compiler"); arma_stop("asinh(): need C++11 compiler");
return std::complex<T>(0); return std::complex<T>(0);
} }
#endif #endif
} }
template<typename T> template<typename T>
arma_inline arma_inline
std::complex<T> std::complex<T>
skipping to change at line 529 skipping to change at line 534
#if defined(ARMA_USE_CXX11) #if defined(ARMA_USE_CXX11)
{ {
return std::atanh(x); return std::atanh(x);
} }
#elif defined(ARMA_HAVE_TR1) #elif defined(ARMA_HAVE_TR1)
{ {
return std::tr1::atanh(x); return std::tr1::atanh(x);
} }
#else #else
{ {
arma_ignore(x);
arma_stop("atanh(): need C++11 compiler"); arma_stop("atanh(): need C++11 compiler");
return std::complex<T>(0); return std::complex<T>(0);
} }
#endif #endif
} }
//! @} //! @}
 End of changes. 6 change blocks. 
0 lines changed or deleted 6 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 650 #define ARMA_VERSION_MINOR 650
#define ARMA_VERSION_PATCH 3 #define ARMA_VERSION_PATCH 4
#define ARMA_VERSION_NAME "Intravenous Caffeine Injector" #define ARMA_VERSION_NAME "Intravenous Caffeine Injector"
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 
// Copyright (C) 2008-2014 Conrad Sanderson // Copyright (C) 2008-2015 Conrad Sanderson
// Copyright (C) 2008-2014 NICTA (www.nicta.com.au) // Copyright (C) 2008-2015 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/.
#undef arma_hot #undef arma_hot
#undef arma_cold #undef arma_cold
#undef arma_pure #undef arma_pure
#undef arma_const #undef arma_const
#undef arma_aligned #undef arma_aligned
skipping to change at line 279 skipping to change at line 279
#if __has_attribute(__cold__) #if __has_attribute(__cold__)
#undef arma_cold #undef arma_cold
#define arma_cold __attribute__((__cold__)) #define arma_cold __attribute__((__cold__))
#endif #endif
#if defined(__has_builtin) && __has_builtin(__builtin_assume_aligned) #if defined(__has_builtin) && __has_builtin(__builtin_assume_aligned)
#undef ARMA_HAVE_GCC_ASSUME_ALIGNED #undef ARMA_HAVE_GCC_ASSUME_ALIGNED
#define ARMA_HAVE_GCC_ASSUME_ALIGNED #define ARMA_HAVE_GCC_ASSUME_ALIGNED
#endif #endif
#if defined(__apple_build_version__)
#undef ARMA_USE_EXTERN_CXX11_RNG
// because Apple engineers are too lazy to implement thread_local
#endif
#endif #endif
#if defined(__INTEL_COMPILER) #if defined(__INTEL_COMPILER)
#if (__INTEL_COMPILER_BUILD_DATE < 20090623) #if (__INTEL_COMPILER_BUILD_DATE < 20090623)
#error "*** Need a newer compiler ***" #error "*** Need a newer compiler ***"
#endif #endif
#undef ARMA_GOOD_COMPILER #undef ARMA_GOOD_COMPILER
#undef ARMA_HAVE_TR1 #undef ARMA_HAVE_TR1
 End of changes. 2 change blocks. 
2 lines changed or deleted 7 lines changed or added


 diskio_meat.hpp   diskio_meat.hpp 
skipping to change at line 2364 skipping to change at line 2364
} }
return load_okay; return load_okay;
} }
template<typename eT> template<typename eT>
inline inline
bool bool
diskio::load_coord_ascii(SpMat<eT>& x, std::istream& f, std::string& err_ms g) diskio::load_coord_ascii(SpMat<eT>& x, std::istream& f, std::string& err_ms g)
{ {
arma_extra_debug_sigprint();
arma_ignore(err_msg);
bool load_okay = f.good(); bool load_okay = f.good();
f.clear(); f.clear();
const std::fstream::pos_type pos1 = f.tellg(); const std::fstream::pos_type pos1 = f.tellg();
// //
// work out the size // work out the size
uword f_n_rows = 0; uword f_n_rows = 0;
uword f_n_cols = 0; uword f_n_cols = 0;
skipping to change at line 2579 skipping to change at line 2582
} }
return load_okay; return load_okay;
} }
template<typename T> template<typename T>
inline inline
bool bool
diskio::load_coord_ascii(SpMat< std::complex<T> >& x, std::istream& f, std: :string& err_msg) diskio::load_coord_ascii(SpMat< std::complex<T> >& x, std::istream& f, std: :string& err_msg)
{ {
arma_extra_debug_sigprint();
arma_ignore(err_msg);
bool load_okay = f.good(); bool load_okay = f.good();
f.clear(); f.clear();
const std::fstream::pos_type pos1 = f.tellg(); const std::fstream::pos_type pos1 = f.tellg();
// //
// work out the size // work out the size
uword f_n_rows = 0; uword f_n_rows = 0;
uword f_n_cols = 0; uword f_n_cols = 0;
 End of changes. 2 change blocks. 
0 lines changed or deleted 6 lines changed or added


 fn_all.hpp   fn_all.hpp 
// Copyright (C) 2013 Conrad Sanderson // Copyright (C) 2013-2015 Conrad Sanderson
// Copyright (C) 2013 NICTA (www.nicta.com.au) // Copyright (C) 2013-2015 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 fn_all //! \addtogroup fn_all
//! @{ //! @{
template<typename T1> template<typename T1>
arma_inline arma_inline
skipping to change at line 30 skipping to change at line 30
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
arma_ignore(junk1); arma_ignore(junk1);
arma_ignore(junk2); arma_ignore(junk2);
return mtOp<uword, T1, op_all>(X, dim, 0); return mtOp<uword, T1, op_all>(X, dim, 0);
} }
template<typename T1> template<typename T1>
inline arma_inline
arma_warn_unused const mtOp<uword, T1, op_all>
bool
all all
( (
const T1& X, const T1& X,
const uword dim, const uword dim,
const typename enable_if<resolves_to_vector<T1>::value == true>::result* junk = 0 const typename enable_if<resolves_to_vector<T1>::value == true>::result* junk = 0
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
arma_ignore(junk); arma_ignore(junk);
return op_all::all_vec(X); return mtOp<uword, T1, op_all>(X, dim, 0);
} }
template<typename T1> template<typename T1>
inline inline
arma_warn_unused arma_warn_unused
bool bool
all all
( (
const T1& X, const T1& X,
const arma_empty_class junk1 = arma_empty_class(), const arma_empty_class junk1 = arma_empty_class(),
 End of changes. 3 change blocks. 
6 lines changed or deleted 5 lines changed or added


 fn_any.hpp   fn_any.hpp 
// Copyright (C) 2013 Conrad Sanderson // Copyright (C) 2013-2015 Conrad Sanderson
// Copyright (C) 2013 NICTA (www.nicta.com.au) // Copyright (C) 2013-2015 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 fn_any //! \addtogroup fn_any
//! @{ //! @{
template<typename T1> template<typename T1>
arma_inline arma_inline
skipping to change at line 30 skipping to change at line 30
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
arma_ignore(junk1); arma_ignore(junk1);
arma_ignore(junk2); arma_ignore(junk2);
return mtOp<uword, T1, op_any>(X, dim, 0); return mtOp<uword, T1, op_any>(X, dim, 0);
} }
template<typename T1> template<typename T1>
inline arma_inline
arma_warn_unused const mtOp<uword, T1, op_any>
bool
any any
( (
const T1& X, const T1& X,
const uword dim, const uword dim,
const typename enable_if<resolves_to_vector<T1>::value == true>::result* junk = 0 const typename enable_if<resolves_to_vector<T1>::value == true>::result* junk = 0
) )
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
arma_ignore(junk); arma_ignore(junk);
return op_any::any_vec(X); return mtOp<uword, T1, op_any>(X, dim, 0);
} }
template<typename T1> template<typename T1>
inline inline
arma_warn_unused arma_warn_unused
bool bool
any any
( (
const T1& X, const T1& X,
const arma_empty_class junk1 = arma_empty_class(), const arma_empty_class junk1 = arma_empty_class(),
 End of changes. 3 change blocks. 
6 lines changed or deleted 5 lines changed or added


 fn_n_unique.hpp   fn_n_unique.hpp 
skipping to change at line 112 skipping to change at line 112
template<typename eT> inline static eT eval(const eT& l, const eT& r) { r eturn (l - r); } template<typename eT> inline static eT eval(const eT& l, const eT& r) { r eturn (l - r); }
}; };
struct op_n_unique_mul struct op_n_unique_mul
{ {
template<typename eT> inline static eT eval(const eT& l, const eT& r) { r eturn (l * r); } template<typename eT> inline static eT eval(const eT& l, const eT& r) { r eturn (l * r); }
}; };
struct op_n_unique_count struct op_n_unique_count
{ {
template<typename eT> inline static eT eval(const eT& l, const eT& r) { r eturn 1; } template<typename eT> inline static eT eval(const eT&, const eT&) { retur n eT(1); }
}; };
//! @} //! @}
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 fn_norm_sparse.hpp   fn_norm_sparse.hpp 
skipping to change at line 62 skipping to change at line 62
inline inline
typename T1::pod_type typename T1::pod_type
arma_mat_norm_2(const SpProxy<T1>& P, const typename arma_cx_only<typename T1::elem_type>::result* junk = 0) arma_mat_norm_2(const SpProxy<T1>& P, const typename arma_cx_only<typename T1::elem_type>::result* junk = 0)
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
arma_ignore(junk); arma_ignore(junk);
//typedef typename T1::elem_type eT; //typedef typename T1::elem_type eT;
typedef typename T1::pod_type T; typedef typename T1::pod_type T;
arma_ignore(P);
arma_stop("norm(): unimplemented norm type for complex sparse matrices"); arma_stop("norm(): unimplemented norm type for complex sparse matrices");
return T(0); return T(0);
// const unwrap_spmat<typename SpProxy<T1>::stored_type> tmp(P.Q); // const unwrap_spmat<typename SpProxy<T1>::stored_type> tmp(P.Q);
// //
// const SpMat<eT>& A = tmp.M; // const SpMat<eT>& A = tmp.M;
// const SpMat<eT> B = trans(A); // const SpMat<eT> B = trans(A);
// //
// const SpMat<eT> C = (A.n_rows <= A.n_cols) ? (A*B) : (B*A); // const SpMat<eT> C = (A.n_rows <= A.n_cols) ? (A*B) : (B*A);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 fn_randg.hpp   fn_randg.hpp 
skipping to change at line 75 skipping to change at line 75
local_arma_rng_cxx11_instance.set_seed( seed_type(arma_rng::randi<see d_type>()) ); local_arma_rng_cxx11_instance.set_seed( seed_type(arma_rng::randi<see d_type>()) );
local_arma_rng_cxx11_instance.randg_fill(out.memptr(), out.n_elem, a, b); local_arma_rng_cxx11_instance.randg_fill(out.memptr(), out.n_elem, a, b);
} }
#endif #endif
return out; return out;
} }
#else #else
{ {
arma_ignore(n_rows);
arma_ignore(n_cols);
arma_ignore(param);
arma_stop("randg(): C++11 compiler required"); arma_stop("randg(): C++11 compiler required");
return obj_type(); return obj_type();
} }
#endif #endif
} }
template<typename obj_type> template<typename obj_type>
inline inline
obj_type obj_type
skipping to change at line 173 skipping to change at line 177
local_arma_rng_cxx11_instance.set_seed( seed_type(arma_rng::randi<see d_type>()) ); local_arma_rng_cxx11_instance.set_seed( seed_type(arma_rng::randi<see d_type>()) );
local_arma_rng_cxx11_instance.randg_fill(out.memptr(), out.n_elem, a, b); local_arma_rng_cxx11_instance.randg_fill(out.memptr(), out.n_elem, a, b);
} }
#endif #endif
return out; return out;
} }
#else #else
{ {
arma_ignore(n_rows);
arma_ignore(n_cols);
arma_ignore(n_slices);
arma_ignore(param);
arma_stop("randg(): C++11 compiler required"); arma_stop("randg(): C++11 compiler required");
return cube_type(); return cube_type();
} }
#endif #endif
} }
inline inline
cube cube
randg(const uword n_rows, const uword n_cols, const uword n_slices, const d istr_param& param = distr_param()) randg(const uword n_rows, const uword n_cols, const uword n_slices, const d istr_param& param = distr_param())
 End of changes. 2 change blocks. 
0 lines changed or deleted 9 lines changed or added


 gmm_diag_meat.hpp   gmm_diag_meat.hpp 
skipping to change at line 242 skipping to change at line 242
template<typename eT> template<typename eT>
inline inline
bool bool
gmm_diag<eT>::save(const std::string name) const gmm_diag<eT>::save(const std::string name) const
{ {
arma_extra_debug_sigprint(); arma_extra_debug_sigprint();
Cube<eT> Q(means.n_rows + 1, means.n_cols, 2); Cube<eT> Q(means.n_rows + 1, means.n_cols, 2);
Q.slice(0).row(0) = hefts; if(Q.n_elem > 0)
Q.slice(1).row(0).zeros(); // reserved for future use {
Q.slice(0).row(0) = hefts;
Q.slice(0).submat(1, 0, size(means)) = means; Q.slice(1).row(0).zeros(); // reserved for future use
Q.slice(1).submat(1, 0, size(dcovs)) = dcovs;
Q.slice(0).submat(1, 0, size(means)) = means;
Q.slice(1).submat(1, 0, size(dcovs)) = dcovs;
}
const bool status = Q.save(name, arma_binary); const bool status = Q.save(name, arma_binary);
return status; return status;
} }
template<typename eT> template<typename eT>
inline inline
Col<eT> Col<eT>
gmm_diag<eT>::generate() const gmm_diag<eT>::generate() const
 End of changes. 1 change blocks. 
5 lines changed or deleted 8 lines changed or added


 sp_auxlib_meat.hpp   sp_auxlib_meat.hpp 
skipping to change at line 138 skipping to change at line 138
} }
return (info == 0); return (info == 0);
} }
#else #else
{ {
arma_ignore(eigval); arma_ignore(eigval);
arma_ignore(eigvec); arma_ignore(eigvec);
arma_ignore(X); arma_ignore(X);
arma_ignore(n_eigvals); arma_ignore(n_eigvals);
arma_ignore(form_str);
arma_ignore(default_tol);
arma_stop("eigs_sym(): use of ARPACK needs to be enabled"); arma_stop("eigs_sym(): use of ARPACK needs to be enabled");
return false; return false;
} }
#endif #endif
} }
//! immediate eigendecomposition of non-symmetric real sparse object //! immediate eigendecomposition of non-symmetric real sparse object
template<typename T, typename T1> template<typename T, typename T1>
inline inline
bool bool
skipping to change at line 285 skipping to change at line 288
} }
return (info == 0); return (info == 0);
} }
#else #else
{ {
arma_ignore(eigval); arma_ignore(eigval);
arma_ignore(eigvec); arma_ignore(eigvec);
arma_ignore(X); arma_ignore(X);
arma_ignore(n_eigvals); arma_ignore(n_eigvals);
arma_ignore(form_str);
arma_ignore(default_tol);
arma_stop("eigs_gen(): use of ARPACK needs to be enabled"); arma_stop("eigs_gen(): use of ARPACK needs to be enabled");
return false; return false;
} }
#endif #endif
} }
//! immediate eigendecomposition of non-symmetric complex sparse object //! immediate eigendecomposition of non-symmetric complex sparse object
template<typename T, typename T1> template<typename T, typename T1>
inline inline
bool bool
skipping to change at line 395 skipping to change at line 401
} }
return (info == 0); return (info == 0);
} }
#else #else
{ {
arma_ignore(eigval); arma_ignore(eigval);
arma_ignore(eigvec); arma_ignore(eigvec);
arma_ignore(X); arma_ignore(X);
arma_ignore(n_eigvals); arma_ignore(n_eigvals);
arma_ignore(form_str);
arma_ignore(default_tol);
arma_stop("eigs_gen(): use of ARPACK needs to be enabled"); arma_stop("eigs_gen(): use of ARPACK needs to be enabled");
return false; return false;
} }
#endif #endif
} }
template<typename eT, typename T, typename T1> template<typename eT, typename T, typename T1>
inline inline
void void
sp_auxlib::run_aupd sp_auxlib::run_aupd
skipping to change at line 530 skipping to change at line 539
else else
{ {
tmp << "eigs_gen(): ARPACK error " << info << " in naupd()"; tmp << "eigs_gen(): ARPACK error " << info << " in naupd()";
} }
arma_debug_warn(true, tmp.str()); arma_debug_warn(true, tmp.str());
return; // Parent frame can look at the value of info. return; // Parent frame can look at the value of info.
} }
} }
#else
arma_ignore(n_eigvals);
arma_ignore(which);
arma_ignore(p);
arma_ignore(sym);
arma_ignore(n);
arma_ignore(tol);
arma_ignore(resid);
arma_ignore(ncv);
arma_ignore(v);
arma_ignore(ldv);
arma_ignore(iparam);
arma_ignore(ipntr);
arma_ignore(workd);
arma_ignore(workl);
arma_ignore(lworkl);
arma_ignore(rwork);
arma_ignore(info);
#endif #endif
} }
 End of changes. 4 change blocks. 
0 lines changed or deleted 27 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/