Hello community, here is the log from the commit of package armadillo for openSUSE:Factory checked in at 2017-11-07 10:04:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/armadillo (Old) and /work/SRC/openSUSE:Factory/.armadillo.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "armadillo" Tue Nov 7 10:04:12 2017 rev:115 rq:539300 version:8.200.2 Changes: -------- --- /work/SRC/openSUSE:Factory/armadillo/armadillo.changes 2017-10-19 19:33:28.541117693 +0200 +++ /work/SRC/openSUSE:Factory/.armadillo.new/armadillo.changes 2017-11-07 10:04:37.487877367 +0100 @@ -1,0 +2,6 @@ +Sun Nov 5 14:29:27 UTC 2017 - badshah...@gmail.com + +- Update to version 8.200.2: + + Misc bug fixes. + +------------------------------------------------------------------- Old: ---- armadillo-8.200.1.tar.xz New: ---- armadillo-8.200.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ armadillo.spec ++++++ --- /var/tmp/diff_new_pack.lTa3ux/_old 2017-11-07 10:04:38.387844714 +0100 +++ /var/tmp/diff_new_pack.lTa3ux/_new 2017-11-07 10:04:38.391844569 +0100 @@ -18,7 +18,7 @@ %define soname libarmadillo8 Name: armadillo -Version: 8.200.1 +Version: 8.200.2 Release: 0 Summary: C++ matrix library with interfaces to LAPACK and ATLAS License: Apache-2.0 ++++++ armadillo-8.200.1.tar.xz -> armadillo-8.200.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-8.200.1/README.txt new/armadillo-8.200.2/README.txt --- old/armadillo-8.200.1/README.txt 2016-06-16 18:17:11.000000000 +0200 +++ new/armadillo-8.200.2/README.txt 2016-06-16 18:17:12.000000000 +0200 @@ -436,21 +436,21 @@ 15: Bug Reports and Frequently Asked Questions ============================================== -Armadillo has gone through extensive testing and -has been successfully used in production environments. -However, as with almost all software, it's impossible -to guarantee 100% correct functionality. - -If you find a bug in the library or the documentation, -we are interested in hearing about it. Please make a -_small_ and _self-contained_ program which exposes the bug, -and then send the program source and the bug description -to the developers. The contact details are at: +Armadillo has gone through extensive testing and has been successfully +used in production environments. However, as with almost all software, +it's impossible to guarantee 100% correct functionality. + +If you find a bug in the library or the documentation, we are interested +in hearing about it. Please make a _small_ and _self-contained_ program +which exposes the bug, and then send the program source and the bug description +to the developers. The small program must have a main() function and use only +functions/classes from Armadillo and the standard C++ library (no other libraries). + +The contact details are at: http://arma.sourceforge.net/contact.html -Further information about Armadillo as well as -answers to frequently asked questions are at: +Further information about Armadillo is on the frequently asked questions page: http://arma.sourceforge.net/faq.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-8.200.1/include/armadillo_bits/arma_version.hpp new/armadillo-8.200.2/include/armadillo_bits/arma_version.hpp --- old/armadillo-8.200.1/include/armadillo_bits/arma_version.hpp 2016-06-16 18:17:11.000000000 +0200 +++ new/armadillo-8.200.2/include/armadillo_bits/arma_version.hpp 2016-06-16 18:17:12.000000000 +0200 @@ -21,7 +21,7 @@ #define ARMA_VERSION_MAJOR 8 #define ARMA_VERSION_MINOR 200 -#define ARMA_VERSION_PATCH 1 +#define ARMA_VERSION_PATCH 2 #define ARMA_VERSION_NAME "Feral Pursuits Deluxe" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-8.200.1/include/armadillo_bits/compiler_setup.hpp new/armadillo-8.200.2/include/armadillo_bits/compiler_setup.hpp --- old/armadillo-8.200.1/include/armadillo_bits/compiler_setup.hpp 2016-06-16 18:17:11.000000000 +0200 +++ new/armadillo-8.200.2/include/armadillo_bits/compiler_setup.hpp 2016-06-16 18:17:12.000000000 +0200 @@ -471,12 +471,12 @@ #if defined(ARMA_PRINT_OPENMP_WARNING) && !defined(ARMA_DONT_PRINT_OPENMP_WARNING) - #pragma message ("WARNING: use of OpenMP disabled; this compiler doesn't support OpenMP 3.0+") + #pragma message ("WARNING: use of OpenMP disabled; compiler support for OpenMP 3.0+ not detected") #endif #if defined(ARMA_USE_OPENMP) && !defined(ARMA_USE_CXX11) - #if (defined(ARMA_GCC_VERSION) && (ARMA_GCC_VERSION >= 40803)) || (defined(__clang__) && !defined(ARMA_FAKE_CLANG)) + #if (defined(ARMA_GCC_VERSION) && (ARMA_GCC_VERSION >= 50400)) || (defined(__clang__) && !defined(ARMA_FAKE_CLANG)) #undef ARMA_PRINT_OPENMP_CXX11_WARNING #define ARMA_PRINT_OPENMP_CXX11_WARNING #endif @@ -488,6 +488,18 @@ #endif + +#if defined(ARMA_USE_OPENMP) && defined(ARMA_USE_CXX11) + #if (defined(ARMA_GCC_VERSION) && (ARMA_GCC_VERSION < 50400)) + // due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57580 + #undef ARMA_USE_OPENMP + #if !defined(ARMA_DONT_PRINT_OPENMP_WARNING) + #pragma message ("WARNING: use of OpenMP disabled due to compiler bug in gcc <= 5.3") + #endif + #endif +#endif + + // cleanup diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-8.200.1/include/armadillo_bits/gmm_diag_meat.hpp new/armadillo-8.200.2/include/armadillo_bits/gmm_diag_meat.hpp --- old/armadillo-8.200.1/include/armadillo_bits/gmm_diag_meat.hpp 2016-06-16 18:17:11.000000000 +0200 +++ new/armadillo-8.200.2/include/armadillo_bits/gmm_diag_meat.hpp 2016-06-16 18:17:12.000000000 +0200 @@ -158,7 +158,7 @@ const eT s = accu(in_hefts); - arma_debug_check( ((s < (eT(1) - Datum<eT>::eps)) || (s > (eT(1) + Datum<eT>::eps))), "gmm_diag::set_params(): sum of given hefts is not 1" ); + arma_debug_check( ((s < (eT(1) - eT(0.001))) || (s > (eT(1) + eT(0.001)))), "gmm_diag::set_params(): sum of given hefts is not 1" ); access::rw(means) = in_means; access::rw(dcovs) = in_dcovs; @@ -230,7 +230,7 @@ const eT s = accu(in_hefts); - arma_debug_check( ((s < (eT(1) - Datum<eT>::eps)) || (s > (eT(1) + Datum<eT>::eps))), "gmm_diag::set_hefts(): sum of given hefts is not 1" ); + arma_debug_check( ((s < (eT(1) - eT(0.001))) || (s > (eT(1) + eT(0.001)))), "gmm_diag::set_hefts(): sum of given hefts is not 1" ); // make sure all hefts are positive and non-zero diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-8.200.1/include/armadillo_bits/gmm_full_meat.hpp new/armadillo-8.200.2/include/armadillo_bits/gmm_full_meat.hpp --- old/armadillo-8.200.1/include/armadillo_bits/gmm_full_meat.hpp 2016-06-16 18:17:11.000000000 +0200 +++ new/armadillo-8.200.2/include/armadillo_bits/gmm_full_meat.hpp 2016-06-16 18:17:12.000000000 +0200 @@ -162,7 +162,7 @@ const eT s = accu(in_hefts); - arma_debug_check( ((s < (eT(1) - Datum<eT>::eps)) || (s > (eT(1) + Datum<eT>::eps))), "gmm_full::set_params(): sum of given hefts is not 1" ); + arma_debug_check( ((s < (eT(1) - eT(0.001))) || (s > (eT(1) + eT(0.001)))), "gmm_full::set_params(): sum of given hefts is not 1" ); access::rw(means) = in_means; access::rw(fcovs) = in_fcovs; @@ -238,7 +238,7 @@ const eT s = accu(in_hefts); - arma_debug_check( ((s < (eT(1) - Datum<eT>::eps)) || (s > (eT(1) + Datum<eT>::eps))), "gmm_full::set_hefts(): sum of given hefts is not 1" ); + arma_debug_check( ((s < (eT(1) - eT(0.001))) || (s > (eT(1) + eT(0.001)))), "gmm_full::set_hefts(): sum of given hefts is not 1" ); // make sure all hefts are positive and non-zero diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/armadillo-8.200.1/include/armadillo_bits/operator_times.hpp new/armadillo-8.200.2/include/armadillo_bits/operator_times.hpp --- old/armadillo-8.200.1/include/armadillo_bits/operator_times.hpp 2016-06-16 18:17:11.000000000 +0200 +++ new/armadillo-8.200.2/include/armadillo_bits/operator_times.hpp 2016-06-16 18:17:12.000000000 +0200 @@ -472,12 +472,14 @@ { arma_extra_debug_sigprint(); + typedef typename T1::elem_type eT; + const SpProxy<T1> pa(x); const Proxy<T2> pb(y); arma_debug_assert_mul_size(pa.get_n_rows(), pa.get_n_cols(), pb.get_n_rows(), pb.get_n_cols(), "matrix multiplication"); - Mat<typename T1::elem_type> result(pa.get_n_rows(), pb.get_n_cols()); + Mat<eT> result(pa.get_n_rows(), pb.get_n_cols()); result.zeros(); if( (pa.get_n_nonzero() > 0) && (pb.get_n_elem() > 0) ) @@ -489,9 +491,13 @@ while(x_it != x_it_end) { + const eT x_it_val = (*x_it); + const uword x_it_row = x_it.row(); + const uword x_it_col = x_it.col(); + for(uword col = 0; col < result_n_cols; ++col) { - result.at(x_it.row(), col) += (*x_it) * pb.at(x_it.col(), col); + result.at(x_it_row, col) += x_it_val * pb.at(x_it_col, col); } ++x_it; @@ -520,29 +526,35 @@ { arma_extra_debug_sigprint(); + typedef typename T1::elem_type eT; + const Proxy<T1> pa(x); const SpProxy<T2> pb(y); arma_debug_assert_mul_size(pa.get_n_rows(), pa.get_n_cols(), pb.get_n_rows(), pb.get_n_cols(), "matrix multiplication"); - Mat<typename T1::elem_type> result(pa.get_n_rows(), pb.get_n_cols()); + Mat<eT> result(pa.get_n_rows(), pb.get_n_cols()); result.zeros(); if( (pa.get_n_elem() > 0) && (pb.get_n_nonzero() > 0) ) { - typename SpProxy<T2>::const_iterator_type y_col_it = pb.begin(); - typename SpProxy<T2>::const_iterator_type y_col_it_end = pb.end(); + typename SpProxy<T2>::const_iterator_type y_it = pb.begin(); + typename SpProxy<T2>::const_iterator_type y_it_end = pb.end(); const uword result_n_rows = result.n_rows; - while(y_col_it != y_col_it_end) + while(y_it != y_it_end) { + const eT y_it_val = (*y_it); + const uword y_it_col = y_it.col(); + const uword y_it_row = y_it.row(); + for(uword row = 0; row < result_n_rows; ++row) { - result.at(row, y_col_it.col()) += pa.at(row, y_col_it.row()) * (*y_col_it); + result.at(row, y_it_col) += pa.at(row, y_it_row) * y_it_val; } - ++y_col_it; + ++y_it; } }